Add Common::databasePath which also allows overriding it

This commit is contained in:
Albert S. 2020-05-24 15:36:27 +02:00
parent bb4824764c
commit 34c828a453
4 changed files with 22 additions and 7 deletions

View File

@ -28,7 +28,7 @@
void printUsage(QString argv0) void printUsage(QString argv0)
{ {
qInfo() << "Usage: " << argv0 << "command"; qInfo() << "Usage:" << argv0 << "command";
} }
Command *commandFromName(QString name, SqliteDbService &dbService) Command *commandFromName(QString name, SqliteDbService &dbService)
@ -66,11 +66,10 @@ int main(int argc, char *argv[])
exit(1); exit(1);
} }
QString commandName = args.first(); QString connectionString = Common::databasePath();
QSettings settings;
QString connectionString = settings.value("dbpath").toString();
DatabaseFactory dbFactory(connectionString); DatabaseFactory dbFactory(connectionString);
SqliteDbService dbService(dbFactory); SqliteDbService dbService(dbFactory);
QString commandName = args.first();
Command *cmd = commandFromName(commandName, dbService); Command *cmd = commandFromName(commandName, dbService);
if(cmd != nullptr) if(cmd != nullptr)
{ {

View File

@ -16,6 +16,8 @@
#include "clicklabel.h" #include "clicklabel.h"
#include "../shared/sqlitesearch.h" #include "../shared/sqlitesearch.h"
#include "../shared/qssgeneralexception.h" #include "../shared/qssgeneralexception.h"
#include "../shared/common.h"
MainWindow::MainWindow(QWidget *parent) : MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
ui(new Ui::MainWindow) ui(new Ui::MainWindow)
@ -24,7 +26,7 @@ MainWindow::MainWindow(QWidget *parent) :
QSettings settings; QSettings settings;
db = QSqlDatabase::addDatabase("QSQLITE"); db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(settings.value("dbpath").toString()); db.setDatabaseName(Common::databasePath());
if(!db.open()) if(!db.open())
{ {
qDebug() << "failed to open database"; qDebug() << "failed to open database";

View File

@ -1,8 +1,21 @@
#include <QProcessEnvironment>
#include <QSettings>
#include "common.h" #include "common.h"
void Common::setupAppInfo() void Common::setupAppInfo()
{ {
QCoreApplication::setOrganizationName("quitesimple.org"); QCoreApplication::setOrganizationName("quitesimple.org");
QCoreApplication::setOrganizationDomain("quitesimple.org"); QCoreApplication::setOrganizationDomain("quitesimple.org");
QCoreApplication::setApplicationName("qss"); QCoreApplication::setApplicationName("qss");
}
QString Common::databasePath()
{
QString env = QProcessEnvironment::systemEnvironment().value("QSS_DB_OVERRIDE");
if(env == "")
{
QSettings settings;
return settings.value("dbpath").toString();
}
return env;
} }

View File

@ -5,5 +5,6 @@
namespace Common namespace Common
{ {
void setupAppInfo(); void setupAppInfo();
QString databasePath();
} }
#endif #endif