summaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2014-03-19 18:23:43 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-03-19 09:37:49 -0700
commitee2e43f11aedf615df0f21a8fc32e8fe6bc9782c (patch)
tree1144ad187f1198ea844a29484fcacb506d894122 /main.cpp
parent71f2fd91b5a75a3c98020145e419ae7a1cb48cfe (diff)
downloadsubsurface-ee2e43f11aedf615df0f21a8fc32e8fe6bc9782c.tar.gz
Main: separate the QApplication and UI creation
When some arguments like --help and --version are passed to the executable, we don't need to create the UI at all. This patch separates the QApplication creation which is at first only needed to parse the arguments and then if exit() is not called from subsurfacestartup.c, we can call some of the "init" methods such as setup_system_prefs(), fill_profile_color() etc. At this point init_ui() can be called which no longer needs to accept the command line argument list. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/main.cpp b/main.cpp
index e5a53a3d8..2642ccc5c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -19,13 +19,7 @@ int main(int argc, char **argv)
int i;
bool no_filenames = true;
- setup_system_prefs();
- prefs = default_prefs;
- fill_profile_color();
- init_ui(&argc, &argv);
- parse_xml_init();
- taglist_init_global();
-
+ init_qt(&argc, &argv);
QStringList files;
QStringList importedFiles;
QStringList arguments = QCoreApplication::arguments();
@@ -47,13 +41,20 @@ int main(int argc, char **argv)
if (!defaultFile.isEmpty())
files.push_back(QString(prefs.default_filename));
}
- parse_xml_exit();
+ setup_system_prefs();
+ prefs = default_prefs;
+ fill_profile_color();
+ parse_xml_init();
+ taglist_init_global();
+ init_ui();
+
MainWindow *m = MainWindow::instance();
- m->setLoadedWithFiles( !files.isEmpty() || !importedFiles.isEmpty());
+ m->setLoadedWithFiles(!files.isEmpty() || !importedFiles.isEmpty());
m->loadFiles(files);
m->importFiles(importedFiles);
if (!quit)
run_ui();
exit_ui();
+ parse_xml_exit();
return 0;
}