Moved settings into own class.
This commit is contained in:
@@ -2,11 +2,12 @@
|
||||
#include "ui_kontierungdialog.h"
|
||||
|
||||
#include <QMap>
|
||||
#include <QSettings>
|
||||
#include <QStringBuilder>
|
||||
#include <QDebug>
|
||||
|
||||
KontierungDialog::KontierungDialog(const QMap<QString, QString> &projekte, const QSettings &settings,
|
||||
#include "zeiterfassungsettings.h"
|
||||
|
||||
KontierungDialog::KontierungDialog(const QMap<QString, QString> &projekte, const ZeiterfassungSettings &settings,
|
||||
QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::KontierungDialog)
|
||||
@@ -14,9 +15,7 @@ KontierungDialog::KontierungDialog(const QMap<QString, QString> &projekte, const
|
||||
ui->setupUi(this);
|
||||
|
||||
{
|
||||
auto preferedProjekte = settings.value("projekte", QStringList()).toStringList();
|
||||
|
||||
for(const auto &preferedProjekt : preferedProjekte)
|
||||
for(const auto &preferedProjekt : settings.projekte())
|
||||
{
|
||||
if(!projekte.contains(preferedProjekt))
|
||||
{
|
||||
@@ -27,25 +26,25 @@ KontierungDialog::KontierungDialog(const QMap<QString, QString> &projekte, const
|
||||
ui->comboBoxProjekt->addItem(projekte.value(preferedProjekt) % " (" % preferedProjekt % ')', preferedProjekt);
|
||||
}
|
||||
|
||||
if(preferedProjekte.count())
|
||||
if(settings.projekte().count())
|
||||
ui->comboBoxProjekt->insertSeparator(ui->comboBoxProjekt->count());
|
||||
|
||||
for(auto iter = projekte.constBegin(); iter != projekte.constEnd(); iter++)
|
||||
{
|
||||
if(!preferedProjekte.contains(iter.key()))
|
||||
if(!settings.projekte().contains(iter.key()))
|
||||
ui->comboBoxProjekt->addItem(iter.value() % " (" % iter.key() % ')', iter.key());
|
||||
}
|
||||
}
|
||||
|
||||
for(const auto &subprojekt : settings.value("subprojekte", QStringList()).toStringList())
|
||||
for(const auto &subprojekt : settings.subprojekte())
|
||||
ui->comboBoxSubprojekt->addItem(subprojekt);
|
||||
ui->comboBoxSubprojekt->clearEditText();
|
||||
|
||||
for(const auto &workpackage : settings.value("workpackages", QStringList()).toStringList())
|
||||
for(const auto &workpackage : settings.workpackages())
|
||||
ui->comboBoxWorkpackage->addItem(workpackage);
|
||||
ui->comboBoxWorkpackage->clearEditText();
|
||||
|
||||
for(const auto &text : settings.value("texte", QStringList()).toStringList())
|
||||
for(const auto &text : settings.texte())
|
||||
ui->comboBoxText->addItem(text);
|
||||
ui->comboBoxText->clearEditText();
|
||||
}
|
||||
|
@@ -5,7 +5,8 @@
|
||||
#include <QTime>
|
||||
|
||||
template <class Key, class T> class QMap;
|
||||
class QSettings;
|
||||
|
||||
class ZeiterfassungSettings;
|
||||
|
||||
namespace Ui { class KontierungDialog; }
|
||||
|
||||
@@ -14,7 +15,7 @@ class KontierungDialog : public QDialog
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit KontierungDialog(const QMap<QString, QString> &projekte, const QSettings &settings,
|
||||
explicit KontierungDialog(const QMap<QString, QString> &projekte, const ZeiterfassungSettings &settings,
|
||||
QWidget *parent = 0);
|
||||
~KontierungDialog();
|
||||
|
||||
|
37
main.cpp
37
main.cpp
@@ -1,10 +1,10 @@
|
||||
#include <QApplication>
|
||||
#include <QSplashScreen>
|
||||
#include <QPixmap>
|
||||
#include <QSettings>
|
||||
#include <QInputDialog>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "zeiterfassungsettings.h"
|
||||
#include "zeiterfassung.h"
|
||||
#include "eventloopwithstatus.h"
|
||||
#include "dialogs/authenticationdialog.h"
|
||||
@@ -36,22 +36,11 @@ int main(int argc, char *argv[])
|
||||
splashScreen.showMessage(QObject::tr("Loading settings..."));
|
||||
splashScreen.show();
|
||||
|
||||
QSettings settings;
|
||||
|
||||
if(settings.value("url").isNull())
|
||||
{
|
||||
bool ok;
|
||||
auto url = QInputDialog::getText(&splashScreen, QObject::tr("Base url"),
|
||||
QObject::tr("Please enter the base url to the Zeiterfassung:"),
|
||||
QLineEdit::Normal, QString(), &ok);
|
||||
if(!ok)
|
||||
return -1;
|
||||
settings.setValue("url", url);
|
||||
}
|
||||
ZeiterfassungSettings settings(&app);
|
||||
|
||||
splashScreen.showMessage(QObject::tr("Loading login page..."));
|
||||
|
||||
Zeiterfassung erfassung(settings.value("url").toString());
|
||||
Zeiterfassung erfassung(settings.url(), &app);
|
||||
|
||||
{
|
||||
EventLoopWithStatus eventLoop;
|
||||
@@ -69,10 +58,10 @@ int main(int argc, char *argv[])
|
||||
|
||||
auto url = QInputDialog::getText(&splashScreen, QObject::tr("Base url"),
|
||||
QObject::tr("Please enter the base url to the Zeiterfassung:"),
|
||||
QLineEdit::Normal, settings.value("url").toString(), &ok);
|
||||
QLineEdit::Normal, settings.url(), &ok);
|
||||
if(!ok)
|
||||
return -1;
|
||||
settings.setValue("url", url);
|
||||
settings.setUrl(url);
|
||||
erfassung.setUrl(url);
|
||||
goto again1;
|
||||
}
|
||||
@@ -80,13 +69,13 @@ int main(int argc, char *argv[])
|
||||
|
||||
splashScreen.showMessage(QObject::tr("Authenticating..."));
|
||||
|
||||
if(settings.value("username").isNull() || settings.value("password").isNull())
|
||||
if(settings.username().isNull() || settings.password().isNull())
|
||||
{
|
||||
AuthenticationDialog dialog(&splashScreen);
|
||||
if(dialog.exec() != QDialog::Accepted)
|
||||
return -1;
|
||||
settings.setValue("username", dialog.username());
|
||||
settings.setValue("password", dialog.password());
|
||||
settings.setUsername(dialog.username());
|
||||
settings.setPassword(dialog.password());
|
||||
}
|
||||
|
||||
{
|
||||
@@ -94,7 +83,7 @@ int main(int argc, char *argv[])
|
||||
QObject::connect(&erfassung, &Zeiterfassung::loginFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
||||
|
||||
again2:
|
||||
erfassung.doLogin(settings.value("username").toString(), settings.value("password").toString());
|
||||
erfassung.doLogin(settings.username(), settings.password());
|
||||
eventLoop.exec();
|
||||
|
||||
if(!eventLoop.success())
|
||||
@@ -103,12 +92,12 @@ int main(int argc, char *argv[])
|
||||
QObject::tr("The Zeiterfassung authentication was not successful:\n\n%0").arg(eventLoop.message()));
|
||||
|
||||
AuthenticationDialog dialog(&splashScreen);
|
||||
dialog.setUsername(settings.value("username").toString());
|
||||
dialog.setPassword(settings.value("password").toString());
|
||||
dialog.setUsername(settings.username());
|
||||
dialog.setPassword(settings.password());
|
||||
if(dialog.exec() != QDialog::Accepted)
|
||||
return -1;
|
||||
settings.setValue("username", dialog.username());
|
||||
settings.setValue("password", dialog.password());
|
||||
settings.setUsername(dialog.username());
|
||||
settings.setPassword(dialog.password());
|
||||
|
||||
goto again2;
|
||||
}
|
||||
|
@@ -4,7 +4,6 @@
|
||||
#include <QUrl>
|
||||
#include <QLineEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QSettings>
|
||||
#include <QStandardItem>
|
||||
#include <QStringBuilder>
|
||||
#include <QMenu>
|
||||
@@ -15,6 +14,7 @@
|
||||
#include <QRegularExpression>
|
||||
#include <QDebug>
|
||||
|
||||
#include "zeiterfassungsettings.h"
|
||||
#include "eventloopwithstatus.h"
|
||||
#include "dialogs/aboutmedialog.h"
|
||||
#include "dialogs/buchungdialog.h"
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "models/buchungenmodel.h"
|
||||
#include "models/kontierungenmodel.h"
|
||||
|
||||
MainWindow::MainWindow(QSettings &settings, Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, QWidget *parent) :
|
||||
MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow),
|
||||
m_settings(settings),
|
||||
@@ -522,10 +522,10 @@ void MainWindow::contextMenuKontierung(const QPoint &pos)
|
||||
ui->pushButtonEnd->setEnabled(false);
|
||||
ui->treeViewKontierungen->setEnabled(false);
|
||||
|
||||
addPreferedEntry("projekte", dialog.getProjekt());
|
||||
addPreferedEntry("subprojekte", dialog.getSubprojekt());
|
||||
addPreferedEntry("workpackages", dialog.getWorkpackage());
|
||||
addPreferedEntry("texte", dialog.getText());
|
||||
m_settings.prependProjekt(dialog.getProjekt());
|
||||
m_settings.prependSubprojekt(dialog.getSubprojekt());
|
||||
m_settings.prependWorkpackage(dialog.getWorkpackage());
|
||||
m_settings.prependText(dialog.getText());
|
||||
|
||||
clearStrips();
|
||||
|
||||
@@ -639,10 +639,10 @@ void MainWindow::contextMenuKontierung(const QPoint &pos)
|
||||
ui->pushButtonEnd->setEnabled(false);
|
||||
ui->treeViewKontierungen->setEnabled(false);
|
||||
|
||||
addPreferedEntry("projekte", dialog.getProjekt());
|
||||
addPreferedEntry("subprojekte", dialog.getSubprojekt());
|
||||
addPreferedEntry("workpackages", dialog.getWorkpackage());
|
||||
addPreferedEntry("texte", dialog.getText());
|
||||
m_settings.prependProjekt(dialog.getProjekt());
|
||||
m_settings.prependSubprojekt(dialog.getSubprojekt());
|
||||
m_settings.prependWorkpackage(dialog.getWorkpackage());
|
||||
m_settings.prependText(dialog.getText());
|
||||
|
||||
clearStrips();
|
||||
|
||||
@@ -745,10 +745,10 @@ void MainWindow::pushButtonStartPressed()
|
||||
return;
|
||||
}
|
||||
|
||||
addPreferedEntry("projekte", ui->comboBoxProjekt->currentData().toString());
|
||||
addPreferedEntry("subprojekte", ui->comboBoxSubprojekt->currentText());
|
||||
addPreferedEntry("workpackages", ui->comboBoxWorkpackage->currentText());
|
||||
addPreferedEntry("texte", ui->comboBoxText->currentText());
|
||||
m_settings.prependProjekt(ui->comboBoxProjekt->currentData().toString());
|
||||
m_settings.prependSubprojekt(ui->comboBoxSubprojekt->currentText());
|
||||
m_settings.prependWorkpackage(ui->comboBoxWorkpackage->currentText());
|
||||
m_settings.prependText(ui->comboBoxText->currentText());
|
||||
|
||||
updateComboboxes();
|
||||
|
||||
@@ -802,17 +802,6 @@ void MainWindow::pushButtonEndPressed()
|
||||
refresh();
|
||||
}
|
||||
|
||||
void MainWindow::addPreferedEntry(const QString &name, const QString &value)
|
||||
{
|
||||
if(value.trimmed().isEmpty())
|
||||
return;
|
||||
|
||||
QStringList entries = m_settings.value(name, QStringList()).toStringList();
|
||||
entries.removeAll(value);
|
||||
entries.prepend(value);
|
||||
m_settings.setValue(name, entries);
|
||||
}
|
||||
|
||||
void MainWindow::validateEntries()
|
||||
{
|
||||
ui->timeEditTime->setMinimumTime(QTime(0, 0));
|
||||
@@ -1082,7 +1071,7 @@ void MainWindow::updateComboboxes()
|
||||
ui->comboBoxProjekt->clear();
|
||||
|
||||
{
|
||||
auto preferedProjekte = m_settings.value("projekte", QStringList()).toStringList();
|
||||
auto preferedProjekte = m_settings.projekte();
|
||||
|
||||
for(const auto &preferedProjekt : preferedProjekte)
|
||||
{
|
||||
@@ -1108,7 +1097,7 @@ void MainWindow::updateComboboxes()
|
||||
ui->comboBoxSubprojekt->clear();
|
||||
|
||||
{
|
||||
auto subprojekte = m_settings.value("subprojekte", QStringList()).toStringList();
|
||||
auto subprojekte = m_settings.subprojekte();
|
||||
for(const auto &subprojekt : subprojekte)
|
||||
ui->comboBoxSubprojekt->addItem(subprojekt);
|
||||
if(subprojekte.count())
|
||||
@@ -1118,7 +1107,7 @@ void MainWindow::updateComboboxes()
|
||||
ui->comboBoxWorkpackage->clear();
|
||||
|
||||
{
|
||||
auto workpackages = m_settings.value("workpackages", QStringList()).toStringList();
|
||||
auto workpackages = m_settings.workpackages();
|
||||
for(const auto &workpackage : workpackages)
|
||||
ui->comboBoxWorkpackage->addItem(workpackage);
|
||||
if(workpackages.count())
|
||||
@@ -1128,7 +1117,7 @@ void MainWindow::updateComboboxes()
|
||||
ui->comboBoxText->clear();
|
||||
|
||||
{
|
||||
auto texte = m_settings.value("texte", QStringList()).toStringList();
|
||||
auto texte = m_settings.texte();
|
||||
for(const auto &text : texte)
|
||||
ui->comboBoxText->addItem(text);
|
||||
if(texte.count())
|
||||
|
@@ -6,10 +6,10 @@
|
||||
|
||||
#include "zeiterfassung.h"
|
||||
|
||||
class QSettings;
|
||||
class QLabel;
|
||||
|
||||
namespace Ui { class MainWindow; }
|
||||
class ZeiterfassungSettings;
|
||||
class BuchungenModel;
|
||||
class KontierungenModel;
|
||||
|
||||
@@ -18,7 +18,7 @@ class MainWindow : public QMainWindow
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(QSettings &settings, Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, QWidget *parent = 0);
|
||||
explicit MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, QWidget *parent = 0);
|
||||
~MainWindow();
|
||||
|
||||
static int timeToSeconds(const QTime &time);
|
||||
@@ -40,7 +40,6 @@ private Q_SLOTS:
|
||||
void pushButtonEndPressed();
|
||||
|
||||
private:
|
||||
void addPreferedEntry(const QString &name, const QString &value);
|
||||
void validateEntries();
|
||||
void updateComboboxes();
|
||||
void updateAuswertung();
|
||||
@@ -49,7 +48,7 @@ private:
|
||||
QString buildProjektString(const QString &projekt);
|
||||
|
||||
Ui::MainWindow *ui;
|
||||
QSettings &m_settings;
|
||||
ZeiterfassungSettings &m_settings;
|
||||
Zeiterfassung &m_erfassung;
|
||||
const Zeiterfassung::UserInfo &m_userInfo;
|
||||
QMap<QString, QString> m_projekte;
|
||||
|
@@ -27,7 +27,8 @@ SOURCES += main.cpp \
|
||||
models/kontierungenmodel.cpp \
|
||||
eventloopwithstatus.cpp \
|
||||
strips/buchungstrip.cpp \
|
||||
strips/kontierungstrip.cpp
|
||||
strips/kontierungstrip.cpp \
|
||||
zeiterfassungsettings.cpp
|
||||
|
||||
HEADERS += \
|
||||
zeiterfassung.h \
|
||||
@@ -40,7 +41,8 @@ HEADERS += \
|
||||
models/kontierungenmodel.h \
|
||||
eventloopwithstatus.h \
|
||||
strips/buchungstrip.h \
|
||||
strips/kontierungstrip.h
|
||||
strips/kontierungstrip.h \
|
||||
zeiterfassungsettings.h
|
||||
|
||||
RESOURCES += \
|
||||
resources.qrc
|
||||
|
Reference in New Issue
Block a user