2 Commits

Author SHA1 Message Date
Aurélie Delhaie
92d0c14df7 Week late and overtime 2022-04-09 20:01:10 +02:00
Aurélie Delhaie
deb49909d1 Fix 'approuve' button, add warning when break is not between day start and day end 2022-04-09 13:59:48 +02:00
14 changed files with 782 additions and 230 deletions

View File

@@ -3,8 +3,8 @@ greaterThan(QT_MAJOR_VERSION, 5): QT += widgets
CONFIG += c++17 CONFIG += c++17
win32:VERSION = 2.2.0.0 # major.minor.patch.build win32:VERSION = 2.2.1.0 # major.minor.patch.build
else:VERSION = 2.2.0 # major.minor.patch else:VERSION = 2.2.1 # major.minor.patch
DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\" DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\"
@@ -108,7 +108,7 @@ HEADERS += \
sources/models/year.h sources/models/year.h
FORMS += \ FORMS += \
sources/weekoption.ui \ ui/weekoption.ui \
ui/configurationdialog.ui \ ui/configurationdialog.ui \
ui/breakdialog.ui \ ui/breakdialog.ui \
ui/aboutbox.ui \ ui/aboutbox.ui \

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 6.0.2, 2022-03-01T19:28:21. --> <!-- Written by QtCreator 6.0.2, 2022-04-09T20:00:14. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
<value type="QByteArray">{dbe9fba1-e5a9-4d98-85bf-f46da0900eba}</value> <value type="QByteArray">{23c6a5b6-2840-4c04-84d4-91387dc9bb9f}</value>
</data> </data>
<data> <data>
<variable>ProjectExplorer.Project.ActiveTarget</variable> <variable>ProjectExplorer.Project.ActiveTarget</variable>

265
Chronos.pro.user.dbe9fba Normal file
View File

@@ -0,0 +1,265 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 6.0.2, 2022-03-01T19:28:21. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{dbe9fba1-e5a9-4d98-85bf-f46da0900eba}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.BuildSystem</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">8</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.3 GCC 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.3 GCC 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.623.gcc_64_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/aurelie/src/Chronos/Chronos.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/aurelie/src/Chronos/Chronos.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/aurelie/src/build-Chronos-Desktop_Qt_6_2_3_GCC_64bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -6,5 +6,6 @@
<file>pictures/about.png</file> <file>pictures/about.png</file>
<file>pictures/banner.png</file> <file>pictures/banner.png</file>
<file>pictures/validate.png</file> <file>pictures/validate.png</file>
<file>pictures/warning.png</file>
</qresource> </qresource>
</RCC> </RCC>

BIN
pictures/warning.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -188,7 +188,9 @@ void MainWindow::compute_time() {
updateStartLabel(); updateStartLabel();
updateBreakLabel(); updateBreakLabel();
updateEndLabel(); updateEndLabel();
updateWeekTime();
updateValidIcon(); updateValidIcon();
updateWarningIcon();
double late = 0.0; double late = 0.0;
double overtime = 0.0; double overtime = 0.0;
@@ -213,6 +215,29 @@ void MainWindow::updateValidIcon() {
ui->fridayValidate->setVisible(current_week->getFri()->get_validate()); ui->fridayValidate->setVisible(current_week->getFri()->get_validate());
} }
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::updateWeekTime()
{
double t = (current_week->total() + current_week->getTimeDeltaInHours()) - week_template->total();
if (t > 0) {
ui->overtime_time_label_week->setText(Tools::double_to_string_time(t));
ui->late_time_label_week->setText("0h");
} else if(t < 0) {
ui->late_time_label_week->setText(Tools::double_to_string_time(-t));
ui->overtime_time_label_week->setText("0h");
} else {
ui->overtime_time_label_week->setText("0h");
ui->late_time_label_week->setText("0h");
}
}
void MainWindow::updateStartLabel() { void MainWindow::updateStartLabel() {
ui->monStartLabel->setText(current_week->getMon()->get_start().toString("HH:mm")); ui->monStartLabel->setText(current_week->getMon()->get_start().toString("HH:mm"));
ui->tueStartLabel->setText(current_week->getTue()->get_start().toString("HH:mm")); ui->tueStartLabel->setText(current_week->getTue()->get_start().toString("HH:mm"));

View File

@@ -57,6 +57,8 @@ private:
void updateEndLabel(); void updateEndLabel();
void highlightDayOfWeek(); void highlightDayOfWeek();
void updateValidIcon(); void updateValidIcon();
void updateWarningIcon();
void updateWeekTime();
QString get_save_file_path(); QString get_save_file_path();
Identifier get_identifier(QString objectName); Identifier get_identifier(QString objectName);

View File

@@ -84,6 +84,20 @@ QJsonObject Day::to_json()
return obj; 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* Day::from_json(QJsonObject obj)
{ {
Day *result = new Day(); Day *result = new Day();

View File

@@ -39,6 +39,7 @@ public:
float get_time_break(); float get_time_break();
void update(Day *); void update(Day *);
QJsonObject to_json(); QJsonObject to_json();
bool has_warning();
float get_total(); float get_total();

View File

@@ -55,8 +55,8 @@ void SetDayDialog::accept()
} }
void SetDayDialog::validate_and_accept() { void SetDayDialog::validate_and_accept() {
d->set_validate(true); copy->set_validate(true);
accept(); this->accept();
} }
void SetDayDialog::add_break_point() void SetDayDialog::add_break_point()

View File

@@ -8,6 +8,7 @@ WeekOption::WeekOption(Week *w, QWidget *parent) :
ui->setupUi(this); ui->setupUi(this);
this->time_delta = w->getTimeDelta(); this->time_delta = w->getTimeDelta();
ui->time_delta_spinbox->setValue(time_delta); ui->time_delta_spinbox->setValue(time_delta);
compute();
connect(ui->time_delta_spinbox, &QSpinBox::valueChanged, this, &WeekOption::set_time_delta); connect(ui->time_delta_spinbox, &QSpinBox::valueChanged, this, &WeekOption::set_time_delta);
} }
@@ -24,4 +25,22 @@ int WeekOption::get_time_delta()
void WeekOption::set_time_delta(int value) void WeekOption::set_time_delta(int value)
{ {
this->time_delta = value; this->time_delta = value;
compute();
}
void WeekOption::compute()
{
int m = this->time_delta;
int h = 0;
while (m > 59) {
h++;
m -= 60;
}
QString minutes = "";
if (m >= 10) {
minutes = QString::number(m, 'g', 2);
} else {
minutes = QString("0%1").arg(QString::number(m, 'g', 2));
}
ui->total_label->setText(QString("%1h%2").arg(QString::number(h, 'g', 2), minutes));
} }

View File

@@ -4,6 +4,7 @@
#include <QDialog> #include <QDialog>
#include "models/week.h" #include "models/week.h"
#include "tools.h"
namespace Ui { namespace Ui {
class WeekOption; class WeekOption;
@@ -24,6 +25,8 @@ private slots:
private: private:
Ui::WeekOption *ui; Ui::WeekOption *ui;
void compute();
int time_delta; int time_delta;
}; };

View File

@@ -38,224 +38,12 @@
<bool>false</bool> <bool>false</bool>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>230</x>
<y>9</y>
<width>20</width>
<height>81</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>249</x>
<y>19</y>
<width>155</width>
<height>62</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QFrame" name="frame_2">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/sport.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Retard (Total)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="late_time_label">
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>13</x>
<y>19</y>
<width>210</width>
<height>62</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFrame" name="frame">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/clock-8-128.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Temps total (Semaine)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="total_time_label">
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget_2">
<property name="geometry">
<rect>
<x>440</x>
<y>20</y>
<width>161</width>
<height>62</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QFrame" name="frame_3">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/calendar.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="label_6">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Avance (Total)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="overtime_time_label">
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="Line" name="line_2">
<property name="geometry">
<rect>
<x>420</x>
<y>10</y>
<width>20</width>
<height>81</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<widget class="QPushButton" name="template_settings_button"> <widget class="QPushButton" name="template_settings_button">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>670</x> <x>640</x>
<y>530</y> <y>530</y>
<width>261</width> <width>291</width>
<height>31</height> <height>31</height>
</rect> </rect>
</property> </property>
@@ -267,7 +55,7 @@ color: white;</string>
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>44</x> <x>44</x>
<y>120</y> <y>138</y>
<width>861</width> <width>861</width>
<height>388</height> <height>388</height>
</rect> </rect>
@@ -355,6 +143,31 @@ color: white;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QFrame" name="mondayWarning">
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_4"> <spacer name="horizontalSpacer_4">
<property name="orientation"> <property name="orientation">
@@ -608,6 +421,31 @@ color: white;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QFrame" name="tuesdayWarning">
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_6"> <spacer name="horizontalSpacer_6">
<property name="orientation"> <property name="orientation">
@@ -861,6 +699,31 @@ color: white;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QFrame" name="wednesdayWarning">
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_8"> <spacer name="horizontalSpacer_8">
<property name="orientation"> <property name="orientation">
@@ -1114,6 +977,31 @@ color: white;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QFrame" name="thurdayWarning">
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_10"> <spacer name="horizontalSpacer_10">
<property name="orientation"> <property name="orientation">
@@ -1367,6 +1255,31 @@ color: white;</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QFrame" name="fridayWarning">
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/warning.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_2"> <spacer name="horizontalSpacer_2">
<property name="orientation"> <property name="orientation">
@@ -1573,7 +1486,7 @@ font-size: 22px;</string>
<x>800</x> <x>800</x>
<y>10</y> <y>10</y>
<width>111</width> <width>111</width>
<height>90</height> <height>111</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -1649,7 +1562,7 @@ font-size: 22px;</string>
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>100</y> <y>129</y>
<width>951</width> <width>951</width>
<height>16</height> <height>16</height>
</rect> </rect>
@@ -1661,7 +1574,7 @@ font-size: 22px;</string>
<widget class="QPushButton" name="week_options_button"> <widget class="QPushButton" name="week_options_button">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>540</x>
<y>530</y> <y>530</y>
<width>91</width> <width>91</width>
<height>31</height> <height>31</height>
@@ -1671,6 +1584,253 @@ font-size: 22px;</string>
<string>Options</string> <string>Options</string>
</property> </property>
</widget> </widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>13</x>
<y>7</y>
<width>771</width>
<height>133</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFrame" name="frame">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/clock-8-128.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Temps total (Semaine)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="total_time_label">
<property name="styleSheet">
<string notr="true">font-size: 50px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QFrame" name="frame_2">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/sport.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Retard (Total)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="late_time_label">
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_29">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Retard (Semaine)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="late_time_label_week">
<property name="styleSheet">
<string notr="true">font-size: 20px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QFrame" name="frame_3">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/calendar.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="label_6">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Avance (Total)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="overtime_time_label">
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_28">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_9">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Avance (Semaine)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="overtime_time_label_week">
<property name="styleSheet">
<string notr="true">font-size: 20px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<zorder>layoutWidget</zorder> <zorder>layoutWidget</zorder>
<zorder>line</zorder> <zorder>line</zorder>
<zorder>layoutWidget</zorder> <zorder>layoutWidget</zorder>

View File

@@ -67,7 +67,7 @@
<rect> <rect>
<x>10</x> <x>10</x>
<y>44</y> <y>44</y>
<width>131</width> <width>161</width>
<height>18</height> <height>18</height>
</rect> </rect>
</property> </property>
@@ -91,10 +91,10 @@
<widget class="Line" name="line"> <widget class="Line" name="line">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>142</x> <x>172</x>
<y>55</y> <y>52</y>
<width>131</width> <width>101</width>
<height>16</height> <height>20</height>
</rect> </rect>
</property> </property>
<property name="lineWidth"> <property name="lineWidth">
@@ -120,6 +120,68 @@
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<width>156</width>
<height>62</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFrame" name="frame">
<property name="minimumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>59</width>
<height>59</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/clock-8-128.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_4">
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Temps total</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="total_label">
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget> </widget>
<resources/> <resources/>
<connections> <connections>