Added display of soll ist time to StripsWidget
This commit is contained in:
@@ -12,10 +12,14 @@
|
|||||||
#include "timeutils.h"
|
#include "timeutils.h"
|
||||||
#include "stripfactory.h"
|
#include "stripfactory.h"
|
||||||
|
|
||||||
|
const QStringList StripsWidget::m_weekDays { tr("Monday"), tr("Tuesday"),
|
||||||
|
tr("Wednesday"), tr("Thursday"), tr("Friday"), tr("Saturday"), tr("Sunday") };
|
||||||
|
|
||||||
StripsWidget::StripsWidget(MainWindow &mainWindow, QWidget *parent) :
|
StripsWidget::StripsWidget(MainWindow &mainWindow, QWidget *parent) :
|
||||||
QFrame(parent),
|
QFrame(parent),
|
||||||
m_mainWindow(mainWindow),
|
m_mainWindow(mainWindow),
|
||||||
m_refreshing(false),
|
m_refreshing(false),
|
||||||
|
m_refreshingDayinfo(false),
|
||||||
m_refreshingBookings(false),
|
m_refreshingBookings(false),
|
||||||
m_refreshingTimeAssignments(false),
|
m_refreshingTimeAssignments(false),
|
||||||
m_startEnabled(false),
|
m_startEnabled(false),
|
||||||
@@ -24,15 +28,20 @@ StripsWidget::StripsWidget(MainWindow &mainWindow, QWidget *parent) :
|
|||||||
auto layout = new QVBoxLayout(this);
|
auto layout = new QVBoxLayout(this);
|
||||||
|
|
||||||
m_headerLayout = new QHBoxLayout;
|
m_headerLayout = new QHBoxLayout;
|
||||||
m_label = new QLabel;
|
|
||||||
|
m_label[0] = new QLabel;
|
||||||
{
|
{
|
||||||
auto font = m_label->font();
|
auto font = m_label[0]->font();
|
||||||
font.setBold(true);
|
font.setBold(true);
|
||||||
m_label->setFont(font);
|
m_label[0]->setFont(font);
|
||||||
}
|
}
|
||||||
m_headerLayout->addWidget(m_label, 1);
|
m_headerLayout->addWidget(m_label[0], 1);
|
||||||
|
|
||||||
layout->addLayout(m_headerLayout);
|
layout->addLayout(m_headerLayout);
|
||||||
|
|
||||||
|
m_label[1] = new QLabel;
|
||||||
|
layout->addWidget(m_label[1]);
|
||||||
|
|
||||||
m_stripsLayout = new QVBoxLayout;
|
m_stripsLayout = new QVBoxLayout;
|
||||||
layout->addLayout(m_stripsLayout);
|
layout->addLayout(m_stripsLayout);
|
||||||
|
|
||||||
@@ -56,9 +65,14 @@ QBoxLayout *StripsWidget::stripsLayout() const
|
|||||||
return m_stripsLayout;
|
return m_stripsLayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLabel *StripsWidget::label() const
|
QLabel *StripsWidget::label0() const
|
||||||
{
|
{
|
||||||
return m_label;
|
return m_label[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel *StripsWidget::label1() const
|
||||||
|
{
|
||||||
|
return m_label[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
const QDate &StripsWidget::date() const
|
const QDate &StripsWidget::date() const
|
||||||
@@ -73,12 +87,11 @@ void StripsWidget::setDate(const QDate &date)
|
|||||||
Q_EMIT dateChanged(m_date = date);
|
Q_EMIT dateChanged(m_date = date);
|
||||||
|
|
||||||
if(m_date.isValid())
|
if(m_date.isValid())
|
||||||
m_label->setText(tr("%0 (%1)")
|
m_label[0]->setText(tr("%0 (%1)")
|
||||||
.arg(std::array<QString, 7> { tr("Monday"), tr("Tuesday"), tr("Wednesday"), tr("Thursday"),
|
.arg(m_weekDays.at(m_date.dayOfWeek() - 1))
|
||||||
tr("Friday"), tr("Saturday"), tr("Sunday") }[m_date.dayOfWeek() - 1])
|
|
||||||
.arg(m_date.toString(tr("dd.MM.yyyy"))));
|
.arg(m_date.toString(tr("dd.MM.yyyy"))));
|
||||||
else
|
else
|
||||||
m_label->setText(tr("Invalid"));
|
m_label[0]->setText(tr("Invalid"));
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
@@ -98,6 +111,11 @@ void StripsWidget::setHighlighted(bool highlighted)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const GetDayinfoReply::Dayinfo &StripsWidget::dayinfo() const
|
||||||
|
{
|
||||||
|
return m_dayinfo;
|
||||||
|
}
|
||||||
|
|
||||||
const QVector<GetBookingsReply::Booking> &StripsWidget::bookings() const
|
const QVector<GetBookingsReply::Booking> &StripsWidget::bookings() const
|
||||||
{
|
{
|
||||||
return m_bookings;
|
return m_bookings;
|
||||||
@@ -128,6 +146,11 @@ bool StripsWidget::refreshing() const
|
|||||||
return m_refreshing;
|
return m_refreshing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool StripsWidget::refreshingDayinfo() const
|
||||||
|
{
|
||||||
|
return m_refreshingDayinfo;
|
||||||
|
}
|
||||||
|
|
||||||
bool StripsWidget::refreshingBookings() const
|
bool StripsWidget::refreshingBookings() const
|
||||||
{
|
{
|
||||||
return m_refreshingBookings;
|
return m_refreshingBookings;
|
||||||
@@ -152,12 +175,34 @@ void StripsWidget::refresh()
|
|||||||
{
|
{
|
||||||
clearStrips();
|
clearStrips();
|
||||||
|
|
||||||
|
m_label[1]->setText(QString());
|
||||||
m_stripsLayout->addWidget(new QLabel(tr("Loading..."), this));
|
m_stripsLayout->addWidget(new QLabel(tr("Loading..."), this));
|
||||||
|
|
||||||
|
refreshDayinfo();
|
||||||
refreshBookings(false);
|
refreshBookings(false);
|
||||||
refreshTimeAssignments(false);
|
refreshTimeAssignments(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StripsWidget::refreshDayinfo()
|
||||||
|
{
|
||||||
|
if(!m_date.isValid())
|
||||||
|
{
|
||||||
|
qWarning() << "invalid date";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!m_refreshing)
|
||||||
|
Q_EMIT refreshingChanged(m_refreshing = true);
|
||||||
|
|
||||||
|
if(!m_refreshingDayinfo)
|
||||||
|
Q_EMIT refreshingDayinfoChanged(m_refreshingDayinfo = true);
|
||||||
|
|
||||||
|
invalidateValues();
|
||||||
|
|
||||||
|
m_getDayinfoReply = m_mainWindow.erfassung().doGetDayinfo(m_mainWindow.userInfo().userId, m_date, m_date);
|
||||||
|
connect(m_getDayinfoReply.get(), &ZeiterfassungReply::finished, this, &StripsWidget::getDayinfoFinished);
|
||||||
|
}
|
||||||
|
|
||||||
void StripsWidget::refreshBookings(bool createLabel)
|
void StripsWidget::refreshBookings(bool createLabel)
|
||||||
{
|
{
|
||||||
if(!m_date.isValid())
|
if(!m_date.isValid())
|
||||||
@@ -483,6 +528,13 @@ void StripsWidget::clearStrips()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StripsWidget::getDayinfoFinished()
|
||||||
|
{
|
||||||
|
Q_EMIT dayinfoChanged(m_dayinfo = m_getDayinfoReply->dayinfos().first());
|
||||||
|
|
||||||
|
m_label[1]->setText(QString("%0 - %1").arg(m_dayinfo.soll.toString("HH:mm")).arg(m_dayinfo.ist.toString("HH:mm")));
|
||||||
|
}
|
||||||
|
|
||||||
void StripsWidget::getBookingsFinished()
|
void StripsWidget::getBookingsFinished()
|
||||||
{
|
{
|
||||||
Q_EMIT bookingsChanged(m_bookings = m_getBookingsReply->bookings());
|
Q_EMIT bookingsChanged(m_bookings = m_getBookingsReply->bookings());
|
||||||
@@ -490,13 +542,11 @@ void StripsWidget::getBookingsFinished()
|
|||||||
if(m_refreshingBookings)
|
if(m_refreshingBookings)
|
||||||
Q_EMIT refreshingBookingsChanged(m_refreshingBookings = false);
|
Q_EMIT refreshingBookingsChanged(m_refreshingBookings = false);
|
||||||
|
|
||||||
if(!m_getTimeAssignmentsReply)
|
if(m_refreshing && !m_getDayinfoReply && !m_getTimeAssignmentsReply)
|
||||||
{
|
|
||||||
if(m_refreshing)
|
|
||||||
Q_EMIT refreshingChanged(m_refreshing = false);
|
Q_EMIT refreshingChanged(m_refreshing = false);
|
||||||
|
|
||||||
|
if(!m_getTimeAssignmentsReply)
|
||||||
createStrips();
|
createStrips();
|
||||||
}
|
|
||||||
|
|
||||||
m_getBookingsReply = Q_NULLPTR;
|
m_getBookingsReply = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
@@ -508,13 +558,11 @@ void StripsWidget::getTimeAssignmentsFinished()
|
|||||||
if(m_refreshingTimeAssignments)
|
if(m_refreshingTimeAssignments)
|
||||||
Q_EMIT refreshingTimeAssignmentsChanged(m_refreshingTimeAssignments = false);
|
Q_EMIT refreshingTimeAssignmentsChanged(m_refreshingTimeAssignments = false);
|
||||||
|
|
||||||
if(!m_getBookingsReply)
|
if(m_refreshing && !m_getDayinfoReply && !m_getBookingsReply)
|
||||||
{
|
|
||||||
if(m_refreshing)
|
|
||||||
Q_EMIT refreshingChanged(m_refreshing = false);
|
Q_EMIT refreshingChanged(m_refreshing = false);
|
||||||
|
|
||||||
|
if(!m_getBookingsReply)
|
||||||
createStrips();
|
createStrips();
|
||||||
}
|
|
||||||
|
|
||||||
m_getTimeAssignmentsReply = Q_NULLPTR;
|
m_getTimeAssignmentsReply = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
@@ -6,6 +6,7 @@
|
|||||||
#include <QTime>
|
#include <QTime>
|
||||||
|
|
||||||
#include "zeiterfassungguilib_global.h"
|
#include "zeiterfassungguilib_global.h"
|
||||||
|
#include "replies/getdayinforeply.h"
|
||||||
#include "replies/getbookingsreply.h"
|
#include "replies/getbookingsreply.h"
|
||||||
#include "replies/gettimeassignmentsreply.h"
|
#include "replies/gettimeassignmentsreply.h"
|
||||||
|
|
||||||
@@ -27,7 +28,8 @@ public:
|
|||||||
QBoxLayout *headerLayout() const;
|
QBoxLayout *headerLayout() const;
|
||||||
QBoxLayout *stripsLayout() const;
|
QBoxLayout *stripsLayout() const;
|
||||||
|
|
||||||
QLabel *label() const;
|
QLabel *label0() const;
|
||||||
|
QLabel *label1() const;
|
||||||
|
|
||||||
const QDate &date() const;
|
const QDate &date() const;
|
||||||
void setDate(const QDate &date);
|
void setDate(const QDate &date);
|
||||||
@@ -35,6 +37,7 @@ public:
|
|||||||
bool highlighted() const;
|
bool highlighted() const;
|
||||||
void setHighlighted(bool highlighted);
|
void setHighlighted(bool highlighted);
|
||||||
|
|
||||||
|
const GetDayinfoReply::Dayinfo &dayinfo() const;
|
||||||
const QVector<GetBookingsReply::Booking> &bookings() const;
|
const QVector<GetBookingsReply::Booking> &bookings() const;
|
||||||
const QVector<GetTimeAssignmentsReply::TimeAssignment> &timeAssignments() const;
|
const QVector<GetTimeAssignmentsReply::TimeAssignment> &timeAssignments() const;
|
||||||
|
|
||||||
@@ -42,12 +45,14 @@ public:
|
|||||||
const QTime &lastTimeAssignmentStart() const;
|
const QTime &lastTimeAssignmentStart() const;
|
||||||
const QTime &minimumTime() const;
|
const QTime &minimumTime() const;
|
||||||
bool refreshing() const;
|
bool refreshing() const;
|
||||||
|
bool refreshingDayinfo() const;
|
||||||
bool refreshingBookings() const;
|
bool refreshingBookings() const;
|
||||||
bool refreshingTimeAssignments() const;
|
bool refreshingTimeAssignments() const;
|
||||||
bool startEnabled() const;
|
bool startEnabled() const;
|
||||||
bool endEnabled() const;
|
bool endEnabled() const;
|
||||||
|
|
||||||
void refresh();
|
void refresh();
|
||||||
|
void refreshDayinfo();
|
||||||
void refreshBookings(bool createLabel = true);
|
void refreshBookings(bool createLabel = true);
|
||||||
void refreshTimeAssignments(bool createLabel = true);
|
void refreshTimeAssignments(bool createLabel = true);
|
||||||
bool createStrips();
|
bool createStrips();
|
||||||
@@ -57,6 +62,7 @@ Q_SIGNALS:
|
|||||||
void dateChanged(const QDate &date);
|
void dateChanged(const QDate &date);
|
||||||
void highlightedChanged(bool highlighted);
|
void highlightedChanged(bool highlighted);
|
||||||
|
|
||||||
|
void dayinfoChanged(const GetDayinfoReply::Dayinfo &dayinfo);
|
||||||
void bookingsChanged(const QVector<GetBookingsReply::Booking> &bookings);
|
void bookingsChanged(const QVector<GetBookingsReply::Booking> &bookings);
|
||||||
void timeAssignmentsChanged(const QVector<GetTimeAssignmentsReply::TimeAssignment> &timeAssignments);
|
void timeAssignmentsChanged(const QVector<GetTimeAssignmentsReply::TimeAssignment> &timeAssignments);
|
||||||
|
|
||||||
@@ -64,12 +70,14 @@ Q_SIGNALS:
|
|||||||
void lastTimeAssignmentStartChanged(const QTime &lastTimeAssignmentStart);
|
void lastTimeAssignmentStartChanged(const QTime &lastTimeAssignmentStart);
|
||||||
void minimumTimeChanged(const QTime &minimumTime);
|
void minimumTimeChanged(const QTime &minimumTime);
|
||||||
void refreshingChanged(bool refreshing);
|
void refreshingChanged(bool refreshing);
|
||||||
|
void refreshingDayinfoChanged(bool refreshingDayinfo);
|
||||||
void refreshingBookingsChanged(bool refreshingBookings);
|
void refreshingBookingsChanged(bool refreshingBookings);
|
||||||
void refreshingTimeAssignmentsChanged(bool refreshingTimeAssignments);
|
void refreshingTimeAssignmentsChanged(bool refreshingTimeAssignments);
|
||||||
void startEnabledChanged(bool startEnabled);
|
void startEnabledChanged(bool startEnabled);
|
||||||
void endEnabledChanged(bool endEnabled);
|
void endEnabledChanged(bool endEnabled);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
|
void getDayinfoFinished();
|
||||||
void getBookingsFinished();
|
void getBookingsFinished();
|
||||||
void getTimeAssignmentsFinished();
|
void getTimeAssignmentsFinished();
|
||||||
|
|
||||||
@@ -87,11 +95,12 @@ private:
|
|||||||
QBoxLayout *m_headerLayout;
|
QBoxLayout *m_headerLayout;
|
||||||
QBoxLayout *m_stripsLayout;
|
QBoxLayout *m_stripsLayout;
|
||||||
|
|
||||||
QLabel *m_label;
|
QLabel *m_label[2];
|
||||||
|
|
||||||
QDate m_date;
|
QDate m_date;
|
||||||
bool m_highlighted;
|
bool m_highlighted;
|
||||||
|
|
||||||
|
GetDayinfoReply::Dayinfo m_dayinfo;
|
||||||
QVector<GetBookingsReply::Booking> m_bookings;
|
QVector<GetBookingsReply::Booking> m_bookings;
|
||||||
QVector<GetTimeAssignmentsReply::TimeAssignment> m_timeAssignments;
|
QVector<GetTimeAssignmentsReply::TimeAssignment> m_timeAssignments;
|
||||||
|
|
||||||
@@ -99,11 +108,15 @@ private:
|
|||||||
QTime m_lastTimeAssignmentStart;
|
QTime m_lastTimeAssignmentStart;
|
||||||
QTime m_minimumTime;
|
QTime m_minimumTime;
|
||||||
bool m_refreshing;
|
bool m_refreshing;
|
||||||
|
bool m_refreshingDayinfo;
|
||||||
bool m_refreshingBookings;
|
bool m_refreshingBookings;
|
||||||
bool m_refreshingTimeAssignments;
|
bool m_refreshingTimeAssignments;
|
||||||
bool m_startEnabled;
|
bool m_startEnabled;
|
||||||
bool m_endEnabled;
|
bool m_endEnabled;
|
||||||
|
|
||||||
|
std::unique_ptr<GetDayinfoReply> m_getDayinfoReply;
|
||||||
std::unique_ptr<GetBookingsReply> m_getBookingsReply;
|
std::unique_ptr<GetBookingsReply> m_getBookingsReply;
|
||||||
std::unique_ptr<GetTimeAssignmentsReply> m_getTimeAssignmentsReply;
|
std::unique_ptr<GetTimeAssignmentsReply> m_getTimeAssignmentsReply;
|
||||||
|
|
||||||
|
static const QStringList m_weekDays;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user