mirror of
https://github.com/FAUSheppy/speech-server-client-qt
synced 2025-12-06 08:51:35 +01:00
platform dependent app data location
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
#include <QtNetwork/QNetworkAccessManager>
|
||||||
|
#include <QStandardPaths>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <settingkeys.h>
|
#include <settingkeys.h>
|
||||||
|
|
||||||
@@ -29,16 +30,24 @@
|
|||||||
|
|
||||||
#define WINDOW_TITLE "Memo Uploader"
|
#define WINDOW_TITLE "Memo Uploader"
|
||||||
|
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent), ui(new Ui::MainWindow){
|
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent), ui(new Ui::MainWindow){
|
||||||
|
|
||||||
/* setup ui */
|
/* setup ui */
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
/* ensure all initial settings are set */
|
/* ensure all initial settings are set */
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
this->mySettings = new QSettings();
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
QString path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
|
||||||
|
path = path + "/settings.ini";
|
||||||
|
this->mySettings = new QSettings(path, QSettings::IniFormat);
|
||||||
|
#endif
|
||||||
|
|
||||||
handleInitialSettings();
|
handleInitialSettings();
|
||||||
|
|
||||||
setAuthHeader(mySettings.value(SETTING_USER).toString(), mySettings.value(SETTING_PASS).toString());
|
setAuthHeader(mySettings->value(SETTING_USER).toString(), mySettings->value(SETTING_PASS).toString());
|
||||||
networkManager = new QNetworkAccessManager(this);
|
networkManager = new QNetworkAccessManager(this);
|
||||||
|
|
||||||
/* setup buttons */
|
/* setup buttons */
|
||||||
@@ -78,40 +87,41 @@ MainWindow::MainWindow(QWidget *parent):QMainWindow(parent), ui(new Ui::MainWind
|
|||||||
|
|
||||||
void MainWindow::openConfigurationWindow(){
|
void MainWindow::openConfigurationWindow(){
|
||||||
Settings *settingsWindow = new Settings();
|
Settings *settingsWindow = new Settings();
|
||||||
|
settingsWindow->selectSettings(this->mySettings);
|
||||||
settingsWindow->show();
|
settingsWindow->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::handleInitialSettings(){
|
void MainWindow::handleInitialSettings(){
|
||||||
|
|
||||||
if(!mySettings.contains(SETTING_HOST)){
|
if(!mySettings->contains(SETTING_HOST)){
|
||||||
mySettings.setValue(SETTING_HOST, "localhost");
|
mySettings->setValue(SETTING_HOST, "localhost");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_PORT)){
|
if(!mySettings->contains(SETTING_PORT)){
|
||||||
mySettings.setValue(SETTING_PORT, "5000");
|
mySettings->setValue(SETTING_PORT, "5000");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_PROTO)){
|
if(!mySettings->contains(SETTING_PROTO)){
|
||||||
mySettings.setValue(SETTING_PROTO, "https://");
|
mySettings->setValue(SETTING_PROTO, "https://");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_LOC_STATE)){
|
if(!mySettings->contains(SETTING_LOC_STATE)){
|
||||||
mySettings.setValue(SETTING_LOC_STATE, "/dumpstate");
|
mySettings->setValue(SETTING_LOC_STATE, "/dumpstate");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_LOC_SUBMIT)){
|
if(!mySettings->contains(SETTING_LOC_SUBMIT)){
|
||||||
mySettings.setValue(SETTING_LOC_SUBMIT, "/submit-async");
|
mySettings->setValue(SETTING_LOC_SUBMIT, "/submit-async");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_LOC_TRANSCRIPT)){
|
if(!mySettings->contains(SETTING_LOC_TRANSCRIPT)){
|
||||||
mySettings.setValue(SETTING_LOC_TRANSCRIPT, "/transcript");
|
mySettings->setValue(SETTING_LOC_TRANSCRIPT, "/transcript");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_SAVE_DIR)){
|
if(!mySettings->contains(SETTING_SAVE_DIR)){
|
||||||
mySettings.setValue(SETTING_SAVE_DIR, ".");
|
mySettings->setValue(SETTING_SAVE_DIR, ".");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_USER)){
|
if(!mySettings->contains(SETTING_USER)){
|
||||||
mySettings.setValue(SETTING_USER, "");
|
mySettings->setValue(SETTING_USER, "");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_PASS)){
|
if(!mySettings->contains(SETTING_PASS)){
|
||||||
mySettings.setValue(SETTING_PASS, "");
|
mySettings->setValue(SETTING_PASS, "");
|
||||||
}
|
}
|
||||||
if(!mySettings.contains(SETTING_LINUX_EXPLORER)){
|
if(!mySettings->contains(SETTING_LINUX_EXPLORER)){
|
||||||
mySettings.setValue(SETTING_LINUX_EXPLORER, "/usr/bin/thunar");
|
mySettings->setValue(SETTING_LINUX_EXPLORER, "/usr/bin/thunar");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,9 +167,9 @@ QString MainWindow::buildURLFromLocation(QVariant location){
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString MainWindow::buildURLFromLocation(QString location){
|
QString MainWindow::buildURLFromLocation(QString location){
|
||||||
QString proto = mySettings.value(SETTING_PROTO).toString();
|
QString proto = mySettings->value(SETTING_PROTO).toString();
|
||||||
QString host = mySettings.value(SETTING_HOST).toString();
|
QString host = mySettings->value(SETTING_HOST).toString();
|
||||||
QString port = mySettings.value(SETTING_PORT).toString();
|
QString port = mySettings->value(SETTING_PORT).toString();
|
||||||
if(!proto.endsWith("://")){
|
if(!proto.endsWith("://")){
|
||||||
proto += "://";
|
proto += "://";
|
||||||
}
|
}
|
||||||
@@ -174,7 +184,7 @@ QString MainWindow::buildURLFromLocation(QString location){
|
|||||||
void MainWindow::submitFile(QString filename){
|
void MainWindow::submitFile(QString filename){
|
||||||
|
|
||||||
/* prepare request */
|
/* prepare request */
|
||||||
QUrl serviceUrl = QUrl(buildURLFromLocation(mySettings.value(SETTING_LOC_SUBMIT)));
|
QUrl serviceUrl = QUrl(buildURLFromLocation(mySettings->value(SETTING_LOC_SUBMIT)));
|
||||||
QNetworkRequest request(serviceUrl);
|
QNetworkRequest request(serviceUrl);
|
||||||
request.setRawHeader("Authorization", authHeaderData);
|
request.setRawHeader("Authorization", authHeaderData);
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
||||||
@@ -203,7 +213,7 @@ void MainWindow::submitFile(QString filename){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::queryTransscript(QString trackingId){
|
void MainWindow::queryTransscript(QString trackingId){
|
||||||
QString url = buildURLFromLocation(mySettings.value(SETTING_LOC_TRANSCRIPT));
|
QString url = buildURLFromLocation(mySettings->value(SETTING_LOC_TRANSCRIPT));
|
||||||
QString paramUrl = QString("%1?id=%2").arg(url, trackingId);
|
QString paramUrl = QString("%1?id=%2").arg(url, trackingId);
|
||||||
QUrl transcriptUrl = QUrl(paramUrl);
|
QUrl transcriptUrl = QUrl(paramUrl);
|
||||||
QNetworkRequest request(transcriptUrl);
|
QNetworkRequest request(transcriptUrl);
|
||||||
@@ -213,13 +223,13 @@ void MainWindow::queryTransscript(QString trackingId){
|
|||||||
|
|
||||||
void MainWindow::openContainingDir(){
|
void MainWindow::openContainingDir(){
|
||||||
|
|
||||||
QString filePath = mySettings.value(SETTING_SAVE_DIR).toString();
|
QString filePath = mySettings->value(SETTING_SAVE_DIR).toString();
|
||||||
QStringList args;
|
QStringList args;
|
||||||
|
|
||||||
/* OS specific explorer call */
|
/* OS specific explorer call */
|
||||||
#ifdef Q_OS_LINUX
|
#ifdef Q_OS_LINUX
|
||||||
args << QDir::toNativeSeparators(filePath);
|
args << QDir::toNativeSeparators(filePath);
|
||||||
QProcess::startDetached(mySettings.value(SETTING_LINUX_EXPLORER).toString(), args);
|
QProcess::startDetached(mySettings->value(SETTING_LINUX_EXPLORER).toString(), args);
|
||||||
#endif
|
#endif
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
args << "/select," << QDir::toNativeSeparators(filePath);
|
args << "/select," << QDir::toNativeSeparators(filePath);
|
||||||
@@ -296,7 +306,7 @@ void MainWindow::saveTranscript(QNetworkReply* reply){
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* save return data */
|
/* save return data */
|
||||||
QString fullpath = QDir(mySettings.value(SETTING_SAVE_DIR).toString()).filePath(targetName);
|
QString fullpath = QDir(mySettings->value(SETTING_SAVE_DIR).toString()).filePath(targetName);
|
||||||
qDebug(qPrintable(fullpath));
|
qDebug(qPrintable(fullpath));
|
||||||
qDebug(qPrintable(transcript));
|
qDebug(qPrintable(transcript));
|
||||||
QFile file(fullpath);
|
QFile file(fullpath);
|
||||||
@@ -378,9 +388,9 @@ void MainWindow::addTrackingToList(QNetworkReply* reply){
|
|||||||
void MainWindow::requestFinished(QNetworkReply *reply){
|
void MainWindow::requestFinished(QNetworkReply *reply){
|
||||||
qDebug(qPrintable(reply->url().toString()));
|
qDebug(qPrintable(reply->url().toString()));
|
||||||
|
|
||||||
QString submitUrl = buildURLFromLocation(mySettings.value(SETTING_LOC_SUBMIT));
|
QString submitUrl = buildURLFromLocation(mySettings->value(SETTING_LOC_SUBMIT));
|
||||||
QString statusRequestUrl = buildURLFromLocation(mySettings.value(SETTING_LOC_STATE));
|
QString statusRequestUrl = buildURLFromLocation(mySettings->value(SETTING_LOC_STATE));
|
||||||
QString requestTranscriptUrl = buildURLFromLocation(mySettings.value(SETTING_LOC_TRANSCRIPT));
|
QString requestTranscriptUrl = buildURLFromLocation(mySettings->value(SETTING_LOC_TRANSCRIPT));
|
||||||
|
|
||||||
if(QString::compare(reply->url().toString(), submitUrl) == 0){
|
if(QString::compare(reply->url().toString(), submitUrl) == 0){
|
||||||
addTrackingToList(reply);
|
addTrackingToList(reply);
|
||||||
@@ -397,7 +407,7 @@ void MainWindow::requestFinished(QNetworkReply *reply){
|
|||||||
|
|
||||||
void MainWindow::queryStatusAll(){
|
void MainWindow::queryStatusAll(){
|
||||||
|
|
||||||
QString statusRequestUrl = buildURLFromLocation(mySettings.value(SETTING_LOC_STATE));
|
QString statusRequestUrl = buildURLFromLocation(mySettings->value(SETTING_LOC_STATE));
|
||||||
QUrl trackingUrl = QUrl(statusRequestUrl);
|
QUrl trackingUrl = QUrl(statusRequestUrl);
|
||||||
QNetworkRequest request(trackingUrl);
|
QNetworkRequest request(trackingUrl);
|
||||||
request.setRawHeader("Authorization", authHeaderData);
|
request.setRawHeader("Authorization", authHeaderData);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ private:
|
|||||||
QAction *standardsMenu;
|
QAction *standardsMenu;
|
||||||
QByteArray authHeaderData;
|
QByteArray authHeaderData;
|
||||||
QNetworkAccessManager *networkManager;
|
QNetworkAccessManager *networkManager;
|
||||||
QSettings mySettings;
|
QSettings *mySettings;
|
||||||
void submitFile(QString filename);
|
void submitFile(QString filename);
|
||||||
void setAuthHeader(const QString username, const QString password);
|
void setAuthHeader(const QString username, const QString password);
|
||||||
void updateList(QNetworkReply *reply);
|
void updateList(QNetworkReply *reply);
|
||||||
|
|||||||
14
settings.cpp
14
settings.cpp
@@ -17,10 +17,9 @@ Settings::Settings(QWidget *parent) :
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
configLineEditMap = new QHash<QString, QLineEdit*>();
|
configLineEditMap = new QHash<QString, QLineEdit*>();
|
||||||
QSettings mySettings;
|
|
||||||
|
|
||||||
/* config options */
|
/* config options */
|
||||||
QStringList *configOptions = new QStringList();
|
configOptions = new QStringList();
|
||||||
configOptions->append("Host");
|
configOptions->append("Host");
|
||||||
configOptions->append("Port");
|
configOptions->append("Port");
|
||||||
configOptions->append("Protokoll");
|
configOptions->append("Protokoll");
|
||||||
@@ -33,7 +32,7 @@ Settings::Settings(QWidget *parent) :
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* config option keys */
|
/* config option keys */
|
||||||
QStringList *configOptionsKeys = new QStringList();
|
configOptionsKeys = new QStringList();
|
||||||
configOptionsKeys->append(SETTING_HOST);
|
configOptionsKeys->append(SETTING_HOST);
|
||||||
configOptionsKeys->append(SETTING_PORT);
|
configOptionsKeys->append(SETTING_PORT);
|
||||||
configOptionsKeys->append(SETTING_PROTO);
|
configOptionsKeys->append(SETTING_PROTO);
|
||||||
@@ -44,6 +43,11 @@ Settings::Settings(QWidget *parent) :
|
|||||||
configOptionsKeys->append(SETTING_LINUX_EXPLORER);
|
configOptionsKeys->append(SETTING_LINUX_EXPLORER);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Settings::selectSettings(QSettings *selectedSettings){
|
||||||
|
this->mySettings = selectedSettings;
|
||||||
|
|
||||||
/* config options layout */
|
/* config options layout */
|
||||||
auto cw = this->findChild<QWidget*>("centralwidget");
|
auto cw = this->findChild<QWidget*>("centralwidget");
|
||||||
QGridLayout *layout = static_cast<QGridLayout*>(cw->layout());
|
QGridLayout *layout = static_cast<QGridLayout*>(cw->layout());
|
||||||
@@ -54,7 +58,7 @@ Settings::Settings(QWidget *parent) :
|
|||||||
QLabel *label = new QLabel(this);
|
QLabel *label = new QLabel(this);
|
||||||
label->setText(configOptions->at(i));
|
label->setText(configOptions->at(i));
|
||||||
QLineEdit *edit = new QLineEdit();
|
QLineEdit *edit = new QLineEdit();
|
||||||
edit->setText(mySettings.value(configOptionsKeys->at(i)).toString());
|
edit->setText(this->mySettings->value(configOptionsKeys->at(i)).toString());
|
||||||
|
|
||||||
/* add widgets to layout */
|
/* add widgets to layout */
|
||||||
layout->addWidget(label, i, 0);
|
layout->addWidget(label, i, 0);
|
||||||
@@ -91,7 +95,7 @@ void Settings::okClose(){
|
|||||||
for(auto key : configLineEditMap->keys()){
|
for(auto key : configLineEditMap->keys()){
|
||||||
QString input = configLineEditMap->take(key)->text();
|
QString input = configLineEditMap->take(key)->text();
|
||||||
if(input.compare("") != 0){
|
if(input.compare("") != 0){
|
||||||
mySettings.setValue(key, input);
|
this->mySettings->setValue(key, input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->close();
|
this->close();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class settings;
|
class settings;
|
||||||
@@ -16,12 +17,16 @@ public:
|
|||||||
explicit Settings(QWidget *parent = nullptr);
|
explicit Settings(QWidget *parent = nullptr);
|
||||||
~Settings();
|
~Settings();
|
||||||
|
|
||||||
|
void selectSettings(QSettings *selectedSettings);
|
||||||
private slots:
|
private slots:
|
||||||
void okClose();
|
void okClose();
|
||||||
void cancleClose();
|
void cancleClose();
|
||||||
private:
|
private:
|
||||||
Ui::settings *ui;
|
Ui::settings *ui;
|
||||||
|
QSettings *mySettings;
|
||||||
QHash<QString, QLineEdit*> *configLineEditMap;
|
QHash<QString, QLineEdit*> *configLineEditMap;
|
||||||
|
QStringList *configOptionsKeys;
|
||||||
|
QStringList *configOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SETTINGS_H
|
#endif // SETTINGS_H
|
||||||
|
|||||||
Reference in New Issue
Block a user