added Common namespace. cli: use settings instead of env for db path

Cette révision appartient à :
Albert S. 2020-05-23 22:52:42 +02:00
Parent 2161c21e4d
révision bb4824764c
5 fichiers modifiés avec 84 ajouts et 60 suppressions

Voir le fichier

@ -10,6 +10,7 @@
#include <QSqlError>
#include <QMap>
#include <QDebug>
#include <QSettings>
#include <functional>
#include <exception>
#include "encodingdetector.h"
@ -23,64 +24,68 @@
#include "commandsearch.h"
#include "databasefactory.h"
#include "logger.h"
#include "../shared/common.h"
void printUsage(QString argv0)
{
qInfo() << "Usage: " << argv0 << "command";
qInfo() << "Usage: " << argv0 << "command";
}
Command *commandFromName(QString name, SqliteDbService &dbService)
{
if(name == "add")
{
return new CommandAdd(dbService);
}
if(name == "delete")
{
return new CommandDelete(dbService);
}
if(name == "update")
{
return new CommandUpdate(dbService);
}
if(name == "search")
{
return new CommandSearch(dbService);
}
if(name == "add")
{
return new CommandAdd(dbService);
}
if(name == "delete")
{
return new CommandDelete(dbService);
}
if(name == "update")
{
return new CommandUpdate(dbService);
}
if(name == "search")
{
return new CommandSearch(dbService);
}
return nullptr;
return nullptr;
}
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
Common::setupAppInfo();
QStringList args = app.arguments();
QString argv0 = args.takeFirst();
if(args.length() < 1)
{
printUsage(argv0);
exit(1);
}
QCoreApplication app(argc, argv);
QStringList args = app.arguments();
QString argv0 = args.takeFirst();
if(args.length() < 1)
{
printUsage(argv0);
exit(1);
}
QString commandName = args.first();
QString connectionString = QProcessEnvironment::systemEnvironment().value("QSS_PATH");
DatabaseFactory dbFactory(connectionString);
SqliteDbService dbService(dbFactory);
Command *cmd = commandFromName(commandName, dbService);
if(cmd != nullptr)
{
try
{
return cmd->handle(args);
}
catch(const QSSGeneralException &e)
{
Logger::error() << "Exception caught, message: " << e.message << endl;
}
}
else
{
Logger::error() << "Unknown command " << commandName << endl;
}
return 1;
QString commandName = args.first();
QSettings settings;
QString connectionString = settings.value("dbpath").toString();
DatabaseFactory dbFactory(connectionString);
SqliteDbService dbService(dbFactory);
Command *cmd = commandFromName(commandName, dbService);
if(cmd != nullptr)
{
try
{
return cmd->handle(args);
}
catch(const QSSGeneralException &e)
{
Logger::error() << "Exception caught, message: " << e.message << endl;
}
}
else
{
Logger::error() << "Unknown command " << commandName << endl;
}
return 1;
}

Voir le fichier

@ -1,19 +1,19 @@
#include "mainwindow.h"
#include <QApplication>
#include <QSettings>
#include "mainwindow.h"
#include "searchresult.h"
#include "pdfpreview.h"
#include "../shared/common.h"
int main(int argc, char *argv[])
{
QCoreApplication::setOrganizationName("quitesimple.org");
QCoreApplication::setOrganizationDomain("quitesimple.org");
QCoreApplication::setApplicationName("qss");
QApplication a(argc, argv);
qRegisterMetaType<QVector<SearchResult>>("QVector<SearchResult>");
qRegisterMetaType<QVector<PdfPreview>>("QVector<PdfPreview>");
qRegisterMetaType<PdfPreview>("PdfPreview");
MainWindow w;
w.showMaximized();
Common::setupAppInfo();
QApplication a(argc, argv);
qRegisterMetaType<QVector<SearchResult>>("QVector<SearchResult>");
qRegisterMetaType<QVector<PdfPreview>>("QVector<PdfPreview>");
qRegisterMetaType<PdfPreview>("PdfPreview");
MainWindow w;
w.showMaximized();
return a.exec();
return a.exec();
}

8
shared/common.cpp Fichier normal
Voir le fichier

@ -0,0 +1,8 @@
#include "common.h"
void Common::setupAppInfo()
{
QCoreApplication::setOrganizationName("quitesimple.org");
QCoreApplication::setOrganizationDomain("quitesimple.org");
QCoreApplication::setApplicationName("qss");
}

9
shared/common.h Fichier normal
Voir le fichier

@ -0,0 +1,9 @@
#ifndef COMMON_H
#define COMMON_H
#include <QCoreApplication>
namespace Common
{
void setupAppInfo();
}
#endif

Voir le fichier

@ -26,14 +26,16 @@ DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += sqlitesearch.cpp \
qssgeneralexception.cpp \
qssquery.cpp
qssquery.cpp \
common.cpp
HEADERS += sqlitesearch.h \
filedata.h \
searchresult.h \
qssgeneralexception.h \
token.h \
qssquery.h
qssquery.h \
common.h
unix {
target.path = /usr/lib
INSTALLS += target