mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
ee2e43f11a
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>
60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
/* main.c */
|
|
#include <locale.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
|
|
#include "qt-gui.h"
|
|
#include "subsurfacestartup.h"
|
|
#include "qt-ui/mainwindow.h"
|
|
#include "qt-ui/diveplanner.h"
|
|
|
|
#include <QStringList>
|
|
|
|
QTranslator *qtTranslator, *ssrfTranslator;
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int i;
|
|
bool no_filenames = true;
|
|
|
|
init_qt(&argc, &argv);
|
|
QStringList files;
|
|
QStringList importedFiles;
|
|
QStringList arguments = QCoreApplication::arguments();
|
|
for (i = 1; i < arguments.length(); i++) {
|
|
QString a = arguments.at(i);
|
|
if (a.at(0) == '-') {
|
|
parse_argument(a.toLocal8Bit().data());
|
|
continue;
|
|
}
|
|
if (imported) {
|
|
importedFiles.push_back(a);
|
|
} else {
|
|
no_filenames = false;
|
|
files.push_back(a);
|
|
}
|
|
}
|
|
if (no_filenames) {
|
|
QString defaultFile(prefs.default_filename);
|
|
if (!defaultFile.isEmpty())
|
|
files.push_back(QString(prefs.default_filename));
|
|
}
|
|
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->loadFiles(files);
|
|
m->importFiles(importedFiles);
|
|
if (!quit)
|
|
run_ui();
|
|
exit_ui();
|
|
parse_xml_exit();
|
|
return 0;
|
|
}
|