Exposed layout members of StripLayout
This commit is contained in:
@@ -18,7 +18,6 @@ StripsWidget::StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory
|
|||||||
m_userId(userId),
|
m_userId(userId),
|
||||||
m_stripFactory(stripFactory),
|
m_stripFactory(stripFactory),
|
||||||
m_projects(projects),
|
m_projects(projects),
|
||||||
m_layout(new QVBoxLayout(this)),
|
|
||||||
m_refreshing(false),
|
m_refreshing(false),
|
||||||
m_refreshingBookings(false),
|
m_refreshingBookings(false),
|
||||||
m_refreshingTimeAssignments(false),
|
m_refreshingTimeAssignments(false),
|
||||||
@@ -27,7 +26,39 @@ StripsWidget::StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory
|
|||||||
m_getBookingsReply(Q_NULLPTR),
|
m_getBookingsReply(Q_NULLPTR),
|
||||||
m_getTimeAssignmentsReply(Q_NULLPTR)
|
m_getTimeAssignmentsReply(Q_NULLPTR)
|
||||||
{
|
{
|
||||||
setLayout(m_layout);
|
auto layout = new QVBoxLayout(this);
|
||||||
|
|
||||||
|
m_headerLayout = new QHBoxLayout(this);
|
||||||
|
m_label = new QLabel(this);
|
||||||
|
{
|
||||||
|
auto font = m_label->font();
|
||||||
|
font.setBold(true);
|
||||||
|
m_label->setFont(font);
|
||||||
|
}
|
||||||
|
m_headerLayout->addWidget(m_label, 1);
|
||||||
|
layout->addLayout(m_headerLayout);
|
||||||
|
|
||||||
|
m_stripsLayout = new QVBoxLayout(this);
|
||||||
|
layout->addLayout(m_stripsLayout);
|
||||||
|
|
||||||
|
layout->addStretch(1);
|
||||||
|
|
||||||
|
setLayout(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
QBoxLayout *StripsWidget::headerLayout() const
|
||||||
|
{
|
||||||
|
return m_headerLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
QBoxLayout *StripsWidget::stripsLayout() const
|
||||||
|
{
|
||||||
|
return m_stripsLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel *StripsWidget::label() const
|
||||||
|
{
|
||||||
|
return m_label;
|
||||||
}
|
}
|
||||||
|
|
||||||
const QDate &StripsWidget::date() const
|
const QDate &StripsWidget::date() const
|
||||||
@@ -37,8 +68,20 @@ const QDate &StripsWidget::date() const
|
|||||||
|
|
||||||
void StripsWidget::setDate(const QDate &date)
|
void StripsWidget::setDate(const QDate &date)
|
||||||
{
|
{
|
||||||
m_date = date;
|
if(m_date != date)
|
||||||
|
{
|
||||||
|
Q_EMIT dateChanged(m_date = date);
|
||||||
|
|
||||||
|
if(m_date.isValid())
|
||||||
|
m_label->setText(tr("%0 (%1)")
|
||||||
|
.arg(std::array<QString, 7> { tr("Monday"), tr("Tuesday"), tr("Wednesday"), tr("Thursday"),
|
||||||
|
tr("Friday"), tr("Saturday"), tr("Sunday") }[m_date.dayOfWeek() - 1])
|
||||||
|
.arg(m_date.toString(tr("dd.MM.yyyy"))));
|
||||||
|
else
|
||||||
|
m_label->setText(tr("Invalid"));
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const QVector<GetBookingsReply::Booking> &StripsWidget::bookings() const
|
const QVector<GetBookingsReply::Booking> &StripsWidget::bookings() const
|
||||||
@@ -95,8 +138,7 @@ void StripsWidget::refresh()
|
|||||||
{
|
{
|
||||||
clearStrips();
|
clearStrips();
|
||||||
|
|
||||||
m_layout->addWidget(new QLabel(tr("Loading..."), this));
|
m_stripsLayout->addWidget(new QLabel(tr("Loading..."), this));
|
||||||
m_layout->addStretch(1);
|
|
||||||
|
|
||||||
refreshBookings();
|
refreshBookings();
|
||||||
refreshTimeAssignments();
|
refreshTimeAssignments();
|
||||||
@@ -199,7 +241,7 @@ bool StripsWidget::createStrips()
|
|||||||
{
|
{
|
||||||
auto breakTime = timeBetween(lastBooking->time, startBooking.time);
|
auto breakTime = timeBetween(lastBooking->time, startBooking.time);
|
||||||
auto label = new QLabel(tr("%0: %1").arg(tr("Break")).arg(tr("%0h").arg(breakTime.toString(tr("HH:mm")))), this);
|
auto label = new QLabel(tr("%0: %1").arg(tr("Break")).arg(tr("%0h").arg(breakTime.toString(tr("HH:mm")))), this);
|
||||||
m_layout->addWidget(label);
|
m_stripsLayout->addWidget(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
lastBooking = &startBooking;
|
lastBooking = &startBooking;
|
||||||
@@ -392,7 +434,7 @@ bool StripsWidget::createStrips()
|
|||||||
auto label = new QLabel(tr("%0: %1")
|
auto label = new QLabel(tr("%0: %1")
|
||||||
.arg(tr("Assigned time"))
|
.arg(tr("Assigned time"))
|
||||||
.arg(tr("%0h").arg(timeAssignmentTime.toString(tr("HH:mm")))), this);
|
.arg(tr("%0h").arg(timeAssignmentTime.toString(tr("HH:mm")))), this);
|
||||||
m_layout->addWidget(label);
|
m_stripsLayout->addWidget(label);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -406,7 +448,7 @@ bool StripsWidget::createStrips()
|
|||||||
"Your bookings and time assignments for this day are in an illegal state!") % "\n" %
|
"Your bookings and time assignments for this day are in an illegal state!") % "\n" %
|
||||||
errorMessage, this);
|
errorMessage, this);
|
||||||
label->setStyleSheet("color: red;");
|
label->setStyleSheet("color: red;");
|
||||||
m_layout->addWidget(label);
|
m_stripsLayout->addWidget(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_timeAssignmentTime != timeAssignmentTime)
|
if(m_timeAssignmentTime != timeAssignmentTime)
|
||||||
@@ -424,33 +466,16 @@ bool StripsWidget::createStrips()
|
|||||||
if(m_endEnabled != endEnabled)
|
if(m_endEnabled != endEnabled)
|
||||||
Q_EMIT endEnabledChanged(m_endEnabled = endEnabled);
|
Q_EMIT endEnabledChanged(m_endEnabled = endEnabled);
|
||||||
|
|
||||||
m_layout->addStretch(1);
|
|
||||||
|
|
||||||
return !errorMessage.isEmpty();
|
return !errorMessage.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StripsWidget::clearStrips()
|
void StripsWidget::clearStrips()
|
||||||
{
|
{
|
||||||
while(QLayoutItem *item = m_layout->takeAt(0))
|
while(QLayoutItem *item = m_stripsLayout->takeAt(0))
|
||||||
{
|
{
|
||||||
delete item->widget();
|
delete item->widget();
|
||||||
delete item;
|
delete item;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto label = new QLabel(this);
|
|
||||||
if(m_date.isValid())
|
|
||||||
label->setText(tr("%0 (%1)")
|
|
||||||
.arg(std::array<QString, 7> { tr("Monday"), tr("Tuesday"), tr("Wednesday"), tr("Thursday"),
|
|
||||||
tr("Friday"), tr("Saturday"), tr("Sunday") }[m_date.dayOfWeek() - 1])
|
|
||||||
.arg(m_date.toString(tr("dd.MM.yyyy"))));
|
|
||||||
else
|
|
||||||
label->setText(tr("Invalid"));
|
|
||||||
{
|
|
||||||
auto font = label->font();
|
|
||||||
font.setBold(true);
|
|
||||||
label->setFont(font);
|
|
||||||
}
|
|
||||||
m_layout->addWidget(label);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StripsWidget::getBookingsFinished()
|
void StripsWidget::getBookingsFinished()
|
||||||
@@ -532,7 +557,7 @@ QWidget *StripsWidget::appendBookingStartStrip(int id, const QTime &time)
|
|||||||
else
|
else
|
||||||
qWarning() << "no labelId found!";
|
qWarning() << "no labelId found!";
|
||||||
|
|
||||||
m_layout->addWidget(widget);
|
m_stripsLayout->addWidget(widget);
|
||||||
|
|
||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
@@ -551,7 +576,7 @@ QWidget *StripsWidget::appendBookingEndStrip(int id, const QTime &time)
|
|||||||
else
|
else
|
||||||
qWarning() << "no labelId found!";
|
qWarning() << "no labelId found!";
|
||||||
|
|
||||||
m_layout->addWidget(widget);
|
m_stripsLayout->addWidget(widget);
|
||||||
|
|
||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
@@ -590,7 +615,7 @@ QWidget *StripsWidget::appendTimeAssignmentStrip(int id, const QTime &duration,
|
|||||||
else
|
else
|
||||||
qWarning() << "no labelText found!";
|
qWarning() << "no labelText found!";
|
||||||
|
|
||||||
m_layout->addWidget(widget);
|
m_stripsLayout->addWidget(widget);
|
||||||
|
|
||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
#include "replies/gettimeassignmentsreply.h"
|
#include "replies/gettimeassignmentsreply.h"
|
||||||
|
|
||||||
class QBoxLayout;
|
class QBoxLayout;
|
||||||
|
class QLabel;
|
||||||
template <class Key, class T> class QMap;
|
template <class Key, class T> class QMap;
|
||||||
template <typename T> class QVector;
|
template <typename T> class QVector;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ public:
|
|||||||
explicit StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory &stripFactory,
|
explicit StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory &stripFactory,
|
||||||
const QMap<QString, QString> &projects, QWidget *parent = Q_NULLPTR);
|
const QMap<QString, QString> &projects, QWidget *parent = Q_NULLPTR);
|
||||||
|
|
||||||
|
QBoxLayout *headerLayout() const;
|
||||||
|
QBoxLayout *stripsLayout() const;
|
||||||
|
|
||||||
|
QLabel *label() const;
|
||||||
|
|
||||||
const QDate &date() const;
|
const QDate &date() const;
|
||||||
void setDate(const QDate &date);
|
void setDate(const QDate &date);
|
||||||
|
|
||||||
@@ -47,6 +53,8 @@ public:
|
|||||||
void clearStrips();
|
void clearStrips();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
|
void dateChanged(const QDate &date);
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
@@ -78,7 +86,10 @@ private:
|
|||||||
StripFactory &m_stripFactory;
|
StripFactory &m_stripFactory;
|
||||||
const QMap<QString, QString> &m_projects;
|
const QMap<QString, QString> &m_projects;
|
||||||
|
|
||||||
QBoxLayout *m_layout;
|
QBoxLayout *m_headerLayout;
|
||||||
|
QBoxLayout *m_stripsLayout;
|
||||||
|
|
||||||
|
QLabel *m_label;
|
||||||
|
|
||||||
QDate m_date;
|
QDate m_date;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user