Commit Graph

50 Commits

Author SHA1 Message Date
Stefan Schimanski
d63821939c * create global menubar on Mac without a parent. It will be shown if no GuiView exists.
* fill global menubar with the normal actions
* capture the keyboard on the menubar if no GuiView exists. This
  enables the shortcuts on Mac in those cases.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23731 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-14 23:25:11 +00:00
André Pönitz
4b12782854 merge MenuBackend into frontend/Menus
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23527 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-07 00:21:23 +00:00
André Pönitz
e13cc7e90d start moving MenuBackend to the frontend
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23523 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 21:50:27 +00:00
Abdelrazak Younes
8d99df0c93 Transfer some GUI oriented code from core to frontend.
* Application/GuiApplication:
- restoreGuiSession(): new method for session restoration.

* LyXView/GuiView
- loadDocument(): new pure virtual interface

* lyxFunc:
- loadAndViewFile(): transfered to GuiView::loadDocument()
- openDocument(): transfered to GuiView.

* LyX.h
- Impl::files_to_load_ : now a simple vector<string>.
- restoreGuiSession(): removed.
- execBatchCommands(): simplified and make use of Application::restoreGuiSession().



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22816 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-06 23:02:57 +00:00
Abdelrazak Younes
3941b00ec7 Transfer forked process checking from GuiWorkArea to GuiApplication. I got rid of the general timer starting/stopping too. Looking a bit deeper I don't think it was necessary. We'll put them again in case it is needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22785 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-05 13:10:42 +00:00
Abdelrazak Younes
722329490b Simplify MenuBackend and menubar interactions.
* GuiMenubar: freed from GuiView and QMenuBar, renamed to 'Menus'
* GuiView: just use the standard QMenuBar.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22308 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-26 10:55:43 +00:00
Abdelrazak Younes
518871a52b Don't pretend we have multiple menu backends: transfer the singleton to GuiApplication.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22303 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-25 22:27:32 +00:00
Abdelrazak Younes
1133419a59 Cleanup LyXFunc::dispatch() following JMarc advice.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21797 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-26 14:36:50 +00:00
Abdelrazak Younes
49051b32ea Remove unused pure virtual method.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21774 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-25 18:18:23 +00:00
Abdelrazak Younes
94c0fc55de Getting rid of Application::createView()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21760 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-24 08:51:11 +00:00
Abdelrazak Younes
662b5dba03 Introducing Application::getStatus() and Application::dispatch(). Transferring some LFUNs to those.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21759 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-24 07:58:12 +00:00
Abdelrazak Younes
d4b02ad711 simplify window creation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21735 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-23 09:56:33 +00:00
Abdelrazak Younes
8460c9a072 Introducing Application::resetGui() that will reset all dialogs in all lyx windows (including toolbars and menubars).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21689 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-21 15:12:47 +00:00
Abdelrazak Younes
359ced5e65 Transfer some LFUNs from LyXFunc to GuiView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21681 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-19 20:56:05 +00:00
Abdelrazak Younes
1b147f12b0 Spoiling some fun from Andre': put Application on a diet and remove unnecessary string conversions and method indirections.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21665 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-18 20:36:52 +00:00
André Pönitz
12f435035a move view_ids from Application to GuiApplication
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21658 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-17 22:25:42 +00:00
André Pönitz
d837643c95 make frontend::Application a bit slimmer
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21657 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-17 22:11:11 +00:00
André Pönitz
1005c166c2 merge frontend::Gui and frontend::Application
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21656 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-17 20:47:50 +00:00
André Pönitz
72e3177e3d shuffle some code around
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21636 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-15 22:30:16 +00:00
Abdelrazak Younes
79e12182cb cosmetics and comments.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21630 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-15 19:46:30 +00:00
Abdelrazak Younes
e5eabfe067 Transfer geometry related session code from LyX::newLyXView() to GuiView::setGeometry().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21606 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-14 13:56:13 +00:00
Abdelrazak Younes
12ecafd76e Transfer createView() from Application to GuiApplication and get rid of LyXView::setGeometry() pure virtual interface. The goal is to switch to Qt session handling for geometry instead of our own house made one.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21585 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-13 15:29:15 +00:00
Abdelrazak Younes
eea79637c7 Move Color::color enum to ColorCode.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21198 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-25 12:41:02 +00:00
André Pönitz
fe2085b0e1 consmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20300 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-15 22:56:09 +00:00
André Pönitz
50de85396c some remnaming
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20298 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-15 20:31:50 +00:00
André Pönitz
d348b0183b Rename class socket_callback into SocketCallback; adjust buidl systems;
prevent double deletion of socket notifier


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20296 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-15 17:47:35 +00:00
André Pönitz
c9ea6e6eef the fun begins....
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20077 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-05 20:33:29 +00:00
André Pönitz
fc36725282 Merge QController into individual dialogs. Also various cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19961 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-31 22:16:11 +00:00
Abdelrazak Younes
9484768959 New 'Save all on shutdown or cancel' feature from Stephan Witt.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19824 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-27 06:35:24 +00:00
Jean-Marc Lasgouttes
951701394e [the "translation" patch series] Part 4: translating the LyX menu on the mac
* development/MacOSX/Makefile.am: when installing, create bogus 
	language directories to allow translation through Qt.

	* src/frontends/qt4/GuiApplication.cpp (MenuTranslator): new class, 
	redirects some Qt translation requests to gettext.
	(GuiApplication): install the MenuTranslator.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19354 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-07 21:23:40 +00:00
André Pönitz
5008ee540f rename LColor into Color
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18046 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-26 17:34:20 +00:00
André Pönitz
c6b932f467 code cosmetics whitespace, unneeded lyx:: qualification, indentation, unneeded destructors and the like
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17994 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-25 16:39:21 +00:00
Abdelrazak Younes
7384d0cf67 Fix bug 3288:
http://bugzilla.lyx.org/show_bug.cgi?id=3288

This is recommended by Qt:

Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

* GuiApplication::notify(): reimplemented from QApplication::notify().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17688 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-01 16:06:43 +00:00
Jean-Marc Lasgouttes
3db3cc44dd * GuiApplication.C (GuiApplication): make sure that the Qtranslator
holding the Qt translations is not deleted. Now keyboard shortcuts and
	Qt stock dialogs are properly translated.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16496 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-04 11:05:57 +00:00
Jean-Marc Lasgouttes
d01dad8bac remove some old cruft (unused OS X specific code)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16278 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-15 14:43:13 +00:00
Peter Kümmel
7b2cce9d5d Clean up quit code.
We still need a solution for the Mac.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16135 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-02 17:39:31 +00:00
Peter Kümmel
1000b8d218 Fix crash on Mac, now the strange part
Part 2: avoid pure virtual function,
          if (theApp)
               theApp->unregisterSocketCallback(fd_);
          does not help, we've tested it!
          Without a Mac it is hard to find a better solution
    



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16110 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-29 21:36:39 +00:00
Jean-Marc Lasgouttes
e1771f375b * qt4/GuiApplication.C: remove ad-hoc Mac OSX Carbon code to handle
kAEOpenDocuments ApleEvent.
	(event): new method to do the same thing using qt4 built-in support.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16099 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-29 09:06:37 +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
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
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
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
c5dd10f93e * GuiApplication: explicitly clear out socket_callbacks_ in the destructor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15325 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-13 16:48:12 +00:00
Abdelrazak Younes
83ffa28e77 This commit is purely mechanical and get rid of lyx_gui.[Ch].
Only qt4 is guaranted to compile and work. I did not remove gtk and qt3 lyx_gui.C because they might be needed for reference to complete the header declarations in "GuiApplication.C".

 - lyx_gui::use_gui transfered to lyx::use_gui in lyx_main.C
 - all remaining lyx_gui functions transfered to Application and corresponding GuiApplication implementations. 


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15306 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-12 14:10:13 +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
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
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
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
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
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