Commit Graph

101 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
1a7e342652 Cleanup and simplify WorkArea code
Rename cursor to caret to in order to avoid ambiguity. The caret is
now the blinking thing only.

Remove unused header contents, and some not so useful methods.

No intended change of behavior.
2017-09-08 16:57:21 +02:00
Guillaume Munch
340d747fff Clean up
Only keep one dynamic-cast. This fixes coverity warnings.
2017-03-18 15:09:07 +01:00
Guillaume Munch
b6b56d8518 Notification of external modification inspired by gedit 2017-03-11 00:50:57 +01:00
Guillaume Munch
f4c390712e New virtual method frontend::Dialog::on_BufferViewChanged()
This is called anytime the buffer view attached to the GuiView changes.
2016-10-17 00:16:59 +02:00
Scott Kostyshak
4803c7697b Close a tab on middle-click (#10288)
This is the default behavior of Chromium and Firefox. The main
appeal is that instead of having to precisely click on the 'x' to
close a tab, one can more easily middle-click anywhere in the tab.

The tab is closed if the middle button is pressed on a tab and is
relased on the same tab. After pressing, the user may move the mouse
over other tabs but as long as they move it back to the tab where
they initiated the press before they release, the close will
execute. This is how the feature works in Chromium and Firefox.

Nothing is done if the user middle-clicks on the blank part of the
tab bar. This is consistent with Chromium. Firefox, on the other
hand, opens a new tab. In LyX one can already double-click the blank
part to open a new tab, and in feedback from lyx-users [1] most
expected and desired that nothing be done in this case.

[1] https://www.mail-archive.com/search?l=mid&q=20160720063306.6fyarf3kywexbxvd%40steph
2016-07-21 22:31:29 -04:00
Scott Kostyshak
b236450e61 Factor out useful code into a function
This code will be shared by TabWorkArea::mouseReleaseEvent,
which will be implemented shortly.
2016-07-21 22:31:29 -04:00
Guillaume Munch
eb8c5905f6 Prioritize the shortcuts from the work areas
* Fix bug #10261 : KDE smartly adds conflicting accelerators.

* Prevent bugs like #9495 in the future.

Issues (non-regression):

* It does not appear possible to prevent Ubuntu's Unity from grabbing the
  accelerators for the menus. For instance Alt+A still opens _Affichage in the
  French localization.
2016-07-14 20:50:10 +01:00
Scott Kostyshak
6cf81782dd Implement and bind buffer-move-{next,previous}
Control + Shift + PgDn now moves a tab to the right.
Control + Shift + PgUp now moves a tab to the left.

These keybindings are consistent with Chromium, Firefox,
Nautilus, and gnome-terminal.

Note that I allow for wrapping. This is consistent with
allowing wrapping for buffer-{next,previous}, but there
might be reasons to disable it in the future.
2015-04-08 14:12:52 -04:00
Stephan Witt
9135dcee07 #9130 Text in main work area isn't rendered with high resolution
Introduce the concept of pixel ratio: the ratio of physical and device independent pixels.
This is useful for rendering of content on Retina-displays of Mac hardware with high resolution.
Qt has real support for this starting with Qt5 - therefore it has to be compiled conditionally.
This change uses some work of Marcelo Galvão Póvoa, thank you.
2014-10-18 11:53:16 +02:00
Pavel Sanda
de9d8cc0ba Header cleanup cont. 2013-05-22 19:58:58 -07: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
Pavel Sanda
4f24d123b2 Next leftover. 2012-11-04 01:38:34 +01: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
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
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
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
1b6f1ee810 Remove an include an reorder.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37631 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-13 10:03:05 +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
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
41cd987dc5 Fix bug #4464: Missing autoscroll when selecting by mouse drag.
It's not very fast, but I guess that's a general problem with our scrolling. At least it works now, but it's not perfect.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34659 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-14 22:14:05 +00:00
Edwin Leuven
5485f39539 new buffer on double click in empty area of the tab bar
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34201 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-18 11:30:20 +00:00
Edwin Leuven
ffaf512593 - make the advanced search/replace dialog play nice with size
- add frame

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33821 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-21 11:50:13 +00:00
Abdelrazak Younes
d77a22e2f9 Today is a sad day, LyXView has passed over... long live GuiView!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33393 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-09 17:06:40 +00:00
Abdelrazak Younes
11474f6b89 Get rid of Buffer::setReadOnly() pseudo signal.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33222 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-25 13:31:07 +00:00
Vincent van Ravesteijn
570f96bc6e Add a boolean to GuiWorkArea::redraw to indicate whether the metrics must be updated. The current test "lyx_view_ != guiApp->currentView() || lyx_view_->currentWorkArea() != this" is not enough, especially not if the buffer is changed and buffer->changed() is called. Moreover, there are a lot of combinations of updateMetrics() followed by buffer->changed(), these can now be replaced by one call to buffer->changed(bool).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32874 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 02:03:54 +00:00
Vincent van Ravesteijn
86b6bb9d18 Fix r31814: we have to close the tab not hide it. Also rename the closeCurrentTab() function to hideCurrentTab().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31815 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-31 18:14:21 +00:00
Vincent van Ravesteijn
e8ec788924 Close the correct tab when clicking one while the active tab is in another tabworkarea. This was fixed in r31072 for the cornerbutton; now it is fixed for the buttons on the tabs themselves.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31814 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-31 18:10:18 +00:00
Pavel Sanda
3f170ec08c Fix bug #5977 - Make Close button on tabs configurable
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg154950.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31535 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-05 23:06:29 +00:00
Vincent van Ravesteijn
6e39c317fb Fix bug #5796: Context menu of one inset asks status of another inset.
Store the position for the context menu on mouse press. This is also done in qt but then only on the widget level. 

This avoids that e.g. the edit menu will call getStatus() of math (which causes a crash actually).

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30807 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-30 18:12:29 +00:00
Pavel Sanda
e06984bc42 Remove the corner button too
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg150647.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29492 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-02 12:43:45 +00:00
Pavel Sanda
3da9c20456 Use Qt native close button on tabbar.
Fixes http://www.lyx.org/trac/ticket/3724


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29491 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-02 12:43:42 +00:00
Abdelrazak Younes
3a502dfbec Simple fix for bug 4464
http://www.lyx.org/trac/ticket/4464

Thanks to Vincent for showing the way.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29394 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-24 21:04:51 +00:00
Vincent van Ravesteijn
8e633570bf Fix bug 5357: Close tab possible without close tab icon
http://bugzilla.lyx.org/show_bug.cgi?id=5357

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28727 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-08 10:21:33 +00:00
Abdelrazak Younes
b718b83074 FindAndReplace: more simplification and correct focus handling.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27668 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-22 17:35:17 +00:00
Abdelrazak Younes
09738dbba4 Transfer more things from FindAndReplace to EmbeddedWorkArea.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27664 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-22 15:21:45 +00:00
Abdelrazak Younes
5b02eaa5e8 Create a new EmbeddedWorkArea for dialog embedding purpose and use that in FindAndReplace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27663 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-22 14:45:47 +00:00
André Pönitz
9a9528e86f cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27543 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-16 13:48:30 +00:00
Abdelrazak Younes
0933ba6880 cosmetics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27508 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-15 22:58:19 +00:00
Abdelrazak Younes
0685dfef74 Some cosmetic changes so that GuiWorkArea can be embeddable in a Qt designer dialog.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27499 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-15 22:34:52 +00:00
Stefan Schimanski
48999ee671 * Some more clever elide mode for the LyX buffer tabs. In trunk
currently the whole path is (possibly with some unmotivated ... in
  the middle) used which is usually far too long.

  The algorithm implemented here will start with absolute paths. From
  left to right path segments are added to the display string if they
  help to make the display strings more unique. Otherwise nothing is
  added, or if some middle path segments are omitted otherwise, three
  dots ... are used.

  The result is that we get just the base filename without extension if
  they are unique in the tabbar.

  The patch is open for discussion. If there is demand we can create
  yet another preference option to get back the old behaviour.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24555 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-29 15:44:07 +00:00
André Pönitz
5d61ceb81d fix #4758
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24416 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-21 19:12:15 +00:00
Abdelrazak Younes
60cb88d2ef Tabular de-spaghettization, step 2: move functions to where they are used.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24414 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-21 13:47:01 +00:00
André Pönitz
8d52dfee32 A hack to prevents an additional redraw when the scrollbar pops up
when creating/loading a document.
This regularily happens on documents with more than one page.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24138 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-06 11:52:11 +00:00
Stefan Schimanski
cb45bc6a22 * drag'n'drop for tabs
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23750 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-15 02:13:01 +00:00
Stefan Schimanski
b607775ad7 Implementation of the conclusion of the "LyX/Mac 1.6 -- Window issues" thread:
* add tab popup menu to hide and close a buffer.
* remove the very non-standard hide-button on the left of the tabbar.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23748 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-15 01:00:25 +00:00
Stefan Schimanski
fda541d46a * on Mac close GuiView when the last tab was closed
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23730 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-14 23:24:59 +00:00
Stefan Schimanski
7e2c8ea4ff * completion cursor
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23312 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-28 12:41:43 +00:00
Pavel Sanda
f8ba8db758 Fullscreen mode fixes:
- tabbar & frames respect fullscreen mode when adding/removing new tab.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23291 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-27 21:04:33 +00:00
Stefan Schimanski
1bf7b59d60 * completion infrastructure
* completion support for mathed
* experimental completion support for text


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23104 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-21 19:42:34 +00:00
Abdelrazak Younes
f9744033b3 * TabWorkArea: rename 'close tab' button to 'close buffer' and add a 'close tab' button.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23088 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-21 12:29:26 +00:00