#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 "frontends/Dialogs.h"
-#include "frontends/Gui.h"
-#include "frontends/LyXView.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"
using support::prependEnvPath;
using support::rtrim;
using support::Systemcall;
-using frontend::LyXView;
namespace Alert = frontend::Alert;
namespace os = support::os;
///
BufferList buffer_list_;
///
- boost::scoped_ptr<KeyMap> toplevel_keymap_;
+ KeyMap toplevel_keymap_;
///
- boost::scoped_ptr<CmdDef> toplevel_cmddef_;
+ CmdDef toplevel_cmddef_;
///
boost::scoped_ptr<Server> lyx_server_;
///
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_;
}
KeyMap const & LyX::topLevelKeymap() const
{
- BOOST_ASSERT(pimpl_->toplevel_keymap_.get());
- return *pimpl_->toplevel_keymap_.get();
+ return pimpl_->toplevel_keymap_;
}
}
-Buffer const * LyX::updateInset(Inset const * inset) const
-{
- if (quitting || !inset)
- return 0;
-
- Buffer const * buffer_ptr = 0;
- vector<int> const & view_ids = pimpl_->application_->gui().viewIds();
- vector<int>::const_iterator it = view_ids.begin();
- vector<int>::const_iterator const end = view_ids.end();
- for (; it != end; ++it) {
- Buffer const * ptr =
- pimpl_->application_->gui().view(*it).updateInset(inset);
- if (ptr)
- buffer_ptr = ptr;
- }
- return buffer_ptr;
-}
-
-
-void LyX::hideDialogs(std::string const & name, Inset * inset) const
-{
- if (quitting || !use_gui)
- return;
-
- vector<int> const & view_ids = pimpl_->application_->gui().viewIds();
- vector<int>::const_iterator it = view_ids.begin();
- vector<int>::const_iterator const end = view_ids.end();
- for (; it != end; ++it)
- pimpl_->application_->gui().view(*it).getDialogs().
- hide(name, inset);
-}
-
-
int LyX::exec(int & argc, char * argv[])
{
// Here we need to parse the command line. At least
// Let the frontend parse and remove all arguments that it knows
pimpl_->application_.reset(createApplication(argc, argv));
- initGuiFont();
-
// Parse and remove all known arguments in the LyX singleton
// Give an error for all remaining ones.
int exit_status = init(argc, argv);
// do any other cleanup procedures now
if (package().temp_dir() != package().system_temp_dir()) {
- LYXERR(Debug::INFO) << "Deleting tmp dir "
- << package().temp_dir().absFilename() << endl;
+ LYXERR(Debug::INFO, "Deleting tmp dir "
+ << package().temp_dir().absFilename());
if (!package().temp_dir().destroyDirectory()) {
docstring const msg =
}
// Initialization of LyX (reads lyxrc and more)
- LYXERR(Debug::INIT) << "Initializing LyX::init..." << endl;
+ LYXERR(Debug::INIT, "Initializing LyX::init...");
bool success = init();
- LYXERR(Debug::INIT) << "Initializing LyX::init...done" << endl;
+ LYXERR(Debug::INIT, "Initializing LyX::init...done");
if (!success)
return EXIT_FAILURE;
if (pimpl_->batch_command.empty())
return;
- LYXERR(Debug::INIT) << "About to handle -x '"
- << pimpl_->batch_command << '\'' << endl;
+ LYXERR(Debug::INIT, "About to handle -x '" << pimpl_->batch_command << '\'');
pimpl_->lyxfunc_.dispatch(lyxaction.lookupFunc(pimpl_->batch_command));
}
void LyX::restoreGuiSession()
{
- LyXView * view = newLyXView();
+ // create the main window
+ pimpl_->lyxfunc_.dispatch(FuncRequest(LFUN_WINDOW_NEW, geometryArg));
// if there is no valid class list, do not load any file.
if (textclasslist.empty())
if (!pimpl_->files_to_load_.empty()) {
for_each(pimpl_->files_to_load_.begin(),
pimpl_->files_to_load_.end(),
- bind(&LyXView::loadLyXFile, view, _1, true));
+ bind(&LyXFunc::loadAndViewFile, pimpl_->lyxfunc_, _1, true));
// clear this list to save a few bytes of RAM
pimpl_->files_to_load_.clear();
pimpl_->session_->lastOpened().clear();
// last session, and should be already there (regular files), or should
// not be added at all (help files).
for_each(lastopened.begin(), lastopened.end(),
- bind(&LyXView::loadLyXFile, view, _1, false));
+ bind(&LyXFunc::loadAndViewFile, pimpl_->lyxfunc_, _1, false));
// clear this list to save a few bytes of RAM
pimpl_->session_->lastOpened().clear();
continue;
updateLabels(*buf);
}
-
- // FIXME: Switch to the last loaded Buffer. This must not be the first one
- // because the Buffer won't be connected in this case. The correct solution
- // would be to avoid the manual connection of the current Buffer in LyXView.
- if (!pimpl_->buffer_list_.empty())
- view->setBuffer(pimpl_->buffer_list_.last());
-}
-
-
-LyXView * LyX::newLyXView()
-{
- if (!lyx::use_gui)
- return 0;
-
- // create the main window
- LyXView * view = &pimpl_->application_->createView(geometryArg);
-
- return view;
}
/*
}
-void LyX::initGuiFont()
-{
- if (lyxrc.roman_font_name.empty())
- lyxrc.roman_font_name = pimpl_->application_->romanFontName();
-
- if (lyxrc.sans_font_name.empty())
- lyxrc.sans_font_name = pimpl_->application_->sansFontName();
-
- if (lyxrc.typewriter_font_name.empty())
- lyxrc.typewriter_font_name
- = pimpl_->application_->typewriterFontName();
-}
-
-
bool LyX::init()
{
#ifdef SIGHUP
lyxrc.tempdir_path = package().temp_dir().absFilename();
lyxrc.document_path = package().document_dir().absFilename();
+ if (lyxrc.example_path.empty()) {
+ lyxrc.example_path = addPath(package().system_support().absFilename(),
+ "examples");
+ }
if (lyxrc.template_path.empty()) {
lyxrc.template_path = addPath(package().system_support().absFilename(),
"templates");
return false;
// Load the layouts
- LYXERR(Debug::INIT) << "Reading layouts..." << endl;
+ LYXERR(Debug::INIT, "Reading layouts...");
if (!LyXSetStyle())
return false;
//...and the modules
//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))
return false;
}
- LYXERR(Debug::INIT) << "LyX tmp dir: `"
- << package().temp_dir().absFilename()
- << '\'' << endl;
+ LYXERR(Debug::INIT, "LyX tmp dir: `"
+ << package().temp_dir().absFilename() << '\'');
- LYXERR(Debug::INIT) << "Reading session information '.lyx/session'..." << endl;
+ LYXERR(Debug::INIT, "Reading session information '.lyx/session'...");
pimpl_->session_.reset(new Session(lyxrc.num_lastfiles));
// This must happen after package initialization and after lyxrc is
bool LyX::readRcFile(string const & name)
{
- LYXERR(Debug::INIT) << "About to read " << name << "... ";
+ LYXERR(Debug::INIT, "About to read " << name << "... ");
FileName const lyxrc_path = libFileSearch(string(), name);
if (!lyxrc_path.empty()) {
-
- LYXERR(Debug::INIT) << "Found in " << lyxrc_path << endl;
-
+ LYXERR(Debug::INIT, "Found in " << lyxrc_path);
if (lyxrc.read(lyxrc_path) < 0) {
showFileError(name);
return false;
}
- } else
- LYXERR(Debug::INIT) << "Not found." << lyxrc_path << endl;
+ } else {
+ LYXERR(Debug::INIT, "Not found." << lyxrc_path);
+ }
return true;
-
}
std::list<string>::const_iterator end = uifiles.end();
it = std::find(it, end, name);
if (it != end) {
- LYXERR(Debug::INIT) << "UI file '" << name
- << "' has been read already. "
- << "Is this an include loop?"
- << endl;
+ LYXERR(Debug::INIT, "UI file '" << name << "' has been read already. "
+ << "Is this an include loop?");
return false;
}
- LYXERR(Debug::INIT) << "About to read " << name << "..." << endl;
+ LYXERR(Debug::INIT, "About to read " << name << "...");
FileName ui_path;
ui_path = libFileSearch("ui", name, "ui");
if (ui_path.empty()) {
- LYXERR(Debug::INIT) << "Could not find " << name << endl;
+ LYXERR(Debug::INIT, "Could not find " << name);
showFileError(name);
return false;
}
uifiles.push_back(name);
- LYXERR(Debug::INIT) << "Found " << name
- << " in " << ui_path << endl;
+ LYXERR(Debug::INIT, "Found " << name << " in " << ui_path);
Lexer lex(uitags, ui_last - 1);
lex.setFile(ui_path);
if (!lex.isOK()) {
// Read the languages file `name'
bool LyX::readLanguagesFile(string const & name)
{
- LYXERR(Debug::INIT) << "About to read " << name << "..." << endl;
+ LYXERR(Debug::INIT, "About to read " << name << "...");
FileName const lang_path = libFileSearch(string(), name);
if (lang_path.empty()) {
bool LyX::readEncodingsFile(string const & enc_name,
string const & symbols_name)
{
- LYXERR(Debug::INIT) << "About to read " << enc_name << " and "
- << symbols_name << "..." << endl;
+ LYXERR(Debug::INIT, "About to read " << enc_name << " and "
+ << symbols_name << "...");
FileName const symbols_path = libFileSearch(string(), symbols_name);
if (symbols_path.empty()) {
" where command is a lyx command.\n"
"\t-e [--export] fmt\n"
" where fmt is the export format of choice.\n"
+ " Look on Tools->Preferences->File formats->Format\n"
+ " to get an idea which parameters should be passed.\n"
"\t-i [--import] fmt file.xxx\n"
" where fmt is the import format of choice\n"
" and file.xxx is the file to be imported.\n"