From be822f9e39138ba4cda9a0d9eee4a946f87f597b Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 10 Apr 2019 22:01:33 +0200 Subject: [PATCH] Using new projects model --- advancedviewdialog.cpp | 7 ++-- dialogs/timeassignmentdialog.cpp | 47 ++++------------------ dialogs/timeassignmentdialog.h | 12 ++---- dialogs/timeassignmentdialog.ui | 57 ++++++++------------------- translations/advancedviewplugin_de.ts | 29 +++++--------- translations/advancedviewplugin_en.ts | 29 +++++--------- 6 files changed, 48 insertions(+), 133 deletions(-) diff --git a/advancedviewdialog.cpp b/advancedviewdialog.cpp index 8cdd2ec..295542b 100644 --- a/advancedviewdialog.cpp +++ b/advancedviewdialog.cpp @@ -164,7 +164,7 @@ void AdvancedViewDialog::contextMenuTimeAssignment(const QPoint &pos) auto selectedAction = menu.exec(ui->timeAssignmentsView->viewport()->mapToGlobal(pos)); if(selectedAction == createAction) { - TimeAssignmentDialog dialog(m_stripsWidget.mainWindow().projects(), + TimeAssignmentDialog dialog(m_stripsWidget.mainWindow().projectsModel(), m_stripsWidget.mainWindow().settings(), this); again2: if(dialog.exec() == QDialog::Accepted) @@ -207,12 +207,11 @@ void AdvancedViewDialog::contextMenuTimeAssignment(const QPoint &pos) auto selectedAction = menu.exec(ui->timeAssignmentsView->viewport()->mapToGlobal(pos)); if(selectedAction == editAction) { - TimeAssignmentDialog dialog(m_stripsWidget.mainWindow().projects(), + TimeAssignmentDialog dialog(m_stripsWidget.mainWindow().projectsModel(), m_stripsWidget.mainWindow().settings(), this); dialog.setTime(timeAssignment.time); dialog.setTimespan(timeAssignment.timespan); - dialog.setProject(timeAssignment.project); - dialog.setWorkpackage(timeAssignment.workpackage); + dialog.setProject(timeAssignment.project, timeAssignment.workpackage); dialog.setText(timeAssignment.text); again1: if(dialog.exec() == QDialog::Accepted) diff --git a/dialogs/timeassignmentdialog.cpp b/dialogs/timeassignmentdialog.cpp index dbfe091..10d61b5 100644 --- a/dialogs/timeassignmentdialog.cpp +++ b/dialogs/timeassignmentdialog.cpp @@ -5,40 +5,16 @@ #include #include +#include "projectsmodel.h" #include "zeiterfassungsettings.h" -TimeAssignmentDialog::TimeAssignmentDialog(const QMap &projects, const ZeiterfassungSettings &settings, - QWidget *parent) : +TimeAssignmentDialog::TimeAssignmentDialog(ProjectsModel &projectsModel, const ZeiterfassungSettings &settings, QWidget *parent) : ZeiterfassungDialog(parent), ui(new Ui::TimeAssignmentDialog) { ui->setupUi(this); - { - for(const auto &preferedProject : settings.projects()) - { - if(!projects.contains(preferedProject)) - { - qWarning() << "cannot find project" << preferedProject; - continue; - } - - ui->comboBoxProject->addItem(tr("%0 (%1)").arg(projects.value(preferedProject)).arg(preferedProject), preferedProject); - } - - if(settings.projects().count()) - ui->comboBoxProject->insertSeparator(ui->comboBoxProject->count()); - - for(auto iter = projects.constBegin(); iter != projects.constEnd(); iter++) - { - if(!settings.projects().contains(iter.key())) - ui->comboBoxProject->addItem(tr("%0 (%1)").arg(iter.value()).arg(iter.key()), iter.key()); - } - } - - for(const auto &workpackage : settings.workpackages()) - ui->comboBoxWorkpackage->addItem(workpackage); - ui->comboBoxWorkpackage->clearEditText(); + ui->comboBoxProject->setModel(&projectsModel); for(const auto &text : settings.texts()) ui->comboBoxText->addItem(text); @@ -72,26 +48,17 @@ void TimeAssignmentDialog::setTimespan(const QTime ×pan) QString TimeAssignmentDialog::getProject() const { - return ui->comboBoxProject->currentData().toString(); -} - -void TimeAssignmentDialog::setProject(const QString &project) -{ - auto index = ui->comboBoxProject->findData(project); - if(index >= 0) - ui->comboBoxProject->setCurrentIndex(index); - else - qWarning() << "could not find project" << project; + return ui->comboBoxProject->currentData(Qt::UserRole).toString(); } QString TimeAssignmentDialog::getWorkpackage() const { - return ui->comboBoxWorkpackage->currentText(); + return ui->comboBoxProject->currentData(Qt::EditRole).toString(); } -void TimeAssignmentDialog::setWorkpackage(const QString &workpackage) +void TimeAssignmentDialog::setProject(const QString &project, const QString &workpackage) { - ui->comboBoxWorkpackage->setCurrentText(workpackage); + qCritical() << "not implemented"; } QString TimeAssignmentDialog::getText() const diff --git a/dialogs/timeassignmentdialog.h b/dialogs/timeassignmentdialog.h index 8d1161a..81675c5 100644 --- a/dialogs/timeassignmentdialog.h +++ b/dialogs/timeassignmentdialog.h @@ -1,11 +1,8 @@ #pragma once -#include - #include "zeiterfassungdialog.h" -template class QMap; - +class ProjectsModel; class ZeiterfassungSettings; namespace Ui { class TimeAssignmentDialog; } @@ -15,8 +12,7 @@ class TimeAssignmentDialog : public ZeiterfassungDialog Q_OBJECT public: - explicit TimeAssignmentDialog(const QMap &projects, const ZeiterfassungSettings &settings, - QWidget *parent = Q_NULLPTR); + explicit TimeAssignmentDialog(ProjectsModel &projectsModel, const ZeiterfassungSettings &settings, QWidget *parent = Q_NULLPTR); ~TimeAssignmentDialog(); QTime getTime() const; @@ -26,10 +22,8 @@ public: void setTimespan(const QTime ×pan); QString getProject() const; - void setProject(const QString &project); - QString getWorkpackage() const; - void setWorkpackage(const QString &workpackage); + void setProject(const QString &project, const QString &workpackage); QString getText() const; void setText(const QString &text); diff --git a/dialogs/timeassignmentdialog.ui b/dialogs/timeassignmentdialog.ui index 14d8dec..f9956e6 100644 --- a/dialogs/timeassignmentdialog.ui +++ b/dialogs/timeassignmentdialog.ui @@ -10,12 +10,6 @@ 307 - - - 16777215 - 0 - - Time assignment @@ -44,6 +38,13 @@ + + + + HH:mm:ss + + + @@ -54,6 +55,13 @@ + + + + HH:mm:ss + + + @@ -64,48 +72,17 @@ - - - - Workpackage: - - + + - + Text: - - - - HH:mm:ss - - - - - - - HH:mm:ss - - - - - - - - - true - - - QComboBox::NoInsert - - - - true diff --git a/translations/advancedviewplugin_de.ts b/translations/advancedviewplugin_de.ts index fa5e9c8..b294307 100644 --- a/translations/advancedviewplugin_de.ts +++ b/translations/advancedviewplugin_de.ts @@ -74,17 +74,17 @@ Kontierung löschen - + Could not edit time assignment! Konnte Kontierung nicht bearbeiten! - + Do you really want to delete the time assignment? Möchten Sie die Kontierung wirklich löschen? - + Could not delete time assignment! Konnte Kontierung nicht löschen! @@ -157,42 +157,31 @@ TimeAssignmentDialog - - + + Time assignment Kontierung - + Time: Zeit: - + Timespan: Zeitspanne: - + Project: Projekt: - - Workpackage: - Arbeitspaket: - - - + Text: Text: - - - - %0 (%1) - %0 (%1) - TimeAssignmentsModel diff --git a/translations/advancedviewplugin_en.ts b/translations/advancedviewplugin_en.ts index 60720e2..d440373 100644 --- a/translations/advancedviewplugin_en.ts +++ b/translations/advancedviewplugin_en.ts @@ -74,17 +74,17 @@ - + Could not edit time assignment! - + Do you really want to delete the time assignment? - + Could not delete time assignment! @@ -157,42 +157,31 @@ TimeAssignmentDialog - - + + Time assignment - + Time: - + Timespan: - + Project: - - Workpackage: - - - - + Text: - - - - %0 (%1) - - TimeAssignmentsModel