Time will not be updated anymore after manual change

This commit is contained in:
0xFEEDC0DE64
2018-02-28 18:45:57 +01:00
parent 0b1fa67af4
commit d8e86051d2

View File

@@ -13,6 +13,7 @@
#include <QDesktopServices> #include <QDesktopServices>
#include <QRegularExpression> #include <QRegularExpression>
#include <QTimerEvent> #include <QTimerEvent>
#include <QSignalBlocker>
#include <QDebug> #include <QDebug>
#include "zeiterfassungapi.h" #include "zeiterfassungapi.h"
@@ -60,6 +61,13 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
connect(ui->pushButtonPrev, &QAbstractButton::pressed, this, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(-1)); }); connect(ui->pushButtonPrev, &QAbstractButton::pressed, this, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(-1)); });
connect(ui->pushButtonNext, &QAbstractButton::pressed, this, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(1)); }); connect(ui->pushButtonNext, &QAbstractButton::pressed, this, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(1)); });
connect(ui->timeEditTime, &QTimeEdit::timeChanged, this, [&](){
if(m_timerId != -1)
{
killTimer(m_timerId);
m_timerId = -1;
}
});
ui->timeEditTime->setTime(timeNormalise(QTime::currentTime())); ui->timeEditTime->setTime(timeNormalise(QTime::currentTime()));
connect(ui->pushButtonNow, &QAbstractButton::pressed, this, &MainWindow::pushButtonNowPressed); connect(ui->pushButtonNow, &QAbstractButton::pressed, this, &MainWindow::pushButtonNowPressed);
@@ -162,6 +170,7 @@ void MainWindow::timerEvent(QTimerEvent *event)
{ {
if(event->timerId() == m_timerId) if(event->timerId() == m_timerId)
{ {
QSignalBlocker blocker(ui->timeEditTime);
ui->timeEditTime->setTime(timeNormalise(QTime::currentTime())); ui->timeEditTime->setTime(timeNormalise(QTime::currentTime()));
} }
else else
@@ -194,7 +203,11 @@ void MainWindow::pushButtonNowPressed()
void MainWindow::pushButtonStartPressed() void MainWindow::pushButtonStartPressed()
{ {
auto bookingsChanged = false; if(m_timerId != -1)
{
killTimer(m_timerId);
m_timerId = -1;
}
if(m_currentStripWidget->bookings().rbegin() == m_currentStripWidget->bookings().rend() || if(m_currentStripWidget->bookings().rbegin() == m_currentStripWidget->bookings().rend() ||
m_currentStripWidget->bookings().rbegin()->type == QStringLiteral("G")) m_currentStripWidget->bookings().rbegin()->type == QStringLiteral("G"))
@@ -209,12 +222,11 @@ void MainWindow::pushButtonStartPressed()
{ {
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message()); QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message());
m_currentStripWidget->refresh(); m_currentStripWidget->refresh();
return; goto after;
} }
bookingsChanged = true;
} }
{
auto timeAssignmentTime = m_currentStripWidget->timeAssignmentTime(); auto timeAssignmentTime = m_currentStripWidget->timeAssignmentTime();
if(m_currentStripWidget->timeAssignments().rbegin() != m_currentStripWidget->timeAssignments().rend()) if(m_currentStripWidget->timeAssignments().rbegin() != m_currentStripWidget->timeAssignments().rend())
@@ -237,7 +249,7 @@ void MainWindow::pushButtonStartPressed()
{ {
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message()); QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message());
m_currentStripWidget->refresh(); m_currentStripWidget->refresh();
return; goto after;
} }
} }
} }
@@ -254,7 +266,8 @@ void MainWindow::pushButtonStartPressed()
{ {
QMessageBox::warning(this, tr("Could not create time assignment!"), tr("Could not create time assignment!") % "\n\n" % reply->message()); QMessageBox::warning(this, tr("Could not create time assignment!"), tr("Could not create time assignment!") % "\n\n" % reply->message());
m_currentStripWidget->refresh(); m_currentStripWidget->refresh();
return; goto after;
}
} }
} }
@@ -265,17 +278,22 @@ void MainWindow::pushButtonStartPressed()
updateComboboxes(); updateComboboxes();
if(bookingsChanged) //m_currentStripWidget->refresh();
{
m_currentStripWidget->refresh();
//refreshReport(); //refreshReport();
} Q_EMIT refreshEverything();
else
m_currentStripWidget->refreshTimeAssignments(); after:
m_timerId = startTimer(60000);
} }
void MainWindow::pushButtonEndPressed() void MainWindow::pushButtonEndPressed()
{ {
if(m_timerId != -1)
{
killTimer(m_timerId);
m_timerId = -1;
}
{ {
auto timeAssignment = *m_currentStripWidget->timeAssignments().rbegin(); auto timeAssignment = *m_currentStripWidget->timeAssignments().rbegin();
Q_ASSERT(timeAssignment.timespan == QTime(0, 0)); Q_ASSERT(timeAssignment.timespan == QTime(0, 0));
@@ -293,7 +311,7 @@ void MainWindow::pushButtonEndPressed()
{ {
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message()); QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message());
m_currentStripWidget->refresh(); m_currentStripWidget->refresh();
return; goto after;
} }
} }
@@ -308,12 +326,16 @@ void MainWindow::pushButtonEndPressed()
{ {
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message()); QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message());
m_currentStripWidget->refresh(); m_currentStripWidget->refresh();
return; goto after;
} }
} }
m_currentStripWidget->refresh(); //m_currentStripWidget->refresh();
//refreshReport(); //refreshReport();
Q_EMIT refreshEverything();
after:
m_timerId = startTimer(60000);
} }
void MainWindow::dateChangedSlot(const QDate &date) void MainWindow::dateChangedSlot(const QDate &date)