]> git.lyx.org Git - features.git/blobdiff - src/frontends/qt4/GuiApplication.C
new LFUN_WINDOW_CLOSE
[features.git] / src / frontends / qt4 / GuiApplication.C
index 72d12b01809c06e41cd12a81ccb7fe580513fed3..bc8405f5d3693f39355487889b46ff6a5a1d2637 100644 (file)
@@ -27,7 +27,9 @@
 #include "BufferView.h"
 #include "Color.h"
 #include "debug.h"
+#include "funcrequest.h"
 #include "lyx_main.h"
+#include "lyxfunc.h"
 #include "lyxrc.h"
 
 #include <QApplication>
@@ -149,10 +151,24 @@ GuiApplication::GuiApplication(int & argc, char ** argv)
 
        LoaderQueue::setPriority(10,100);
 
+       setQuitOnLastWindowClosed(false);
+       QObject::connect(this, SIGNAL(lastWindowClosed()),
+               this, SLOT(quitLyX()));
+
        guiApp = this;
 }
 
 
+void GuiApplication::quitLyX()
+{
+       theLyXFunc().setLyXView(0);
+
+       // trigger LFUN_LYX_QUIT instead of QApplication::quit() directly
+       // since LFUN_LYX_QUIT may have more cleanup stuff
+       dispatch(FuncRequest(LFUN_LYX_QUIT));
+}
+
+
 Clipboard& GuiApplication::clipboard()
 {
        return clipboard_;
@@ -374,3 +390,5 @@ bool GuiApplication::macEventFilter(EventRef event)
 
 } // namespace frontend
 } // namespace lyx
+
+#include "GuiApplication_moc.cpp"