]> git.lyx.org Git - lyx.git/blobdiff - src/LyX.cpp
Limit the nopassthurchars case in beamer to URL
[lyx.git] / src / LyX.cpp
index 9b637570d5f9adb4d5071b822ee92bd129b14ed7..c0dbd019b97ba51590ec0e4fb00156ce70bef29f 100644 (file)
@@ -27,6 +27,7 @@
 #include "ConverterCache.h"
 #include "Converter.h"
 #include "CutAndPaste.h"
+#include "DispatchResult.h"
 #include "EnchantChecker.h"
 #include "Encoding.h"
 #include "ErrorList.h"
@@ -37,8 +38,6 @@
 #include "Language.h"
 #include "LaTeXFonts.h"
 #include "LayoutFile.h"
-#include "Lexer.h"
-#include "LyX.h"
 #include "LyXAction.h"
 #include "LyXRC.h"
 #include "ModuleList.h"
 #include "Server.h"
 #include "ServerSocket.h"
 #include "Session.h"
-#include "WordList.h"
 
 #include "frontends/alert.h"
 #include "frontends/Application.h"
 
 #include "support/ConsoleApplication.h"
-#include "support/convert.h"
 #include "support/lassert.h"
 #include "support/debug.h"
 #include "support/environment.h"
@@ -65,7 +62,6 @@
 #include "support/Package.h"
 #include "support/unique_ptr.h"
 
-#include <algorithm>
 #include <csignal>
 #include <iostream>
 #include <functional>
@@ -124,14 +120,6 @@ RunMode run_mode = PREFERRED;
 OverwriteFiles force_overwrite = UNSPECIFIED;
 
 
-// Scale the GUI by this factor. This works whether we have a HiDpi screen
-// or not and scales everything, also fonts. Can only be changed by setting
-// the QT_SCALE_FACTOR environment variable before launching LyX and only
-// works properly with Qt 5.6 or higher.
-
-double qt_scale_factor = 1.0;
-
-
 namespace {
 
 // Filled with the command line arguments "foo" of "-sysdir foo" or
@@ -234,7 +222,7 @@ public:
                  argc_(argc), argv_(argv)
        {
        }
-       void doExec()
+       void doExec() override
        {
                int const exit_status = lyx_->execWithoutGui(argc_, argv_);
                exit(exit_status);
@@ -321,17 +309,6 @@ int LyX::exec(int & argc, char * argv[])
        // we need to parse for "-dbg" and "-help"
        easyParse(argc, argv);
 
-#if QT_VERSION >= 0x050600
-       // Check whether Qt will scale all GUI elements and accordingly
-       // set the scale factor so that to avoid blurred images and text
-       char const * const scale_factor = getenv("QT_SCALE_FACTOR");
-       if (scale_factor) {
-               qt_scale_factor = convert<double>(scale_factor);
-               if (qt_scale_factor < 1.0)
-                       qt_scale_factor = 1.0;
-       }
-#endif
-
        try {
                init_package(os::utf8_argv(0), cl_system_support, cl_user_support);
        } catch (ExceptionMessage const & message) {
@@ -584,10 +561,11 @@ void LyX::execCommands()
 {
        // The advantage of doing this here is that the event loop
        // is already started. So any need for interaction will be
-       // aknowledged.
+       // acknowledged.
 
        // if reconfiguration is needed.
-       if (LayoutFileList::get().empty()) {
+       const bool noLayouts = LayoutFileList::get().empty();
+       if (noLayouts && os::hasPython()) {
                switch (Alert::prompt(
                        _("No textclass is found"),
                        _("LyX will only have minimal functionality because no textclasses "
@@ -596,7 +574,8 @@ void LyX::execCommands()
                        0, 2,
                        _("&Reconfigure"),
                        _("&Without LaTeX"),
-                       _("&Continue")))
+                       _("&Continue"),
+                       _("&Exit LyX")))
                {
                case 0:
                        // regular reconfigure
@@ -607,6 +586,25 @@ void LyX::execCommands()
                        lyx::dispatch(FuncRequest(LFUN_RECONFIGURE,
                                " --without-latex-config"));
                        break;
+               case 3:
+                       lyx::dispatch(FuncRequest(LFUN_LYX_QUIT, ""));
+                       return;
+               default:
+                       break;
+               }
+       } else if (noLayouts) {
+               switch (Alert::prompt(
+                       _("No python is found"),
+                       _("LyX will only have minimal functionality because no python interpreter "
+                         "has been found. Consider installing python with your software manager "
+                         "or from the python.org website."),
+                       0, 1,
+                       _("&Continue"),
+                       _("&Exit LyX")))
+               {
+               case 1:
+                       lyx::dispatch(FuncRequest(LFUN_LYX_QUIT, ""));
+                       return;
                default:
                        break;
                }
@@ -979,6 +977,7 @@ bool LyX::init()
        // This one is edited through the preferences dialog.
        if (!readRcFile("preferences", true))
                return false;
+       pimpl_->application_->applyPrefs();
 
        // The language may have been set to someting useful through prefs
        setLocale();
@@ -1106,7 +1105,7 @@ bool LyX::queryUserLyXDir(bool explicit_userdir)
 
        if (!sup.createDirectory(0755)) {
                // Failed, so let's exit.
-               lyxerr << to_utf8(_("Failed to create directory. Exiting."))
+               lyxerr << to_utf8(_("Failed to create directory. Perhaps wrong -userdir command-line option?\nExiting."))
                       << endl;
                earlyExit(EXIT_FAILURE);
        }
@@ -1183,10 +1182,15 @@ int parse_dbg(string const & arg, string const &, string &)
                Debug::showTags(cout);
                exit(0);
        }
-       lyxerr << to_utf8(bformat(_("Setting debug level to %1$s"), from_utf8(arg))) << endl;
-
-       lyxerr.setLevel(Debug::value(arg));
-       Debug::showLevel(lyxerr, lyxerr.level());
+       string bad = Debug::badValue(arg);
+       if (bad.empty()) {
+               lyxerr.setLevel(Debug::value(arg));
+               Debug::showLevel(lyxerr, lyxerr.level());
+       } else {
+               cout << to_utf8(bformat(_("Bad debug value `%1$s'. Exiting."),
+                                       from_utf8(bad))) << endl;
+               exit(1);
+       }
        return 1;
 }
 
@@ -1341,9 +1345,14 @@ int parse_import(string const & type, string const & file, string & batch)
 int parse_geometry(string const & arg1, string const &, string &)
 {
        geometryArg = arg1;
+#if !defined(QPA_XCB)
        // don't remove "-geometry", it will be pruned out later in the
        // frontend if need be.
        return -1;
+#else
+       // but that is only done if QPA_XCB is not defined.
+       return 1;
+#endif
 }