Write temporary file only when viewed in PDF viewer
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
#include "reportswidget.h"
|
#include "reportswidget.h"
|
||||||
|
|
||||||
|
// Qt includes
|
||||||
#include <QStatusBar>
|
#include <QStatusBar>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
@@ -11,7 +12,13 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
|
|
||||||
|
// dbcorelib includes
|
||||||
|
#include "utils/timeutils.h"
|
||||||
|
|
||||||
|
// zeiterfassungguilib includes
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
// zeiterfassungnetworklib includes
|
||||||
#include "zeiterfassungapi.h"
|
#include "zeiterfassungapi.h"
|
||||||
|
|
||||||
ReportsWidget::ReportsWidget(MainWindow &mainWindow) :
|
ReportsWidget::ReportsWidget(MainWindow &mainWindow) :
|
||||||
@@ -47,7 +54,7 @@ void ReportsWidget::dateChanged(const QDate &date)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto monthBegin = QDate(date.year(), date.month(), 1);
|
const auto monthBegin = beginOfMonth(date);
|
||||||
if(monthBegin != m_date)
|
if(monthBegin != m_date)
|
||||||
{
|
{
|
||||||
m_date = monthBegin;
|
m_date = monthBegin;
|
||||||
@@ -65,6 +72,7 @@ void ReportsWidget::refresh()
|
|||||||
|
|
||||||
setText(tr("Balance: %0, Holidays: %1").arg(tr("???")).arg(tr("???")));
|
setText(tr("Balance: %0, Holidays: %1").arg(tr("???")).arg(tr("???")));
|
||||||
|
|
||||||
|
m_content.clear();
|
||||||
m_actionRefreshReport->setEnabled(false);
|
m_actionRefreshReport->setEnabled(false);
|
||||||
m_actionOpenReport->setEnabled(false);
|
m_actionOpenReport->setEnabled(false);
|
||||||
|
|
||||||
@@ -74,21 +82,15 @@ void ReportsWidget::refresh()
|
|||||||
|
|
||||||
void ReportsWidget::finished()
|
void ReportsWidget::finished()
|
||||||
{
|
{
|
||||||
if(!m_reply->success())
|
if(m_reply->success())
|
||||||
{
|
{
|
||||||
m_date = QDate();
|
m_content = m_reply->content();
|
||||||
QMessageBox::warning(this, tr("Could not load report!"), tr("Could not load report!") % "\n\n" % m_reply->message());
|
|
||||||
goto after;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
auto content = m_reply->content();
|
|
||||||
|
|
||||||
QString balance;
|
QString balance;
|
||||||
|
|
||||||
{
|
{
|
||||||
static QRegularExpression regex(QStringLiteral("Gleitzeit +([0-9]+\\:[0-9]+\\-?) +([0-9]+\\:[0-9]+\\-?)"));
|
static const QRegularExpression regex(QStringLiteral("Gleitzeit +([0-9]+\\:[0-9]+\\-?) +([0-9]+\\:[0-9]+\\-?)"));
|
||||||
auto match = regex.match(content);
|
const auto match = regex.match(m_content);
|
||||||
if(match.hasMatch())
|
if(match.hasMatch())
|
||||||
{
|
{
|
||||||
balance = match.captured(2);
|
balance = match.captured(2);
|
||||||
@@ -108,8 +110,8 @@ void ReportsWidget::finished()
|
|||||||
QString holidays;
|
QString holidays;
|
||||||
|
|
||||||
{
|
{
|
||||||
static QRegularExpression regex(QStringLiteral("Urlaubsanspruch +(\\-?[0-9]+\\.[0-9]+) +(\\-?[0-9]+\\.[0-9]+)"));
|
static const QRegularExpression regex(QStringLiteral("Urlaubsanspruch +(\\-?[0-9]+\\.[0-9]+) +(\\-?[0-9]+\\.[0-9]+)"));
|
||||||
auto match = regex.match(content);
|
const auto match = regex.match(m_content);
|
||||||
if(match.hasMatch())
|
if(match.hasMatch())
|
||||||
holidays = match.captured(2);
|
holidays = match.captured(2);
|
||||||
else
|
else
|
||||||
@@ -120,6 +122,18 @@ void ReportsWidget::finished()
|
|||||||
}
|
}
|
||||||
|
|
||||||
setText(tr("Balance: %0, Holidays: %1").arg(balance).arg(holidays));
|
setText(tr("Balance: %0, Holidays: %1").arg(balance).arg(holidays));
|
||||||
|
m_actionOpenReport->setEnabled(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
QMessageBox::warning(this, tr("Could not load report!"), tr("Could not load report!") % "\n\n" % m_reply->message());
|
||||||
|
|
||||||
|
m_actionRefreshReport->setEnabled(true);
|
||||||
|
m_reply = Q_NULLPTR;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReportsWidget::openReport()
|
||||||
|
{
|
||||||
|
QUrl url;
|
||||||
|
|
||||||
{
|
{
|
||||||
QTemporaryFile file(QDir::temp().absoluteFilePath(QStringLiteral("reportXXXXXX.pdf")));
|
QTemporaryFile file(QDir::temp().absoluteFilePath(QStringLiteral("reportXXXXXX.pdf")));
|
||||||
@@ -127,24 +141,14 @@ void ReportsWidget::finished()
|
|||||||
if(!file.open())
|
if(!file.open())
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not write report!"), tr("Could not write report!") % "\n\n" % file.errorString());
|
QMessageBox::warning(this, tr("Could not write report!"), tr("Could not write report!") % "\n\n" % file.errorString());
|
||||||
goto after;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
file.write(content);
|
file.write(m_content);
|
||||||
|
|
||||||
m_url = QUrl::fromLocalFile(file.fileName());
|
url = QUrl::fromLocalFile(file.fileName());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_actionOpenReport->setEnabled(true);
|
if(!QDesktopServices::openUrl(url))
|
||||||
|
|
||||||
after:
|
|
||||||
m_actionRefreshReport->setEnabled(true);
|
|
||||||
m_reply = Q_NULLPTR;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ReportsWidget::openReport()
|
|
||||||
{
|
|
||||||
if(!QDesktopServices::openUrl(m_url))
|
|
||||||
QMessageBox::warning(this, tr("Could not launch your default PDF viewer!"), tr("Could not launch your default PDF viewer!"));
|
QMessageBox::warning(this, tr("Could not launch your default PDF viewer!"), tr("Could not launch your default PDF viewer!"));
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QDate>
|
#include <QDate>
|
||||||
#include <QUrl>
|
#include <QByteArray>
|
||||||
|
|
||||||
#include "replies/getreportreply.h"
|
#include "replies/getreportreply.h"
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ private:
|
|||||||
QAction *m_actionRefreshReport;
|
QAction *m_actionRefreshReport;
|
||||||
|
|
||||||
QDate m_date;
|
QDate m_date;
|
||||||
QUrl m_url;
|
QByteArray m_content;
|
||||||
|
|
||||||
std::unique_ptr<GetReportReply> m_reply;
|
std::unique_ptr<GetReportReply> m_reply;
|
||||||
};
|
};
|
||||||
|
@@ -4,44 +4,44 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>ReportsWidget</name>
|
<name>ReportsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="28"/>
|
<location filename="../reportswidget.cpp" line="35"/>
|
||||||
<source>Refresh report</source>
|
<source>Refresh report</source>
|
||||||
<translation>Auswertung aktualisieren</translation>
|
<translation>Auswertung aktualisieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="33"/>
|
<location filename="../reportswidget.cpp" line="40"/>
|
||||||
<source>Open report</source>
|
<source>Open report</source>
|
||||||
<translation>Auswertung öffnen</translation>
|
<translation>Auswertung öffnen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="66"/>
|
<location filename="../reportswidget.cpp" line="73"/>
|
||||||
<source>???</source>
|
<source>???</source>
|
||||||
<translation>???</translation>
|
<translation>???</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="66"/>
|
<location filename="../reportswidget.cpp" line="73"/>
|
||||||
<location filename="../reportswidget.cpp" line="122"/>
|
<location filename="../reportswidget.cpp" line="124"/>
|
||||||
<source>Balance: %0, Holidays: %1</source>
|
<source>Balance: %0, Holidays: %1</source>
|
||||||
<translation>Gleitzeit: %0, Urlaub: %1</translation>
|
<translation>Gleitzeit: %0, Urlaub: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="80"/>
|
<location filename="../reportswidget.cpp" line="128"/>
|
||||||
<source>Could not load report!</source>
|
<source>Could not load report!</source>
|
||||||
<translation>Konnte Auswertung nicht laden!</translation>
|
<translation>Konnte Auswertung nicht laden!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="103"/>
|
<location filename="../reportswidget.cpp" line="105"/>
|
||||||
<location filename="../reportswidget.cpp" line="117"/>
|
<location filename="../reportswidget.cpp" line="119"/>
|
||||||
<source>n/a</source>
|
<source>n/a</source>
|
||||||
<translation>n/v</translation>
|
<translation>n/v</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="129"/>
|
<location filename="../reportswidget.cpp" line="143"/>
|
||||||
<source>Could not write report!</source>
|
<source>Could not write report!</source>
|
||||||
<translation>Konnte Auswertung nicht abspeichern!</translation>
|
<translation>Konnte Auswertung nicht abspeichern!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="149"/>
|
<location filename="../reportswidget.cpp" line="153"/>
|
||||||
<source>Could not launch your default PDF viewer!</source>
|
<source>Could not launch your default PDF viewer!</source>
|
||||||
<translation>Konnte Standard-PDF-Viewer nicht öffnen!</translation>
|
<translation>Konnte Standard-PDF-Viewer nicht öffnen!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@@ -4,44 +4,44 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>ReportsWidget</name>
|
<name>ReportsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="28"/>
|
<location filename="../reportswidget.cpp" line="35"/>
|
||||||
<source>Refresh report</source>
|
<source>Refresh report</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="33"/>
|
<location filename="../reportswidget.cpp" line="40"/>
|
||||||
<source>Open report</source>
|
<source>Open report</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="66"/>
|
<location filename="../reportswidget.cpp" line="73"/>
|
||||||
<source>???</source>
|
<source>???</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="66"/>
|
<location filename="../reportswidget.cpp" line="73"/>
|
||||||
<location filename="../reportswidget.cpp" line="122"/>
|
<location filename="../reportswidget.cpp" line="124"/>
|
||||||
<source>Balance: %0, Holidays: %1</source>
|
<source>Balance: %0, Holidays: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="80"/>
|
<location filename="../reportswidget.cpp" line="128"/>
|
||||||
<source>Could not load report!</source>
|
<source>Could not load report!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="103"/>
|
<location filename="../reportswidget.cpp" line="105"/>
|
||||||
<location filename="../reportswidget.cpp" line="117"/>
|
<location filename="../reportswidget.cpp" line="119"/>
|
||||||
<source>n/a</source>
|
<source>n/a</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="129"/>
|
<location filename="../reportswidget.cpp" line="143"/>
|
||||||
<source>Could not write report!</source>
|
<source>Could not write report!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../reportswidget.cpp" line="149"/>
|
<location filename="../reportswidget.cpp" line="153"/>
|
||||||
<source>Could not launch your default PDF viewer!</source>
|
<source>Could not launch your default PDF viewer!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
Reference in New Issue
Block a user