Commit Graph

66 Commits

Author SHA1 Message Date
Abdelrazak Younes
4d7795d4d2 Reorganize window resizing so that no painting occurs during a resizeEvent(). This caused the crash on MacOSX because the splash image drawing was not finished before the resizeEvent() occurred because of scrollbar hiding.
* WorkArea::resizeBufferView(): delete redraw() call.

* GuiWorkArea:
  - need_resize_: new private member.
  - expose(): move pixmap painting code to new private updateScreen() method.
  - paintEvent(): resize the backing pixmap  if need be.
  - resizeEvent(): move the resizing code to paintEvent().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16499 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-04 12:36:17 +00:00
Abdelrazak Younes
04afd7af17 comment out debug statement.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16474 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-03 07:28:45 +00:00
Peter Kümmel
74b8008837 undo last acedential checkin
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16436 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-30 10:30:02 +00:00
Peter Kümmel
af2ce964ae we've never used Q_FOREACH
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16435 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-30 10:23:06 +00:00
Abdelrazak Younes
b2126408cf This commit do the Model/View separation of the LyXText and Paragraph classes. The separation is mostly complete for the Paragraph class but some more transfer should occur for the LyXText class.
* ParagraphMetrics.[Ch]: new files

* TextMetrics.[Ch]: new files.

* lyxtext.h/text2.C/text3.C: some code transferred to the TextMetrics class.

* paragraph.[Ch]: all screen oriented code transfered to ParagraphMetrics class.

* BufferView:
 - text_metrics_: new TextMetrics cache private member.
 - textMetrics(): new access method.
 - parMetrics(): ditto.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16433 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-29 23:54:48 +00:00
Abdelrazak Younes
6e02338328 * ctor: change viewport attribute (disable double-buffering).
* focusInEvent(): start the blinking cursor after the resize.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16366 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-21 14:50:46 +00:00
Enrico Forestieri
b892a6bc43 Use a larger font for displaying the version number on the splash screen
* src/frontends/qt4/GuiWorkArea.C
	(GuiWorkArea::doGreyOut): don't use LyXFont::SIZE_XXXX directly as
	a font size as these are enum values and not the actual sizes.
	Move the version number slightly to the right to make it more
	readable against the splash screen.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16353 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-21 02:49:27 +00:00
Abdelrazak Younes
c6e4985a07 * GuiApplication::x11EventFilter(): check for currentView() before using it.
* Application::currentView(): now returns a pointer.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16170 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-04 13:52:02 +00:00
Bo Peng
7c184e5426 Button face-lift: use mouse hover-buttons.
* src/insets/insetbase.h: add setMouseHover function
	* src/insets/insetcommand.h/C: handle setMouseHover
	* src/insets/insetcollapsable.h/C: handle setMouseHover
	* src/LColor.h/C: redefine some colors
	* src/insets/render_base.h: add state_
	* src/insets/render_button.C: draw differently according to state_
	* src/frontends/Painter.h/C: hover-stype button
	* src/frontends/qt4/GuiWorkArea.C: enable mouse tracking
	* src/BufferView.C: track mouse_motion without button events


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16162 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-04 04:31:18 +00:00
Peter Kümmel
67f2a91dcc FIXME: remove global variable theApp
This pointer was one reason for the Mac crashes because it not always had 
the same value as the application_ smart pointer



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16119 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-30 00:04:51 +00:00
Georg Baum
8e6e970d7b Next step of true unicode filenames: Use support::FileName instead of
std::string at many places (not all yet).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16069 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-26 21:30:39 +00:00
Abdelrazak Younes
e6a6548712 * lyx_main.[Ch]
- execBatchCommands(): split in loadFiles() and execBatchCommands().
  - exec(): enable batch command to be processed from GUI.

* Application:
  - start(): deleted.

* GuiApplication:
  - execBatchCommands(): new method

* GuiWorkArea::update(): call viewport()->repaint() instead of viewport()->update(), this enable to update the screen immediately when asked by a batch command.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16051 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-26 02:18:32 +00:00
Abdelrazak Younes
aed0edc705 Remove key event pruning code. This has always been disabled without anyone complaining.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16046 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-25 22:35:09 +00:00
Peter Kümmel
07fa2456f9 simplify exit code, old code doesn't work on the Mac
* lyxfunc.C                         : rename unused LFUN_LYX_QUIT parameter
* frontends/qt4/GuiImplementation.C : call LFUN_LYX_QUIT when last window closed
* frontends/qt4/GuiWorkArea.C       : check theApp, add debug case
* frontends/qt4/GuiApplication.C    : remove quitLyX()
* frontends/qt4/GuiApplication.h    : remove quitLyX()
* frontends/qt4/GuiView.C           : hide() widow fore exiting to prevent crash



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16044 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-25 21:24:04 +00:00
Michael Schmitt
946ede62d0 * frontends/qt4/GuiWorkArea.C: make "unknown version" translateable
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15983 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-19 13:35:16 +00:00
Peter Kümmel
2b4b4d721f disable scrollbar when not needed, this patch is totally uncritical
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15935 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-15 18:01:44 +00:00
Abdelrazak Younes
3b91a07daa re-enable opaque widget optimization following Trolltech developer advice (in order to speed up Mac).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15906 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-13 17:28:37 +00:00
Abdelrazak Younes
a988cd6de1 - hum... truly fix the cursor.
- remove unneeded vertical scrollbar policy setting.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15869 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-12 08:29:05 +00:00
Abdelrazak Younes
7a99d338c6 - Clean up CursorWidget and hopefully fix Mac support.
- restore scrollbar when Buffer available.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15868 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-12 07:50:18 +00:00
Abdelrazak Younes
e34ad6ade0 - Cleanup splash screen
- fix bug when no Buffer.
- hide scrollbar when no buffer




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15862 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-11 17:41:55 +00:00
Peter Kümmel
d1280565fd scrollbars always on to avoid an additional resize when switching the buffer
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15815 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-09 09:15:04 +00:00
Abdelrazak Younes
c2a49b5b0d * Application:
- setBufferView(): deleted
  - currentView(), setCurrentView(): new method to set the current LyXView

* GuiApplication::x11EventFilter(): use currentView().view() to get the current BufferView. This should solves the X11 selection bug.

* WorkArea:
  - dispatch(): redraw only if needRedraw in preparation for the painting optimization patch. Show the cursor immediately on mouse click.
  - setBufferView(): remove call to Application::setBufferView()

* GuiWorkArea:
  - focusInEvent(): update only if we changed LyXView
  - focusInEvent(): stop the cursor only if we changed LyXView.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15783 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-07 17:19:33 +00:00
Peter Kümmel
77ada344c4 disable scrollbar when it is not needed, especially for the empty start up window
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15700 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-03 09:23:52 +00:00
Abdelrazak Younes
352ce035b9 Fix multi-window resize bug:
Use case: Two window share the same buffer. The first window is resize. This modify the inner Buffer structure because Paragraph has a notion of line break and thus line width. When switching to the other window which does not have the same size, LyX crashes because the line break is not adapted the this BufferView width.

This commit fix the crash by resizing the BufferView on a focusInEvent(). That is not a good fix but it is a fix nevertheless. The bad side effect is that when the two BufferView shows the same portion of the Buffer, the second BufferView will show the same line breaks as the first one even though those line breaks are not adapted to the second BufferView width... such is life!



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15697 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-02 23:55:49 +00:00
Abdelrazak Younes
ff3c643f09 - restore a backing pixmap painting strategy: the pixmap is drawn at expose() time.
- the cursor is still a widget, the width is 2-pixel on Windows and 1-pixel on other platforms. The full screen refresh on blinking cursor bug is now gone.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15695 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-02 22:53:10 +00:00
Peter Kümmel
8e54e38c3b enable selection with the mouse for math and tables
Qt doc for QMouseEvent::button(): 
         Note that the returned value is always Qt::NoButton for mouse move events.
    so we must use buttons() instead because later on 
    the code checks for the left button.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15693 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-02 22:23:26 +00:00
Abdelrazak Younes
5cadc33792 This commit initialise correctly the tab bar in a new window.
* GuiView::init(): switch to the first avalaible buffer if any.

* GuiWorkArea::focusInEvent(): update the LyXView tab bar there.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15685 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-01 22:57:32 +00:00
Peter Kümmel
5c92641c4d disable scrollbar when it is not needed, especially for the empty start up window
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15677 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-01 17:51:56 +00:00
Abdelrazak Younes
fbcc021da6 small cleanup while looking for a bug.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15620 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-30 13:49:41 +00:00
Abdelrazak Younes
3c296efd19 simplify paintText() interface.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15590 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-28 09:59:43 +00:00
Abdelrazak Younes
56be946751 delete unused code and comment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15588 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-28 09:19:37 +00:00
Abdelrazak Younes
9b89f1d4ad stop/start the blinking cursor when the WorkArea get a focusInEvent or focusOutEvent.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15586 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-27 23:26:52 +00:00
Peter Kümmel
b6a7dd3aa7 src/frontends/qt4/GuiWorkArea.C:
use position returned by BufferView
src/bufferview_funcs.C: 
    adjust cursor x-position by hand



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15555 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-26 11:01:34 +00:00
Edwin Leuven
6b20411c6a add fixme for cursor positioning
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15544 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-25 09:20:07 +00:00
Michael Schmitt
fe2abd3846 * src/frontends/qt4/GuiWorkArea.C: fix cursor positioning
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15541 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-24 21:12:46 +00:00
Abdelrazak Younes
b86a8d09b3 Fix cursor size...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15537 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-24 16:38:17 +00:00
Abdelrazak Younes
f4857dab04 new LFUN_WINDOW_CLOSE
* LyXFunc:
  - dispatch(): transfer assertion on lyx_view_ to each LFUN on a case by case basis.
  - dispatch(): new LFUN_WINDOW_CLOSE
  - getStatus(): special treatment for LFUN_LYX_QUIT

* LyX:
  - views_, addLyXView(): deleted
  - quit(): call saveGeometry() on each LyXView before exiting.

* GuiApplication:
  - is now a QObject.
  - quitLyX(): new Qt slot for lastWindowClosed signal.

* Gui.h:
  - destroyView(), destroyWorkArea(): deleted
  - viewIds(): new method

* GuiImplementation:
  - implement above changes.
  - GuiImplementation is now a QObject
  - cleanupViews(): new private slot.
  - buildViewIds(): new helper method
  - views_ and work_areas_ are now maps of raw pointers instead of schared_ptr.

* LyXView
  - now stores its id.
  - dispatch(): special treatment for LFUN_WINDOW_CLOSE.
  - workAreaIds(): new method.
  - close(): new pure virtual method.
  - saveGeometry(): new pure virtual method.

* GuiView:
  - implements above changes.
  - GuiView(): set WA_DeleteOnClose and Qt::WA_QuitOnClose to let Qt manage the destruction on close().
  - closeEvent(): session stuff transfered to saveGeometry()

* WorkArea
  - now store its id.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15514 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-23 16:29:24 +00:00
André Pönitz
5c4c5d9b05 cursor cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15504 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-23 11:34:43 +00:00
André Pönitz
4774536389 cursor is no more damaging the background. L-shaped cursor is broken right now. will fix later
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15503 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-23 11:19:17 +00:00
André Pönitz
1852693005 do not draw to intermediate pixmap
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15501 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-23 08:46:09 +00:00
Asger Ottar Alstrup
a127d540d3 - LyX is dead slow, so the least we can do is use anti-alised text
- Various micro-optimisations
- Revert Abdel's repaint instead of update for QPainter
- Get rid of unused methods in GuiWorkArea



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15491 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-22 18:49:18 +00:00
André Pönitz
153c997228 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15487 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-22 17:58:09 +00:00
Asger Ottar Alstrup
9031593ae1 - fix broken behaviour of Scrollbar and MouseWheel when
changing between using it and the keyboard-cursor
  movements.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15473 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-22 12:36:31 +00:00
Abdelrazak Younes
4d3fbc113f My six month cleanup crusade is now paying off: LyX has now multiple windows support!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15438 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-21 09:45:11 +00:00
André Pönitz
6c300f72a2 move everything into namespace lyx
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15422 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-21 00:16:43 +00:00
Abdelrazak Younes
68ee23313a remove the focusInEvent() and focusOutEvent() that had so many bad side effect...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15297 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-11 13:01:12 +00:00
Abdelrazak Younes
10d5ea0d8a replace colorcache global variable with GuiApplication::colorCache().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15151 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-26 09:57:47 +00:00
Abdelrazak Younes
3f0fadc48a This commit introduces frontends/Application.[Ch] and makes qt4/GuiApplication (renamed from qt4/Application) derive from it. Most of the code in qt4/lyx_gui.C has been transferred either to Application or to qt4/GuiApplication. Application handles unique instances of LyXFunc, LyXServer and LyXServerSocket.
Most of qt3 and gtk should stay compilable except for LyXView.h because the LyXFunc instance has been transferred to Application.

* frontends/Application: new class aimed to be the one unique interface between the frontend and the kernel. Contains one global pointer to the unique instanciation theApp.

* frontends/qt4/GuiApplication: renamed from qt4/Application, the qt4 specialisation of the Application class.  Contains one global pointer to the unique instanciation guiApp (equal to theApp but pointing to a GuiApplication instead).

* frontends/qt4/lyx_gui.C: most of the code has been moved to Application and GuiApplication

All other file: adapted to new API.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15114 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-22 09:47:39 +00:00
Abdelrazak Younes
72a680e261 small cleanup: delete two unneeded lines of code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14850 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-29 09:08:51 +00:00
Georg Baum
0df0e32b22 fix dropping of UNC filenames on windows (from Enrico)
* src/frontends/qt4/GuiWorkArea.C
	(GuiWorkArea::dropEvent): Use toLocalFile instead of toString,
	because toString omits the first backslash of UNC paths.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14846 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-27 16:10:41 +00:00