Fixed error handling of StripFactory

This commit is contained in:
0xFEEDC0DE64 committed 2017-12-11 09:46:14 +01:00
1 parent 7d03c764e8
commit b52a357f67
5 files changed
+26 -22

No files matched your search

+10 -1
View File
@@ -17,6 +17,7 @@
#include "replies/loginpagereply.h"
#include "replies/loginreply.h"
#include "replies/userinforeply.h"
#include "stripfactory.h"
bool loadAndInstallTranslator(QTranslator &translator,
const QLocale &locale,
@@ -198,7 +199,15 @@ int main(int argc, char *argv[])
reply->deleteLater();
}
MainWindow mainWindow(settings, erfassung, userInfo);
StripFactory stripFactory(&app);
if(!stripFactory.load(QDir(QCoreApplication::applicationDirPath()).absoluteFilePath("strips")))
{
QMessageBox::warning(&splashScreen, QCoreApplication::translate("main", "Could not load strips!"),
QCoreApplication::translate("main", "Could not load strips!") % "\n\n" % stripFactory.errorString());
return -1;
}
MainWindow mainWindow(settings, erfassung, userInfo, stripFactory);
mainWindow.show();
splashScreen.finish(&mainWindow);
+4 -10
View File
@@ -36,13 +36,14 @@
#include "replies/createtimeassignmentreply.h"
#include "replies/createbookingreply.h"
MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfassung, const ZeiterfassungApi::UserInfo &userInfo, QWidget *parent) :
MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfassung, const ZeiterfassungApi::UserInfo &userInfo,
StripFactory &stripFactory, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
m_settings(settings),
m_erfassung(erfassung),
m_userInfo(userInfo),
m_stripFactory(new StripFactory(this)),
m_stripFactory(stripFactory),
m_currentStripWidget(Q_NULLPTR)
{
ui->setupUi(this);
@@ -63,7 +64,7 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
layout->addWidget(label);
}
m_stripsWidgets[i] = new StripsWidget(m_erfassung, m_stripFactory, m_userInfo.userId, m_projects, widget);
m_stripsWidgets[i] = new StripsWidget(m_erfassung, m_userInfo.userId, m_stripFactory, m_projects, widget);
layout->addWidget(m_stripsWidgets[i++]);
layout->addStretch(1);
@@ -126,13 +127,6 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
m_holidaysLabel->setFrameShape(QFrame::Panel);
m_holidaysLabel->setFrameShadow(QFrame::Sunken);
if(!m_stripFactory->load(QDir(QCoreApplication::applicationDirPath()).absoluteFilePath("strips")))
{
QMessageBox::warning(this, tr("Could not load strips!"), tr("Could not load strips!") % "\n\n" % m_stripFactory->errorString());
qApp->exit(-1);
return;
}
dateChanged();
if(settings.lastUpdateCheck().isNull() || settings.lastUpdateCheck() < QDate::currentDate())
+3 -2
View File
@@ -21,7 +21,8 @@ class MainWindow : public QMainWindow
Q_OBJECT
public:
explicit MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfassung, const ZeiterfassungApi::UserInfo &userInfo, QWidget *parent = Q_NULLPTR);
explicit MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfassung, const ZeiterfassungApi::UserInfo &userInfo,
StripFactory &stripFactory, QWidget *parent = Q_NULLPTR);
~MainWindow();
private Q_SLOTS:
@@ -60,7 +61,7 @@ private:
QLabel *m_balanceLabel;
QLabel *m_holidaysLabel;
StripFactory *m_stripFactory;
StripFactory &m_stripFactory;
StripsWidget *m_stripsWidgets[7];
StripsWidget *m_currentStripWidget;
};
+6 -6
View File
@@ -15,12 +15,12 @@
#include "timeutils.h"
#include "stripfactory.h"
StripsWidget::StripsWidget(ZeiterfassungApi &erfassung, StripFactory *stripFactory,
int userId, const QMap<QString, QString> &projects, QWidget *parent) :
StripsWidget::StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory &stripFactory,
const QMap<QString, QString> &projects, QWidget *parent) :
QWidget(parent),
m_erfassung(erfassung),
m_stripFactory(stripFactory),
m_userId(userId),
m_stripFactory(stripFactory),
m_projects(projects),
m_layout(new QVBoxLayout(this)),
m_bookingsModel(new BookingsModel(this)),
@@ -440,7 +440,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);
if(auto labelTime = widget->findChild<QWidget*>("labelTime"))
labelTime->setProperty("text", time.toString(QStringLiteral("HH:mm")));
@@ -459,7 +459,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);
if(auto labelTime = widget->findChild<QWidget*>("labelTime"))
labelTime->setProperty("text", time.toString(QStringLiteral("HH:mm")));
@@ -478,7 +478,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);
if(auto labelTime = widget->findChild<QWidget*>("labelTime"))
labelTime->setProperty("text", duration == QTime(0, 0) ? tr("Open") : duration.toString(QStringLiteral("HH:mm")));
+3 -3
View File
@@ -21,8 +21,8 @@ class StripsWidget : public QWidget
Q_OBJECT
public:
explicit StripsWidget(ZeiterfassungApi &erfassung, StripFactory *stripFactory,
int userId, const QMap<QString, QString> &projects, QWidget *parent = Q_NULLPTR);
explicit StripsWidget(ZeiterfassungApi &erfassung, int userId, StripFactory &stripFactory,
const QMap<QString, QString> &projects, QWidget *parent = Q_NULLPTR);
BookingsModel *bookingsModel() const;
TimeAssignmentsModel *timeAssignmentsModel() const;
@@ -70,8 +70,8 @@ private:
const QString &workpackage, const QString &text);
ZeiterfassungApi &m_erfassung;
StripFactory *m_stripFactory;
int m_userId;
StripFactory &m_stripFactory;
const QMap<QString, QString> &m_projects;
QBoxLayout *m_layout;