updated application startup

This commit is contained in:
Martchus 2015-09-01 20:18:13 +02:00
parent ea6d3c6dfc
commit 8f2bd78b47
9 changed files with 78 additions and 66 deletions

View File

@ -7,8 +7,7 @@
#include <passwordfile/io/field.h> #include <passwordfile/io/field.h>
#include <c++utilities/conversion/stringconversion.h> #include <c++utilities/conversion/stringconversion.h>
#include <c++utilities/application/commandlineutils.h>
#include <c++utilities/application/global.h>
#if defined(PLATFORM_UNIX) #if defined(PLATFORM_UNIX)
#include <unistd.h> #include <unistd.h>
@ -88,7 +87,9 @@ InteractiveCli::InteractiveCli() :
m_currentEntry(nullptr), m_currentEntry(nullptr),
m_modified(false), m_modified(false),
m_quit(false) m_quit(false)
{} {
CMD_UTILS_START_CONSOLE;
}
void InteractiveCli::run(const string &file) void InteractiveCli::run(const string &file)
{ {

View File

@ -1,16 +0,0 @@
#ifndef INITIATE_H
#define INITIATE_H
#include <QtGlobal>
QT_BEGIN_NAMESPACE
class QString;
QT_END_NAMESPACE
namespace QtGui {
int runWidgetsGui(int argc, char *argv[], const QString &file);
}
#endif // INITIATE_H

18
gui/initiategui.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef INITIATE_H
#define INITIATE_H
#include <QtGlobal>
QT_FORWARD_DECLARE_CLASS(QString)
namespace ApplicationUtilities {
class QtConfigArguments;
}
namespace QtGui {
int runWidgetsGui(int argc, char *argv[], const ApplicationUtilities::QtConfigArguments &qtConfigArgs, const QString &file);
}
#endif // INITIATE_H

View File

@ -1,25 +1,29 @@
#include "initiate.h" #include "initiategui.h"
# include "gui/mainwindow.h" #include "gui/mainwindow.h"
#include <qtutilities/resources/qtconfigarguments.h>
#include <qtutilities/resources/resources.h> #include <qtutilities/resources/resources.h>
#include <QTextCodec> #include <QTextCodec>
#include <QApplication> #include <QApplication>
#include <QFile> #include <QFile>
using namespace ApplicationUtilities;
namespace QtGui { namespace QtGui {
int runWidgetsGui(int argc, char *argv[], const QString &file) int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, const QString &file)
{ {
SET_QT_APPLICATION_INFO; SET_QT_APPLICATION_INFO;
// init application // init application
QApplication a(argc, argv); QApplication a(argc, argv);
// load resources needed by classes of qtutilities
QtUtilitiesResources::init();
// apply settings specified via command line args
qtConfigArgs.applySettings();
LOAD_QT_TRANSLATIONS; LOAD_QT_TRANSLATIONS;
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
// load the other resources
QtUtilitiesResources::init();
Theme::setup();
// init widgets GUI // init widgets GUI
QtGui::MainWindow w; QtGui::MainWindow w;
w.show(); w.show();

View File

@ -1,15 +1,16 @@
#include "cli/cli.h" #include "cli/cli.h"
#ifdef GUI_QTWIDGETS #ifdef GUI_QTWIDGETS
# include "gui/initiate.h" # include "gui/initiategui.h"
#endif #endif
#ifdef GUI_QTQUICK #ifdef GUI_QTQUICK
# include "quickgui/initiate.h" # include "quickgui/initiatequick.h"
#endif #endif
#include <passwordfile/util/openssl.h> #include <passwordfile/util/openssl.h>
#include <c++utilities/application/argumentparser.h> #include <c++utilities/application/argumentparser.h>
#include <c++utilities/application/failure.h> #include <c++utilities/application/failure.h>
#include <c++utilities/application/commandlineutils.h>
#if defined(GUI_QTWIDGETS) || defined(GUI_QTQUICK) #if defined(GUI_QTWIDGETS) || defined(GUI_QTQUICK)
# include <qtutilities/resources/qtconfigarguments.h> # include <qtutilities/resources/qtconfigarguments.h>
@ -67,27 +68,31 @@ int main(int argc, char *argv[])
} }
if(qtConfigArgs.qtWidgetsGuiArg().isPresent()) { if(qtConfigArgs.qtWidgetsGuiArg().isPresent()) {
#ifdef GUI_QTWIDGETS #ifdef GUI_QTWIDGETS
res = QtGui::runWidgetsGui(argc, argv, file); res = QtGui::runWidgetsGui(argc, argv, qtConfigArgs, file);
#else #else
CMD_UTILS_START_CONSOLE;
cout << "The application has not been built with Qt widgets support." << endl; cout << "The application has not been built with Qt widgets support." << endl;
#endif #endif
} else if(qtConfigArgs.qtQuickGuiArg().isPresent()) { } else if(qtConfigArgs.qtQuickGuiArg().isPresent()) {
#ifdef GUI_QTQUICK #ifdef GUI_QTQUICK
res = QtGui::runQuickGui(argc, argv); res = QtGui::runQuickGui(argc, argv, qtConfigArgs);
#else #else
CMD_UTILS_START_CONSOLE;
cout << "The application has not been built with Qt quick support." << endl; cout << "The application has not been built with Qt quick support." << endl;
#endif #endif
} else { } else {
#if defined(GUI_QTQUICK) #if defined(GUI_QTQUICK)
res = QtGui::runQuickGui(argc, argv); res = QtGui::runQuickGui(argc, argv, qtConfigArgs);
#elif defined(GUI_QTWIDGETS) #elif defined(GUI_QTWIDGETS)
res = QtGui::runWidgetsGui(argc, argv, file); res = QtGui::runWidgetsGui(argc, argv, qtConfigArgs, file);
#else #else
CMD_UTILS_START_CONSOLE;
cout << "See --help for usage." << endl; cout << "See --help for usage." << endl;
#endif #endif
} }
} }
} catch(Failure &ex) { } catch(Failure &ex) {
CMD_UTILS_START_CONSOLE;
cout << "Unable to parse arguments. " << ex.what() << "\nSee --help for available commands." << endl; cout << "Unable to parse arguments. " << ex.what() << "\nSee --help for available commands." << endl;
} }
// clean open ssl // clean open ssl

View File

@ -56,20 +56,20 @@ HEADERS += model/entrymodel.h \
model/fieldmodel.h \ model/fieldmodel.h \
model/entryfiltermodel.h \ model/entryfiltermodel.h \
util/testroutines.h \ util/testroutines.h \
cli/cli.h cli/cli.h \
gui/initiategui.h
guiqtwidgets { guiqtwidgets {
HEADERS += gui/mainwindow.h \ HEADERS += gui/mainwindow.h \
gui/passwordgeneratordialog.h \ gui/passwordgeneratordialog.h \
gui/undocommands.h \ gui/undocommands.h \
gui/stacksupport.h \ gui/stacksupport.h
gui/initiate.h
} }
guiqtquick { guiqtquick {
HEADERS += quickgui/applicationinfo.h \ HEADERS += quickgui/applicationinfo.h \
quickgui/applicationpaths.h quickgui/applicationpaths.h \
quickgui/initiate.h quickgui/initiatequick.h
} }
# resources and translations # resources and translations

View File

@ -1,16 +0,0 @@
#ifndef QT_QUICK_GUI_INITIATE_H
#define QT_QUICK_GUI_INITIATE_H
#include <QtGlobal>
QT_BEGIN_NAMESPACE
class QString;
QT_END_NAMESPACE
namespace QtGui {
int runQuickGui(int argc, char *argv[]);
}
#endif // QT_QUICK_GUI_INITIATE_H

View File

@ -1,11 +1,12 @@
#include "initiate.h" #include "initiatequick.h"
# include "model/entryfiltermodel.h" # include "model/entryfiltermodel.h"
# include "model/entrymodel.h" # include "model/entrymodel.h"
# include "model/fieldmodel.h" # include "model/fieldmodel.h"
# include "quickgui/applicationinfo.h" #include "quickgui/applicationinfo.h"
#include <qtutilities/resources/qtconfigarguments.h>
#include <qtutilities/resources/resources.h> #include <qtutilities/resources/resources.h>
#if defined(GUI_QTWIDGETS) #if defined(GUI_QTWIDGETS)
@ -19,6 +20,8 @@
#include <QQmlApplicationEngine> #include <QQmlApplicationEngine>
#include <QDebug> #include <QDebug>
using namespace ApplicationUtilities;
namespace QtGui { namespace QtGui {
#if defined(GUI_QTQUICK) #if defined(GUI_QTQUICK)
@ -30,26 +33,21 @@ static QObject *applicationInfo(QQmlEngine *engine, QJSEngine *scriptEngine)
} }
#endif #endif
int runQuickGui(int argc, char *argv[]) int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs)
{ {
// init application // init application
SET_QT_APPLICATION_INFO;
#if defined(GUI_QTWIDGETS) #if defined(GUI_QTWIDGETS)
QApplication a(argc, argv); QApplication a(argc, argv);
#else #else
QGuiApplication a(argc, argv); QGuiApplication a(argc, argv);
#endif #endif
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); // load resources needed by classes of qtutilities
QGuiApplication::setOrganizationName(QStringLiteral("Martchus"));
QGuiApplication::setOrganizationDomain(QStringLiteral("http://martchus.netai.net/"));
QGuiApplication::setApplicationName(QStringLiteral("Password Manager (mobile)"));
QGuiApplication::setApplicationVersion(QStringLiteral("2.0.5"));
// load translation files
TranslationFiles::loadQtTranslationFile();
TranslationFiles::loadApplicationTranslationFile(QStringLiteral("passwordmanager"));
// load the other resources
QtUtilitiesResources::init(); QtUtilitiesResources::init();
Theme::setup(); // apply settings specified via command line args
qDebug() << "test 2"; qtConfigArgs.applySettings();
LOAD_QT_TRANSLATIONS;
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
// init quick GUI // init quick GUI
qmlRegisterSingletonType<QtGui::ApplicationInfo>("martchus.passwordmanager", 2, 0, "ApplicationInfo", applicationInfo); qmlRegisterSingletonType<QtGui::ApplicationInfo>("martchus.passwordmanager", 2, 0, "ApplicationInfo", applicationInfo);
qmlRegisterType<QtGui::EntryFilterModel>("martchus.passwordmanager", 2, 0, "EntryFilterModel"); qmlRegisterType<QtGui::EntryFilterModel>("martchus.passwordmanager", 2, 0, "EntryFilterModel");

18
quickgui/initiatequick.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef QT_QUICK_GUI_INITIATE_H
#define QT_QUICK_GUI_INITIATE_H
#include <QtGlobal>
QT_FORWARD_DECLARE_CLASS(QString)
namespace ApplicationUtilities {
class QtConfigArguments;
}
namespace QtGui {
int runQuickGui(int argc, char *argv[], const ApplicationUtilities::QtConfigArguments &qtConfigArgs);
}
#endif // QT_QUICK_GUI_INITIATE_H