From 01583dea10438cd8f8ece9adefe48f1011a5ac90 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Mon, 18 Dec 2017 21:50:30 +0100 Subject: [PATCH] Fixed bugs with refreshing label --- .../advancedviewplugin/advanvedviewdialog.cpp | 2 ++ .../advancedviewplugin/advanvedviewdialog.ui | 2 +- .../models/bookingsmodel.cpp | 2 +- .../models/timeassignmentsmodel.cpp | 2 +- zeiterfassunglib/stripswidget.cpp | 26 ++++++++++++++----- zeiterfassunglib/stripswidget.h | 4 +-- 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/plugins/advancedviewplugin/advanvedviewdialog.cpp b/plugins/advancedviewplugin/advanvedviewdialog.cpp index fb56af4..bcc77a9 100644 --- a/plugins/advancedviewplugin/advanvedviewdialog.cpp +++ b/plugins/advancedviewplugin/advanvedviewdialog.cpp @@ -32,10 +32,12 @@ AdvanvedViewDialog::AdvanvedViewDialog(StripsWidget &stripsWidget) : ui->setupUi(this); ui->bookingsView->setModel(m_bookingsModel); + ui->bookingsView->setEnabled(m_bookingsModel->enabled()); connect(m_bookingsModel, &BookingsModel::enabledChanged, ui->bookingsView, &QWidget::setEnabled); connect(ui->bookingsView, &QWidget::customContextMenuRequested, this, &AdvanvedViewDialog::contextMenuBooking); ui->timeAssignmentsView->setModel(m_timeAssignmentsModel); + ui->timeAssignmentsView->setEnabled(m_timeAssignmentsModel->enabled()); connect(m_timeAssignmentsModel, &TimeAssignmentsModel::enabledChanged, ui->timeAssignmentsView, &QWidget::setEnabled); connect(ui->timeAssignmentsView, &QWidget::customContextMenuRequested, this, &AdvanvedViewDialog::contextMenuTimeAssignment); } diff --git a/plugins/advancedviewplugin/advanvedviewdialog.ui b/plugins/advancedviewplugin/advanvedviewdialog.ui index 9418d8e..0ad8f3f 100644 --- a/plugins/advancedviewplugin/advanvedviewdialog.ui +++ b/plugins/advancedviewplugin/advanvedviewdialog.ui @@ -6,7 +6,7 @@ 0 0 - 640 + 1024 480 diff --git a/plugins/advancedviewplugin/models/bookingsmodel.cpp b/plugins/advancedviewplugin/models/bookingsmodel.cpp index 15a4896..14ece31 100644 --- a/plugins/advancedviewplugin/models/bookingsmodel.cpp +++ b/plugins/advancedviewplugin/models/bookingsmodel.cpp @@ -7,7 +7,7 @@ BookingsModel::BookingsModel(StripsWidget &stripsWidget, QObject *parent) : m_stripsWidget(stripsWidget) { connect(&stripsWidget, &StripsWidget::bookingsChanged, this, &BookingsModel::bookingsChanged); - connect(&stripsWidget, &StripsWidget::refreshingBookingsChanged, this, &BookingsModel::enabledChanged); + connect(&stripsWidget, &StripsWidget::refreshingBookingsChanged, [=](bool refreshing){ enabledChanged(!refreshing); }); } StripsWidget &BookingsModel::stripsWidget() const diff --git a/plugins/advancedviewplugin/models/timeassignmentsmodel.cpp b/plugins/advancedviewplugin/models/timeassignmentsmodel.cpp index 623efba..b33930b 100644 --- a/plugins/advancedviewplugin/models/timeassignmentsmodel.cpp +++ b/plugins/advancedviewplugin/models/timeassignmentsmodel.cpp @@ -7,7 +7,7 @@ TimeAssignmentsModel::TimeAssignmentsModel(StripsWidget &stripsWidget, QObject * m_stripsWidget(stripsWidget) { connect(&stripsWidget, &StripsWidget::timeAssignmentsChanged, this, &TimeAssignmentsModel::timeAssignmentsChanged); - connect(&stripsWidget, &StripsWidget::refreshingBookingsChanged, this, &TimeAssignmentsModel::enabledChanged); + connect(&stripsWidget, &StripsWidget::refreshingTimeAssignmentsChanged, [=](bool refreshing){ enabledChanged(!refreshing); }); } StripsWidget &TimeAssignmentsModel::stripsWidget() const diff --git a/zeiterfassunglib/stripswidget.cpp b/zeiterfassunglib/stripswidget.cpp index 31d061a..07814bc 100644 --- a/zeiterfassunglib/stripswidget.cpp +++ b/zeiterfassunglib/stripswidget.cpp @@ -140,11 +140,11 @@ void StripsWidget::refresh() m_stripsLayout->addWidget(new QLabel(tr("Loading..."), this)); - refreshBookings(); - refreshTimeAssignments(); + refreshBookings(false); + refreshTimeAssignments(false); } -void StripsWidget::refreshBookings() +void StripsWidget::refreshBookings(bool createLabel) { if(!m_date.isValid()) { @@ -152,7 +152,14 @@ void StripsWidget::refreshBookings() return; } - if(m_bookings.count()) + if(createLabel) + { + clearStrips(); + + m_stripsLayout->addWidget(new QLabel(tr("Loading..."), this)); + } + + if(!m_bookings.empty()) { m_bookings.clear(); Q_EMIT bookingsChanged(m_bookings); @@ -170,7 +177,7 @@ void StripsWidget::refreshBookings() connect(m_getBookingsReply.get(), &ZeiterfassungReply::finished, this, &StripsWidget::getBookingsFinished); } -void StripsWidget::refreshTimeAssignments() +void StripsWidget::refreshTimeAssignments(bool createLabel) { if(!m_date.isValid()) { @@ -178,7 +185,14 @@ void StripsWidget::refreshTimeAssignments() return; } - if(m_timeAssignments.count()) + if(createLabel) + { + clearStrips(); + + m_stripsLayout->addWidget(new QLabel(tr("Loading..."), this)); + } + + if(!m_timeAssignments.empty()) { m_timeAssignments.clear(); Q_EMIT timeAssignmentsChanged(m_timeAssignments); diff --git a/zeiterfassunglib/stripswidget.h b/zeiterfassunglib/stripswidget.h index c1b2b64..76e48d7 100644 --- a/zeiterfassunglib/stripswidget.h +++ b/zeiterfassunglib/stripswidget.h @@ -46,8 +46,8 @@ public: bool endEnabled() const; void refresh(); - void refreshBookings(); - void refreshTimeAssignments(); + void refreshBookings(bool createLabel = true); + void refreshTimeAssignments(bool createLabel = true); bool createStrips(); void clearStrips();