From 92f7200314e16febbfd16c57a6f38a33df3b124f Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Sat, 2 Dec 2017 19:11:49 +0100 Subject: [PATCH] Projekte are now stored in a QMap --- dialogs/kontierungdialog.cpp | 7 ++++--- dialogs/kontierungdialog.h | 2 +- mainwindow.cpp | 19 ++++++++++++------- mainwindow.h | 3 ++- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/dialogs/kontierungdialog.cpp b/dialogs/kontierungdialog.cpp index 8899131..c9bdc91 100644 --- a/dialogs/kontierungdialog.cpp +++ b/dialogs/kontierungdialog.cpp @@ -1,12 +1,13 @@ #include "kontierungdialog.h" #include "ui_kontierungdialog.h" +#include #include #include #include KontierungDialog::KontierungDialog(Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, - const QVector &projekte, QWidget *parent) : + const QMap &projekte, QWidget *parent) : QDialog(parent), ui(new Ui::KontierungDialog), m_erfassung(erfassung), @@ -14,8 +15,8 @@ KontierungDialog::KontierungDialog(Zeiterfassung &erfassung, const Zeiterfassung { ui->setupUi(this); - for(const auto& projekt : projekte) - ui->comboBoxProjekt->addItem(projekt.label % " (" % projekt.value % ')', projekt.value); + for(auto iter = projekte.constBegin(); iter != projekte.constEnd(); iter++) + ui->comboBoxProjekt->addItem(iter.value() % " (" % iter.key() % ')', iter.key()); } KontierungDialog::~KontierungDialog() diff --git a/dialogs/kontierungdialog.h b/dialogs/kontierungdialog.h index 5ed1ec4..717fa47 100644 --- a/dialogs/kontierungdialog.h +++ b/dialogs/kontierungdialog.h @@ -13,7 +13,7 @@ class KontierungDialog : public QDialog public: explicit KontierungDialog(Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, - const QVector &projekte, QWidget *parent = 0); + const QMap &projekte, QWidget *parent = 0); ~KontierungDialog(); QTime getTime() const; diff --git a/mainwindow.cpp b/mainwindow.cpp index 9dfac35..4596a8c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -192,7 +192,10 @@ void MainWindow::getProjekteFinished(bool success, const QString &message, const return; } - m_projekte = projekte; + m_projekte.clear(); + + for(const auto &projekt : projekte) + m_projekte.insert(projekt.value, projekt.label); updateComboboxes(); } @@ -1086,11 +1089,13 @@ void MainWindow::updateComboboxes() for(const auto &preferedProjekt : preferedProjekte) { - for(const auto &projekt : m_projekte) + if(!m_projekte.contains(preferedProjekt)) { - if(preferedProjekt == projekt.value) - ui->comboBoxProjekt->addItem(projekt.label % " (" % projekt.value % ')', projekt.value); + qWarning() << "cannot find projekt" << preferedProjekt; + continue; } + + ui->comboBoxProjekt->addItem(m_projekte.value(preferedProjekt) % " (" % preferedProjekt % ')', preferedProjekt); } if(preferedProjekte.count()) @@ -1102,10 +1107,10 @@ void MainWindow::updateComboboxes() item->setFlags(item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled)); } - for(const auto &projekt : m_projekte) + for(auto iter = m_projekte.constBegin(); iter != m_projekte.constEnd(); iter++) { - if(!preferedProjekte.contains(projekt.value)) - ui->comboBoxProjekt->addItem(projekt.label % " (" % projekt.value % ')', projekt.value); + if(!preferedProjekte.contains(iter.key())) + ui->comboBoxProjekt->addItem(iter.value() % " (" % iter.key() % ')', iter.key()); } } diff --git a/mainwindow.h b/mainwindow.h index 9653870..a8f8140 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -2,6 +2,7 @@ #define MAINWINDOW_H #include +#include #include "zeiterfassung.h" @@ -48,7 +49,7 @@ private: QSettings &m_settings; Zeiterfassung &m_erfassung; const Zeiterfassung::UserInfo &m_userInfo; - QVector m_projekte; + QMap m_projekte; QByteArray m_auswertung; QLabel *m_auswertungLabel;