diff --git a/cli/cli.cpp b/cli/cli.cpp index 023e475..1a7d51e 100644 --- a/cli/cli.cpp +++ b/cli/cli.cpp @@ -7,8 +7,7 @@ #include #include - -#include +#include #if defined(PLATFORM_UNIX) #include @@ -88,7 +87,9 @@ InteractiveCli::InteractiveCli() : m_currentEntry(nullptr), m_modified(false), m_quit(false) -{} +{ + CMD_UTILS_START_CONSOLE; +} void InteractiveCli::run(const string &file) { diff --git a/gui/initiate.h b/gui/initiate.h deleted file mode 100644 index 4a18815..0000000 --- a/gui/initiate.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef INITIATE_H -#define INITIATE_H - -#include - -QT_BEGIN_NAMESPACE -class QString; -QT_END_NAMESPACE - -namespace QtGui { - -int runWidgetsGui(int argc, char *argv[], const QString &file); - -} - -#endif // INITIATE_H diff --git a/gui/initiategui.h b/gui/initiategui.h new file mode 100644 index 0000000..975676e --- /dev/null +++ b/gui/initiategui.h @@ -0,0 +1,18 @@ +#ifndef INITIATE_H +#define INITIATE_H + +#include + +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 diff --git a/gui/initiatequi.cpp b/gui/initiatequi.cpp index 1d6d0e9..d8bf1a7 100644 --- a/gui/initiatequi.cpp +++ b/gui/initiatequi.cpp @@ -1,25 +1,29 @@ -#include "initiate.h" +#include "initiategui.h" -# include "gui/mainwindow.h" +#include "gui/mainwindow.h" +#include #include #include #include #include +using namespace ApplicationUtilities; + 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; // init application 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; QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); - // load the other resources - QtUtilitiesResources::init(); - Theme::setup(); // init widgets GUI QtGui::MainWindow w; w.show(); diff --git a/main.cpp b/main.cpp index 1ef523a..a3f9d9c 100644 --- a/main.cpp +++ b/main.cpp @@ -1,15 +1,16 @@ #include "cli/cli.h" #ifdef GUI_QTWIDGETS -# include "gui/initiate.h" +# include "gui/initiategui.h" #endif #ifdef GUI_QTQUICK -# include "quickgui/initiate.h" +# include "quickgui/initiatequick.h" #endif #include #include #include +#include #if defined(GUI_QTWIDGETS) || defined(GUI_QTQUICK) # include @@ -67,27 +68,31 @@ int main(int argc, char *argv[]) } if(qtConfigArgs.qtWidgetsGuiArg().isPresent()) { #ifdef GUI_QTWIDGETS - res = QtGui::runWidgetsGui(argc, argv, file); + res = QtGui::runWidgetsGui(argc, argv, qtConfigArgs, file); #else + CMD_UTILS_START_CONSOLE; cout << "The application has not been built with Qt widgets support." << endl; #endif } else if(qtConfigArgs.qtQuickGuiArg().isPresent()) { #ifdef GUI_QTQUICK - res = QtGui::runQuickGui(argc, argv); + res = QtGui::runQuickGui(argc, argv, qtConfigArgs); #else + CMD_UTILS_START_CONSOLE; cout << "The application has not been built with Qt quick support." << endl; #endif } else { #if defined(GUI_QTQUICK) - res = QtGui::runQuickGui(argc, argv); + res = QtGui::runQuickGui(argc, argv, qtConfigArgs); #elif defined(GUI_QTWIDGETS) - res = QtGui::runWidgetsGui(argc, argv, file); + res = QtGui::runWidgetsGui(argc, argv, qtConfigArgs, file); #else + CMD_UTILS_START_CONSOLE; cout << "See --help for usage." << endl; #endif } } } catch(Failure &ex) { + CMD_UTILS_START_CONSOLE; cout << "Unable to parse arguments. " << ex.what() << "\nSee --help for available commands." << endl; } // clean open ssl diff --git a/passwordmanager.pro b/passwordmanager.pro index 46a904f..be8da54 100644 --- a/passwordmanager.pro +++ b/passwordmanager.pro @@ -56,20 +56,20 @@ HEADERS += model/entrymodel.h \ model/fieldmodel.h \ model/entryfiltermodel.h \ util/testroutines.h \ - cli/cli.h + cli/cli.h \ + gui/initiategui.h guiqtwidgets { HEADERS += gui/mainwindow.h \ gui/passwordgeneratordialog.h \ gui/undocommands.h \ - gui/stacksupport.h \ - gui/initiate.h + gui/stacksupport.h } guiqtquick { HEADERS += quickgui/applicationinfo.h \ - quickgui/applicationpaths.h - quickgui/initiate.h + quickgui/applicationpaths.h \ + quickgui/initiatequick.h } # resources and translations diff --git a/quickgui/initiate.h b/quickgui/initiate.h deleted file mode 100644 index 7d1b0a3..0000000 --- a/quickgui/initiate.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef QT_QUICK_GUI_INITIATE_H -#define QT_QUICK_GUI_INITIATE_H - -#include - -QT_BEGIN_NAMESPACE -class QString; -QT_END_NAMESPACE - -namespace QtGui { - -int runQuickGui(int argc, char *argv[]); - -} - -#endif // QT_QUICK_GUI_INITIATE_H diff --git a/quickgui/initiatequick.cpp b/quickgui/initiatequick.cpp index b7e22e2..17803dc 100644 --- a/quickgui/initiatequick.cpp +++ b/quickgui/initiatequick.cpp @@ -1,11 +1,12 @@ -#include "initiate.h" +#include "initiatequick.h" # include "model/entryfiltermodel.h" # include "model/entrymodel.h" # include "model/fieldmodel.h" -# include "quickgui/applicationinfo.h" +#include "quickgui/applicationinfo.h" +#include #include #if defined(GUI_QTWIDGETS) @@ -19,6 +20,8 @@ #include #include +using namespace ApplicationUtilities; + namespace QtGui { #if defined(GUI_QTQUICK) @@ -30,26 +33,21 @@ static QObject *applicationInfo(QQmlEngine *engine, QJSEngine *scriptEngine) } #endif -int runQuickGui(int argc, char *argv[]) +int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs) { // init application + SET_QT_APPLICATION_INFO; #if defined(GUI_QTWIDGETS) QApplication a(argc, argv); #else QGuiApplication a(argc, argv); #endif - QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); - 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 + // load resources needed by classes of qtutilities QtUtilitiesResources::init(); - Theme::setup(); - qDebug() << "test 2"; + // apply settings specified via command line args + qtConfigArgs.applySettings(); + LOAD_QT_TRANSLATIONS; + QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); // init quick GUI qmlRegisterSingletonType("martchus.passwordmanager", 2, 0, "ApplicationInfo", applicationInfo); qmlRegisterType("martchus.passwordmanager", 2, 0, "EntryFilterModel"); diff --git a/quickgui/initiatequick.h b/quickgui/initiatequick.h new file mode 100644 index 0000000..48b0b17 --- /dev/null +++ b/quickgui/initiatequick.h @@ -0,0 +1,18 @@ +#ifndef QT_QUICK_GUI_INITIATE_H +#define QT_QUICK_GUI_INITIATE_H + +#include + +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