Commit Graph

294 Commits

Author SHA1 Message Date
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
f2ca75b3ac remove LFUN_TOOLTIPS_TOGGLE and associated Dialog::tooltipsEnabled() method.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15263 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-06 21:49:13 +00:00
Abdelrazak Younes
c77b5dbee1 enable the font width cache for Windows also, it saves three seconds on the UserGuide test on my machine (18s versus 21 second).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15235 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-04 12:43:13 +00:00
Abdelrazak Younes
78135f7751 enable Font cache only for MacOSX and inline width() for other platform.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15233 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-04 10:08:51 +00:00
Abdelrazak Younes
6c2577d98d MacOSX compilation fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15230 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-04 09:34:56 +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
1b8c2a95df use theApp directly for default fonts.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15214 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-03 14:21:15 +00:00
Abdelrazak Younes
85d2e4b917 * lyx_gui: create_view(), start() and exit() functions deleted.
* lyx_main.C and lyx_cb.C: use Application methods directly instead of the above functions.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15211 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-03 13:38:28 +00:00
Abdelrazak Younes
046c9bb9e3 transfer lyx_gui::exit() to frontends/lyx_gui.C
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15209 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-03 11:42:33 +00:00
Abdelrazak Younes
63ad5449fb This commit creates a new "frontends/lyx_gui.C" that contains all functions that are not frontend dependent any more. It also creates 3 new pure virtual methods in Application:
virtual std::string const romanFontName() = 0;
virtual std::string const sansFontName() = 0;
virtual std::string const typewriterFontName() = 0;

My goal is to transfer all of "frontends/*/lyx_gui.C" to "frontends/lyx_gui.C". When this is done, "frontends/lyx_gui.C" can go altogether as its functions will then be replaced with direct calls to theApp->XXX().

* frontends/lyx_gui.C: new file with code transfered from [qt3,qt4,gtk]/lyx_gui.C

* frontends/Application: 3 new font related pure virtual methods

* [qt3,qt4,gtk]/GuiApplication: implement the above method with code transfered from lyx_gui.C


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15208 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-03 10:34:10 +00:00
Georg Baum
2c72e0ecaa Fix bug 2868
* src/insets/insetgraphics.C
	(findTargetFormat): return pdf for vector graphics

	* src/format.h
	(Flags): new enum describing format flags
	(flags_): new member variable for format flags
	(vectorFormat): new, tell whether a format can contain vector graphics

	* src/format.C: adjust to flags changes

	* src/frontends/qt[34]/QPrefsDialog.C
	(QPrefsDialog::QPrefsDialog): handle new vector flag
	(QPrefsDialog::switch_format): ditto
	(QPrefsDialog::updateFormatsButtons): ditto
	(QPrefsDialog::new_format): ditto
	(QPrefsDialog::modify_format): ditto

	* src/frontends/qt3/ui/QPrefFileformatsModule.ui
	* src/frontends/qt4/ui/QPrefFileformatsUi.ui
	(vectorCB): new checkbox for vector flag

	* src/lyxrc.C
	(LyXRC::read): read vector flag
	(LyXRC::write): write vector flag

	* lib/doc/Customization.lyx: document format flags

	* lib/configure.py
	(checkFormatEntries): Add vector flag to some formats


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15205 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-03 08:34:59 +00:00
Enrico Forestieri
5070d2f660 Fix build on cygwin when using --without-x
* src/frontends/qt4/GuiView.C
	(setGeometry): replace test for Q_OS_WIN32 with Q_WS_WIN

	* src/support/fontutils.C:
	If X_DISPLAY_MISSING is defined, compile the code for Win32
	on cygwin, too.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15201 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-02 18:21:48 +00:00
Abdelrazak Younes
6a947f349b This commit moves system font initialization and restoration to new support/fontutils.[Ch].
These font related functions were identical for qt3 and qt4. They are not Qt dependent at all and could also apply to an eventual Win32 or MacOSX gtk port.

Jen-Marc says: It would be nice to convince fontconfig to do the same for linux.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15196 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-02 10:48:03 +00:00
Abdelrazak Younes
315d394338 Some cleanup
* Application.h: pimpl_ is now private

* GuiApplication.C: headers cleanup.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15185 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-29 23:21:03 +00:00
Abdelrazak Younes
3a1f656e4e * Application: new createView() method
* gtk/qt3/qt4/GuiApplication: createView() method deleted

* LyXView:
 - init(): is now a pure virtual method. autoSave code transferred to constructor and updates to the frontends.
 - setGeometry(): new pure virtual method

* gtk/GView, qt3/QtView, qt4/GuiView: adapted to above change
 - setGeometry(): code transfered from GuiApplication

* lyx_main.C: call LyX::ref().addLyXView() in there instead of in Application::createView()


* 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15183 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-29 23:10:17 +00:00
Abdelrazak Younes
ca5411f913 This commit introduces Application_pimpl and cleanup the header includes of the affected .C files.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15182 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-29 22:06:28 +00:00
Abdelrazak Younes
34694773c6 This commit splits the add() method in two methods add() and
addWithStatus(). It also replaces LyXView uses with BufferView as none of the LyXView feature were used.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15181 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-29 21:40:56 +00:00
Abdelrazak Younes
1396c73262 replace global variable bufferlist with Application class member access.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15161 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-27 10:24:13 +00:00
Abdelrazak Younes
0da12b129a delete unneeded BufferView.h declaration.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15159 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-26 21:11:22 +00:00
Abdelrazak Younes
a9ddcfc77c 2 style and 1 compilation fixes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15156 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-26 12:46:27 +00:00
Abdelrazak Younes
b171e5f150 Free BufferView from LyXView!
* BufferView
  - layoutChanged: new boost signal.
  - LyXView owner(), owner_: deleted

* text3.C
  - emit BufferView::layoutChanged instead of calling LyXView::setLayout directly
  - LFUN_MOUSE_RELEASE: delete LyXView updateMenubar() and updateToolbars() direct calls.
    The update is of both bars is done in WorkArea::dispatch().

* WorkArea.C
  - dispatch(): add LyXView updateMenubar() call.

* LyXView
  - connects to BufferView::layoutChanged directly to Toolbars::setLayout()
  - setLayout(): deleted.

* qt4/GuiImplementation: modify BufferView construction (without LyXView).

All other files: cleanup header declaration of LyXView.h


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15153 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-26 10:06:46 +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
Georg Baum
c2ffa71fa7 compile fix
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15129 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-22 18:45:22 +00:00
Abdelrazak Younes
12a82dd4f2 This commit replaces BufferView->LyXView->Gui->[selection,clipboard] with theApp->[selection,clipboard]
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15125 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-22 15:02:41 +00:00
Abdelrazak Younes
6104eebe0d replace lyxserver and lyxsocket with theApp->server() and theApp->socket() equivalent methods.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15119 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-22 12:34:13 +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
574e4444a8 Move X11 specific selection code from BufferView to the frontends.
* BufferView:
 - selectionRequested(): renamed to requestSelection() and cleaned up.
 - selectionLost(): renamed to clearSelection()

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15024 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-17 08:35:12 +00:00
Georg Baum
9080c44458 Use wchar_t as lyx::char_type if it is 32 bit wide.
No scons and cmake support! scons and cmake need to find out the size of
wchar_t and define this macro in config.h (example for 32bit wchar_t):

* The size of a `wchar_t', as computed by sizeof. */
#define SIZEOF_WCHAR_T 4

	* configure.ac: Test size of wchar_t

	* src/support/types.h: don't include docstring.h anymore.
	Use wchar_t as lyx::char_type if it is 32 bit wide.

	* src/support/docstring.h: Use lyx::char_type for defining docstring

	* src/metricsinfo.h: include support/docstring.h instead of
	support/types.h
	* src/lyxlex.h: ditto
	* src/frontends/font_metrics.h: ditto
	* src/frontends/qt4/qt_helpers.h: ditto
	* src/frontends/Painter.h: ditto
	* src/errorlist.h: ditto
	* src/support/lstrings.h: ditto
	* src/lyxfunc.h: ditto
	* src/LaTeX.h: ditto


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14991 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-13 21:13:49 +00:00
Georg Baum
59fdb31af3 s/boost::uint32_t/lyx::char_type/g except in the definition of lyx::docstring
and lyx::char_type


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14990 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-13 17:11:39 +00:00
Georg Baum
a82ca1eed1 * src/frontends/qt4/QLToolbar.C
(QLToolbar::QLToolbar): Fix initialization order


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14989 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-13 17:04:42 +00:00
Enrico Forestieri
f66b23b4df Fix combo box items in the delimiter GUI
* src/frontends/qt4/QDelimiterDialog.C
	(QDelimiterDialog::QDelimiterDialog): add missing "Variable size" item.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14981 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-12 01:17:03 +00:00
Abdelrazak Younes
a6444784dc A bunch of conversion to docstring.
- bformat(): contributed by Georg Beaum
- Alert::XXX
- error(): in SpellBase, ispell, psell, aspell, buffer, etc.
- message(), message signal
- displayMessage(), setMessage,
- ErrorItems
- prettyName()
- makeDisplayPath()

and maybe some more...


- etc... 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14970 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-11 08:54:10 +00:00
Abdelrazak Younes
c9c47c6464 * LyXView.h:
- makeToolbar(): new pure virtual method

* qt4/GuiView.h:
  - makeToolbar(): new method transferred from QLToolbar

* qt4/QLToolbar: derive from QToolBar instead of owning a QToolBar member.

* Toolbars.h: remove make_toolbar() prototype (use LyXView::makeToolbar instead).



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14964 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-10 11:03:21 +00:00
Lars Gullik Bjønnes
0dc81f2463 Change MenuBackend and the other menuclasses to store a docstring. Do the required updates to lstrings/convert.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14955 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-09 22:27:22 +00:00
Lars Gullik Bjønnes
43b77ba2d7 Change _() to return a docstring. Fixup callers with the help of lyx::to_utf8.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14952 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-09 15:27:44 +00:00
Georg Baum
e33bac93cd Fix clipboard/selection encoding
* src/frontends/qt[34]/qt_helpers.[Ch]
	(toqstr): add variant for docstring
	(qstring_to_ucs4): Use docstring and port from qt4 to qt3

	* Many other files: Many std::string -> lyx::docstring conversions

	* src/support/lstrings.[Ch]
	(subst): Add variant for docstring and char_type
	(externalLineEnding): std::string -> lyx::docstring
	(internalLineEnding): std::string -> lyx::docstring


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14871 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-03 07:02:38 +00:00
Abdelrazak Younes
b486b53f8f Patch from Enrico:
Avoids the crash when quitting LyX on Cygwin/qt4


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14860 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-01 13:49:03 +00:00
Lars Gullik Bjønnes
86b063d2da Use correct types for qstring, also to avoid 64<->32 bit issues.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14858 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-31 20:36:07 +00:00
Edwin Leuven
74344a8f4b further ui cleanup: correct tab order
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14856 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-31 13:46:28 +00:00
Edwin Leuven
27fa8c7d12 correct tab order + layout cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14855 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-31 13:07:05 +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
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
Edwin Leuven
e28114779b minimal effort implementation of:
* float widget as a .ui file
* floatplacement.[Ch] -> FloatPlacement.[Ch] 



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14838 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-25 13:40:01 +00:00
Edwin Leuven
e18dcb5b9d get rid of comments, c++ style casts
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14837 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-25 10:52:49 +00:00
Abdelrazak Younes
3cf9a75bb3 remove qPixmapFromMimeSource. This caused the inclusion of Qt3 support headers which we want to get rid of.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14835 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-24 19:37:40 +00:00
Michael Schmitt
d2232b650e resolve last occurrence of QT3_SUPPORT
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14824 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-23 14:01:24 +00:00
Michael Schmitt
b124158c34 drop linuxdoc support (part 3)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14818 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-23 10:57:45 +00:00
Jean-Marc Lasgouttes
9ee8395133 Do not make all menu entries checkable
* src/frontends/qt4/Action.C (Action): do not set entry to
	checkable by default; invoke update() to set it up.
	(update): only set checkable property if needed.

	* src/frontends/qt4/QLPopupMenu.C (populate): in the case of
          a Command menu item, let Action set itself up.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14811 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-22 09:38:03 +00:00