Add Common::databasePath which also allows overriding it

Этот коммит содержится в:
Albert S. 2020-05-24 15:36:27 +02:00
родитель bb4824764c
Коммит 34c828a453
4 изменённых файлов: 22 добавлений и 7 удалений

Просмотреть файл

@ -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)
{ {

Просмотреть файл

@ -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";

Просмотреть файл

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

Просмотреть файл

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