Using new projects model

This commit is contained in:
2019-04-10 22:01:33 +02:00
parent 8cde992369
commit be822f9e39
6 changed files with 48 additions and 133 deletions

View File

@@ -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)

View File

@@ -5,40 +5,16 @@
#include <QStringBuilder>
#include <QDebug>
#include "projectsmodel.h"
#include "zeiterfassungsettings.h"
TimeAssignmentDialog::TimeAssignmentDialog(const QMap<QString, QString> &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 &timespan)
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

View File

@@ -1,11 +1,8 @@
#pragma once
#include <QTime>
#include "zeiterfassungdialog.h"
template <class Key, class T> 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<QString, QString> &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 &timespan);
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);

View File

@@ -10,12 +10,6 @@
<height>307</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Time assignment</string>
</property>
@@ -44,6 +38,13 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QTimeEdit" name="timeEditTime">
<property name="displayFormat">
<string notr="true">HH:mm:ss</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelTimespan">
<property name="text">
@@ -54,6 +55,13 @@
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QTimeEdit" name="timeEditTimespan">
<property name="displayFormat">
<string notr="true">HH:mm:ss</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="labelProject">
<property name="text">
@@ -64,48 +72,17 @@
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="labelWorkpackage">
<property name="text">
<string>Workpackage:</string>
</property>
</widget>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxProject"/>
</item>
<item row="4" column="0">
<item row="3" column="0">
<widget class="QLabel" name="labelText">
<property name="text">
<string>Text:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QTimeEdit" name="timeEditTime">
<property name="displayFormat">
<string notr="true">HH:mm:ss</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QTimeEdit" name="timeEditTimespan">
<property name="displayFormat">
<string notr="true">HH:mm:ss</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxProject"/>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxWorkpackage">
<property name="editable">
<bool>true</bool>
</property>
<property name="insertPolicy">
<enum>QComboBox::NoInsert</enum>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="comboBoxText">
<property name="editable">
<bool>true</bool>

View File

@@ -74,17 +74,17 @@
<translation>Kontierung löschen</translation>
</message>
<message>
<location filename="../advancedviewdialog.cpp" line="239"/>
<location filename="../advancedviewdialog.cpp" line="238"/>
<source>Could not edit time assignment!</source>
<translation>Konnte Kontierung nicht bearbeiten!</translation>
</message>
<message>
<location filename="../advancedviewdialog.cpp" line="247"/>
<location filename="../advancedviewdialog.cpp" line="246"/>
<source>Do you really want to delete the time assignment?</source>
<translation>Möchten Sie die Kontierung wirklich löschen?</translation>
</message>
<message>
<location filename="../advancedviewdialog.cpp" line="261"/>
<location filename="../advancedviewdialog.cpp" line="260"/>
<source>Could not delete time assignment!</source>
<translation>Konnte Kontierung nicht löschen!</translation>
</message>
@@ -157,42 +157,31 @@
<context>
<name>TimeAssignmentDialog</name>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="20"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="31"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="14"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="25"/>
<source>Time assignment</source>
<translation>Kontierung</translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="40"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="34"/>
<source>Time:</source>
<translation>Zeit:</translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="50"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="51"/>
<source>Timespan:</source>
<translation>Zeitspanne:</translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="60"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="68"/>
<source>Project:</source>
<translation>Projekt:</translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="70"/>
<source>Workpackage:</source>
<translation>Arbeitspaket:</translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="77"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="81"/>
<source>Text:</source>
<translation>Text:</translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.cpp" line="26"/>
<location filename="../dialogs/timeassignmentdialog.cpp" line="35"/>
<source>%0 (%1)</source>
<translation>%0 (%1)</translation>
</message>
</context>
<context>
<name>TimeAssignmentsModel</name>

View File

@@ -74,17 +74,17 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../advancedviewdialog.cpp" line="239"/>
<location filename="../advancedviewdialog.cpp" line="238"/>
<source>Could not edit time assignment!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../advancedviewdialog.cpp" line="247"/>
<location filename="../advancedviewdialog.cpp" line="246"/>
<source>Do you really want to delete the time assignment?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../advancedviewdialog.cpp" line="261"/>
<location filename="../advancedviewdialog.cpp" line="260"/>
<source>Could not delete time assignment!</source>
<translation type="unfinished"></translation>
</message>
@@ -157,42 +157,31 @@
<context>
<name>TimeAssignmentDialog</name>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="20"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="31"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="14"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="25"/>
<source>Time assignment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="40"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="34"/>
<source>Time:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="50"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="51"/>
<source>Timespan:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="60"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="68"/>
<source>Project:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="70"/>
<source>Workpackage:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.ui" line="77"/>
<location filename="../dialogs/timeassignmentdialog.ui" line="81"/>
<source>Text:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/timeassignmentdialog.cpp" line="26"/>
<location filename="../dialogs/timeassignmentdialog.cpp" line="35"/>
<source>%0 (%1)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TimeAssignmentsModel</name>