PresencePlugin now shows employees #37
This commit is contained in:
@@ -1,12 +1,14 @@
|
|||||||
#include "presencewidget.h"
|
#include "presencewidget.h"
|
||||||
|
|
||||||
#include <QLabel>
|
#include <QPushButton>
|
||||||
#include <QStatusBar>
|
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QStatusBar>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QStringBuilder>
|
#include <QStringBuilder>
|
||||||
|
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "zeiterfassungapi.h"
|
#include "zeiterfassungapi.h"
|
||||||
|
|
||||||
@@ -16,15 +18,15 @@ PresenceWidget::PresenceWidget(MainWindow &mainWindow) :
|
|||||||
{
|
{
|
||||||
connect(&m_mainWindow, &MainWindow::refreshEverything, this, &PresenceWidget::refresh);
|
connect(&m_mainWindow, &MainWindow::refreshEverything, this, &PresenceWidget::refresh);
|
||||||
|
|
||||||
m_labelAvailable = new QLabel(this);
|
m_buttonAvailable = new QPushButton(this);
|
||||||
m_labelAvailable->setFrameShape(QFrame::Panel);
|
m_menuAvailable = new QMenu(this);
|
||||||
m_labelAvailable->setFrameShadow(QFrame::Sunken);
|
m_buttonAvailable->setMenu(m_menuAvailable);
|
||||||
m_mainWindow.statusBar()->addWidget(m_labelAvailable);
|
m_mainWindow.statusBar()->addWidget(m_buttonAvailable);
|
||||||
|
|
||||||
m_labelNotAvailable = new QLabel(this);
|
m_buttonNotAvailable = new QPushButton(this);
|
||||||
m_labelNotAvailable->setFrameShape(QFrame::Panel);
|
m_menuNotAvailable = new QMenu(this);
|
||||||
m_labelNotAvailable->setFrameShadow(QFrame::Sunken);
|
m_buttonNotAvailable->setMenu(m_menuNotAvailable);
|
||||||
m_mainWindow.statusBar()->addWidget(m_labelNotAvailable);
|
m_mainWindow.statusBar()->addWidget(m_buttonNotAvailable);
|
||||||
|
|
||||||
m_action = m_mainWindow.menuView()->addAction(QIcon(QStringLiteral(":zeiterfassung/plugins/presenceplugin/images/refresh.png")),
|
m_action = m_mainWindow.menuView()->addAction(QIcon(QStringLiteral(":zeiterfassung/plugins/presenceplugin/images/refresh.png")),
|
||||||
tr("Refresh presence"), this, &PresenceWidget::refresh);
|
tr("Refresh presence"), this, &PresenceWidget::refresh);
|
||||||
@@ -39,8 +41,10 @@ PresenceWidget::PresenceWidget(MainWindow &mainWindow) :
|
|||||||
|
|
||||||
void PresenceWidget::refresh()
|
void PresenceWidget::refresh()
|
||||||
{
|
{
|
||||||
m_labelAvailable->setText(tr("%0: %1").arg(tr("Available")).arg(tr("???")));
|
m_buttonAvailable->setText(tr("%0: %1").arg(tr("Available")).arg(tr("???")));
|
||||||
m_labelNotAvailable->setText(tr("%0: %1").arg(tr("Not available")).arg(tr("???")));
|
m_menuAvailable->clear();
|
||||||
|
m_buttonNotAvailable->setText(tr("%0: %1").arg(tr("Not available")).arg(tr("???")));
|
||||||
|
m_menuNotAvailable->clear();
|
||||||
|
|
||||||
m_action->setEnabled(false);
|
m_action->setEnabled(false);
|
||||||
|
|
||||||
@@ -57,23 +61,19 @@ void PresenceWidget::finished()
|
|||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(const auto &status : m_reply->presenceStatuses())
|
||||||
{
|
{
|
||||||
int available = 0,
|
if(status.presence == QStringLiteral("J"))
|
||||||
notAvailable = 0;
|
m_menuAvailable->addAction(tr("%0 %1").arg(status.firstName).arg(status.lastName));
|
||||||
for(const auto &status : m_reply->presenceStatuses())
|
else if(status.presence == QStringLiteral("N"))
|
||||||
{
|
m_menuNotAvailable->addAction(tr("%0 %1").arg(status.firstName).arg(status.lastName));
|
||||||
if(status.presence == QStringLiteral("J"))
|
else
|
||||||
available++;
|
qWarning() << "unknown presence" << status.firstName << status.lastName << status.presence;
|
||||||
else if(status.presence == QStringLiteral("N"))
|
|
||||||
notAvailable++;
|
|
||||||
else
|
|
||||||
qWarning() << "unknown presence" << status.firstName << status.lastName << status.presence;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_labelAvailable->setText(tr("%0: %1").arg(tr("Available")).arg(available));
|
|
||||||
m_labelNotAvailable->setText(tr("%0: %1").arg(tr("Not available")).arg(notAvailable));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_buttonAvailable->setText(tr("%0: %1").arg(tr("Available")).arg(m_menuAvailable->actions().count()));
|
||||||
|
m_buttonNotAvailable->setText(tr("%0: %1").arg(tr("Not available")).arg(m_menuNotAvailable->actions().count()));
|
||||||
|
|
||||||
after:
|
after:
|
||||||
m_action->setEnabled(true);
|
m_action->setEnabled(true);
|
||||||
m_reply = Q_NULLPTR;
|
m_reply = Q_NULLPTR;
|
||||||
|
@@ -4,7 +4,8 @@
|
|||||||
|
|
||||||
#include "replies/getpresencestatusreply.h"
|
#include "replies/getpresencestatusreply.h"
|
||||||
|
|
||||||
class QLabel;
|
class QPushButton;
|
||||||
|
class QMenu;
|
||||||
class QAction;
|
class QAction;
|
||||||
|
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
@@ -23,8 +24,10 @@ private Q_SLOTS:
|
|||||||
private:
|
private:
|
||||||
MainWindow &m_mainWindow;
|
MainWindow &m_mainWindow;
|
||||||
|
|
||||||
QLabel *m_labelAvailable;
|
QPushButton *m_buttonAvailable;
|
||||||
QLabel *m_labelNotAvailable;
|
QMenu *m_menuAvailable;
|
||||||
|
QPushButton *m_buttonNotAvailable;
|
||||||
|
QMenu *m_menuNotAvailable;
|
||||||
|
|
||||||
QAction *m_action;
|
QAction *m_action;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user