Release 1.5 #39

Merged
0xFEEDC0DE64 merged 24 commits from devel into master 2017-12-20 00:29:23 +01:00
65 changed files with 872 additions and 449 deletions
Showing only changes of commit 68909a15f9 - Show all commits

View File

@@ -14,6 +14,8 @@ PresenceWidget::PresenceWidget(MainWindow &mainWindow) :
QWidget(&mainWindow),
m_mainWindow(mainWindow)
{
connect(&m_mainWindow, &MainWindow::refreshEverything, this, &PresenceWidget::refresh);
m_labelAvailable = new QLabel(this);
m_labelAvailable->setFrameShape(QFrame::Panel);
m_labelAvailable->setFrameShadow(QFrame::Sunken);
@@ -25,17 +27,17 @@ PresenceWidget::PresenceWidget(MainWindow &mainWindow) :
m_mainWindow.statusBar()->addWidget(m_labelNotAvailable);
m_action = m_mainWindow.menuView()->addAction(QIcon(QStringLiteral(":zeiterfassung/plugins/presenceplugin/images/refresh.png")),
tr("Refresh presence"), this, &PresenceWidget::timeout);
tr("Refresh presence"), this, &PresenceWidget::refresh);
auto timer = new QTimer(this);
timer->setInterval(60000);
connect(timer, &QTimer::timeout, this, &PresenceWidget::timeout);
connect(timer, &QTimer::timeout, this, &PresenceWidget::refresh);
timer->start();
timeout();
refresh();
}
void PresenceWidget::timeout()
void PresenceWidget::refresh()
{
m_labelAvailable->setText(tr("%0: %1").arg(tr("Available")).arg(tr("???")));
m_labelNotAvailable->setText(tr("%0: %1").arg(tr("Not available")).arg(tr("???")));

View File

@@ -18,7 +18,7 @@ public:
explicit PresenceWidget(MainWindow &mainWindow);
private Q_SLOTS:
void timeout();
void refresh();
void finished();
private:

View File

@@ -18,6 +18,9 @@ ReportsWidget::ReportsWidget(MainWindow &mainWindow) :
QWidget(&mainWindow),
m_mainWindow(mainWindow)
{
connect(&m_mainWindow, &MainWindow::dateChanged, this, &ReportsWidget::dateChanged);
connect(&m_mainWindow, &MainWindow::refreshEverything, this, &ReportsWidget::refresh);
m_labelBalance = new QLabel(this);
m_labelBalance->setFrameShape(QFrame::Panel);
m_labelBalance->setFrameShadow(QFrame::Sunken);

View File

@@ -38,13 +38,6 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
{
ui->setupUi(this);
for(quint8 i = 0; i < 7; i++)
{
m_stripsWidgets[i] = new StripsWidget(*this, ui->widgetWeek);
connect(m_stripsWidgets[i], &StripsWidget::refreshingChanged, this, &MainWindow::refreshingChanged);
ui->layoutWeek->addWidget(m_stripsWidgets[i]);
}
setWindowTitle(tr("Zeiterfassung - %0 (%1)").arg(m_userInfo.text).arg(m_userInfo.email));
ui->actionQuit->setShortcut(QKeySequence::Quit);
@@ -52,7 +45,7 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
connect(ui->actionToday, &QAction::triggered, [=](){ ui->dateEditDate->setDate(QDate::currentDate()); });
ui->actionRefresh->setShortcut(QKeySequence::Refresh);
connect(ui->actionRefresh, &QAction::triggered, this, [=](){ dateChanged(true); });
connect(ui->actionRefresh, &QAction::triggered, this, &MainWindow::refreshEverything);
connect(ui->actionAboutMe, &QAction::triggered, [=](){ AboutMeDialog(userInfo, this).exec(); });
connect(ui->actionSettings, &QAction::triggered, [=](){ SettingsDialog(m_settings, this).exec(); });
@@ -62,7 +55,7 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
connect(ui->actionAboutQt, &QAction::triggered, [=](){ QMessageBox::aboutQt(this); });
ui->dateEditDate->setDate(QDate::currentDate());
connect(ui->dateEditDate, &QDateTimeEdit::dateChanged, this, [=](){ dateChanged(false); });
connect(ui->dateEditDate, &QDateTimeEdit::dateChanged, this, &MainWindow::dateChangedSlot);
connect(ui->pushButtonPrev, &QAbstractButton::pressed, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(-1)); });
connect(ui->pushButtonNext, &QAbstractButton::pressed, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(1)); });
@@ -83,7 +76,14 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, ZeiterfassungApi &erfass
connect(ui->pushButtonStart, &QAbstractButton::pressed, this, &MainWindow::pushButtonStartPressed);
connect(ui->pushButtonEnd, &QAbstractButton::pressed, this, &MainWindow::pushButtonEndPressed);
dateChanged();
for(quint8 i = 0; i < 7; i++)
{
m_stripsWidgets[i] = new StripsWidget(*this, ui->widgetWeek);
connect(this, &MainWindow::refreshEverything, m_stripsWidgets[i], &StripsWidget::refresh);
ui->layoutWeek->addWidget(m_stripsWidgets[i]);
}
dateChangedSlot(ui->dateEditDate->date());
}
MainWindow::~MainWindow()
@@ -141,6 +141,11 @@ QDate MainWindow::date() const
return ui->dateEditDate->date();
}
void MainWindow::setDate(const QDate &date)
{
ui->dateEditDate->setDate(date);
}
const QMap<QString, QString> &MainWindow::projects() const
{
return m_projects;
@@ -305,18 +310,17 @@ void MainWindow::pushButtonEndPressed()
ui->pushButtonNext->setEnabled(false);
}
void MainWindow::dateChanged(bool force)
void MainWindow::dateChangedSlot(const QDate &date)
{
auto firstDayOfWeek = ui->dateEditDate->date().addDays(-(ui->dateEditDate->date().dayOfWeek() - 1));
auto firstDayOfWeek = date.addDays(-(ui->dateEditDate->date().dayOfWeek() - 1));
for(quint8 i = 0; i < 7; i++)
{
auto date = firstDayOfWeek.addDays(i);
auto weekDay = firstDayOfWeek.addDays(i);
if(force || m_stripsWidgets[i]->date() != date)
m_stripsWidgets[i]->setDate(date);
m_stripsWidgets[i]->setDate(weekDay);
if(date == ui->dateEditDate->date() && (force || m_currentStripWidget != m_stripsWidgets[i]))
if(weekDay == date && m_currentStripWidget != m_stripsWidgets[i])
{
if(m_currentStripWidget)
{
@@ -337,16 +341,7 @@ void MainWindow::dateChanged(bool force)
}
}
if(std::any_of(std::begin(m_stripsWidgets), std::end(m_stripsWidgets), [](StripsWidget *stripsWidget) {
return stripsWidget->refreshing();
}))
{
ui->actionToday->setEnabled(false);
ui->actionRefresh->setEnabled(false);
ui->dateEditDate->setReadOnly(true);
ui->pushButtonPrev->setEnabled(false);
ui->pushButtonNext->setEnabled(false);
}
Q_EMIT dateChanged(ui->dateEditDate->date());
}
void MainWindow::minimumTimeChanged()
@@ -354,21 +349,6 @@ void MainWindow::minimumTimeChanged()
ui->timeEditTime->setMinimumTime(m_currentStripWidget->minimumTime());
}
void MainWindow::refreshingChanged()
{
{
auto allFinished = std::none_of(std::begin(m_stripsWidgets), std::end(m_stripsWidgets), [](StripsWidget *stripsWidget){
return stripsWidget->refreshing();
});
ui->actionToday->setEnabled(allFinished);
ui->actionRefresh->setEnabled(allFinished);
ui->dateEditDate->setReadOnly(!allFinished);
ui->pushButtonPrev->setEnabled(allFinished);
ui->pushButtonNext->setEnabled(allFinished);
}
}
void MainWindow::startEnabledChanged()
{
auto startEnabled = m_currentStripWidget->startEnabled();

View File

@@ -42,18 +42,22 @@ public:
StripFactory &stripFactory() const;
QDate date() const;
void setDate(const QDate &date);
const QMap<QString, QString> &projects() const;
const std::array<StripsWidget*, 7> &stripsWidgets() const;
Q_SIGNALS:
void dateChanged(const QDate &date);
void refreshEverything();
private Q_SLOTS:
void getProjectsFinished();
void pushButtonStartPressed();
void pushButtonEndPressed();
void dateChanged(bool force = false);
void dateChangedSlot(const QDate &date);
void minimumTimeChanged();
void refreshingChanged();
void startEnabledChanged();
void endEnabledChanged();