Added label to mainWindow to show presences
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QStandardItem>
|
#include <QTimer>
|
||||||
#include <QStringBuilder>
|
#include <QStringBuilder>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QEventLoop>
|
#include <QEventLoop>
|
||||||
@@ -48,7 +48,8 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
|
|||||||
m_getAuswertungReply(Q_NULLPTR),
|
m_getAuswertungReply(Q_NULLPTR),
|
||||||
m_bookingsModel(new BookingsModel(this)),
|
m_bookingsModel(new BookingsModel(this)),
|
||||||
m_timeAssignmentsModel(new TimeAssignmentsModel(this)),
|
m_timeAssignmentsModel(new TimeAssignmentsModel(this)),
|
||||||
m_currentStripWidget(Q_NULLPTR)
|
m_currentStripWidget(Q_NULLPTR),
|
||||||
|
m_getPresenceStatusReply(Q_NULLPTR)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -90,8 +91,6 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
|
|||||||
m_getProjectsReply = erfassung.doGetProjects(userInfo.userId, QDate::currentDate());
|
m_getProjectsReply = erfassung.doGetProjects(userInfo.userId, QDate::currentDate());
|
||||||
connect(m_getProjectsReply.get(), &ZeiterfassungReply::finished, this, &MainWindow::getProjectsFinished);
|
connect(m_getProjectsReply.get(), &ZeiterfassungReply::finished, this, &MainWindow::getProjectsFinished);
|
||||||
|
|
||||||
ui->comboBoxProject->setMaxVisibleItems(10);
|
|
||||||
|
|
||||||
ui->comboBoxSubproject->lineEdit()->setPlaceholderText(tr("Subproject"));
|
ui->comboBoxSubproject->lineEdit()->setPlaceholderText(tr("Subproject"));
|
||||||
ui->comboBoxWorkpackage->lineEdit()->setPlaceholderText(tr("Workpackage"));
|
ui->comboBoxWorkpackage->lineEdit()->setPlaceholderText(tr("Workpackage"));
|
||||||
ui->comboBoxText->lineEdit()->setPlaceholderText(tr("Text"));
|
ui->comboBoxText->lineEdit()->setPlaceholderText(tr("Text"));
|
||||||
@@ -109,6 +108,10 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
|
|||||||
connect(m_timeAssignmentsModel, &TimeAssignmentsModel::enabledChanged, ui->treeViewTimeAssignments, &QWidget::setEnabled);
|
connect(m_timeAssignmentsModel, &TimeAssignmentsModel::enabledChanged, ui->treeViewTimeAssignments, &QWidget::setEnabled);
|
||||||
connect(ui->treeViewTimeAssignments, &QWidget::customContextMenuRequested, this, &MainWindow::contextMenuTimeAssignment);
|
connect(ui->treeViewTimeAssignments, &QWidget::customContextMenuRequested, this, &MainWindow::contextMenuTimeAssignment);
|
||||||
|
|
||||||
|
ui->statusbar->addWidget(m_presenceLabel = new QLabel(tr("???"), ui->statusbar));
|
||||||
|
m_presenceLabel->setFrameShape(QFrame::Panel);
|
||||||
|
m_presenceLabel->setFrameShadow(QFrame::Sunken);
|
||||||
|
|
||||||
ui->statusbar->addPermanentWidget(m_balanceLabel = new QLabel(ui->statusbar));
|
ui->statusbar->addPermanentWidget(m_balanceLabel = new QLabel(ui->statusbar));
|
||||||
m_balanceLabel->setFrameShape(QFrame::Panel);
|
m_balanceLabel->setFrameShape(QFrame::Panel);
|
||||||
m_balanceLabel->setFrameShadow(QFrame::Sunken);
|
m_balanceLabel->setFrameShadow(QFrame::Sunken);
|
||||||
@@ -118,6 +121,15 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
|
|||||||
|
|
||||||
dateChanged();
|
dateChanged();
|
||||||
|
|
||||||
|
{
|
||||||
|
auto timer = new QTimer(this);
|
||||||
|
timer->setInterval(60000);
|
||||||
|
connect(timer, &QTimer::timeout, this, &MainWindow::refreshPresence);
|
||||||
|
timer->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshPresence();
|
||||||
|
|
||||||
if(settings.lastUpdateCheck().isNull() || settings.lastUpdateCheck() < QDate::currentDate())
|
if(settings.lastUpdateCheck().isNull() || settings.lastUpdateCheck() < QDate::currentDate())
|
||||||
new UpdateDialog(settings, erfassung.manager(), this);
|
new UpdateDialog(settings, erfassung.manager(), this);
|
||||||
}
|
}
|
||||||
@@ -651,6 +663,34 @@ void MainWindow::openAuswertung()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::refreshPresence()
|
||||||
|
{
|
||||||
|
m_presenceLabel->setText(tr("???"));
|
||||||
|
|
||||||
|
m_getPresenceStatusReply = m_erfassung.doGetPresenceStatus();
|
||||||
|
connect(m_getPresenceStatusReply.get(), &ZeiterfassungReply::finished, this, &MainWindow::getPresenceStatusFinished);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::getPresenceStatusFinished()
|
||||||
|
{
|
||||||
|
if(m_getPresenceStatusReply->success())
|
||||||
|
{
|
||||||
|
QMap<QString, int> counts;
|
||||||
|
for(const auto &presenceStatus : m_getPresenceStatusReply->presenceStatuses())
|
||||||
|
counts[presenceStatus.presence]++;
|
||||||
|
QString text;
|
||||||
|
for(auto iter = counts.constBegin(); iter != counts.constEnd(); iter++)
|
||||||
|
{
|
||||||
|
if(!text.isEmpty())
|
||||||
|
text.append(' ');
|
||||||
|
text.append(QStringLiteral("%0: %1").arg(iter.key()).arg(iter.value()));
|
||||||
|
}
|
||||||
|
m_presenceLabel->setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_getPresenceStatusReply = Q_NULLPTR;
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::minimumTimeChanged()
|
void MainWindow::minimumTimeChanged()
|
||||||
{
|
{
|
||||||
ui->timeEditTime->setMinimumTime(m_currentStripWidget->minimumTime());
|
ui->timeEditTime->setMinimumTime(m_currentStripWidget->minimumTime());
|
||||||
|
11
mainwindow.h
11
mainwindow.h
@@ -7,14 +7,15 @@
|
|||||||
#include <QMap>
|
#include <QMap>
|
||||||
|
|
||||||
#include "zeiterfassungapi.h"
|
#include "zeiterfassungapi.h"
|
||||||
|
#include "replies/getprojectsreply.h"
|
||||||
|
#include "replies/getauswertungreply.h"
|
||||||
|
#include "replies/getpresencestatusreply.h"
|
||||||
|
|
||||||
class QLabel;
|
class QLabel;
|
||||||
class QBoxLayout;
|
class QBoxLayout;
|
||||||
|
|
||||||
namespace Ui { class MainWindow; }
|
namespace Ui { class MainWindow; }
|
||||||
class ZeiterfassungSettings;
|
class ZeiterfassungSettings;
|
||||||
class GetProjectsReply;
|
|
||||||
class GetAuswertungReply;
|
|
||||||
class StripFactory;
|
class StripFactory;
|
||||||
class StripsWidget;
|
class StripsWidget;
|
||||||
class BookingsModel;
|
class BookingsModel;
|
||||||
@@ -38,6 +39,8 @@ private Q_SLOTS:
|
|||||||
void pushButtonEndPressed();
|
void pushButtonEndPressed();
|
||||||
void dateChanged(bool force = false);
|
void dateChanged(bool force = false);
|
||||||
void openAuswertung();
|
void openAuswertung();
|
||||||
|
void refreshPresence();
|
||||||
|
void getPresenceStatusFinished();
|
||||||
|
|
||||||
void minimumTimeChanged();
|
void minimumTimeChanged();
|
||||||
void refreshingChanged();
|
void refreshingChanged();
|
||||||
@@ -65,11 +68,15 @@ private:
|
|||||||
QDate m_auswertungDate;
|
QDate m_auswertungDate;
|
||||||
QByteArray m_auswertung;
|
QByteArray m_auswertung;
|
||||||
|
|
||||||
|
QLabel *m_presenceLabel;
|
||||||
|
|
||||||
QLabel *m_balanceLabel;
|
QLabel *m_balanceLabel;
|
||||||
QLabel *m_holidaysLabel;
|
QLabel *m_holidaysLabel;
|
||||||
|
|
||||||
std::array<StripsWidget*, 7> m_stripsWidgets;
|
std::array<StripsWidget*, 7> m_stripsWidgets;
|
||||||
StripsWidget *m_currentStripWidget;
|
StripsWidget *m_currentStripWidget;
|
||||||
|
|
||||||
|
std::unique_ptr<GetPresenceStatusReply> m_getPresenceStatusReply;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
Reference in New Issue
Block a user