Add Common::databasePath which also allows overriding it

This commit is contained in:
Albert S. 2020-05-24 15:36:27 +02:00
γονέας 13fb901044
υποβολή 8de07b703c
4 αρχεία άλλαξαν με 21 προσθήκες και 6 διαγραφές

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

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

@ -1,3 +1,5 @@
#include <QProcessEnvironment>
#include <QSettings>
#include "common.h"
void Common::setupAppInfo()
@ -6,3 +8,14 @@ void Common::setupAppInfo()
QCoreApplication::setOrganizationDomain("quitesimple.org");
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;
}

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