tdf#49482: Searching in the Basic IDE: showing found line
After a search term has been found, the start of the selection will be vertically centered in the textview Change-Id: Ibb53d24ed6bc604a15d144af24d1b891e22a1d2e Reviewed-on: https://gerrit.libreoffice.org/78144 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
parent
344a3cff79
commit
c7ea766400
2 changed files with 22 additions and 0 deletions
|
@ -215,6 +215,9 @@ public:
|
|||
|
||||
void MatchGroup();
|
||||
|
||||
// tdf#49482: Moves the start of the PaM to the center of the textview
|
||||
void CenterPaM( const TextPaM& rPaM );
|
||||
|
||||
bool Search( const i18nutil::SearchOptions& rSearchOptions, bool bForward );
|
||||
sal_uInt16 Replace( const i18nutil::SearchOptions& rSearchOptions, bool bAll, bool bForward );
|
||||
|
||||
|
|
|
@ -2180,6 +2180,20 @@ void TextView::MatchGroup()
|
|||
SetSelection( aMatchSel );
|
||||
}
|
||||
|
||||
void TextView::CenterPaM( const TextPaM& rPaM )
|
||||
{
|
||||
// Get textview size and the corresponding y-coordinates
|
||||
Size aOutSz = mpImpl->mpWindow->GetOutputSizePixel();
|
||||
long nVisStartY = mpImpl->maStartDocPos.Y();
|
||||
long nVisEndY = mpImpl->maStartDocPos.Y() + aOutSz.Height();
|
||||
|
||||
// Retrieve the coordinates of the PaM
|
||||
tools::Rectangle aRect = mpImpl->mpTextEngine->PaMtoEditCursor(rPaM);
|
||||
|
||||
// Recalculate the offset of the center y-coordinates and scroll
|
||||
Scroll(0, (nVisStartY + nVisEndY) / 2 - aRect.TopLeft().getY());
|
||||
}
|
||||
|
||||
bool TextView::Search( const i18nutil::SearchOptions& rSearchOptions, bool bForward )
|
||||
{
|
||||
bool bFound = false;
|
||||
|
@ -2198,6 +2212,11 @@ bool TextView::Search( const i18nutil::SearchOptions& rSearchOptions, bool bForw
|
|||
}
|
||||
|
||||
SetSelection( aSel );
|
||||
// tdf#49482: Move the start of the selection to the center of the textview
|
||||
if (bFound)
|
||||
{
|
||||
CenterPaM( aSel.GetStart() );
|
||||
}
|
||||
ShowCursor();
|
||||
|
||||
return bFound;
|
||||
|
|
Loading…
Reference in a new issue