Commit Graph

29 Commits

Author SHA1 Message Date
Abdelrazak Younes
d916db37b0 MacOSX optimisation:
* QLPainter::paintText(): use the font width cache instead of the painter metrics.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15580 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-27 13:36:23 +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
Abdelrazak Younes
28ad960255 This commit cleans up everything related to singleton. The other important change is that lyx::dispatch() and lyx::getStatus become _the_ official way to use LyXFunc equivalent methods.
* lyxfunc.h:
  - theLyXFunc(): new function in the global namespace.
  - lyx::dispatch():  new function in the lyx namespace.
  - lyx::getStatus():  new function in the lyx namespace.

* bufferlist.h:
  - theBufferList(): new function in the global namespace.

* Clipboard.h:
  - theClipboard(): new function in the global namespace.

* Selection.h:
  - theSelection(): new function in the global namespace.

* FontLoader.h:
  - theFontLoader(): new function in the global namespace.

* FontMetrics.h:
  - theFontMetrics(LyXFont const &): new function in the global namespace.

* Application.C: implements the functions defined above.

* LyXView.h:
  - getLyXFunc(): deleted.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15298 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-11 17:24:46 +00:00
Abdelrazak Younes
4add252628 * frontends/Painter:
- text(): now returns drawn text width()

* rowpainter:
 - paintChars(): use the returned width from Painter::text() instead of recalculating it.

All other files: implement the API change. qt3 and gtk not 100% guaranted to compile nor work.






git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15294 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-10 13:24:08 +00:00
Abdelrazak Younes
742cd190cb revert to revision 15266
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15280 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-08 14:24:12 +00:00
Abdelrazak Younes
c8e5745e20 * ControlChanges:
- getChangeAuthor() and getChangeDate(): converted to unicode.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15279 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-08 10:32:33 +00:00
Abdelrazak Younes
a21259dd02 * qt_helpers:
- ucs4_to_qchar() and qchar_to_ucs4() have been inlined.
  - ucs4_to_qstring(): pass a QString to avoid a copy.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15266 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-07 16:30:26 +00:00
Abdelrazak Younes
00edcc582f This commit is a big rework of the FontLoader/FontMetrics interaction. Only Qt4 for now, I would be grateful is somebody steps up for qt3 and gtk.
Basically, I replaced all methods in the font_metrics namespace by a proper virtual interface FontMetrics. The FontLoader is _the_ container for FontMetrics.

This patch should also bring some optimizations in a number of place in the code. This is because we do not need any more to search for the LyXFont at each font_metrics call. In effect, the speed advantage is not as sensible and this is a bit deceiving considering that this was my primary motivation behind the patch. But I like the patch anyway as it cleans up the relation and interfacing between fonts, metrics and frontends.

* frontends/FontMetrics.h: new virtual interface. Renamed from font_metrics.h

* qt4/GuiFontMetrics: corresponding qt4 implememtation. Renamed from qfont_metrics.C. The smallCaps particular case treatment has been transfered here as well as the width cache for MacOSX and Windows.

* qt4/QLPainter.C: the smallCapsText has been reworked to return the width of the drawn text.C

all other files: replace font_metric helper function call with corresponding FontMetrics method calls.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15265 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-07 16:15:06 +00:00
Abdelrazak Younes
205096733a This commit introduces the FontLoader interface class. In the future, I intend to extend it with a proper encapsulation of font metrics.
* frontends/FontLoader.h: new interface class.
* frontends/Application.h: new FontLoader() pure virtual method
* frontends/lyx_gui: update_fonts() and font_available() methods deleted

* [qt3/qt4/gtk]/GuiApplication: implement the new interface

* qt4/GuiFontLoader:
  - renamed from FontLoader
  - now derives from FontLoader
  - now in the lyx::frontend namespace

* qt3/qfont_loader
  - now derives from FontLoader

* gtk/xftFontLoader
  - now derives from FontLoader



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15220 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-03 16:17:32 +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
4d5767fd9c * qt_helpers.[Ch]: new conversion from/to ucs4 strings and chars to/from QChar and QString.
* qfont_metrics.C: make use of above methods instead of those in unicode.[Ch]

* QLPainter.C: ditto

* QLyXKeySym.C: ditto + simplification and a BOOST_ASSERT that verifies that the event is one char only.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14852 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-30 14:59:07 +00:00
Abdelrazak Younes
19b3779d44 get rid of QT3_SUPPORT and some cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14751 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-17 08:56:53 +00:00
Lars Gullik Bjønnes
c46b7d8955 Merge the unicode branch into trunk.
- src/support/unicode.[Ch]: new files with functions for converting
  to and fro ucs4, ucs2 and utf8.
- src/support/docstring.h: specialization of basic_string that
  holds a uint32_t internally.
- Several functions changed to use char_type instead of char or unsigned char.
- Qt3 and Qt4 sends ucs2 on to core
- Gtk sends ucs4 on to core
- Read and write utf-8 .lyx files.
- font_metrics and painter updated to handle ucs4 chars as input.
- Quite a bit of ugly compability code, conversion string->docstring, etc.
- Have fun...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14661 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-13 22:54:59 +00:00
Abdelrazak Younes
a1b60fb963 delete Painter::fillPolygon() and associated frontend implementations
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14410 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-10 15:14:29 +00:00
Abdelrazak Younes
3287c44f33 GUI API Cleanup step 2: merge of the "younes" branch.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14231 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-26 16:55:35 +00:00
Lars Gullik Bjønnes
702621aabd Fix 64bit<->32bit issue.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14203 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-25 11:27:33 +00:00
Edwin Leuven
641fae7ed5 * reset color/linestyle/linewidth cache to QPen defaults on QPainter creation
* get rid of QPainter arg in setQPainterPen(..)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14201 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-25 11:18:56 +00:00
Abdelrazak Younes
2335670309 * qp_ member is now used for painting
* QLPainter::start() now re-initialize qp_
* QLPainter::end() now end qp_


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14184 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-23 14:12:17 +00:00
Abdelrazak Younes
d8ae51dbe1 This is the merging of the GUI API cleanup branch that was developed in svn+ssh://svn.lyx.org/lyx/lyx-devel/branches/personal/younes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14152 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-20 08:39:16 +00:00
Abdelrazak Younes
30649ec3b6 Those classes (and their associated [Ch] files) are renamed :
QLAction -> Action
lcolorcache -> ColorCache
qfont_loader.C -> FontLoader




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14136 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-17 09:14:58 +00:00
Peter Kümmel
c02f6409ec Fix Qt4 resize bug.
Don't use  multiple QPainter::begin on the same QPaintDevice.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14101 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-14 14:23:25 +00:00
Abdelrazak Younes
5c4d89d816 Simple optimisation: reuse current QPainter if no there's no change in settings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14078 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-11 21:22:36 +00:00
Abdelrazak Younes
4213d1851a clean up dos style line ending.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13442 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-20 17:25:02 +00:00
Abdelrazak Younes
4a5053d34e * qscreen.[Ch]:
- Cursor handing is done on the server -> *cursor are
    QPixmap
  - Use new drawScreen and copyScreen methods.
* QWorkArea.[Ch]:
  - Pixel manipulation is done on the client -> paint_device_ is a
    QImage
  - an intermediate Screen device is updated whenever expose is called
    -> sreen_device_ is a QPixmap. This screen_device is the one that is
    painted on screen in QWorkArea::repaintEvent().
  - new update, drawScreen and copyScreen methods. 
* QLPainter.C: use the new paintDevice interface.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13428 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-20 10:43:21 +00:00
Jürgen Spitzmüller
98b1da0248 Abdelrazak Younes: Compile fixes for the Mac (ChangeLog follows)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13349 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-12 17:44:38 +00:00
Lars Gullik Bjønnes
12e5a52b92 Added initial qt4 work by Abdelrazak Younes
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13294 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-05 17:24:44 +00:00