This patch attempts to restore the functionalities broken by some changes
(maybe the text column selection code, it was broken also in 4.7).
Text search and text selection work (almost) properly again.
It uses a bit of heuristics to identify the end of a word and merge the
boxes which enclose each character of a word (so that
char_x.right==char_{x+1}.left).
It also tries to recognize if there is a newline ("after_space") after
that a space is found.
BUG: 302004
REVIEW: 107429
FIXED-IN: 4.9.4
When searching backwards end is not actually words.end but words.begin (since the loop goes backwards) hence we can't pass end to stringLengthAdaptedWithHyphen
I've now renamed end to loop_end to make it a bit more clear.
BUGS: 309030
FIXED-IN: 4.9.4
Otherwise we might end up crashing, of course this does not solve
why this error happened, but better getting an error saying something failed
than a crash .-)
FIXED-IN: 4.9.3
BUGS: 308160
Call m_part->closeUrl with promptToSave=false in the Shell dtor, so that
the save changes prompt is not shown again (it's already shown because
of Shell::queryClose)
Otherwise we end up in a busy loop on part deletion if there are pending requests
Should not happen but if this fixes it don't see the need to lose time investigating
why given the number of todo things
The machinery in KParts/QObject is already doing it and this way we don't get the
KXMLGUIClient::~KXMLGUIClient: 0x15637528 deleted without having been removed from the factory first. This will leak standalone popupmenus and could lead to crashes.
warning
I'm not sure if calling this a kdelibs bug yet or not though :D
BUGS: 261538
FIXED-IN: 4.9.1
As a side effect, this change fixes bug 303998, that caused a crash if
the part's widget was destroyed before the part itself, because
m_findBar had already been destroyed.
BUG: 303998
FIXED-IN: 4.9.0
Fixes a bug that causes the extraction of a wrong bounding box:
If the request queue is not empty, signalPixmapRequestDone causes a new
pixmap request to be started, thus overwriting mPixmapGenerationThread's
mCalcBoundingBox before it is read by the if in the next line.
Now signalPixmapRequestDone is called after the bounding box is saved,
so that new requests are started only after all data from
mPixmapGenerationThread have been saved.
BUG: 257370
REVIEW: 105600
The call to FT_New_Face takes the address of the 'face' variable, whose type is a
typedef *something TF_Face;
The value of TF_Face (so a pointer to the properly filled font structure) s then
replaced inside the call of TF_New_Face; but when the latter function fails,
the value of 'face' is not reset and this leads to a crash in the distructor of
TeXFont_PFB.
So properly initialize TF_Face to 0, its address is valid, and the code works.
BUG: 303472
FIXED-IN: 4.8.5
(cherry picked from commit 99c4da2f9e)
This is especially useful if resetSearch is called because of a
document switch, because a search without results in the previous
document has no relation with the new one, and therefore keeping the red
background doesn't make sense.
Instead of directly killing the search in the core, emit a signal
caught by FindBar to tell its SearchLineEdit to reset the search
operation.
In this way, SearchLineEdit can set m_changed, and next time a new
search operation will be started, instead of attempting to use the
old one.
FindNext was early quitting because the previous search was a back search and thus never got to startSearch, now we call startSearch if m_changed
BUGS: 301248
FIXED-IN: 4.9.0
Previously it was cleaned in FIFO order
I also moved the pixmap selection logic in a separate function, that
will be needed in the next patches.
Note: This behaviour is yet not optimal for the thumbnails panel,
because it is allowed to be at a page different than the current
viewport