]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_main.C
* lyx_gui: parse_lyxrc() and getStatus() methods deleted.
[lyx.git] / src / lyx_main.C
index 1627140e71ebdfbb4462f02ebb3530466f469939..958f2fdd39a9bc4fe48183b28ad16976cfc56bbc 100644 (file)
 #include "lyxfunc.h"
 #include "lyxlex.h"
 #include "lyxrc.h"
-#include "lyxtextclasslist.h"
 #include "lyxserver.h"
+#include "lyxtextclasslist.h"
 #include "MenuBackend.h"
 #include "mover.h"
 #include "ToolbarBackend.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 #include "frontends/lyx_gui.h"
 #include "frontends/LyXView.h"
 
 #include "support/environment.h"
 #include "support/filetools.h"
+#include "support/fontutils.h"
 #include "support/lyxlib.h"
 #include "support/convert.h"
 #include "support/os.h"
@@ -81,6 +83,7 @@ namespace fs = boost::filesystem;
 using std::endl;
 using std::string;
 using std::vector;
+using std::for_each;
 
 #ifndef CXX_GLOBAL_CSTD
 using std::exit;
@@ -89,11 +92,6 @@ using std::system;
 #endif
 
 
-extern LyXServer * lyxserver;
-
-// This is the global bufferlist object
-BufferList bufferlist;
-
 // convenient to have it here.
 boost::scoped_ptr<kb_keymap> toplevel_keymap;
 
@@ -110,9 +108,12 @@ void lyx_exit(int status)
        // FIXME: We should not directly call exit(), since it only
        // guarantees a return to the system, no application cleanup.
        // This may cause troubles with not executed destructors.
-       if (lyx_gui::use_gui)
-               // lyx_gui::exit may return and only schedule the exit
-               lyx_gui::exit(status);
+       if (lyx_gui::use_gui) {
+               theApp->exit(status);
+               // Restore original font resources after Application is destroyed.
+               lyx::support::restoreFontResources();
+       }
+
        exit(status);
 }
 
@@ -219,8 +220,11 @@ int LyX::priv_exec(int & argc, char * argv[])
                                   lyx::support::top_build_dir_is_one_level_up);
 
        // Start the real execution loop.
-       if (lyx_gui::use_gui)
+       if (lyx_gui::use_gui) {
+               // Force adding of font path _before_ Application is initialized
+               lyx::support::addFontResources();
                return lyx_gui::exec(argc, argv);
+       }
        else
                return exec2(argc, argv);
 }
@@ -246,9 +250,6 @@ int LyX::exec2(int & argc, char * argv[])
        if (!success)
                return EXIT_FAILURE;
 
-       if (lyx_gui::use_gui)
-               lyx_gui::parse_lyxrc();
-
        vector<string> files;
 
        for (int argi = argc - 1; argi >= 1; --argi)
@@ -277,7 +278,7 @@ int LyX::exec2(int & argc, char * argv[])
                                if (b)
                                        last_loaded = b;
                        } else {
-                               Buffer * buf = bufferlist.newBuffer(s, false);
+                               Buffer * buf = theApp->bufferList().newBuffer(s, false);
                                if (loadLyXFile(buf, s)) {
                                        last_loaded = buf;
                                        ErrorList const & el = buf->errorList("Parse");
@@ -286,7 +287,7 @@ int LyX::exec2(int & argc, char * argv[])
                                                        boost::bind(&LyX::printError, this, _1));
                                }
                                else
-                                       bufferlist.release(buf);
+                                       theApp->bufferList().release(buf);
                        }
                }
 
@@ -340,7 +341,8 @@ int LyX::exec2(int & argc, char * argv[])
                        height = 0;
                }
                // create the main window
-               LyXView * view = lyx_gui::create_view(width, height, posx, posy, maximize);
+               LyXView * view = &theApp->createView(width, height, posx, posy, maximize);
+               ref().addLyXView(view);
 
                // load files
                for_each(files.begin(), files.end(),
@@ -358,7 +360,7 @@ int LyX::exec2(int & argc, char * argv[])
                // clear this list to save a few bytes of RAM
                session_->clearLastOpenedFiles();
 
-               return lyx_gui::start(view, batch_command);
+               return theApp->start(batch_command);
        } else {
                // Something went wrong above
                quitLyX(false);
@@ -494,11 +496,16 @@ bool LyX::init()
        }
 
        if (lyxrc.roman_font_name.empty())
-               lyxrc.roman_font_name = lyx_gui::roman_font_name();
+               lyxrc.roman_font_name = 
+                       lyx_gui::use_gui? theApp->romanFontName(): "serif";
+
        if (lyxrc.sans_font_name.empty())
-               lyxrc.sans_font_name = lyx_gui::sans_font_name();
+               lyxrc.sans_font_name =
+                       lyx_gui::use_gui? theApp->sansFontName(): "sans";
+
        if (lyxrc.typewriter_font_name.empty())
-               lyxrc.typewriter_font_name = lyx_gui::typewriter_font_name();
+               lyxrc.typewriter_font_name =
+                       lyx_gui::use_gui? theApp->typewriterFontName(): "monospace";
 
        //
        // Read configuration files
@@ -660,9 +667,8 @@ void LyX::emergencyCleanup() const
        // contain documents etc. which might be helpful on
        // a crash
 
-       bufferlist.emergencyWriteAll();
-       if (lyxserver)
-               lyxserver->emergencyCleanup();
+       theApp->bufferList().emergencyWriteAll();
+       theApp->server().emergencyCleanup();
 }