diff --git a/dialogs/aboutmedialog.ui b/dialogs/aboutmedialog.ui
index 6b6bc52..3564b77 100644
--- a/dialogs/aboutmedialog.ui
+++ b/dialogs/aboutmedialog.ui
@@ -6,8 +6,8 @@
0
0
- 400
- 236
+ 454
+ 0
@@ -19,7 +19,7 @@
About me
-
+
-
@@ -124,8 +124,32 @@
+ -
+
+
+ QDialogButtonBox::Close
+
+
+
-
+
+
+ buttonBox
+ rejected()
+ AboutMeDialog
+ close()
+
+
+ 226
+ 5
+
+
+ 226
+ 0
+
+
+
+
diff --git a/images/about.png b/images/about.png
new file mode 100644
index 0000000..b83e926
Binary files /dev/null and b/images/about.png differ
diff --git a/images/help.png b/images/help.png
new file mode 100644
index 0000000..9242cc8
Binary files /dev/null and b/images/help.png differ
diff --git a/images/user.png b/images/user.png
new file mode 100644
index 0000000..e6e955f
Binary files /dev/null and b/images/user.png differ
diff --git a/main.cpp b/main.cpp
index e93bc32..6865934 100755
--- a/main.cpp
+++ b/main.cpp
@@ -146,7 +146,7 @@ int main(int argc, char *argv[])
{
QEventLoop eventLoop;
- QObject::connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ QObject::connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -164,11 +164,8 @@ int main(int argc, char *argv[])
settings.setUrl(url);
erfassung.setUrl(url);
- reply->deleteLater();
goto again1;
}
-
- reply->deleteLater();
}
splashScreen.showMessage(QCoreApplication::translate("main", "Authenticating..."));
@@ -188,7 +185,7 @@ int main(int argc, char *argv[])
{
QEventLoop eventLoop;
- QObject::connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ QObject::connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -205,11 +202,8 @@ int main(int argc, char *argv[])
settings.setUsername(dialog.username());
settings.setPassword(dialog.password());
- reply->deleteLater();
goto again2;
}
-
- reply->deleteLater();
}
splashScreen.showMessage(QCoreApplication::translate("main", "Getting user information..."));
@@ -221,7 +215,7 @@ int main(int argc, char *argv[])
{
QEventLoop eventLoop;
- QObject::connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ QObject::connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -229,13 +223,10 @@ int main(int argc, char *argv[])
{
QMessageBox::warning(&splashScreen, QCoreApplication::translate("main", "Could not get user information!"),
QCoreApplication::translate("main", "Could not get user information!") % "\n\n" % reply->message());
-
- reply->deleteLater();
return -1;
}
userInfo = reply->userInfo();
- reply->deleteLater();
}
splashScreen.showMessage(QCoreApplication::translate("main", "Loading strip layouts..."));
@@ -256,7 +247,6 @@ int main(int argc, char *argv[])
QCoreApplication::translate("main", "Could not load strips!") % "\n\n" % stripFactory.errorString());
return -1;
}
- widget->deleteLater();
}
{
@@ -267,7 +257,6 @@ int main(int argc, char *argv[])
QCoreApplication::translate("main", "Could not load strips!") % "\n\n" % stripFactory.errorString());
return -1;
}
- widget->deleteLater();
}
{
@@ -278,7 +267,6 @@ int main(int argc, char *argv[])
QCoreApplication::translate("main", "Could not load strips!") % "\n\n" % stripFactory.errorString());
return -1;
}
- widget->deleteLater();
}
MainWindow mainWindow(settings, erfassung, userInfo, stripFactory);
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 5405732..5a3800e 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -86,7 +86,7 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
connect(ui->pushButtonNow, &QAbstractButton::pressed, [=](){ ui->timeEditTime->setTime(QTime::currentTime()); });
m_getProjectsReply = erfassung.doGetProjects(userInfo.userId, QDate::currentDate());
- connect(m_getProjectsReply, &ZeiterfassungReply::finished, this, &MainWindow::getProjectsFinished);
+ connect(m_getProjectsReply.get(), &ZeiterfassungReply::finished, this, &MainWindow::getProjectsFinished);
ui->comboBoxProject->setMaxVisibleItems(10);
@@ -140,7 +140,6 @@ void MainWindow::getProjectsFinished()
QMessageBox::warning(this, tr("Could not load bookings!"),
tr("Could not load bookings!") % "\n\n" % m_getProjectsReply->message());
- m_getProjectsReply->deleteLater();
m_getProjectsReply = Q_NULLPTR;
}
@@ -161,7 +160,6 @@ void MainWindow::getAuswertungFinished()
{
m_auswertungDate = QDate();
QMessageBox::warning(this, tr("Could not load Auswertung!"), tr("Could not load Auswertung!") % "\n\n" % m_getAuswertungReply->message());
- m_getAuswertungReply->deleteLater();
m_getAuswertungReply = Q_NULLPTR;
return;
}
@@ -202,7 +200,6 @@ void MainWindow::getAuswertungFinished()
m_balanceLabel->setText(tr("%0: %1").arg(tr("Balance")).arg(gleitzeit));
m_holidaysLabel->setText(tr("%0: %1").arg(tr("Holidays")).arg(urlaubsAnspruch));
- m_getAuswertungReply->deleteLater();
m_getAuswertungReply = Q_NULLPTR;
}
@@ -229,7 +226,7 @@ void MainWindow::contextMenuBooking(const QPoint &pos)
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -240,11 +237,8 @@ void MainWindow::contextMenuBooking(const QPoint &pos)
else
{
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message());
- reply->deleteLater();
goto again2;
}
-
- reply->deleteLater();
}
}
else if(selectedAction == refreshAction)
@@ -276,7 +270,7 @@ void MainWindow::contextMenuBooking(const QPoint &pos)
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -287,11 +281,8 @@ void MainWindow::contextMenuBooking(const QPoint &pos)
else
{
QMessageBox::warning(this, tr("Could not edit booking!"), tr("Could not edit booking!") % "\n\n" % reply->message());
- reply->deleteLater();
goto again1;
}
-
- reply->deleteLater();
}
}
else if(selectedAction == deleteAction)
@@ -306,18 +297,14 @@ void MainWindow::contextMenuBooking(const QPoint &pos)
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
if(reply->success())
- {
m_currentStripWidget->refreshBookings();
- }
else
QMessageBox::warning(this, tr("Could not delete booking!"), tr("Could not delete booking!") % "\n\n" % reply->message());
-
- reply->deleteLater();
}
}
}
@@ -346,7 +333,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -357,11 +344,8 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
else
{
QMessageBox::warning(this, tr("Could not create time assignment!"), tr("Could not create time assignment!") % "\n\n" % reply->message());
- reply->deleteLater();
goto again2;
}
-
- reply->deleteLater();
}
}
else if(selectedAction == refreshAction)
@@ -396,7 +380,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -407,11 +391,8 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
else
{
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message());
- reply->deleteLater();
goto again1;
}
-
- reply->deleteLater();
}
}
else if(selectedAction == deleteAction)
@@ -426,7 +407,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -436,8 +417,6 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
}
else
QMessageBox::warning(this, tr("Could not delete time assignment!"), tr("Could not delete time assignment!") % "\n\n" % reply->message());
-
- reply->deleteLater();
}
}
}
@@ -456,7 +435,7 @@ void MainWindow::pushButtonStartPressed()
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -464,12 +443,9 @@ void MainWindow::pushButtonStartPressed()
{
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message());
m_currentStripWidget->refresh();
- reply->deleteLater();
return;
}
- reply->deleteLater();
-
bookingsChanged = true;
}
@@ -489,7 +465,7 @@ void MainWindow::pushButtonStartPressed()
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -499,34 +475,30 @@ void MainWindow::pushButtonStartPressed()
{
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message());
m_currentStripWidget->refresh();
- reply->deleteLater();
return;
}
-
- reply->deleteLater();
}
}
- auto reply = m_erfassung.doCreateTimeAssignment(m_userInfo.userId, ui->dateEditDate->date(),
- timeAssignmentTime, QTime(0, 0),
- ui->comboBoxProject->currentData().toString(), ui->comboBoxSubproject->currentText(),
- ui->comboBoxWorkpackage->currentText(), ui->comboBoxText->currentText());
-
{
- QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
- eventLoop.exec();
- }
+ auto reply = m_erfassung.doCreateTimeAssignment(m_userInfo.userId, ui->dateEditDate->date(),
+ timeAssignmentTime, QTime(0, 0),
+ ui->comboBoxProject->currentData().toString(), ui->comboBoxSubproject->currentText(),
+ ui->comboBoxWorkpackage->currentText(), ui->comboBoxText->currentText());
- if(!reply->success())
- {
- QMessageBox::warning(this, tr("Could not create time assignment!"), tr("Could not create time assignment!") % "\n\n" % reply->message());
- m_currentStripWidget->refresh();
- reply->deleteLater();
- return;
- }
+ {
+ QEventLoop eventLoop;
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ eventLoop.exec();
+ }
- reply->deleteLater();
+ if(!reply->success())
+ {
+ QMessageBox::warning(this, tr("Could not create time assignment!"), tr("Could not create time assignment!") % "\n\n" % reply->message());
+ m_currentStripWidget->refresh();
+ return;
+ }
+ }
m_settings.prependProject(ui->comboBoxProject->currentData().toString());
m_settings.prependSubproject(ui->comboBoxSubproject->currentText());
@@ -566,7 +538,7 @@ void MainWindow::pushButtonEndPressed()
{
QEventLoop eventLoop;
- connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
+ connect(reply.get(), SIGNAL(finished()), &eventLoop, SLOT(quit()));
eventLoop.exec();
}
@@ -574,11 +546,8 @@ void MainWindow::pushButtonEndPressed()
{
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % reply->message());
m_currentStripWidget->refresh();
- reply->deleteLater();
return;
}
-
- reply->deleteLater();
}
{
@@ -588,7 +557,7 @@ void MainWindow::pushButtonEndPressed()
{
QEventLoop eventLoop;
- connect(reply, &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
+ connect(reply.get(), &ZeiterfassungReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
}
@@ -596,11 +565,8 @@ void MainWindow::pushButtonEndPressed()
{
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % reply->message());
m_currentStripWidget->refresh();
- reply->deleteLater();
return;
}
-
- reply->deleteLater();
}
m_currentStripWidget->refresh();
@@ -745,7 +711,7 @@ void MainWindow::refreshAuswertung()
m_auswertungDate = QDate(ui->dateEditDate->date().year(), ui->dateEditDate->date().month(), 1);
m_getAuswertungReply = m_erfassung.doGetAuswertung(m_userInfo.userId, m_auswertungDate);
- connect(m_getAuswertungReply, &ZeiterfassungReply::finished, this, &MainWindow::getAuswertungFinished);
+ connect(m_getAuswertungReply.get(), &ZeiterfassungReply::finished, this, &MainWindow::getAuswertungFinished);
}
void MainWindow::updateComboboxes()
diff --git a/mainwindow.h b/mainwindow.h
index df337ee..5d8421e 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -1,6 +1,8 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
+#include
+
#include
#include
@@ -52,8 +54,8 @@ private:
const ZeiterfassungApi::UserInfo &m_userInfo;
StripFactory &m_stripFactory;
- GetProjectsReply *m_getProjectsReply;
- GetAuswertungReply *m_getAuswertungReply;
+ std::unique_ptr m_getProjectsReply;
+ std::unique_ptr m_getAuswertungReply;
BookingsModel *m_bookingsModel;
TimeAssignmentsModel *m_timeAssignmentsModel;
diff --git a/mainwindow.ui b/mainwindow.ui
index 2737c4f..87a9f30 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -257,6 +257,7 @@
+
@@ -302,11 +303,19 @@
+
+
+ :/zeiterfassung/images/user.png:/zeiterfassung/images/user.png
+
About &Me
+
+
+ :/zeiterfassung/images/about.png:/zeiterfassung/images/about.png
+
About &zeiterfassung
@@ -352,6 +361,15 @@
&Settings
+
+
+
+ :/zeiterfassung/images/help.png:/zeiterfassung/images/help.png
+
+
+ Help
+
+
diff --git a/replies/createbookingreply.cpp b/replies/createbookingreply.cpp
index 9127140..07cd2c3 100644
--- a/replies/createbookingreply.cpp
+++ b/replies/createbookingreply.cpp
@@ -1,17 +1,16 @@
#include "createbookingreply.h"
-#include
#include
#include
#include
#include
-CreateBookingReply::CreateBookingReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+CreateBookingReply::CreateBookingReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply),
+ m_reply(std::move(reply)),
m_bookingId(-1)
{
- connect(reply, &QNetworkReply::finished, this, &CreateBookingReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &CreateBookingReply::requestFinished);
}
int CreateBookingReply::bookingId() const
@@ -59,7 +58,6 @@ void CreateBookingReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/createbookingreply.h b/replies/createbookingreply.h
index dfa0d73..accc5dd 100644
--- a/replies/createbookingreply.h
+++ b/replies/createbookingreply.h
@@ -1,16 +1,18 @@
#ifndef CREATEBOOKINGREPLY_H
#define CREATEBOOKINGREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class CreateBookingReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- CreateBookingReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ CreateBookingReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
int bookingId() const;
@@ -18,7 +20,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
int m_bookingId;
};
diff --git a/replies/createtimeassignmentreply.cpp b/replies/createtimeassignmentreply.cpp
index 9ff1ec4..51c3a62 100644
--- a/replies/createtimeassignmentreply.cpp
+++ b/replies/createtimeassignmentreply.cpp
@@ -1,17 +1,16 @@
#include "createtimeassignmentreply.h"
-#include
#include
#include
#include
#include
-CreateTimeAssignmentReply::CreateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+CreateTimeAssignmentReply::CreateTimeAssignmentReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply),
+ m_reply(std::move(reply)),
m_timeAssignmentId(-1)
{
- connect(reply, &QNetworkReply::finished, this, &CreateTimeAssignmentReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &CreateTimeAssignmentReply::requestFinished);
}
int CreateTimeAssignmentReply::timeAssignmentId() const
@@ -59,7 +58,6 @@ void CreateTimeAssignmentReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/createtimeassignmentreply.h b/replies/createtimeassignmentreply.h
index bd9da80..634b907 100644
--- a/replies/createtimeassignmentreply.h
+++ b/replies/createtimeassignmentreply.h
@@ -1,16 +1,18 @@
#ifndef CREATETIMEASSIGNMENTREPLY_H
#define CREATETIMEASSIGNMENTREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class CreateTimeAssignmentReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- CreateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ CreateTimeAssignmentReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
int timeAssignmentId() const;
@@ -18,7 +20,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
int m_timeAssignmentId;
};
diff --git a/replies/deletebookingreply.cpp b/replies/deletebookingreply.cpp
index c059365..5549f32 100644
--- a/replies/deletebookingreply.cpp
+++ b/replies/deletebookingreply.cpp
@@ -1,12 +1,10 @@
#include "deletebookingreply.h"
-#include
-
-DeleteBookingReply::DeleteBookingReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+DeleteBookingReply::DeleteBookingReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &DeleteBookingReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &DeleteBookingReply::requestFinished);
}
void DeleteBookingReply::requestFinished()
@@ -23,7 +21,6 @@ void DeleteBookingReply::requestFinished()
setSuccess(true);
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/deletebookingreply.h b/replies/deletebookingreply.h
index 604f965..94796c4 100644
--- a/replies/deletebookingreply.h
+++ b/replies/deletebookingreply.h
@@ -1,22 +1,24 @@
#ifndef DELETEBOOKINGREPLY_H
#define DELETEBOOKINGREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class DeleteBookingReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- DeleteBookingReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ DeleteBookingReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
};
#endif // DELETEBOOKINGREPLY_H
diff --git a/replies/deletetimeassignmentreply.cpp b/replies/deletetimeassignmentreply.cpp
index 9412e1d..5c3ea75 100644
--- a/replies/deletetimeassignmentreply.cpp
+++ b/replies/deletetimeassignmentreply.cpp
@@ -1,12 +1,10 @@
#include "deletetimeassignmentreply.h"
-#include
-
-DeleteTimeAssignmentReply::DeleteTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+DeleteTimeAssignmentReply::DeleteTimeAssignmentReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &DeleteTimeAssignmentReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &DeleteTimeAssignmentReply::requestFinished);
}
void DeleteTimeAssignmentReply::requestFinished()
@@ -23,7 +21,6 @@ void DeleteTimeAssignmentReply::requestFinished()
setSuccess(true);
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/deletetimeassignmentreply.h b/replies/deletetimeassignmentreply.h
index 10e7a1c..b2a545e 100644
--- a/replies/deletetimeassignmentreply.h
+++ b/replies/deletetimeassignmentreply.h
@@ -1,22 +1,24 @@
#ifndef DELETETIMEASSIGNMENT_H
#define DELETETIMEASSIGNMENT_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class DeleteTimeAssignmentReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- DeleteTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ DeleteTimeAssignmentReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
};
#endif // DELETETIMEASSIGNMENT_H
diff --git a/replies/getauswertungreply.cpp b/replies/getauswertungreply.cpp
index 8c2ad8a..3a2e0bd 100644
--- a/replies/getauswertungreply.cpp
+++ b/replies/getauswertungreply.cpp
@@ -1,14 +1,12 @@
#include "getauswertungreply.h"
-#include
-
#include "zeiterfassungapi.h"
-GetAuswertungReply::GetAuswertungReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+GetAuswertungReply::GetAuswertungReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &GetAuswertungReply::request0Finished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &GetAuswertungReply::request0Finished);
}
const QByteArray &GetAuswertungReply::auswertung() const
@@ -22,7 +20,6 @@ void GetAuswertungReply::request0Finished()
{
setSuccess(false);
setMessage(tr("Request error occured: %0").arg(m_reply->error()));
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
return;
@@ -31,10 +28,8 @@ void GetAuswertungReply::request0Finished()
QUrl url(zeiterfassung()->url());
url.setPath(QString(m_reply->readAll()));
- m_reply->deleteLater();
-
- m_reply = zeiterfassung()->manager()->get(QNetworkRequest(url));
- connect(m_reply, &QNetworkReply::finished, this, &GetAuswertungReply::request1Finished);
+ m_reply = std::unique_ptr(zeiterfassung()->manager()->get(QNetworkRequest(url)));
+ connect(m_reply.get(), &QNetworkReply::finished, this, &GetAuswertungReply::request1Finished);
}
void GetAuswertungReply::request1Finished()
@@ -50,7 +45,6 @@ void GetAuswertungReply::request1Finished()
m_auswertung = m_reply->readAll();
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/getauswertungreply.h b/replies/getauswertungreply.h
index c42597d..b220880 100644
--- a/replies/getauswertungreply.h
+++ b/replies/getauswertungreply.h
@@ -1,18 +1,19 @@
#ifndef GETAUSWERTUNGREPLY_H
#define GETAUSWERTUNGREPLY_H
+#include
+
+#include
#include
#include "zeiterfassungreply.h"
-class QNetworkReply;
-
class GetAuswertungReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- GetAuswertungReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ GetAuswertungReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
const QByteArray &auswertung() const;
@@ -21,7 +22,7 @@ private Q_SLOTS:
void request1Finished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
QByteArray m_auswertung;
};
diff --git a/replies/getbookingsreply.cpp b/replies/getbookingsreply.cpp
index 7bab592..6f97f50 100644
--- a/replies/getbookingsreply.cpp
+++ b/replies/getbookingsreply.cpp
@@ -1,17 +1,16 @@
#include "getbookingsreply.h"
-#include
#include
#include
#include
#include
#include
-GetBookingsReply::GetBookingsReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+GetBookingsReply::GetBookingsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &GetBookingsReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &GetBookingsReply::requestFinished);
}
const QVector &GetBookingsReply::bookings() const
@@ -65,7 +64,6 @@ void GetBookingsReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/getbookingsreply.h b/replies/getbookingsreply.h
index 6dff267..459a426 100644
--- a/replies/getbookingsreply.h
+++ b/replies/getbookingsreply.h
@@ -1,19 +1,20 @@
#ifndef GETBOOKINGSREPLY_H
#define GETBOOKINGSREPLY_H
+#include
+
+#include
#include
#include "zeiterfassungreply.h"
#include "zeiterfassungapi.h"
-class QNetworkReply;
-
class GetBookingsReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- GetBookingsReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ GetBookingsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
const QVector &bookings() const;
@@ -21,7 +22,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
QVector m_bookings;
};
diff --git a/replies/getprojectsreply.cpp b/replies/getprojectsreply.cpp
index 687e4fd..ab2fb73 100644
--- a/replies/getprojectsreply.cpp
+++ b/replies/getprojectsreply.cpp
@@ -1,17 +1,16 @@
#include "getprojectsreply.h"
-#include
#include
#include
#include
#include
#include
-GetProjectsReply::GetProjectsReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+GetProjectsReply::GetProjectsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &GetProjectsReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &GetProjectsReply::requestFinished);
}
const QVector &GetProjectsReply::projects() const
@@ -79,7 +78,6 @@ void GetProjectsReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/getprojectsreply.h b/replies/getprojectsreply.h
index d7231bb..faa4886 100644
--- a/replies/getprojectsreply.h
+++ b/replies/getprojectsreply.h
@@ -1,19 +1,20 @@
#ifndef GETPROJECTSREPLY_H
#define GETPROJECTSREPLY_H
+#include
+
+#include
#include
#include "zeiterfassungreply.h"
#include "zeiterfassungapi.h"
-class QNetworkReply;
-
class GetProjectsReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- GetProjectsReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ GetProjectsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
const QVector &projects() const;
@@ -21,7 +22,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
QVector m_projects;
};
diff --git a/replies/gettimeassignmentsreply.cpp b/replies/gettimeassignmentsreply.cpp
index 14bf9dc..bd86c93 100644
--- a/replies/gettimeassignmentsreply.cpp
+++ b/replies/gettimeassignmentsreply.cpp
@@ -7,11 +7,11 @@
#include
#include
-GetTimeAssignmentsReply::GetTimeAssignmentsReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+GetTimeAssignmentsReply::GetTimeAssignmentsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &GetTimeAssignmentsReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &GetTimeAssignmentsReply::requestFinished);
}
const QVector &GetTimeAssignmentsReply::timeAssignments() const
@@ -69,7 +69,6 @@ void GetTimeAssignmentsReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/gettimeassignmentsreply.h b/replies/gettimeassignmentsreply.h
index dfdb628..153064e 100644
--- a/replies/gettimeassignmentsreply.h
+++ b/replies/gettimeassignmentsreply.h
@@ -1,19 +1,20 @@
#ifndef GETTIMEASSIGNMENTSREPLY_H
#define GETTIMEASSIGNMENTSREPLY_H
+#include
+
+#include
#include
#include "zeiterfassungreply.h"
#include "zeiterfassungapi.h"
-class QNetworkReply;
-
class GetTimeAssignmentsReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- GetTimeAssignmentsReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ GetTimeAssignmentsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
const QVector &timeAssignments() const;
@@ -21,7 +22,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
QVector m_timeAssignments;
};
diff --git a/replies/loginpagereply.cpp b/replies/loginpagereply.cpp
index 206b7c7..f05f60e 100644
--- a/replies/loginpagereply.cpp
+++ b/replies/loginpagereply.cpp
@@ -2,11 +2,11 @@
#include
-LoginPageReply::LoginPageReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+LoginPageReply::LoginPageReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &LoginPageReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &LoginPageReply::requestFinished);
}
void LoginPageReply::requestFinished()
@@ -28,7 +28,6 @@ void LoginPageReply::requestFinished()
setSuccess(true);
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/loginpagereply.h b/replies/loginpagereply.h
index f8dfaee..203cb5d 100644
--- a/replies/loginpagereply.h
+++ b/replies/loginpagereply.h
@@ -1,22 +1,24 @@
#ifndef LOGINPAGEREPLY_H
#define LOGINPAGEREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class LoginPageReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- LoginPageReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ LoginPageReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
};
#endif // LOGINPAGEREPLY_H
diff --git a/replies/loginreply.cpp b/replies/loginreply.cpp
index 675bc7b..a81971b 100644
--- a/replies/loginreply.cpp
+++ b/replies/loginreply.cpp
@@ -2,11 +2,11 @@
#include
-LoginReply::LoginReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+LoginReply::LoginReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &LoginReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &LoginReply::requestFinished);
}
void LoginReply::requestFinished()
@@ -48,7 +48,6 @@ void LoginReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/loginreply.h b/replies/loginreply.h
index 5796daf..bcf7dc1 100644
--- a/replies/loginreply.h
+++ b/replies/loginreply.h
@@ -1,22 +1,24 @@
#ifndef LOGINREPLY_H
#define LOGINREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class LoginReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- LoginReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ LoginReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
};
#endif // LOGINREPLY_H
diff --git a/replies/updatebookingreply.cpp b/replies/updatebookingreply.cpp
index 59bc716..8feb6c9 100644
--- a/replies/updatebookingreply.cpp
+++ b/replies/updatebookingreply.cpp
@@ -1,17 +1,16 @@
#include "updatebookingreply.h"
-#include
#include
#include
#include
#include
-UpdateBookingReply::UpdateBookingReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+UpdateBookingReply::UpdateBookingReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply),
+ m_reply(std::move(reply)),
m_bookingId(-1)
{
- connect(reply, &QNetworkReply::finished, this, &UpdateBookingReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &UpdateBookingReply::requestFinished);
}
void UpdateBookingReply::requestFinished()
@@ -54,7 +53,6 @@ void UpdateBookingReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/updatebookingreply.h b/replies/updatebookingreply.h
index a0fa90b..f61e179 100644
--- a/replies/updatebookingreply.h
+++ b/replies/updatebookingreply.h
@@ -1,22 +1,24 @@
#ifndef UPDATEBOOKINGREPLY_H
#define UPDATEBOOKINGREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class UpdateBookingReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- UpdateBookingReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ UpdateBookingReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
int m_bookingId;
};
diff --git a/replies/updatetimeassignmentreply.cpp b/replies/updatetimeassignmentreply.cpp
index c33bdb9..6a08740 100644
--- a/replies/updatetimeassignmentreply.cpp
+++ b/replies/updatetimeassignmentreply.cpp
@@ -1,17 +1,16 @@
#include "updatetimeassignmentreply.h"
-#include
#include
#include
#include
#include
-UpdateTimeAssignmentReply::UpdateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+UpdateTimeAssignmentReply::UpdateTimeAssignmentReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply),
+ m_reply(std::move(reply)),
m_timeAssignmentId(-1)
{
- connect(reply, &QNetworkReply::finished, this, &UpdateTimeAssignmentReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &UpdateTimeAssignmentReply::requestFinished);
}
int UpdateTimeAssignmentReply::timeAssignmentId() const
@@ -59,7 +58,6 @@ void UpdateTimeAssignmentReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/updatetimeassignmentreply.h b/replies/updatetimeassignmentreply.h
index d053315..84b4cca 100644
--- a/replies/updatetimeassignmentreply.h
+++ b/replies/updatetimeassignmentreply.h
@@ -1,16 +1,18 @@
#ifndef UPDATETIMEASSIGNMENTREPLY_H
#define UPDATETIMEASSIGNMENTREPLY_H
-#include "zeiterfassungreply.h"
+#include
-class QNetworkReply;
+#include
+
+#include "zeiterfassungreply.h"
class UpdateTimeAssignmentReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- UpdateTimeAssignmentReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ UpdateTimeAssignmentReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
int timeAssignmentId() const;
@@ -18,7 +20,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
int m_timeAssignmentId;
};
diff --git a/replies/userinforeply.cpp b/replies/userinforeply.cpp
index 07a9b4c..4e45625 100644
--- a/replies/userinforeply.cpp
+++ b/replies/userinforeply.cpp
@@ -1,16 +1,15 @@
#include "userinforeply.h"
-#include
#include
#include
#include
#include
-UserInfoReply::UserInfoReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung) :
+UserInfoReply::UserInfoReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) :
ZeiterfassungReply(zeiterfassung),
- m_reply(reply)
+ m_reply(std::move(reply))
{
- connect(reply, &QNetworkReply::finished, this, &UserInfoReply::requestFinished);
+ connect(m_reply.get(), &QNetworkReply::finished, this, &UserInfoReply::requestFinished);
}
const ZeiterfassungApi::UserInfo &UserInfoReply::userInfo() const
@@ -75,7 +74,6 @@ void UserInfoReply::requestFinished()
}
end:
- m_reply->deleteLater();
m_reply = Q_NULLPTR;
Q_EMIT finished();
diff --git a/replies/userinforeply.h b/replies/userinforeply.h
index a2f454b..aeee527 100644
--- a/replies/userinforeply.h
+++ b/replies/userinforeply.h
@@ -1,17 +1,19 @@
#ifndef USERINFOREPLY_H
#define USERINFOREPLY_H
+#include
+
+#include
+
#include "zeiterfassungreply.h"
#include "zeiterfassungapi.h"
-class QNetworkReply;
-
class UserInfoReply : public ZeiterfassungReply
{
Q_OBJECT
public:
- UserInfoReply(QNetworkReply *reply, ZeiterfassungApi *zeiterfassung);
+ UserInfoReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung);
const ZeiterfassungApi::UserInfo &userInfo() const;
@@ -19,7 +21,7 @@ private Q_SLOTS:
void requestFinished();
private:
- QNetworkReply *m_reply;
+ std::unique_ptr m_reply;
ZeiterfassungApi::UserInfo m_userInfo;
};
diff --git a/resources.qrc b/resources.qrc
index bfcebf5..37eb951 100644
--- a/resources.qrc
+++ b/resources.qrc
@@ -1,7 +1,9 @@
+ images/about.png
images/auswertung.png
images/authentication.png
+ images/help.png
images/icon.png
images/next.png
images/now.png
@@ -11,5 +13,6 @@
images/settings.png
images/splash.png
images/today.png
+ images/user.png
diff --git a/stripfactory.cpp b/stripfactory.cpp
index ea36ab6..d48b282 100644
--- a/stripfactory.cpp
+++ b/stripfactory.cpp
@@ -55,7 +55,7 @@ const QString &StripFactory::errorString() const
return m_errorString;
}
-QWidget *StripFactory::createBookingStartStrip(QWidget *parent)
+std::unique_ptr StripFactory::createBookingStartStrip(QWidget *parent)
{
QBuffer buffer(&m_bookingStartStrip);
if(!buffer.open(QIODevice::ReadOnly))
@@ -64,7 +64,7 @@ QWidget *StripFactory::createBookingStartStrip(QWidget *parent)
return Q_NULLPTR;
}
- auto widget = m_loader->load(&buffer, parent);
+ auto widget = std::unique_ptr(m_loader->load(&buffer, parent));
if(!widget)
m_errorString = m_loader->errorString();
@@ -72,7 +72,7 @@ QWidget *StripFactory::createBookingStartStrip(QWidget *parent)
return widget;
}
-QWidget *StripFactory::createBookingEndStrip(QWidget *parent)
+std::unique_ptr StripFactory::createBookingEndStrip(QWidget *parent)
{
QBuffer buffer(&m_bookingEndStrip);
if(!buffer.open(QIODevice::ReadOnly))
@@ -81,7 +81,7 @@ QWidget *StripFactory::createBookingEndStrip(QWidget *parent)
return Q_NULLPTR;
}
- auto widget = m_loader->load(&buffer, parent);
+ auto widget = std::unique_ptr(m_loader->load(&buffer, parent));
if(!widget)
m_errorString = m_loader->errorString();
@@ -89,7 +89,7 @@ QWidget *StripFactory::createBookingEndStrip(QWidget *parent)
return widget;
}
-QWidget *StripFactory::createTimeAssignmentStrip(QWidget *parent)
+std::unique_ptr StripFactory::createTimeAssignmentStrip(QWidget *parent)
{
QBuffer buffer(&m_timeAssignmentStrip);
if(!buffer.open(QIODevice::ReadOnly))
@@ -98,7 +98,7 @@ QWidget *StripFactory::createTimeAssignmentStrip(QWidget *parent)
return Q_NULLPTR;
}
- auto widget = m_loader->load(&buffer, parent);
+ auto widget = std::unique_ptr(m_loader->load(&buffer, parent));
if(!widget)
m_errorString = m_loader->errorString();
diff --git a/stripfactory.h b/stripfactory.h
index a8135ab..4aae50e 100644
--- a/stripfactory.h
+++ b/stripfactory.h
@@ -1,7 +1,10 @@
#ifndef STRIPFACTORY_H
#define STRIPFACTORY_H
+#include
+
#include
+#include
class QUiLoader;
class QByteArray;
@@ -16,9 +19,9 @@ public:
bool load(const QString &stripsPath);
const QString &errorString() const;
- QWidget *createBookingStartStrip(QWidget *parent = Q_NULLPTR);
- QWidget *createBookingEndStrip(QWidget *parent = Q_NULLPTR);
- QWidget *createTimeAssignmentStrip(QWidget *parent = Q_NULLPTR);
+ std::unique_ptr createBookingStartStrip(QWidget *parent = Q_NULLPTR);
+ std::unique_ptr createBookingEndStrip(QWidget *parent = Q_NULLPTR);
+ std::unique_ptr createTimeAssignmentStrip(QWidget *parent = Q_NULLPTR);
private:
QUiLoader *m_loader;
diff --git a/stripswidget.cpp b/stripswidget.cpp
index 877e52b..150a711 100644
--- a/stripswidget.cpp
+++ b/stripswidget.cpp
@@ -7,8 +7,6 @@
#include
#include
-#include "replies/getbookingsreply.h"
-#include "replies/gettimeassignmentsreply.h"
#include "timeutils.h"
#include "stripfactory.h"
@@ -126,7 +124,7 @@ void StripsWidget::refreshBookings()
invalidateValues();
m_getBookingsReply = m_erfassung.doGetBookings(m_userId, m_date, m_date);
- connect(m_getBookingsReply, &ZeiterfassungReply::finished, this, &StripsWidget::getBookingsFinished);
+ connect(m_getBookingsReply.get(), &ZeiterfassungReply::finished, this, &StripsWidget::getBookingsFinished);
}
void StripsWidget::refreshTimeAssignments()
@@ -152,7 +150,7 @@ void StripsWidget::refreshTimeAssignments()
invalidateValues();
m_getTimeAssignmentsReply = m_erfassung.doGetTimeAssignments(m_userId, m_date, m_date);
- connect(m_getTimeAssignmentsReply, &ZeiterfassungReply::finished, this, &StripsWidget::getTimeAssignmentsFinished);
+ connect(m_getTimeAssignmentsReply.get(), &ZeiterfassungReply::finished, this, &StripsWidget::getTimeAssignmentsFinished);
}
bool StripsWidget::createStrips()
@@ -469,7 +467,6 @@ void StripsWidget::getBookingsFinished()
createStrips();
}
- m_getBookingsReply->deleteLater();
m_getBookingsReply = Q_NULLPTR;
}
@@ -488,7 +485,6 @@ void StripsWidget::getTimeAssignmentsFinished()
createStrips();
}
- m_getTimeAssignmentsReply->deleteLater();
m_getTimeAssignmentsReply = Q_NULLPTR;
}
@@ -523,7 +519,7 @@ QString StripsWidget::buildProjectString(const QString &project)
QWidget *StripsWidget::appendBookingStartStrip(int id, const QTime &time)
{
- auto widget = m_stripFactory.createBookingStartStrip(this);
+ auto widget = m_stripFactory.createBookingStartStrip(this).release();
if(auto labelTime = widget->findChild(QStringLiteral("labelTime")))
labelTime->setProperty("text", time.toString(tr("HH:mm")));
@@ -542,7 +538,7 @@ QWidget *StripsWidget::appendBookingStartStrip(int id, const QTime &time)
QWidget *StripsWidget::appendBookingEndStrip(int id, const QTime &time)
{
- auto widget = m_stripFactory.createBookingEndStrip(this);
+ auto widget = m_stripFactory.createBookingEndStrip(this).release();
if(auto labelTime = widget->findChild(QStringLiteral("labelTime")))
labelTime->setProperty("text", time.toString(tr("HH:mm")));
@@ -561,7 +557,7 @@ QWidget *StripsWidget::appendBookingEndStrip(int id, const QTime &time)
QWidget *StripsWidget::appendTimeAssignmentStrip(int id, const QTime &duration, const QString &project, const QString &subproject, const QString &workpackage, const QString &text)
{
- auto widget = m_stripFactory.createTimeAssignmentStrip(this);
+ auto widget = m_stripFactory.createTimeAssignmentStrip(this).release();
if(auto labelTime = widget->findChild(QStringLiteral("labelTime")))
labelTime->setProperty("text", duration == QTime(0, 0) ? tr("Open") : duration.toString(tr("HH:mm")));
diff --git a/stripswidget.h b/stripswidget.h
index fe64532..689511d 100644
--- a/stripswidget.h
+++ b/stripswidget.h
@@ -1,18 +1,20 @@
#ifndef STRIPSWIDGET_H
#define STRIPSWIDGET_H
+#include
+
#include
#include
#include "zeiterfassungapi.h"
+#include "replies/getbookingsreply.h"
+#include "replies/gettimeassignmentsreply.h"
class QBoxLayout;
template class QMap;
template class QVector;
class StripFactory;
-class GetBookingsReply;
-class GetTimeAssignmentsReply;
class StripsWidget : public QWidget
{
@@ -91,8 +93,8 @@ private:
bool m_startEnabled;
bool m_endEnabled;
- GetBookingsReply *m_getBookingsReply;
- GetTimeAssignmentsReply *m_getTimeAssignmentsReply;
+ std::unique_ptr m_getBookingsReply;
+ std::unique_ptr m_getTimeAssignmentsReply;
};
#endif // STRIPSWIDGET_H
diff --git a/zeiterfassung.pro b/zeiterfassung.pro
index 6ca243a..42e32dd 100755
--- a/zeiterfassung.pro
+++ b/zeiterfassung.pro
@@ -1,6 +1,6 @@
QT += network gui widgets uitools
-CONFIG += c++11
+CONFIG += c++14
CONFIG -= app_bundle
# The following define makes your compiler emit warnings if you use
diff --git a/zeiterfassungapi.cpp b/zeiterfassungapi.cpp
index da1fbdf..6e95090 100644
--- a/zeiterfassungapi.cpp
+++ b/zeiterfassungapi.cpp
@@ -45,16 +45,16 @@ QNetworkAccessManager *ZeiterfassungApi::manager() const
return m_manager;
}
-LoginPageReply *ZeiterfassungApi::doLoginPage()
+std::unique_ptr ZeiterfassungApi::doLoginPage()
{
QNetworkRequest request(QUrl(m_url % "pages/login.jsp"));
- auto reply = m_manager->get(request);
+ auto reply = std::unique_ptr(m_manager->get(request));
- return new LoginPageReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-LoginReply *ZeiterfassungApi::doLogin(const QString &username, const QString &password)
+std::unique_ptr ZeiterfassungApi::doLogin(const QString &username, const QString &password)
{
QNetworkRequest request(QUrl(m_url % "pages/j_spring_security_check"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/x-www-form-urlencoded"));
@@ -62,22 +62,22 @@ LoginReply *ZeiterfassungApi::doLogin(const QString &username, const QString &pa
auto data = QStringLiteral("j_username=%0&j_password=%1&login=Anmelden").arg(username).arg(password).toUtf8();
- auto reply = m_manager->post(request, data);
+ auto reply = std::unique_ptr(m_manager->post(request, data));
- return new LoginReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-UserInfoReply *ZeiterfassungApi::doUserInfo()
+std::unique_ptr ZeiterfassungApi::doUserInfo()
{
QNetworkRequest request(QUrl(m_url % "json/evoAppsUserInfoDialogController/load-EvoAppsUserInfoTO"));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("home"));
- auto reply = m_manager->get(request);
+ auto reply = std::unique_ptr(m_manager->get(request));
- return new UserInfoReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-GetBookingsReply *ZeiterfassungApi::doGetBookings(int userId, const QDate &start, const QDate &end)
+std::unique_ptr ZeiterfassungApi::doGetBookings(int userId, const QDate &start, const QDate &end)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/bookings?start=%1&end=%2&pnrLst=%3")
.arg(m_url)
@@ -86,12 +86,13 @@ GetBookingsReply *ZeiterfassungApi::doGetBookings(int userId, const QDate &start
.arg(userId)));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
- auto reply = m_manager->get(request);
+ auto reply = std::unique_ptr(m_manager->get(request));
- return new GetBookingsReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-CreateBookingReply *ZeiterfassungApi::doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan, const QString &type, const QString &text)
+std::unique_ptr ZeiterfassungApi::doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan,
+ const QString &type, const QString &text)
{
QNetworkRequest request(QUrl(m_url % "json/booking"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
@@ -108,12 +109,13 @@ CreateBookingReply *ZeiterfassungApi::doCreateBooking(int userId, const QDate &d
obj[QStringLiteral("bewEinh")] = QStringLiteral("");
obj[QStringLiteral("text")] = text;
- auto reply = m_manager->post(request, QJsonDocument(obj).toJson());
+ auto reply = std::unique_ptr(m_manager->post(request, QJsonDocument(obj).toJson()));
- return new CreateBookingReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-UpdateBookingReply *ZeiterfassungApi::doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time, const QTime ×pan, const QString &type, const QString &text)
+std::unique_ptr ZeiterfassungApi::doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time,
+ const QTime ×pan, const QString &type, const QString &text)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1").arg(m_url).arg(bookingId)));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
@@ -133,24 +135,24 @@ UpdateBookingReply *ZeiterfassungApi::doUpdateBooking(int bookingId, int userId,
auto data = QJsonDocument(obj).toJson();
- auto reply = m_manager->put(request, data);
+ auto reply = std::unique_ptr(m_manager->put(request, data));
- return new UpdateBookingReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-DeleteBookingReply *ZeiterfassungApi::doDeleteBooking(int bookingId)
+std::unique_ptr ZeiterfassungApi::doDeleteBooking(int bookingId)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1?text=")
.arg(m_url)
.arg(bookingId)));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
- auto reply = m_manager->deleteResource(request);
+ auto reply = std::unique_ptr(m_manager->deleteResource(request));
- return new DeleteBookingReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-GetTimeAssignmentsReply *ZeiterfassungApi::doGetTimeAssignments(int userId, const QDate &start, const QDate &end)
+std::unique_ptr ZeiterfassungApi::doGetTimeAssignments(int userId, const QDate &start, const QDate &end)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking?start=%1&end=%2&pnrLst=%3")
.arg(m_url)
@@ -159,14 +161,15 @@ GetTimeAssignmentsReply *ZeiterfassungApi::doGetTimeAssignments(int userId, cons
.arg(userId)));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
- auto reply = m_manager->get(request);
+ auto reply = std::unique_ptr(m_manager->get(request));
- return new GetTimeAssignmentsReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-CreateTimeAssignmentReply *ZeiterfassungApi::doCreateTimeAssignment(int userId, const QDate &date, const QTime &time, const QTime ×pan,
- const QString &project, const QString &subproject, const QString &workpackage,
- const QString &text)
+std::unique_ptr ZeiterfassungApi::doCreateTimeAssignment(int userId, const QDate &date, const QTime &time,
+ const QTime ×pan, const QString &project,
+ const QString &subproject, const QString &workpackage,
+ const QString &text)
{
QNetworkRequest request(QUrl(m_url % "json/azebooking"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
@@ -201,14 +204,15 @@ CreateTimeAssignmentReply *ZeiterfassungApi::doCreateTimeAssignment(int userId,
auto data = QJsonDocument(obj).toJson();
- auto reply = m_manager->post(request, data);
+ auto reply = std::unique_ptr(m_manager->post(request, data));
- return new CreateTimeAssignmentReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-UpdateTimeAssignmentReply *ZeiterfassungApi::doUpdateTimeAssignment(int timeAssignmentId, int userId, const QDate &date, const QTime &time,
- const QTime ×pan, const QString &project, const QString &subproject,
- const QString &workpackage, const QString &text)
+std::unique_ptr ZeiterfassungApi::doUpdateTimeAssignment(int timeAssignmentId, int userId, const QDate &date,
+ const QTime &time, const QTime ×pan, const QString &project,
+ const QString &subproject, const QString &workpackage,
+ const QString &text)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking/%1").arg(m_url).arg(timeAssignmentId)));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
@@ -248,24 +252,24 @@ UpdateTimeAssignmentReply *ZeiterfassungApi::doUpdateTimeAssignment(int timeAssi
auto data = QJsonDocument(obj).toJson();
- auto reply = m_manager->put(request, data);
+ auto reply = std::unique_ptr(m_manager->put(request, data));
- return new UpdateTimeAssignmentReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-DeleteTimeAssignmentReply *ZeiterfassungApi::doDeleteTimeAssignment(int timeAssignmentId)
+std::unique_ptr ZeiterfassungApi::doDeleteTimeAssignment(int timeAssignmentId)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking/%1")
.arg(m_url)
.arg(timeAssignmentId)));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
- auto reply = m_manager->deleteResource(request);
+ auto reply = std::unique_ptr(m_manager->deleteResource(request));
- return new DeleteTimeAssignmentReply(reply,this);
+ return std::make_unique(std::move(reply), this);
}
-GetProjectsReply *ZeiterfassungApi::doGetProjects(int userId, const QDate &date)
+std::unique_ptr ZeiterfassungApi::doGetProjects(int userId, const QDate &date)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/combobox?persnr=%1&date=%2&dqkey=KOST&kowert0=&kowert1=&kowert2=&term=")
.arg(m_url)
@@ -273,12 +277,12 @@ GetProjectsReply *ZeiterfassungApi::doGetProjects(int userId, const QDate &date)
.arg(date.toString(QStringLiteral("yyyyMMdd")))));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
- auto reply = m_manager->get(request);
+ auto reply = std::unique_ptr(m_manager->get(request));
- return new GetProjectsReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
-GetAuswertungReply *ZeiterfassungApi::doGetAuswertung(int userId, const QDate &date)
+std::unique_ptr ZeiterfassungApi::doGetAuswertung(int userId, const QDate &date)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/auswertung/month?persNr=%1&date=%2")
.arg(m_url)
@@ -286,7 +290,7 @@ GetAuswertungReply *ZeiterfassungApi::doGetAuswertung(int userId, const QDate &d
.arg(date.toString(QStringLiteral("yyyyMMdd")))));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
- auto reply = m_manager->get(request);
+ auto reply = std::unique_ptr(m_manager->get(request));
- return new GetAuswertungReply(reply, this);
+ return std::make_unique(std::move(reply), this);
}
diff --git a/zeiterfassungapi.h b/zeiterfassungapi.h
index 7c25380..e403c2a 100644
--- a/zeiterfassungapi.h
+++ b/zeiterfassungapi.h
@@ -1,6 +1,8 @@
#ifndef ZEITERFASSUNGAPI_H
#define ZEITERFASSUNGAPI_H
+#include
+
#include
#include
#include
@@ -71,29 +73,30 @@ public:
QString value;
};
-public Q_SLOTS:
- LoginPageReply *doLoginPage();
- LoginReply *doLogin(const QString &username, const QString &password);
- UserInfoReply *doUserInfo();
+ std::unique_ptr doLoginPage();
+ std::unique_ptr doLogin(const QString &username, const QString &password);
+ std::unique_ptr doUserInfo();
- GetBookingsReply *doGetBookings(int userId, const QDate &start, const QDate &end);
- CreateBookingReply *doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan,
- const QString &type, const QString &text);
- UpdateBookingReply *doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time,
- const QTime ×pan, const QString &type, const QString &text);
- DeleteBookingReply *doDeleteBooking(int bookingId);
+ std::unique_ptr doGetBookings(int userId, const QDate &start, const QDate &end);
+ std::unique_ptr doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan,
+ const QString &type, const QString &text);
+ std::unique_ptr doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time,
+ const QTime ×pan, const QString &type, const QString &text);
+ std::unique_ptr doDeleteBooking(int bookingId);
- GetTimeAssignmentsReply *doGetTimeAssignments(int userId, const QDate &start, const QDate &end);
- CreateTimeAssignmentReply *doCreateTimeAssignment(int userId, const QDate &date, const QTime &time, const QTime ×pan,
- const QString &project, const QString &subproject, const QString &workpackage,
- const QString &text);
- UpdateTimeAssignmentReply *doUpdateTimeAssignment(int timeAssignmentId, int userId, const QDate &date, const QTime &time,
- const QTime ×pan, const QString &project, const QString &subproject,
- const QString &workpackage, const QString &text);
- DeleteTimeAssignmentReply *doDeleteTimeAssignment(int timeAssignmentId);
+ std::unique_ptr doGetTimeAssignments(int userId, const QDate &start, const QDate &end);
+ std::unique_ptr doCreateTimeAssignment(int userId, const QDate &date, const QTime &time,
+ const QTime ×pan, const QString &project,
+ const QString &subproject, const QString &workpackage,
+ const QString &text);
+ std::unique_ptr doUpdateTimeAssignment(int timeAssignmentId, int userId, const QDate &date,
+ const QTime &time, const QTime ×pan, const QString &project,
+ const QString &subproject, const QString &workpackage,
+ const QString &text);
+ std::unique_ptr doDeleteTimeAssignment(int timeAssignmentId);
- GetProjectsReply *doGetProjects(int userId, const QDate &date);
- GetAuswertungReply *doGetAuswertung(int userId, const QDate &date);
+ std::unique_ptr doGetProjects(int userId, const QDate &date);
+ std::unique_ptr doGetAuswertung(int userId, const QDate &date);
private:
QString m_url;