Commit Graph

79 Commits

Author SHA1 Message Date
Abdelrazak Younes
bd12273085 cleanup headers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17672 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-01 09:24:54 +00:00
Abdelrazak Younes
099a4adc92 Improved input method support by M. Iwami. I fixed some typo, and simplified the code a bit.
* Painter:
  - preeditText(), dashedUnderline(): new methods for CJK support.

* GuiWorkArea:
  - inputMethodQuery(): new Qt inherited method for proper CJK support.
  - inputMethodEvent(): now properly take care of input methods.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17671 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-01 09:14:08 +00:00
Jürgen Spitzmüller
81f45add92 * src/frontends/qt4/GuiWorkArea.C:
- whitespace. I forgot to save the changes before committing :-(

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17595 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-27 17:31:29 +00:00
Jürgen Spitzmüller
8cc13ab7c9 * src/frontends/qt4/GuiWorkArea.[Ch]:
- some further refinement (and cleanup) of the triple click behaviour,
	  from Richard G. Heck.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17594 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-27 17:26:11 +00:00
Jürgen Spitzmüller
7cce9b87f8 * src/frontends/qt4/GuiWorkArea.[Ch]:
- reimplement doubleClickTimeout() from the qt3 frontend
	   in order to get triple clicking working (bug 3272).
	   This is just an emultation of triple clicking, since qt does not have
	   a mouseTripleClickEvent()

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17588 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-27 08:05:31 +00:00
Abdelrazak Younes
0a36347897 Fix bug 3231 (hopefully).
http://bugzilla.lyx.org/show_bug.cgi?id=3231

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17184 a592a061-630c-0410-9148-cb99ea01b6c8
2007-02-14 14:51:47 +00:00
Abdelrazak Younes
996dc43578 Minimal support for systems with input method (CJK).
* GuiWorkArea::inputMethodEvent(): process a keyPressEvent() for each character of the commitString().

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17134 a592a061-630c-0410-9148-cb99ea01b6c8
2007-02-10 16:30:11 +00:00
Enrico Forestieri
a894faa25e Fix bug 3150
* src/frontends/qt4/GuiWorkArea.C
	(GuiWorkArea::GuiWorkArea): initialize pixmap.
	(GuiWorkArea::doGreyOut): remove unneeded setVerticalScrollBarPolicy.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17112 a592a061-630c-0410-9148-cb99ea01b6c8
2007-02-08 16:41:06 +00:00
Peter Kümmel
be4be30532 disable scrollbar context menu
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17093 a592a061-630c-0410-9148-cb99ea01b6c8
2007-02-07 18:50:58 +00:00
Abdelrazak Younes
c4d317d217 Prepare for advanced mouse click selections.
* WorkArea::dispatch(): add modifiers argument.

* GuiWorkArea::mousePressEvent(): transmit the modifier to WorkArea::dispatch().
 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16878 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-27 10:41:03 +00:00
Michael Schmitt
25079a83c2 * LyXView.C:
* qt4/GuiWorkArea.h:
	* qt4/GuiWorkArea.C:
	* WorkArea.h: fix typos: "shedule" => "schedule"


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16755 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-18 21:47:27 +00:00
Abdelrazak Younes
2ea1ce7851 * LyXView::updateInset(): schedule a redraw instead of redraw immediately.
* WorkArea::sheduleRedraw(): new pure virtual method.

* GuiWorkArea::showCursor(): handle the scheduled redraw.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16708 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-16 15:16:09 +00:00
Abdelrazak Younes
5d1eb92c1b Safeguard: don't do things that could trigger a painting inside the resizeEvent().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16544 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-06 09:36:40 +00:00
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