Commit Graph

302 Commits

Author SHA1 Message Date
Stephan Witt
3aa428fdea #9245 replace Q_WS_MACX with Q_OS_MAC - the Q_OS_MAC macro is usable with Qt4 and Qt5. 2014-08-25 20:08:59 +02:00
Stephan Witt
d1bfad86e5 Use QProxyStyle instead of QMacStyle. QMacStyle is not available anymore with At5 and QProxyStyle is present since Qt4.6 as an alternative 2014-08-22 11:17:34 +02:00
Jean-Marc Lasgouttes
b0543270a9 Remove debug code from TextMetrics
After this, it is possible to remove one parameter to getPosNearX.
2014-07-08 21:29:52 +02:00
Jean-Marc Lasgouttes
f686375eec Change getColumnNearX to getPosNearX
The semantics was bad: the old implementation would return pos - row.pos(), and then all user of the function had to re-add row.pos().
2014-07-08 21:10:47 +02:00
Georg Baum
f09a9fe2e6 Remove unsafe method FileName::tempName()
FileName::tempName() created a new temp file name by using qt to create a
temporary file with a unique name, and then deleting that file and returning
the name. This was unsafe, since other processes or even other threads of the
running LyX could create files with the same name between deletion and then
using the temp name.
This is fixed by using the TempFile class instead. As a side effect, a few
cases where the temp files were not deleted after usage were fixed as well.
The only place that is still unsafe is createTmpDir().
2014-06-09 13:05:50 +02:00
Richard Heck
fdbe775b9f This is the result of an audit of all static variables, looking
for possible thread conflicts, of the sort Georg resolved at
6a30211f. I have made static variables const where possible,
and marked cases that looked potentially problematic with the
comment:
	// FIXME THREAD
Many of these definitely are vulnerable to concurrent access, such
as the static variables declared at the start of output_latex.cpp.
Suppose, e.g., we were outputting latex and also displaying the
source of a different document.

I'd appreciate it if others could grep for "FIXME THREAD" and see
if some of these are harmless, or what.
2014-04-21 11:51:57 -04:00
Juergen Spitzmueller
d788d497aa Trivial fix: escape ampersands in file names before pushing to tab header (#8757) 2013-07-19 15:55:56 +02:00
Jean-Marc Lasgouttes
bd2e7480b1 A first batch of potential bugs spotted by llvm/clang
There are more warnings left, but these are the easiest to fix. And some of them are real bugs (assignments with == instead of =).
2013-05-02 16:38:25 +02:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
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?
2013-04-25 17:27:10 -04:00
Stephan Witt
141fbb6f8c Prepare LyX code to compile and link with Qt5:
* some functionality is in new modules now
  new header locations and library names: QtConcurrent and QtWidgets
* method setResizeMode is renamed to setSectionResizeMode
* deprecated QAbstractItemModel::reset() is dropped now
* platform specific code like QApplication::syncX() is not common anymore
* QString::fromAscii() is dropped now
* some QDesktopServices methods has been moved to QStandardPaths
2013-02-03 19:26:21 +01:00
Vincent van Ravesteijn
a19a0edfc0 qt5: Use QStyleOptionTabWidgetFrame
QStyleOptionTabWidgetFrameV2 is identical to QStyleOptionTabWidgetFrame.
2012-12-28 14:07:43 +01:00
Vincent van Ravesteijn
3a96ef6dca qt5: add/remove some includes 2012-12-15 11:11:55 +01:00
Pavel Sanda
eb9151c599 Close tab button started with 4.5. 2012-11-04 01:37:54 +01:00
Pavel Sanda
0a9735c5f7 LyX 2.1 will support only Qt>=4.5.
(http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg175737.html)

Now start with simple cases.
2012-11-04 01:22:32 +01:00
Pavel Sanda
1b1f9d05d9 compile fix 2012-05-26 10:16:20 +02:00
Vincent van Ravesteijn
655a4f5515 Fix painting of hidden tabbar on gtk
When there is a single document open, the tabbar gets hidden. The only and selected tab is still visible though as a break in the line delining the tabwidget. To fix this we paint the tabwidget ourselves and remove the presence of the hidden tab.
2012-05-25 19:17:48 +02:00
Vincent van Ravesteijn
6cf1847b31 New function BufferList::newInternalBuffer
This solves the problem that newBuffer() already use Buffer::isInternal
but there was no chance to set it yet.
2012-05-12 14:36:13 +02:00
Vincent van Ravesteijn
5279d5a8a5 Properly mark a buffer as internal
Checking the extension of the temporary filename doesn't work anymore
since the naming of temporary files was corrected.
2012-05-06 20:12:17 +02:00
Vincent van Ravesteijn
5e4e4b674c Always require a mask to get a temporary filename
If no mask is supplied or the mask is attached to the end of the filename, we end up with unexpected names like
  <system-temp-dir>\lyx_tmpdir.qHp780.vcr780_<mask>
instead of a temporary file in the lyx temporary directory like
  <system-temp-dir>\lyx_tmpdir.qHp780\<mask>.vcr780.
2012-05-03 16:14:37 +02:00
Richard Heck
4026c0dccd If we switch via the mouse, we need to update the Buffer
after we switch.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40610 a592a061-630c-0410-9148-cb99ea01b6c8
2012-01-13 03:31:48 +00:00
Pavel Sanda
9154bc99e3 Fix #7963, fullscreen corner case for tabbar visibility.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40560 a592a061-630c-0410-9148-cb99ea01b6c8
2012-01-03 14:21:48 +00:00
Abdelrazak Younes
c5c0c22f6b Introduce new RC option for QImage backend instead of macro. This can later be changed at runtime though a command line option or by auto detecting the X11 remote status.
This option is set to true by default as this is the most widespread use case.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40515 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-17 21:53:46 +00:00
Vincent van Ravesteijn
7287a259c5 Change the type of the context menu name to string
There is no need for GUI-elements to use docstring.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40058 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-29 14:48:55 +00:00
Abdelrazak Younes
5c5850e28f First step towards a little bit more independence of GuiWorkArea (WRT GuiView). Ideally, GuiWorkArea should not at all about GuiView. GuiWorkArea now uses a new signal busy() to inform its container (GuiView) about its status.
I also added 2 FIXME where we should not call GuiView directly.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39948 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-23 20:21:01 +00:00
Abdelrazak Younes
383b31a868 Introduce new USE_QIMAGE macro to optionally use a QImage drawing backend instead of a QPixmap. This may help when running locally under X11 with some graphics cards (there were some complain about that in the user list).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39932 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-23 06:52:03 +00:00
Abdelrazak Younes
e621339aae get rid of GuiWorkArea::Private::setReadOnly(). Calling updateWindowTitle() is cheap compared to redraw and GuiView::updateDialogs() will be called anyway (with restartCursor() among others).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39880 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-17 21:19:00 +00:00
Jean-Marc Lasgouttes
69a993312d compilation fix; a couple of warnings
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39873 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-17 08:57:28 +00:00
Abdelrazak Younes
52ef90c2cf GuiWorkArea: Move private stuff to GuiWorkArea_Private.h.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39872 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-16 22:48:26 +00:00
Tommaso Cucinotta
1bc43396fe Fix recursive repaint problem.
See also: http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg170468.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39535 a592a061-630c-0410-9148-cb99ea01b6c8
2011-08-27 10:21:59 +00:00
Abdelrazak Younes
6056db3212 Header cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39300 a592a061-630c-0410-9148-cb99ea01b6c8
2011-07-14 17:00:35 +00:00
Pavel Sanda
325e2575e3 Fix #7598, do not buffer movement keys.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38890 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-29 14:49:58 +00:00
Pavel Sanda
16cfd2ba12 Fix #7438, patch from Stephan.
(Sorry for not waiting for you, I wanted to enter freeze ASAP.)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38317 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-08 22:22:52 +00:00
Vincent van Ravesteijn
49459f6fc4 Fix bug #7345: Crash when right clicking on displayed math with selection
Two things have been fixed here:
1) the selection should not be cleared when the user right clicks a math inset that is part of the selection,
2) the type of context menu should be determined at mouse-press, because that is the moment when the cursor is set. However, we should do it after setting the cursor, because setting the cursor might change the selection status and this influences the choice for the type of context menu.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37961 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-19 13:14:13 +00:00
Abdelrazak Younes
c9e4d86b4c Temporally fix #7321 until a better solution is found. The auto scrolling is very bad but at least it does not crash nor assert.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37916 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-13 16:41:47 +00:00
Abdelrazak Younes
00a10facd2 Trying to fix #7321: SyntheticMouseEvent() only works within text.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37913 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-13 16:26:03 +00:00
Stephan Witt
ad1dc2fd6b now the user has control over the width of the text cursor
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37901 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-11 06:11:55 +00:00
Stephan Witt
e9d943aeb8 #7292 make the modifiers Option and Control act on there own on mac - adjust the key bindings to apple standards where possible
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37770 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-23 14:30:41 +00:00
Vincent van Ravesteijn
b9e7a9b269 Fix bug #5414: Show context menu accelerators when the context menu is shown after pressing the keyboard context menu key.
This should have been done by qt, but we can override qt by adapting the style on the windows platform.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37678 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-15 16:53:37 +00:00
Vincent van Ravesteijn
fbaba7782a Fix bug #7209: Crash when clicking on unfinished command in math.
This was a similar problem as for bug #5796 in r30807. There I made sure that the position that is used for the context menu is set at mousepress. That was because also the cursor was set at mousepress and we want to get the context menu at the place where the mousebutton was pressed, and not where the mousebutton was released.

However, in this case, the position of the context menu is stored on mousepress, but we don't take into account that the cursor might move afterwards due to the DEPM.

So, the solution is not to save the position of the mouseclick, but to save the name of the context menu we requested.

PS. Perhaps we could save the cursor position, but this seems to work too.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37669 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-14 21:30:12 +00:00
Vincent van Ravesteijn
a5be70af87 GuiWorkArea: coding style.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37625 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-13 09:58:31 +00:00
Vincent van Ravesteijn
8ba5c7f886 Better fix for part 3 of bug #7182: LyX truncates file names to about 25 chars.
Now, when hovering the tabs, the full paths are shown as a tooltip.

see r37084.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37101 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-04 09:41:27 +00:00
Vincent van Ravesteijn
a1f8d221c8 Fix part 3 of bug #7182: LyX truncates file names to about 25 chars.
Now, when hovering the tabs, the longer name is shown as a tooltip.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37084 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-03 18:50:37 +00:00
Pavel Sanda
5007ee4dad Let filenames to be longer in window title.
Fixes first part of #7182


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36950 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-19 22:05:48 +00:00
Georg Baum
d89bde0652 Load mhchem if it is requested unconditionally, fix some typos
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36425 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-21 18:07:04 +00:00
Enrico Forestieri
8590a51f9b Fix bug #6589 (Crash when reverting to saved while cursor is in mathed)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35880 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-28 12:32:32 +00:00
Vincent van Ravesteijn
1a9fe125f6 Update the cursor shape also when the cursor shape changes without a mouse move actions.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35808 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-24 22:14:31 +00:00
Edwin Leuven
4e5d3469f6 have pointing cursor when hovering something clickable
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35806 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-24 21:41:47 +00:00
Peter Kümmel
d0feccc7ed switch mouse to busy symbol every 3 seconds and then back to show the
user something is done in the background


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35795 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-23 10:49:45 +00:00
Vincent van Ravesteijn
152491f916 Some cosmetics (from my local cosmetics branch).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35708 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-18 14:20:03 +00:00
Stephan Witt
d87cdfa5e1 #5970 more exact modifier check for Tab keys filter
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35571 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-08 05:23:59 +00:00