]> git.lyx.org Git - lyx.git/blobdiff - src/LyX.cpp
This doesn't return a reference any more.
[lyx.git] / src / LyX.cpp
index 2f981c518b48c773b8ea5f5d3f17ea8f02f2c245..28345fc601f16d152abdf784d2fd84b016b15420 100644 (file)
@@ -17,7 +17,7 @@
 
 #include "LyX.h"
 
-#include "buffer_funcs.h"
+#include "LayoutFile.h"
 #include "Buffer.h"
 #include "BufferList.h"
 #include "CmdDef.h"
 #include "Encoding.h"
 #include "ErrorList.h"
 #include "Format.h"
+#include "FuncStatus.h"
 #include "KeyMap.h"
 #include "Language.h"
 #include "Lexer.h"
 #include "LyXAction.h"
 #include "LyXFunc.h"
 #include "LyXRC.h"
-#include "MenuBackend.h"
 #include "ModuleList.h"
 #include "Mover.h"
 #include "Server.h"
 #include "ServerSocket.h"
 #include "Session.h"
-#include "TextClassList.h"
 #include "ToolbarBackend.h"
 
 #include "frontends/alert.h"
 #include "frontends/Application.h"
 
+#include "support/assert.h"
 #include "support/debug.h"
 #include "support/environment.h"
 #include "support/ExceptionMessage.h"
@@ -84,8 +84,6 @@ namespace os = support::os;
 
 bool use_gui = true;
 
-bool quitting; // flag, that we are quitting the program
-
 namespace {
 
 // Filled with the command line arguments "foo" of "-sysdir foo" or
@@ -207,14 +205,14 @@ void LyX::exit(int exit_code) const
 
 LyX & LyX::ref()
 {
-       BOOST_ASSERT(singleton_);
+       LASSERT(singleton_, /**/);
        return *singleton_;
 }
 
 
 LyX const & LyX::cref()
 {
-       BOOST_ASSERT(singleton_);
+       LASSERT(singleton_, /**/);
        return *singleton_;
 }
 
@@ -241,14 +239,14 @@ BufferList const & LyX::bufferList() const
 
 Session & LyX::session()
 {
-       BOOST_ASSERT(pimpl_->session_.get());
+       LASSERT(pimpl_->session_.get(), /**/);
        return *pimpl_->session_.get();
 }
 
 
 Session const & LyX::session() const
 {
-       BOOST_ASSERT(pimpl_->session_.get());
+       LASSERT(pimpl_->session_.get(), /**/);
        return *pimpl_->session_.get();
 }
 
@@ -267,52 +265,46 @@ LyXFunc const & LyX::lyxFunc() const
 
 Server & LyX::server()
 {
-       BOOST_ASSERT(pimpl_->lyx_server_.get());
+       LASSERT(pimpl_->lyx_server_.get(), /**/);
        return *pimpl_->lyx_server_.get();
 }
 
 
 Server const & LyX::server() const
 {
-       BOOST_ASSERT(pimpl_->lyx_server_.get());
+       LASSERT(pimpl_->lyx_server_.get(), /**/);
        return *pimpl_->lyx_server_.get();
 }
 
 
 ServerSocket & LyX::socket()
 {
-       BOOST_ASSERT(pimpl_->lyx_socket_.get());
+       LASSERT(pimpl_->lyx_socket_.get(), /**/);
        return *pimpl_->lyx_socket_.get();
 }
 
 
 ServerSocket const & LyX::socket() const
 {
-       BOOST_ASSERT(pimpl_->lyx_socket_.get());
+       LASSERT(pimpl_->lyx_socket_.get(), /**/);
        return *pimpl_->lyx_socket_.get();
 }
 
 
 frontend::Application & LyX::application()
 {
-       BOOST_ASSERT(pimpl_->application_.get());
+       LASSERT(pimpl_->application_.get(), /**/);
        return *pimpl_->application_.get();
 }
 
 
 frontend::Application const & LyX::application() const
 {
-       BOOST_ASSERT(pimpl_->application_.get());
+       LASSERT(pimpl_->application_.get(), /**/);
        return *pimpl_->application_.get();
 }
 
 
-KeyMap & LyX::topLevelKeymap()
-{
-       return pimpl_->toplevel_keymap_;
-}
-
-
 CmdDef & LyX::topLevelCmdDef()
 {
        return pimpl_->toplevel_cmddef_;
@@ -331,12 +323,6 @@ Converters & LyX::systemConverters()
 }
 
 
-KeyMap const & LyX::topLevelKeymap() const
-{
-       return pimpl_->toplevel_keymap_;
-}
-
-
 Messages & LyX::getMessages(string const & language)
 {
        map<string, Messages>::iterator it = pimpl_->messages_.find(language);
@@ -347,7 +333,7 @@ Messages & LyX::getMessages(string const & language)
        pair<map<string, Messages>::iterator, bool> result =
                        pimpl_->messages_.insert(make_pair(language, Messages(language)));
 
-       BOOST_ASSERT(result.second);
+       LASSERT(result.second, /**/);
        return result.first->second;
 }
 
@@ -459,10 +445,6 @@ void LyX::prepareExit()
        cap::clearCutStack();
        cap::clearSelection();
 
-       // Set a flag that we do quitting from the program,
-       // so no refreshes are necessary.
-       quitting = true;
-
        // close buffers first
        pimpl_->buffer_list_.closeAll();
 
@@ -497,7 +479,7 @@ void LyX::prepareExit()
 
 void LyX::earlyExit(int status)
 {
-       BOOST_ASSERT(pimpl_->application_.get());
+       LASSERT(pimpl_->application_.get(), /**/);
        // LyX::pimpl_::application_ is not initialised at this
        // point so it's safe to just exit after some cleanup.
        prepareExit();
@@ -583,7 +565,7 @@ void LyX::execBatchCommands()
        // aknowledged.
 
        // if reconfiguration is needed.
-       while (textclasslist.empty()) {
+       while (LayoutFileList::get().empty()) {
            switch (Alert::prompt(
                    _("No textclass is found"),
                    _("LyX cannot continue because no textclass is found. "
@@ -625,15 +607,6 @@ void LyX::execBatchCommands()
        else
                pimpl_->application_->restoreGuiSession();
 
-       BufferList::iterator I = theBufferList().begin();
-       BufferList::iterator end = theBufferList().end();
-       for (; I != end; ++I) {
-               Buffer * buf = *I;
-               if (buf != buf->masterBuffer())
-                       continue;
-               updateLabels(*buf);
-       }
-
        // Execute batch commands if available
        if (pimpl_->batch_command.empty())
                return;
@@ -855,7 +828,7 @@ bool LyX::init()
        pimpl_->lyxfunc_.initKeySequences(&pimpl_->toplevel_keymap_);
 
        // Read menus
-       if (!readUIFile(lyxrc.ui_file))
+       if (use_gui && !readUIFile(lyxrc.ui_file))
                return false;
 
        if (lyxerr.debugging(Debug::LYXRC))
@@ -893,7 +866,12 @@ bool LyX::init()
        // This must happen after package initialization and after lyxrc is
        // read, therefore it can't be done by a static object.
        ConverterCache::init();
-
+       
+       // init the global menubar on Mac. This must be done after the session
+       // was recovered to know the "last files".
+       if (use_gui)
+               theApp()->initGlobalMenu();
+       
        return true;
 }
 
@@ -915,32 +893,6 @@ void LyX::emergencyCleanup() const
 }
 
 
-void LyX::deadKeyBindings(KeyMap * kbmap)
-{
-       // bindKeyings for transparent handling of deadkeys
-       // The keysyms are gotten from XFree86 X11R6
-       kbmap->bind("~C-~S-~M-dead_acute", FuncRequest(LFUN_ACCENT_ACUTE));
-       kbmap->bind("~C-~S-~M-dead_breve", FuncRequest(LFUN_ACCENT_BREVE));
-       kbmap->bind("~C-~S-~M-dead_caron", FuncRequest(LFUN_ACCENT_CARON));
-       kbmap->bind("~C-~S-~M-dead_cedilla", FuncRequest(LFUN_ACCENT_CEDILLA));
-       kbmap->bind("~C-~S-~M-dead_abovering", FuncRequest(LFUN_ACCENT_CIRCLE));
-       kbmap->bind("~C-~S-~M-dead_circumflex", FuncRequest(LFUN_ACCENT_CIRCUMFLEX));
-       kbmap->bind("~C-~S-~M-dead_abovedot", FuncRequest(LFUN_ACCENT_DOT));
-       kbmap->bind("~C-~S-~M-dead_grave", FuncRequest(LFUN_ACCENT_GRAVE));
-       kbmap->bind("~C-~S-~M-dead_doubleacute", FuncRequest(LFUN_ACCENT_HUNGARIAN_UMLAUT));
-       kbmap->bind("~C-~S-~M-dead_macron", FuncRequest(LFUN_ACCENT_MACRON));
-       // nothing with this name
-       // kbmap->bind("~C-~S-~M-dead_special_caron", LFUN_ACCENT_SPECIAL_CARON);
-       kbmap->bind("~C-~S-~M-dead_tilde", FuncRequest(LFUN_ACCENT_TILDE));
-       kbmap->bind("~C-~S-~M-dead_diaeresis", FuncRequest(LFUN_ACCENT_UMLAUT));
-       // nothing with this name either...
-       //kbmap->bind("~C-~S-~M-dead_underbar", FuncRequest(LFUN_ACCENT_UNDERBAR));
-       kbmap->bind("~C-~S-~M-dead_belowdot", FuncRequest(LFUN_ACCENT_UNDERDOT));
-       kbmap->bind("~C-~S-~M-dead_tie", FuncRequest(LFUN_ACCENT_TIE));
-       kbmap->bind("~C-~S-~M-dead_ogonek",FuncRequest(LFUN_ACCENT_OGONEK));
-}
-
-
 // return true if file does not exist or is older than configure.py.
 static bool needsUpdate(string const & file)
 {
@@ -1028,7 +980,7 @@ bool LyX::readRcFile(string const & name)
 // Read the ui file `name'
 bool LyX::readUIFile(string const & name, bool include)
 {
-       enum Uitags {
+       enum {
                ui_menuset = 1,
                ui_toolbars,
                ui_toolbarset,
@@ -1036,7 +988,7 @@ bool LyX::readUIFile(string const & name, bool include)
                ui_last
        };
 
-       struct keyword_item uitags[ui_last - 1] = {
+       LexerKeyword uitags[] = {
                { "include", ui_include },
                { "menuset", ui_menuset },
                { "toolbars", ui_toolbars },
@@ -1076,7 +1028,7 @@ bool LyX::readUIFile(string const & name, bool include)
        uifiles.push_back(name);
 
        LYXERR(Debug::INIT, "Found " << name << " in " << ui_path);
-       Lexer lex(uitags, ui_last - 1);
+       Lexer lex(uitags);
        lex.setFile(ui_path);
        if (!lex.isOK()) {
                lyxerr << "Unable to set LyXLeX for ui file: " << ui_path
@@ -1096,7 +1048,7 @@ bool LyX::readUIFile(string const & name, bool include)
                        break;
                }
                case ui_menuset:
-                       theApp()->menuBackend().read(lex);
+                       theApp()->readMenus(lex);
                        break;
 
                case ui_toolbarset:
@@ -1375,7 +1327,7 @@ LyXFunc & theLyXFunc()
 Server & theServer()
 {
        // FIXME: this should not be use_gui dependent
-       BOOST_ASSERT(use_gui);
+       LASSERT(use_gui, /**/);
        return LyX::ref().server();
 }
 
@@ -1383,14 +1335,14 @@ Server & theServer()
 ServerSocket & theServerSocket()
 {
        // FIXME: this should not be use_gui dependent
-       BOOST_ASSERT(use_gui);
+       LASSERT(use_gui, /**/);
        return LyX::ref().socket();
 }
 
 
 KeyMap & theTopLevelKeymap()
 {
-       return LyX::ref().topLevelKeymap();
+       return LyX::ref().pimpl_->toplevel_keymap_;
 }