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;