An undocumented behaviour of QClipboard::mimeData() is that it can fail on
windows due to the specificities of the windows API that allow a race condition.
In particular it seems that querying the clipboard as soon as the dataChanged()
signal is received favourises this race condition.
Thanks to Trac user bquistorff for the explanation and a proof of concept patch.
This fixes the -geometry command line option and restores the
"Use icons from system's theme" checkbox in the preferences.
There is still code addressing Qt4 and xlib that has to be
audited. This code cannot be compiled with Qt5 because the
default backend is now xcb and not xlib. I have marked such
code with a "FIXME QT5" comment.
This commit replaces almost all occurrences of Q_WS_WIN to comply
with Qt5. The remaining occurrences should *not* be replaced,
because the guarded code won't compile on Qt5.
each failure.
There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:
Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525: // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345: // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403: // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143: // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83: // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92: // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303: // LASSERT: Why would this fail?
Text.cpp:995: // LASSERT: Is it safe to continue here?
As discussed on the list. No automatic contents detection is done, the user
needs to use the special paste menu instead. I used the new TempFile class
for safe temporary file handling.
The documentation would go into section 2.2 of UserGuide.lyx, but I am not
allowed to edit that document.
The HTML export is now mature enough so that it can be used to transfer
formatted text to the clipboard. This enhances interoperability e.g. with
office applications.
Implements CacheMimeData type so that we only need to query the
clipboard once on startup and once each time the contents of the
clipboard change. This is important as Qt takes 5 seconds to time-out when the clipboard is non-responsive.
Patch by John McCabe-Dansted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35790 a592a061-630c-0410-9148-cb99ea01b6c8
Allow users to paste text from e.g. MS Word. This text can be paste from clipboard both as text and as graphics. LyX should prefer to paste it as text.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27988 a592a061-630c-0410-9148-cb99ea01b6c8
(inernal|external)LineEnding are only used by the clipboard code. Therefore
move them to the Qt helpers, where the current environment is known.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26824 a592a061-630c-0410-9148-cb99ea01b6c8