#include "buffer_funcs.h"
#include "BufferList.h"
#include "Converter.h"
+#include "CutAndPaste.h"
#include "debug.h"
#include "Encoding.h"
#include "ErrorList.h"
#include "Language.h"
#include "Session.h"
#include "Color.h"
-#include "callback.h"
#include "LyXAction.h"
#include "LyXFunc.h"
#include "Lexer.h"
*/
bool use_gui = true;
+bool quitting; // flag, that we are quitting the program
namespace {
}
-Buffer const * const LyX::updateInset(Inset const * inset) const
+Buffer const * LyX::updateInset(Inset const * inset) const
{
if (quitting || !inset)
return 0;
// we need to parse for "-dbg" and "-help"
easyParse(argc, argv);
- try { support::init_package(to_utf8(from_local8bit(argv[0])),
+ try {
+ support::init_package(to_utf8(from_local8bit(argv[0])),
cl_system_support, cl_user_support,
support::top_build_dir_is_one_level_up);
} catch (support::ExceptionMessage const & message) {
void LyX::prepareExit()
{
+ // Clear the clipboard and selection stack:
+ cap::clearCutStack();
+ cap::clearSelection();
+
// Set a flag that we do quitting from the program,
// so no refreshes are necessary.
quitting = true;
// aknowledged.
restoreGuiSession();
+ // if reconfiguration is needed.
+ if (textclasslist.empty()) {
+ switch (Alert::prompt(
+ _("No textclass is found"),
+ _("LyX cannot continue because no textclass is found. "
+ "You can either reconfigure normally, or reconfigure using "
+ "default textclasses, or quit LyX."),
+ 0, 2,
+ _("&Reconfigure"),
+ _("&Use Default"),
+ _("&Exit LyX")))
+ {
+ case 0:
+ // regular reconfigure
+ pimpl_->lyxfunc_.dispatch(FuncRequest(LFUN_RECONFIGURE, ""));
+ break;
+ case 1:
+ // reconfigure --without-latex-config
+ pimpl_->lyxfunc_.dispatch(FuncRequest(LFUN_RECONFIGURE,
+ " --without-latex-config"));
+ break;
+ }
+ pimpl_->lyxfunc_.dispatch(FuncRequest(LFUN_LYX_QUIT));
+ return;
+ }
+
// Execute batch commands if available
if (batch_command.empty())
return;
{
LyXView * view = newLyXView();
+ // if there is no valid class list, do not load any file.
+ if (textclasslist.empty())
+ return;
+
// if some files were specified at command-line we assume that the
// user wants to edit *these* files and not to restore the session.
if (!pimpl_->files_to_load_.empty()) {
//...and the modules
moduleList.load();
- if (use_gui) {
- // Set the language defined by the user.
- //setGuiLanguage(lyxrc.gui_language);
+ // read keymap and ui files in batch mode as well
+ // because InsetInfo needs to know these to produce
+ // the correct output
- // Set up bindings
- pimpl_->toplevel_keymap_.reset(new KeyMap);
- defaultKeyBindings(pimpl_->toplevel_keymap_.get());
- pimpl_->toplevel_keymap_->read(lyxrc.bind_file);
+ // Set the language defined by the user.
+ //setGuiLanguage(lyxrc.gui_language);
- pimpl_->lyxfunc_.initKeySequences(pimpl_->toplevel_keymap_.get());
+ // Set up bindings
+ pimpl_->toplevel_keymap_.reset(new KeyMap);
+ defaultKeyBindings(pimpl_->toplevel_keymap_.get());
+ pimpl_->toplevel_keymap_->read(lyxrc.bind_file);
- // Read menus
- if (!readUIFile(lyxrc.ui_file))
- return false;
- }
+ pimpl_->lyxfunc_.initKeySequences(pimpl_->toplevel_keymap_.get());
+
+ // Read menus
+ if (!readUIFile(lyxrc.ui_file))
+ return false;
if (lyxerr.debugging(Debug::LYXRC))
lyxrc.print();
KeyMap & theTopLevelKeymap()
{
- BOOST_ASSERT(use_gui);
return LyX::ref().topLevelKeymap();
}