X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyX.cpp;h=db9e92033a41066a4a7b805bf39b8f37636d3239;hb=8c6ac457ecc69f57ab54cd8c9b8b7893607c65d6;hp=c14cbd644e17813502d0dfcc39a9cd894468f5cc;hpb=58135f8b270516c0b06299e1d5bc2f1d2c28f4a8;p=lyx.git diff --git a/src/LyX.cpp b/src/LyX.cpp index c14cbd644e..db9e92033a 100644 --- a/src/LyX.cpp +++ b/src/LyX.cpp @@ -17,43 +17,43 @@ #include "LyX.h" -#include "Color.h" -#include "ConverterCache.h" -#include "Buffer.h" #include "buffer_funcs.h" +#include "Buffer.h" #include "BufferList.h" +#include "CmdDef.h" +#include "Color.h" +#include "ConverterCache.h" #include "Converter.h" #include "CutAndPaste.h" -#include "debug.h" #include "Encoding.h" #include "ErrorList.h" #include "Format.h" -#include "gettext.h" #include "KeyMap.h" -#include "CmdDef.h" #include "Language.h" -#include "Session.h" +#include "Lexer.h" #include "LyXAction.h" #include "LyXFunc.h" -#include "Lexer.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 "MenuBackend.h" -#include "Messages.h" -#include "Mover.h" #include "ToolbarBackend.h" #include "frontends/alert.h" #include "frontends/Application.h" +#include "support/debug.h" #include "support/environment.h" +#include "support/ExceptionMessage.h" #include "support/filetools.h" +#include "support/gettext.h" #include "support/lstrings.h" #include "support/lyxlib.h" -#include "support/ExceptionMessage.h" +#include "support/Messages.h" #include "support/os.h" #include "support/Package.h" #include "support/Path.h" @@ -159,9 +159,9 @@ struct LyX::Impl /// BufferList buffer_list_; /// - boost::scoped_ptr toplevel_keymap_; + KeyMap toplevel_keymap_; /// - boost::scoped_ptr toplevel_cmddef_; + CmdDef toplevel_cmddef_; /// boost::scoped_ptr lyx_server_; /// @@ -314,15 +314,13 @@ frontend::Application const & LyX::application() const KeyMap & LyX::topLevelKeymap() { - BOOST_ASSERT(pimpl_->toplevel_keymap_.get()); - return *pimpl_->toplevel_keymap_.get(); + return pimpl_->toplevel_keymap_; } CmdDef & LyX::topLevelCmdDef() { - BOOST_ASSERT(pimpl_->toplevel_cmddef_.get()); - return *pimpl_->toplevel_cmddef_.get(); + return pimpl_->toplevel_cmddef_; } @@ -340,8 +338,7 @@ Converters & LyX::systemConverters() KeyMap const & LyX::topLevelKeymap() const { - BOOST_ASSERT(pimpl_->toplevel_keymap_.get()); - return *pimpl_->toplevel_keymap_.get(); + return pimpl_->toplevel_keymap_; } @@ -474,6 +471,15 @@ void LyX::prepareExit() // close buffers first pimpl_->buffer_list_.closeAll(); + // register session changes and shutdown server and socket + if (use_gui) { + if (pimpl_->session_) + pimpl_->session_->writeFile(); + pimpl_->session_.reset(); + pimpl_->lyx_server_.reset(); + pimpl_->lyx_socket_.reset(); + } + // do any other cleanup procedures now if (package().temp_dir() != package().system_temp_dir()) { LYXERR(Debug::INFO, "Deleting tmp dir " @@ -487,14 +493,6 @@ void LyX::prepareExit() } } - if (use_gui) { - if (pimpl_->session_) - pimpl_->session_->writeFile(); - pimpl_->session_.reset(); - pimpl_->lyx_server_.reset(); - pimpl_->lyx_socket_.reset(); - } - // Kill the application object before exiting. This avoids crashes // when exiting on Linux. if (pimpl_->application_) @@ -864,17 +862,15 @@ bool LyX::init() //setGuiLanguage(lyxrc.gui_language); // Set up command definitions - pimpl_->toplevel_cmddef_.reset(new CmdDef); - pimpl_->toplevel_cmddef_->read(lyxrc.def_file); + pimpl_->toplevel_cmddef_.read(lyxrc.def_file); // Set up bindings - pimpl_->toplevel_keymap_.reset(new KeyMap); - pimpl_->toplevel_keymap_->read("site"); - pimpl_->toplevel_keymap_->read(lyxrc.bind_file); + pimpl_->toplevel_keymap_.read("site"); + pimpl_->toplevel_keymap_.read(lyxrc.bind_file); // load user bind file user.bind - pimpl_->toplevel_keymap_->read("user"); + pimpl_->toplevel_keymap_.read("user"); - pimpl_->lyxfunc_.initKeySequences(pimpl_->toplevel_keymap_.get()); + pimpl_->lyxfunc_.initKeySequences(&pimpl_->toplevel_keymap_); // Read menus if (!readUIFile(lyxrc.ui_file))