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;