diff --git a/plugins/absenceplugin/absencedialog.cpp b/plugins/absenceplugin/absencedialog.cpp index 5b92c91..a193d00 100644 --- a/plugins/absenceplugin/absencedialog.cpp +++ b/plugins/absenceplugin/absencedialog.cpp @@ -2,6 +2,8 @@ #include "ui_absencedialog.h" #include +#include +#include #include "absencesmodel.h" @@ -19,10 +21,20 @@ AbsenceDialog::AbsenceDialog(int userId, const QDate &date, ZeiterfassungApi &er ui->labelTitle->setText(tr("Absences for %0").arg(date.toString(tr("dd.MM.yyyy")))); - ui->treeView->setModel(new AbsencesModel(userId, date, erfassung, this)); + m_model = new AbsencesModel(userId, date, erfassung, this); + connect(m_model, &AbsencesModel::errorOccured, this, &AbsenceDialog::errorOccured); + + ui->treeView->setModel(m_model); + ui->treeView->setEnabled(m_model->enabled()); + connect(m_model, &AbsencesModel::enabledChanged, ui->treeView, &QWidget::setEnabled); } AbsenceDialog::~AbsenceDialog() { delete ui; } + +void AbsenceDialog::errorOccured(const QString &message) +{ + QMessageBox::warning(this, tr("Could not load absences!"), tr("Could not load absences!") % "\n\n" % message); +} diff --git a/plugins/absenceplugin/absencedialog.h b/plugins/absenceplugin/absencedialog.h index 0f2b51a..b93cbfc 100644 --- a/plugins/absenceplugin/absencedialog.h +++ b/plugins/absenceplugin/absencedialog.h @@ -6,6 +6,7 @@ class QDate; class ZeiterfassungApi; +class AbsencesModel; namespace Ui { class AbsenceDialog; } class AbsenceDialog : public QDialog @@ -16,6 +17,11 @@ public: explicit AbsenceDialog(int userId, const QDate &date, ZeiterfassungApi &erfassung, QWidget *parent = 0); ~AbsenceDialog(); +private Q_SLOTS: + void errorOccured(const QString &message); + private: Ui::AbsenceDialog *ui; + + AbsencesModel *m_model; }; diff --git a/plugins/absenceplugin/translations/absenceplugin_de.ts b/plugins/absenceplugin/translations/absenceplugin_de.ts index a2ffce7..8f0589b 100644 --- a/plugins/absenceplugin/translations/absenceplugin_de.ts +++ b/plugins/absenceplugin/translations/absenceplugin_de.ts @@ -9,22 +9,75 @@ Abwesenheiten - + Absences for %0 Abwesenheiten für %0 - + dd.MM.yyyy dd.MM.yyyy + + + Could not load absences! + Konnte Abwesenheiten nicht laden! + AbsenceWidget - + Absence Abwesenheit + + AbsencesModel + + + altRepresentative + + + + + compositeId + + + + + end + + + + + hourCategory + + + + + openMarking + + + + + persNr + + + + + representative + + + + + start + + + + + text + + + diff --git a/plugins/absenceplugin/translations/absenceplugin_en.ts b/plugins/absenceplugin/translations/absenceplugin_en.ts index a6f27b3..b02f346 100644 --- a/plugins/absenceplugin/translations/absenceplugin_en.ts +++ b/plugins/absenceplugin/translations/absenceplugin_en.ts @@ -9,22 +9,75 @@ - + Absences for %0 - + dd.MM.yyyy + + + Could not load absences! + + AbsenceWidget - + Absence + + AbsencesModel + + + altRepresentative + + + + + compositeId + + + + + end + + + + + hourCategory + + + + + openMarking + + + + + persNr + + + + + representative + + + + + start + + + + + text + + +