diff --git a/mainwindow.cpp b/mainwindow.cpp index 5eea734..d4b9e8f 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -167,8 +167,7 @@ void MainWindow::getAuswertungFinished() ui->actionAuswertung->setEnabled(true); m_auswertung = m_getAuswertungReply->auswertung(); - auto urlaubsAnspruch = tr("???"); - auto gleitzeit = tr("???"); + auto urlaubsAnspruch = tr("n/a"); { static QRegularExpression regex(QStringLiteral("Urlaubsanspruch +([0-9]+\\.[0-9]+\\-?) +([0-9]+\\.[0-9]+\\-?)")); @@ -178,6 +177,9 @@ void MainWindow::getAuswertungFinished() else qWarning() << "Urlaubsanspruch not found"; } + + auto gleitzeit = tr("n/a"); + { static QRegularExpression regex(QStringLiteral("Gleitzeit +([0-9]+\\:[0-9]+\\-?) +([0-9]+\\:[0-9]+\\-?)")); auto match = regex.match(m_auswertung); @@ -441,6 +443,8 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos) void MainWindow::pushButtonStartPressed() { + auto bookingsChanged = false; + if(m_currentStripWidget->bookings().rbegin() == m_currentStripWidget->bookings().rend() || m_currentStripWidget->bookings().rbegin()->type == QStringLiteral("G")) { @@ -463,6 +467,8 @@ void MainWindow::pushButtonStartPressed() } reply->deleteLater(); + + bookingsChanged = true; } auto timeAssignmentTime = m_currentStripWidget->timeAssignmentTime(); @@ -527,7 +533,20 @@ void MainWindow::pushButtonStartPressed() updateComboboxes(); - m_currentStripWidget->refresh(); + if(bookingsChanged) + { + m_currentStripWidget->refresh(); + + refreshAuswertung(); + } + else + m_currentStripWidget->refreshTimeAssignments(); + + ui->actionToday->setEnabled(false); + ui->actionRefresh->setEnabled(false); + ui->dateEditDate->setReadOnly(true); + ui->pushButtonPrev->setEnabled(false); + ui->pushButtonNext->setEnabled(false); } void MainWindow::pushButtonEndPressed() @@ -583,6 +602,13 @@ void MainWindow::pushButtonEndPressed() } m_currentStripWidget->refresh(); + refreshAuswertung(); + + ui->actionToday->setEnabled(false); + ui->actionRefresh->setEnabled(false); + ui->dateEditDate->setReadOnly(true); + ui->pushButtonPrev->setEnabled(false); + ui->pushButtonNext->setEnabled(false); } void MainWindow::dateChanged(bool force) @@ -620,19 +646,8 @@ void MainWindow::dateChanged(bool force) } } - auto auswertungDate = QDate(ui->dateEditDate->date().year(), ui->dateEditDate->date().month(), 1); - if(force || m_auswertungDate != auswertungDate) - { - m_balanceLabel->setText(tr("%0: %1").arg(tr("Balance")).arg(tr("???"))); - m_holidaysLabel->setText(tr("%0: %1").arg(tr("Holidays")).arg(tr("???"))); - - ui->actionAuswertung->setEnabled(false); - m_auswertung.clear(); - - m_auswertungDate = auswertungDate; - m_getAuswertungReply = m_erfassung.doGetAuswertung(m_userInfo.userId, auswertungDate); - connect(m_getAuswertungReply, &ZeiterfassungReply::finished, this, &MainWindow::getAuswertungFinished); - } + if(force || m_auswertungDate != QDate(ui->dateEditDate->date().year(), ui->dateEditDate->date().month(), 1)) + refreshAuswertung(); if(std::any_of(std::begin(m_stripsWidgets), std::end(m_stripsWidgets), [](StripsWidget *stripsWidget) { return stripsWidget->refreshing(); @@ -710,12 +725,25 @@ void MainWindow::endEnabledChanged() auto startEnabled = m_currentStripWidget->startEnabled(); auto endEnabled = m_currentStripWidget->endEnabled(); - ui->timeEditTime->setEnabled(startEnabled ||endEnabled); + ui->timeEditTime->setEnabled(startEnabled || endEnabled); ui->pushButtonStart->setText(endEnabled ? tr("Switch") : tr("Start")); ui->pushButtonEnd->setEnabled(endEnabled); } +void MainWindow::refreshAuswertung() +{ + m_balanceLabel->setText(tr("%0: %1").arg(tr("Balance")).arg(tr("???"))); + m_holidaysLabel->setText(tr("%0: %1").arg(tr("Holidays")).arg(tr("???"))); + + ui->actionAuswertung->setEnabled(false); + m_auswertung.clear(); + + m_auswertungDate = QDate(ui->dateEditDate->date().year(), ui->dateEditDate->date().month(), 1); + m_getAuswertungReply = m_erfassung.doGetAuswertung(m_userInfo.userId, m_auswertungDate); + connect(m_getAuswertungReply, &ZeiterfassungReply::finished, this, &MainWindow::getAuswertungFinished); +} + void MainWindow::updateComboboxes() { ui->comboBoxProject->clear(); diff --git a/mainwindow.h b/mainwindow.h index b3485c3..df337ee 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -43,6 +43,7 @@ private Q_SLOTS: void endEnabledChanged(); private: + void refreshAuswertung(); void updateComboboxes(); Ui::MainWindow *ui; diff --git a/strips/bookingendstrip.ui b/strips/bookingendstrip.ui index f746c3a..e23a8bc 100644 --- a/strips/bookingendstrip.ui +++ b/strips/bookingendstrip.ui @@ -11,7 +11,7 @@ - #bookingEndStrip { background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #FF7F7F, stop:1 #BF6F6F); } + QLabel { color: black; } #bookingEndStrip { background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #FF7F7F, stop:1 #BF6F6F); } QFrame::WinPanel @@ -40,6 +40,8 @@ 12 + 75 + true @@ -63,6 +65,9 @@ 12 + + background-color: rgba(0,0,0,30); + END @@ -70,6 +75,9 @@ + + background-color: rgba(0,0,0,30); + 0123456 diff --git a/strips/bookingstartstrip.ui b/strips/bookingstartstrip.ui index 06838fb..f339de3 100644 --- a/strips/bookingstartstrip.ui +++ b/strips/bookingstartstrip.ui @@ -11,7 +11,7 @@ - #bookingStartStrip { background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #7FFF7F, stop:1 #6FBF6F); } + QLabel { color: black; } #bookingStartStrip { background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #7FFF7F, stop:1 #6FBF6F); } QFrame::WinPanel @@ -40,6 +40,8 @@ 12 + 75 + true @@ -63,6 +65,9 @@ 12 + + background-color: rgba(0,0,0,30); + START @@ -70,6 +75,9 @@ + + background-color: rgba(0,0,0,30); + 0123456 diff --git a/strips/timeassignmentstrip.ui b/strips/timeassignmentstrip.ui index e2afaa2..9cd79b1 100644 --- a/strips/timeassignmentstrip.ui +++ b/strips/timeassignmentstrip.ui @@ -7,11 +7,11 @@ 0 0 500 - 68 + 73 - #timeAssignmentStrip { background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #7FFFFF, stop:1 #6FBFBF); } + QLabel { color: black; } #timeAssignmentStrip { background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #7FFFFF, stop:1 #6FBFBF); } QFrame::WinPanel @@ -38,13 +38,15 @@ - 20 + 10 12 + 75 + true @@ -65,16 +67,23 @@ - 12 + 8 + + background-color: rgba(0,0,0,30); + - PROJECT 1 (12345) + PROJECT 1 +12345 + + background-color: rgba(0,0,0,30); + 0123456 @@ -95,6 +104,9 @@ 0 + + background-color: rgba(0,0,0,30); + Subproject @@ -108,6 +120,9 @@ 0 + + background-color: rgba(0,0,0,30); + Workpackage @@ -115,6 +130,9 @@ + + background-color: rgba(0,0,0,30); + Text diff --git a/stripswidget.cpp b/stripswidget.cpp index 5bfc042..b0cab31 100644 --- a/stripswidget.cpp +++ b/stripswidget.cpp @@ -534,7 +534,7 @@ void StripsWidget::invalidateValues() QString StripsWidget::buildProjectString(const QString &project) { if(m_projects.contains(project)) - return tr("%0 (%1)").arg(m_projects.value(project)).arg(project); + return m_projects.value(project) % "\n" % project; else { qWarning() << "could not find project" << project;