Fixed dateEdit and buttons being disabled
This commit is contained in:
1 parent
5064975385
commit
c8a49efca9
4 files changed
+91
-8
No files matched your search
+51
-4
@@ -56,15 +56,17 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
|
||||
|
||||
auto layout = new QVBoxLayout(widget);
|
||||
|
||||
m_stripsWidgetHeaders[i] = new QLabel(dayName, widget);
|
||||
{
|
||||
auto label = new QLabel(dayName, widget);
|
||||
auto font = label->font();
|
||||
auto font = m_stripsWidgetHeaders[i]->font();
|
||||
font.setBold(true);
|
||||
label->setFont(font);
|
||||
layout->addWidget(label);
|
||||
m_stripsWidgetHeaders[i]->setFont(font);
|
||||
}
|
||||
layout->addWidget(m_stripsWidgetHeaders[i]);
|
||||
|
||||
m_stripsWidgets[i] = new StripsWidget(m_erfassung, m_userInfo.userId, m_stripFactory, m_projects, widget);
|
||||
connect(m_stripsWidgets[i], &StripsWidget::refreshingChanged, this, &MainWindow::refreshingChanged);
|
||||
|
||||
layout->addWidget(m_stripsWidgets[i++]);
|
||||
|
||||
layout->addStretch(1);
|
||||
@@ -159,10 +161,23 @@ void MainWindow::getProjectsFinished()
|
||||
|
||||
void MainWindow::getAuswertungFinished()
|
||||
{
|
||||
if(std::none_of(std::begin(m_stripsWidgets), std::end(m_stripsWidgets), [](StripsWidget *stripsWidget){
|
||||
return stripsWidget->refreshing();
|
||||
}))
|
||||
{
|
||||
ui->actionToday->setEnabled(true);
|
||||
ui->actionRefresh->setEnabled(true);
|
||||
ui->dateEditDate->setEnabled(true);
|
||||
ui->pushButtonPrev->setEnabled(true);
|
||||
ui->pushButtonNext->setEnabled(true);
|
||||
}
|
||||
|
||||
if(!m_getAuswertungReply->success())
|
||||
{
|
||||
m_auswertungDate = QDate();
|
||||
QMessageBox::warning(this, tr("Could not load Auswertung!"), tr("Could not load Auswertung!") % "\n\n" % m_getAuswertungReply->message());
|
||||
m_getAuswertungReply->deleteLater();
|
||||
m_getAuswertungReply = Q_NULLPTR;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -199,6 +214,9 @@ void MainWindow::getAuswertungFinished()
|
||||
|
||||
m_balanceLabel->setText(tr("%0: %1").arg(tr("Balance")).arg(gleitzeit));
|
||||
m_holidaysLabel->setText(tr("%0: %1").arg(tr("Holidays")).arg(urlaubsAnspruch));
|
||||
|
||||
m_getAuswertungReply->deleteLater();
|
||||
m_getAuswertungReply = Q_NULLPTR;
|
||||
}
|
||||
|
||||
void MainWindow::contextMenuBooking(const QPoint &pos)
|
||||
@@ -625,6 +643,17 @@ void MainWindow::dateChanged(bool force)
|
||||
m_getAuswertungReply = m_erfassung.doGetAuswertung(m_userInfo.userId, auswertungDate);
|
||||
connect(m_getAuswertungReply, &ZeiterfassungReply::finished, this, &MainWindow::getAuswertungFinished);
|
||||
}
|
||||
|
||||
if(std::any_of(std::begin(m_stripsWidgets), std::end(m_stripsWidgets), [](StripsWidget *stripsWidget) {
|
||||
return stripsWidget->refreshing();
|
||||
}) || m_getAuswertungReply)
|
||||
{
|
||||
ui->actionToday->setEnabled(false);
|
||||
ui->actionRefresh->setEnabled(false);
|
||||
ui->dateEditDate->setEnabled(false);
|
||||
ui->pushButtonPrev->setEnabled(false);
|
||||
ui->pushButtonNext->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::openAuswertung()
|
||||
@@ -663,6 +692,24 @@ void MainWindow::minimumTimeChanged()
|
||||
ui->timeEditTime->setMinimumTime(m_currentStripWidget->minimumTime());
|
||||
}
|
||||
|
||||
void MainWindow::refreshingChanged()
|
||||
{
|
||||
if(m_getAuswertungReply)
|
||||
return;
|
||||
|
||||
{
|
||||
auto allFinished = std::none_of(std::begin(m_stripsWidgets), std::end(m_stripsWidgets), [](StripsWidget *stripsWidget){
|
||||
return stripsWidget->refreshing();
|
||||
});
|
||||
|
||||
ui->actionToday->setEnabled(allFinished);
|
||||
ui->actionRefresh->setEnabled(allFinished);
|
||||
ui->dateEditDate->setEnabled(allFinished);
|
||||
ui->pushButtonPrev->setEnabled(allFinished);
|
||||
ui->pushButtonNext->setEnabled(allFinished);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::startEnabledChanged()
|
||||
{
|
||||
ui->timeEditTime->setEnabled(m_currentStripWidget->startEnabled() ||
|
||||
|
||||
+3
-2
@@ -37,7 +37,7 @@ private Q_SLOTS:
|
||||
|
||||
void timeAssignmentTimeChanged();
|
||||
void minimumTimeChanged();
|
||||
|
||||
void refreshingChanged();
|
||||
void startEnabledChanged();
|
||||
void endEnabledChanged();
|
||||
|
||||
@@ -62,7 +62,8 @@ private:
|
||||
QLabel *m_holidaysLabel;
|
||||
|
||||
StripFactory &m_stripFactory;
|
||||
StripsWidget *m_stripsWidgets[7];
|
||||
std::array<QLabel*, 7> m_stripsWidgetHeaders;
|
||||
std::array<StripsWidget*, 7> m_stripsWidgets;
|
||||
StripsWidget *m_currentStripWidget;
|
||||
};
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ StripsWidget::StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory
|
||||
m_layout(new QVBoxLayout(this)),
|
||||
m_bookingsModel(new BookingsModel(this)),
|
||||
m_timeAssignmentsModel(new TimeAssignmentsModel(this)),
|
||||
m_refreshing(false),
|
||||
m_startEnabled(false),
|
||||
m_endEnabled(false),
|
||||
m_getBookingsReply(Q_NULLPTR),
|
||||
@@ -79,6 +80,11 @@ const QTime StripsWidget::minimumTime() const
|
||||
return m_minimumTime;
|
||||
}
|
||||
|
||||
bool StripsWidget::refreshing() const
|
||||
{
|
||||
return m_refreshing;
|
||||
}
|
||||
|
||||
bool StripsWidget::startEnabled() const
|
||||
{
|
||||
return m_startEnabled;
|
||||
@@ -111,6 +117,12 @@ void StripsWidget::refreshBookings()
|
||||
|
||||
m_getBookingsReply = m_erfassung.doGetBookings(m_userId, m_date, m_date);
|
||||
connect(m_getBookingsReply, &ZeiterfassungReply::finished, this, &StripsWidget::getBookingsFinished);
|
||||
|
||||
if(!m_refreshing)
|
||||
{
|
||||
m_refreshing = true;
|
||||
Q_EMIT refreshingChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void StripsWidget::refreshTimeAssignments()
|
||||
@@ -125,6 +137,12 @@ void StripsWidget::refreshTimeAssignments()
|
||||
|
||||
m_getTimeAssignmentsReply = m_erfassung.doGetTimeAssignments(m_userId, m_date, m_date);
|
||||
connect(m_getTimeAssignmentsReply, &ZeiterfassungReply::finished, this, &StripsWidget::getTimeAssignmentsFinished);
|
||||
|
||||
if(!m_refreshing)
|
||||
{
|
||||
m_refreshing = true;
|
||||
Q_EMIT refreshingChanged();
|
||||
}
|
||||
}
|
||||
|
||||
bool StripsWidget::createStrips()
|
||||
@@ -410,7 +428,15 @@ void StripsWidget::getBookingsFinished()
|
||||
m_bookings = m_getBookingsReply->bookings();
|
||||
|
||||
if(!m_getTimeAssignmentsReply)
|
||||
{
|
||||
if(m_refreshing)
|
||||
{
|
||||
m_refreshing = false;
|
||||
Q_EMIT refreshingChanged();
|
||||
}
|
||||
|
||||
createStrips();
|
||||
}
|
||||
|
||||
m_getBookingsReply->deleteLater();
|
||||
m_getBookingsReply = Q_NULLPTR;
|
||||
@@ -421,7 +447,15 @@ void StripsWidget::getTimeAssignmentsFinished()
|
||||
m_timeAssignments = m_getTimeAssignmentsReply->timeAssignments();
|
||||
|
||||
if(!m_getBookingsReply)
|
||||
{
|
||||
if(m_refreshing)
|
||||
{
|
||||
m_refreshing = false;
|
||||
Q_EMIT refreshingChanged();
|
||||
}
|
||||
|
||||
createStrips();
|
||||
}
|
||||
|
||||
m_getTimeAssignmentsReply->deleteLater();
|
||||
m_getTimeAssignmentsReply = Q_NULLPTR;
|
||||
|
||||
+3
-2
@@ -36,7 +36,7 @@ public:
|
||||
const QTime timeAssignmentTime() const;
|
||||
const QTime lastTimeAssignmentStart() const;
|
||||
const QTime minimumTime() const;
|
||||
|
||||
bool refreshing() const;
|
||||
bool startEnabled() const;
|
||||
bool endEnabled() const;
|
||||
|
||||
@@ -53,7 +53,7 @@ Q_SIGNALS:
|
||||
void timeAssignmentTimeChanged();
|
||||
void lastTimeAssignmentStartChanged();
|
||||
void minimumTimeChanged();
|
||||
|
||||
void refreshingChanged();
|
||||
void startEnabledChanged();
|
||||
void endEnabledChanged();
|
||||
|
||||
@@ -87,6 +87,7 @@ private:
|
||||
QTime m_timeAssignmentTime;
|
||||
QTime m_lastTimeAssignmentStart;
|
||||
QTime m_minimumTime;
|
||||
bool m_refreshing;
|
||||
bool m_startEnabled;
|
||||
bool m_endEnabled;
|
||||
|
||||
|
||||
Reference in new issue
Block a user