From deb49909d11e0ecebe638fe92977b90689169f9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Delhaie?= Date: Sat, 9 Apr 2022 13:59:48 +0200 Subject: [PATCH] Fix 'approuve' button, add warning when break is not between day start and day end --- Chronos.pro | 4 +- Chronos.pro.user | 4 +- Chronos.pro.user.dbe9fba | 265 +++++++++++++++++++++++++++++++++++++++ pictures.qrc | 1 + pictures/warning.png | Bin 0 -> 6159 bytes sources/mainwindow.cpp | 9 ++ sources/mainwindow.h | 1 + sources/models/day.cpp | 14 +++ sources/models/day.h | 1 + sources/setdaydialog.cpp | 4 +- ui/mainwindow.ui | 131 ++++++++++++++++++- 11 files changed, 425 insertions(+), 9 deletions(-) create mode 100644 Chronos.pro.user.dbe9fba create mode 100644 pictures/warning.png diff --git a/Chronos.pro b/Chronos.pro index 236f988..639e8c8 100644 --- a/Chronos.pro +++ b/Chronos.pro @@ -3,8 +3,8 @@ greaterThan(QT_MAJOR_VERSION, 5): QT += widgets CONFIG += c++17 -win32:VERSION = 2.2.0.0 # major.minor.patch.build -else:VERSION = 2.2.0 # major.minor.patch +win32:VERSION = 2.2.1.0 # major.minor.patch.build +else:VERSION = 2.2.1 # major.minor.patch DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\" diff --git a/Chronos.pro.user b/Chronos.pro.user index c0c610c..d8e6d99 100644 --- a/Chronos.pro.user +++ b/Chronos.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {dbe9fba1-e5a9-4d98-85bf-f46da0900eba} + {23c6a5b6-2840-4c04-84d4-91387dc9bb9f} ProjectExplorer.Project.ActiveTarget diff --git a/Chronos.pro.user.dbe9fba b/Chronos.pro.user.dbe9fba new file mode 100644 index 0000000..c0c610c --- /dev/null +++ b/Chronos.pro.user.dbe9fba @@ -0,0 +1,265 @@ + + + + + + EnvironmentId + {dbe9fba1-e5a9-4d98-85bf-f46da0900eba} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 8 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop Qt 6.2.3 GCC 64bit + Desktop Qt 6.2.3 GCC 64bit + qt.qt6.623.gcc_64_kit + 0 + 0 + 0 + + 0 + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Debug + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Release + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Profile + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/aurelie/src/Chronos/Chronos.pro + /home/aurelie/src/Chronos/Chronos.pro + false + true + true + false + true + /home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/pictures.qrc b/pictures.qrc index 0d62e85..b533b81 100644 --- a/pictures.qrc +++ b/pictures.qrc @@ -6,5 +6,6 @@ pictures/about.png pictures/banner.png pictures/validate.png + pictures/warning.png diff --git a/pictures/warning.png b/pictures/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..d112a097ac33e440be5c84dd371320c6bbdf1497 GIT binary patch literal 6159 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 } +void MainWindow::updateWarningIcon() { + ui->mondayWarning->setVisible(current_week->getMon()->has_warning()); + ui->tuesdayWarning->setVisible(current_week->getTue()->has_warning()); + ui->wednesdayWarning->setVisible(current_week->getWed()->has_warning()); + ui->thurdayWarning->setVisible(current_week->getThu()->has_warning()); + ui->fridayWarning->setVisible(current_week->getFri()->has_warning()); +} + void MainWindow::updateStartLabel() { ui->monStartLabel->setText(current_week->getMon()->get_start().toString("HH:mm")); ui->tueStartLabel->setText(current_week->getTue()->get_start().toString("HH:mm")); diff --git a/sources/mainwindow.h b/sources/mainwindow.h index feab318..fb07a4e 100644 --- a/sources/mainwindow.h +++ b/sources/mainwindow.h @@ -57,6 +57,7 @@ private: void updateEndLabel(); void highlightDayOfWeek(); void updateValidIcon(); + void updateWarningIcon(); QString get_save_file_path(); Identifier get_identifier(QString objectName); diff --git a/sources/models/day.cpp b/sources/models/day.cpp index 2a7f0ac..0ce8f47 100644 --- a/sources/models/day.cpp +++ b/sources/models/day.cpp @@ -84,6 +84,20 @@ QJsonObject Day::to_json() return obj; } +bool Day::has_warning() +{ + bool warning = false; + foreach (BreakPoint val, breaks) { + if (val.getStart() < start) { + warning = true; + } + if (val.getEnd() > end) { + warning = true; + } + } + return warning; +} + Day* Day::from_json(QJsonObject obj) { Day *result = new Day(); diff --git a/sources/models/day.h b/sources/models/day.h index 77719c0..8585da2 100644 --- a/sources/models/day.h +++ b/sources/models/day.h @@ -39,6 +39,7 @@ public: float get_time_break(); void update(Day *); QJsonObject to_json(); + bool has_warning(); float get_total(); diff --git a/sources/setdaydialog.cpp b/sources/setdaydialog.cpp index ff06690..528f6fb 100644 --- a/sources/setdaydialog.cpp +++ b/sources/setdaydialog.cpp @@ -55,8 +55,8 @@ void SetDayDialog::accept() } void SetDayDialog::validate_and_accept() { - d->set_validate(true); - accept(); + copy->set_validate(true); + this->accept(); } void SetDayDialog::add_break_point() diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui index 93d7875..8360806 100644 --- a/ui/mainwindow.ui +++ b/ui/mainwindow.ui @@ -56,7 +56,7 @@ 249 19 - 155 + 164 62 @@ -118,7 +118,7 @@ color: white; 13 19 - 210 + 227 62 @@ -180,7 +180,7 @@ color: white; 440 20 - 161 + 168 62 @@ -355,6 +355,31 @@ color: white; + + + + + 16 + 16 + + + + + 16 + 16 + + + + border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch; + + + QFrame::StyledPanel + + + QFrame::Raised + + + @@ -608,6 +633,31 @@ color: white; + + + + + 16 + 16 + + + + + 16 + 16 + + + + border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch; + + + QFrame::StyledPanel + + + QFrame::Raised + + + @@ -861,6 +911,31 @@ color: white; + + + + + 16 + 16 + + + + + 16 + 16 + + + + border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch; + + + QFrame::StyledPanel + + + QFrame::Raised + + + @@ -1114,6 +1189,31 @@ color: white; + + + + + 16 + 16 + + + + + 16 + 16 + + + + border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch; + + + QFrame::StyledPanel + + + QFrame::Raised + + + @@ -1367,6 +1467,31 @@ color: white; + + + + + 16 + 16 + + + + + 16 + 16 + + + + border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch; + + + QFrame::StyledPanel + + + QFrame::Raised + + +