Removd ReportsWidget blocking the input #50

This commit is contained in:
0xFEEDC0DE64
2017-12-23 10:48:56 +01:00
parent 59536b69ec
commit 2d9d878445
3 changed files with 29 additions and 29 deletions

View File

@@ -4,6 +4,9 @@
#include <QDir> #include <QDir>
#include <QCoreApplication> #include <QCoreApplication>
#include <QLocale> #include <QLocale>
#include <QStatusBar>
#include "mainwindow.h"
#include "reportswidget.h" #include "reportswidget.h"
@@ -29,5 +32,5 @@ ReportsPlugin::ReportsPlugin(QObject *parent) :
void ReportsPlugin::attachTo(MainWindow &mainWindow) void ReportsPlugin::attachTo(MainWindow &mainWindow)
{ {
new ReportsWidget(mainWindow); mainWindow.statusBar()->addPermanentWidget(new ReportsWidget(mainWindow));
} }

View File

@@ -1,6 +1,5 @@
#include "reportswidget.h" #include "reportswidget.h"
#include <QLabel>
#include <QStatusBar> #include <QStatusBar>
#include <QMenu> #include <QMenu>
#include <QToolBar> #include <QToolBar>
@@ -15,27 +14,25 @@
#include "zeiterfassungapi.h" #include "zeiterfassungapi.h"
ReportsWidget::ReportsWidget(MainWindow &mainWindow) : ReportsWidget::ReportsWidget(MainWindow &mainWindow) :
QWidget(&mainWindow), QLabel(&mainWindow),
m_mainWindow(mainWindow) m_mainWindow(mainWindow)
{ {
connect(&m_mainWindow, &MainWindow::dateChanged, this, &ReportsWidget::dateChanged); connect(&m_mainWindow, &MainWindow::dateChanged, this, &ReportsWidget::dateChanged);
connect(&m_mainWindow, &MainWindow::refreshEverything, this, &ReportsWidget::refresh); connect(&m_mainWindow, &MainWindow::refreshEverything, this, &ReportsWidget::refresh);
m_labelBalance = new QLabel(this); setFrameShape(QFrame::Panel);
m_labelBalance->setFrameShape(QFrame::Panel); setFrameShadow(QFrame::Sunken);
m_labelBalance->setFrameShadow(QFrame::Sunken);
m_mainWindow.statusBar()->addPermanentWidget(m_labelBalance);
m_labelHolidays = new QLabel(this); m_actionRefreshReport = new QAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/reportsplugin/images/refresh.png")),
m_labelHolidays->setFrameShape(QFrame::Panel); tr("Refresh report"), this);
m_labelHolidays->setFrameShadow(QFrame::Sunken); connect(m_actionRefreshReport, &QAction::triggered, this, &ReportsWidget::refresh);
m_mainWindow.statusBar()->addPermanentWidget(m_labelHolidays); m_mainWindow.menuView()->addAction(m_actionRefreshReport);
m_actionRefreshReport = m_mainWindow.menuView()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/reportsplugin/images/refresh.png")), m_actionOpenReport = new QAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/reportsplugin/images/report.png")),
tr("Refresh report"), this, &ReportsWidget::refresh); tr("Open report"), this);
connect(m_actionOpenReport, &QAction::triggered, this, &ReportsWidget::openReport);
m_mainWindow.menuTools()->addAction(m_actionOpenReport);
m_actionOpenReport = m_mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/reportsplugin/images/report.png")),
tr("Open report"), this, &ReportsWidget::openReport);
m_mainWindow.toolBar()->addAction(m_actionOpenReport); m_mainWindow.toolBar()->addAction(m_actionOpenReport);
dateChanged(m_mainWindow.date()); dateChanged(m_mainWindow.date());
@@ -65,12 +62,11 @@ void ReportsWidget::refresh()
return; return;
} }
setText(tr("Balance: %0, Holidays: %0").arg(tr("???")).arg(tr("???")));
m_actionRefreshReport->setEnabled(false); m_actionRefreshReport->setEnabled(false);
m_actionOpenReport->setEnabled(false); m_actionOpenReport->setEnabled(false);
m_labelBalance->setText(tr("%0: %1").arg(tr("Balance")).arg(tr("???")));
m_labelHolidays->setText(tr("%0: %1").arg(tr("Holidays")).arg(tr("???")));
m_reply = m_mainWindow.erfassung().doGetReport(m_mainWindow.userInfo().userId, m_date); m_reply = m_mainWindow.erfassung().doGetReport(m_mainWindow.userInfo().userId, m_date);
connect(m_reply.get(), &ZeiterfassungReply::finished, this, &ReportsWidget::finished); connect(m_reply.get(), &ZeiterfassungReply::finished, this, &ReportsWidget::finished);
} }
@@ -87,38 +83,43 @@ void ReportsWidget::finished()
{ {
auto content = m_reply->content(); auto content = m_reply->content();
QString balance;
{ {
static QRegularExpression regex(QStringLiteral("Gleitzeit +([0-9]+\\:[0-9]+\\-?) +([0-9]+\\:[0-9]+\\-?)")); static QRegularExpression regex(QStringLiteral("Gleitzeit +([0-9]+\\:[0-9]+\\-?) +([0-9]+\\:[0-9]+\\-?)"));
auto match = regex.match(content); auto match = regex.match(content);
if(match.hasMatch()) if(match.hasMatch())
{ {
auto balance = match.captured(2); balance = match.captured(2);
if(balance.endsWith(QChar('-'))) if(balance.endsWith(QChar('-')))
{ {
balance.chop(1); balance.chop(1);
balance = QChar('-') % balance; balance = QChar('-') % balance;
} }
m_labelBalance->setText(tr("%0: %1").arg(tr("Balance")).arg(tr("%0h").arg(balance)));
} }
else else
{ {
m_labelBalance->setText(tr("%0: %1").arg(tr("Balance")).arg(tr("n/a"))); balance = tr("n/a");
qWarning() << "balance not found in PDF"; qWarning() << "balance not found in PDF";
} }
} }
QString holidays;
{ {
static QRegularExpression regex(QStringLiteral("Urlaubsanspruch +(\\-?[0-9]+\\.[0-9]+) +(\\-?[0-9]+\\.[0-9]+)")); static QRegularExpression regex(QStringLiteral("Urlaubsanspruch +(\\-?[0-9]+\\.[0-9]+) +(\\-?[0-9]+\\.[0-9]+)"));
auto match = regex.match(content); auto match = regex.match(content);
if(match.hasMatch()) if(match.hasMatch())
m_labelHolidays->setText(tr("%0: %1").arg(tr("Holidays")).arg(match.captured(2))); holidays = match.captured(2);
else else
{ {
m_labelHolidays->setText(tr("%0: %1").arg(tr("Holidays")).arg(tr("n/a"))); holidays = tr("n/a");
qWarning() << "holidays not found in PDF"; qWarning() << "holidays not found in PDF";
} }
} }
setText(tr("Balance: %0, Holidays: %0").arg(balance).arg(holidays));
{ {
QTemporaryFile file(QDir::temp().absoluteFilePath(QStringLiteral("reportXXXXXX.pdf"))); QTemporaryFile file(QDir::temp().absoluteFilePath(QStringLiteral("reportXXXXXX.pdf")));
file.setAutoRemove(false); file.setAutoRemove(false);

View File

@@ -1,17 +1,16 @@
#pragma once #pragma once
#include <QWidget> #include <QLabel>
#include <QDate> #include <QDate>
#include <QUrl> #include <QUrl>
#include "replies/getreportreply.h" #include "replies/getreportreply.h"
class QLabel;
class QAction; class QAction;
class MainWindow; class MainWindow;
class ReportsWidget : public QWidget class ReportsWidget : public QLabel
{ {
Q_OBJECT Q_OBJECT
@@ -27,9 +26,6 @@ private Q_SLOTS:
private: private:
MainWindow &m_mainWindow; MainWindow &m_mainWindow;
QLabel *m_labelBalance;
QLabel *m_labelHolidays;
QAction *m_actionOpenReport; QAction *m_actionOpenReport;
QAction *m_actionRefreshReport; QAction *m_actionRefreshReport;