This commit is contained in:
Alexis Delhaie
2020-08-02 22:17:09 +02:00
commit 68f44834de
31 changed files with 3088 additions and 0 deletions

62
Chronos.pro Normal file
View File

@@ -0,0 +1,62 @@
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
# remove possible other optimization flags
QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2
# add the desired -O3 if not present
QMAKE_CXXFLAGS_RELEASE *= -O3
RC_ICONS = icon.ico
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
sources/aboutbox.cpp \
sources/day.cpp \
sources/main.cpp \
sources/mainwindow.cpp \
sources/setdaydialog.cpp \
sources/tools.cpp \
sources/week.cpp \
sources/welcome.cpp
HEADERS += \
sources/aboutbox.h \
sources/day.h \
sources/mainwindow.h \
sources/setdaydialog.h \
sources/tools.h \
sources/week.h \
sources/welcome.h
FORMS += \
ui/aboutbox.ui \
ui/mainwindow.ui \
ui/setdaydialog.ui \
ui/welcome.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
DISTFILES +=
RESOURCES += \
pictures.qrc \
stylesheets.qrc

340
Chronos.pro.user Normal file
View File

@@ -0,0 +1,340 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.12.4, 2020-08-02T22:16:12. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{39b4df9e-fc10-428a-bc34-924198bd0973}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">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="int" 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.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="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="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.Questionable</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">4</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="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.0 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.0 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5150.win64_mingw81_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="bool">true</value>
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\robof\OneDrive\Documents\build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-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="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></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>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" 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>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" 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.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>
<value type="int" key="QtQuickCompiler">2</value>
<value type="int" key="SeparateDebugInfo">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="bool">true</value>
<value type="int" key="EnableQmlDebugging">2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\robof\OneDrive\Documents\build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-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="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></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>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" 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>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" 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.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>
<value type="int" key="SeparateDebugInfo">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="bool">true</value>
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\robof\OneDrive\Documents\build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-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="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></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>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" 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>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" 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.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="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" 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="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<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:C:/Users/robof/OneDrive/Documents/Chronos/Chronos.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/robof/OneDrive/Documents/Chronos/Chronos.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></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.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MinGW_64_bit-Release</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">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>

BIN
README.md Normal file

Binary file not shown.

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

9
pictures.qrc Normal file
View File

@@ -0,0 +1,9 @@
<RCC>
<qresource prefix="/clock">
<file>pictures/clock-8-128.png</file>
<file>pictures/sport.png</file>
<file>pictures/calendar.png</file>
<file>pictures/about.png</file>
<file>pictures/banner.png</file>
</qresource>
</RCC>

BIN
pictures/about.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
pictures/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
pictures/calendar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
pictures/clock-8-128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
pictures/sport.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

14
sources/aboutbox.cpp Normal file
View File

@@ -0,0 +1,14 @@
#include "aboutbox.h"
#include "ui_aboutbox.h"
AboutBox::AboutBox(QWidget *parent) :
QDialog(parent),
ui(new Ui::AboutBox)
{
ui->setupUi(this);
}
AboutBox::~AboutBox()
{
delete ui;
}

23
sources/aboutbox.h Normal file
View File

@@ -0,0 +1,23 @@
#ifndef ABOUTBOX_H
#define ABOUTBOX_H
#include <QDialog>
#include <iostream>
namespace Ui {
class AboutBox;
}
class AboutBox : public QDialog
{
Q_OBJECT
public:
explicit AboutBox(QWidget *parent = nullptr);
~AboutBox();
private:
Ui::AboutBox *ui;
};
#endif // ABOUTBOX_H

66
sources/day.cpp Normal file
View File

@@ -0,0 +1,66 @@
#include "day.h"
Day::Day()
{
start = QTime(9, 0, 0, 0);
end = QTime(17, 15, 0, 0);
time_break = 45.0;
}
double Day::get_total() {
int sec = start.secsTo(end);
int minutes = sec / 60;
return (minutes - time_break) / 60;
}
void Day::set_start(QTime value)
{
start = value;
}
void Day::set_end(QTime value)
{
end = value;
}
void Day::set_time_break(double value)
{
time_break = value;
}
QTime Day::get_start()
{
return start;
}
QTime Day::get_end()
{
return end;
}
double Day::get_time_break()
{
return time_break;
}
QJsonObject Day::to_json()
{
QJsonObject obj{
{KEY_START, start.toString(Qt::DateFormat::ISODate)},
{KEY_END, end.toString(Qt::DateFormat::ISODate)},
{KEY_BREAK, time_break}
};
return obj;
}
Day Day::from_json(QJsonObject obj)
{
Day result;
result.start = QTime::fromString(obj[KEY_START].toString(), Qt::DateFormat::ISODate);
result.end = QTime::fromString(obj[KEY_END].toString(), Qt::DateFormat::ISODate);
result.time_break = obj[KEY_BREAK].toDouble();
return result;
}

37
sources/day.h Normal file
View File

@@ -0,0 +1,37 @@
#ifndef DAY_H
#define DAY_H
#define KEY_START "start"
#define KEY_END "end"
#define KEY_BREAK "break"
#include <QTime>
#include <QJsonObject>
#include <math.h>
class Day
{
private:
QTime start;
QTime end;
double time_break;
public:
Day();
void set_start(QTime value);
void set_end(QTime value);
void set_time_break(double value);
QTime get_start();
QTime get_end();
double get_time_break();
QJsonObject to_json();
double get_total();
static Day from_json(QJsonObject);
};
#endif // DAY_H

17
sources/main.cpp Normal file
View File

@@ -0,0 +1,17 @@
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFile styleFile(":/stylesheets/stylesheets/style.qss");
styleFile.open(QFile::ReadOnly);
QString style(styleFile.readAll());
a.setStyleSheet(style);
MainWindow w;
w.show();
return a.exec();
}

199
sources/mainwindow.cpp Normal file
View File

@@ -0,0 +1,199 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
init();
}
MainWindow::~MainWindow()
{
delete ui;
}
QString MainWindow::get_save_file_path() {
QString path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
if (!QDir(path).exists()) {
QDir().mkpath(path);
}
path += "/data/";
if (!QDir(path).exists()) {
QDir().mkpath(path);
}
path += SAVE_FILENAME;
return path;
}
void MainWindow::init() {
objectId.insert(ui->mon_button->objectName(), Identifier::mon);
objectId.insert(ui->tue_button->objectName(), Identifier::tue);
objectId.insert(ui->wed_button->objectName(), Identifier::wed);
objectId.insert(ui->thu_button->objectName(), Identifier::thu);
objectId.insert(ui->fri_button->objectName(), Identifier::fri);
connect(ui->aboutButton, &QPushButton::clicked, this, &MainWindow::open_about);
connect(ui->template_settings_button, &QPushButton::clicked, this, &MainWindow::edit_template);
connect(ui->dateEdit, &QDateEdit::dateTimeChanged, this, &MainWindow::compute_week_number);
connect(ui->mon_button, &QPushButton::clicked, this, &MainWindow::edit);
connect(ui->tue_button, &QPushButton::clicked, this, &MainWindow::edit);
connect(ui->wed_button, &QPushButton::clicked, this, &MainWindow::edit);
connect(ui->thu_button, &QPushButton::clicked, this, &MainWindow::edit);
connect(ui->fri_button, &QPushButton::clicked, this, &MainWindow::edit);
if (QFile::exists(get_save_file_path())) {
open_save();
} else {
Welcome w(week_template);
w.exec();
week_template = w.get_result();
}
set_date_to_now();
compute_time();
}
void MainWindow::set_date_to_now() {
auto date = QDate::currentDate();
ui->dateEdit->setDate(date);
}
void MainWindow::open_save() {
QFile* file = new QFile(get_save_file_path());
file->open(QIODevice::ReadOnly);
auto json = QString(file->readAll());
file->close();
delete file;
QJsonObject obj = QJsonDocument::fromJson(json.toUtf8()).object();
if (obj[KEY_SAVE_FILE_VERSION].toInt() == SAVE_FILE_VERSION) {
week_template = Week::from_json(obj[KEY_TEMPLATE].toObject());
QJsonArray arr = obj[KEY_WEEKS].toArray();
for (QJsonValue val : arr) {
weeks[val.toObject()["weekNumber"].toInt()] = Week::from_json(val.toObject());
}
} else {
QMessageBox msgBox;
msgBox.setText("Le fichier de sauvegarde n'est pas à jour, "
"des changements ont été apporté a la structure du fichier lors de la dernière mise à jour");
msgBox.setInformativeText("Mettez à jour votre fichier de sauvegarde puis relancez l'application");
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.setDefaultButton(QMessageBox::Ok);
msgBox.exec();
QTimer::singleShot(0, this, &MainWindow::close);
}
}
void MainWindow::save_to_file() {
QJsonArray arr;
for (Week w : weeks) {
arr.append(w.to_json());
}
QJsonObject obj {
{KEY_TEMPLATE, week_template.to_json()},
{KEY_WEEKS, arr},
{KEY_SAVE_FILE_VERSION, SAVE_FILE_VERSION}
};
QJsonDocument doc(obj);
QFile *f = new QFile(get_save_file_path());
if (f->open(QIODevice::WriteOnly)) {
f->write(doc.toJson());
f->close();
}
}
void MainWindow::compute_week_number(const QDateTime &dt) {
int n = dt.date().weekNumber();
ui->label_semaine->setText(QString("Semaine : %1").arg(QString::number(n)));
QMapIterator<int, Week> it(weeks);
bool working = true;
bool found = false;
while (it.hasNext() && working) {
Week w = it.next().value();
if (w.getWeekNumber() == n) {
current_week = w;
working = false;
found = true;
}
}
if (!found) {
current_week = Week(week_template);
current_week.setWeekNumber(n);
weeks.insert(n, current_week);
save_to_file();
}
compute_time();
}
void MainWindow::compute_time() {
ui->mon_time_label->setText(Tools::double_to_string_time(current_week.getMon().get_total()));
ui->tue_time_label->setText(Tools::double_to_string_time(current_week.getTue().get_total()));
ui->wed_time_label->setText(Tools::double_to_string_time(current_week.getWed().get_total()));
ui->thu_time_label->setText(Tools::double_to_string_time(current_week.getThu().get_total()));
ui->fri_time_label->setText(Tools::double_to_string_time(current_week.getFri().get_total()));
ui->total_time_label->setText(Tools::double_to_string_time(current_week.total()));
double late = 0.0;
double overtime = 0.0;
int todayWeekNumber = QDate::currentDate().weekNumber();
for (Week w : weeks) {
if (w.getWeekNumber() <= todayWeekNumber) {
late += (week_template.total() - w.total());
overtime += (w.total() - week_template.total());
}
}
ui->late_time_label->setText(Tools::double_to_string_time((late > 0.0) ? late : 0.0));
ui->overtime_time_label->setText(Tools::double_to_string_time((overtime > 0.0) ? overtime : 0.0));
}
void MainWindow::edit() {
QString name = QObject::sender()->objectName();
switch (get_identifier(name)) {
case mon:
current_week.setMon(modify_value(current_week.getMon()));
break;
case tue:
current_week.setTue(modify_value(current_week.getTue()));
break;
case wed:
current_week.setWed(modify_value(current_week.getWed()));
break;
case thu:
current_week.setThu(modify_value(current_week.getThu()));
break;
case fri:
current_week.setFri(modify_value(current_week.getFri()));
break;
}
weeks[current_week.getWeekNumber()] = current_week;
save_to_file();
compute_time();
}
Day MainWindow::modify_value(Day d) {
SetDayDialog sdd(d, this);
int result = sdd.exec();
if (result == QDialog::Accepted) {
return sdd.get_result();
}
return d;
}
Identifier MainWindow::get_identifier(QString objectName) {
return objectId[objectName];
}
void MainWindow::edit_template() {
Welcome w(week_template);
int res = w.exec();
if (res == QDialog::Accepted) {
week_template = w.get_result();
save_to_file();
compute_time();
}
}
void MainWindow::open_about() {
AboutBox a(this);
a.exec();
}

63
sources/mainwindow.h Normal file
View File

@@ -0,0 +1,63 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#define KEY_TEMPLATE "template"
#define KEY_WEEKS "weeks"
#define SAVE_FILENAME "data.json"
#define SAVE_FILE_VERSION 1
#define KEY_SAVE_FILE_VERSION "version"
#include <QJsonArray>
#include <QMainWindow>
#include <QDir>
#include <QStandardPaths>
#include <QJsonObject>
#include <QJsonDocument>
#include <QMap>
#include <QMapIterator>
#include <QMessageBox>
#include <QTimer>
#include "week.h"
#include "welcome.h"
#include "tools.h"
#include "aboutbox.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
signals:
void correctly_started();
private:
Ui::MainWindow *ui;
void init();
void open_save();
void save_to_file();
QString get_save_file_path();
Identifier get_identifier(QString objectName);
Day modify_value(Day);
Week week_template;
Week current_week;
QMap<int, Week> weeks;
QMap<QString, Identifier> objectId;
public slots:
void compute_week_number(const QDateTime &dt);
void compute_time();
void set_date_to_now();
void edit();
void edit_template();
void open_about();
};
#endif // MAINWINDOW_H

37
sources/setdaydialog.cpp Normal file
View File

@@ -0,0 +1,37 @@
#include "setdaydialog.h"
#include "ui_setdaydialog.h"
SetDayDialog::SetDayDialog(Day d, QWidget *parent) :
QDialog(parent),
ui(new Ui::SetDayDialog)
{
ui->setupUi(this);
this->d = d;
init();
}
SetDayDialog::~SetDayDialog()
{
delete ui;
}
void SetDayDialog::init() {
ui->start_edit->setTime(d.get_start());
ui->end_edit->setTime(d.get_end());
ui->break_edit->setValue(d.get_time_break());
connect(ui->start_edit, &QTimeEdit::timeChanged, this, &SetDayDialog::compute_time);
connect(ui->end_edit, &QTimeEdit::timeChanged, this, &SetDayDialog::compute_time);
connect(ui->break_edit, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), this, &SetDayDialog::compute_time);
ui->total_label->setText(Tools::double_to_string_time(d.get_total()));
}
void SetDayDialog::compute_time() {
d.set_start(ui->start_edit->time());
d.set_end(ui->end_edit->time());
d.set_time_break(ui->break_edit->value());
ui->total_label->setText(Tools::double_to_string_time(d.get_total()));
}
Day SetDayDialog::get_result() {
return d;
}

34
sources/setdaydialog.h Normal file
View File

@@ -0,0 +1,34 @@
#ifndef SETDAYDIALOG_H
#define SETDAYDIALOG_H
#include <QDialog>
#include "day.h"
#include "tools.h"
namespace Ui {
class SetDayDialog;
}
class SetDayDialog : public QDialog
{
Q_OBJECT
public:
explicit SetDayDialog(Day d, QWidget *parent = nullptr);
~SetDayDialog();
Day get_result();
public slots:
void compute_time();
private:
Ui::SetDayDialog *ui;
Day d;
void init();
};
#endif // SETDAYDIALOG_H

14
sources/tools.cpp Normal file
View File

@@ -0,0 +1,14 @@
#include "tools.h"
QString Tools::double_to_string_time(double value) {
const int h = floor(value);
value -= h;
value = value * 60;
if (value == 0.0) {
return QString("%1h").arg(QString::number(h));
} else if (value < 10.0) {
return QString("%1h0%2").arg(QString::number(h), QString::number(round(value)));
}
return QString("%1h%2").arg(QString::number(h), QString::number(round(value)));
}

13
sources/tools.h Normal file
View File

@@ -0,0 +1,13 @@
#ifndef TOOLS_H
#define TOOLS_H
#include <math.h>
#include <QString>
class Tools
{
public:
static QString double_to_string_time(double value);
};
#endif // TOOLS_H

86
sources/week.cpp Normal file
View File

@@ -0,0 +1,86 @@
#include "week.h"
Week::Week()
{
mon = Day();
tue = Day();
wed = Day();
thu = Day();
fri = Day();
week_number = 0;
}
Week Week::from_json(QJsonObject obj) {
Week w;
w.mon = Day::from_json(obj[MONDAY].toObject());
w.tue = Day::from_json(obj[TUESDAY].toObject());
w.wed = Day::from_json(obj[WEDNESDAY].toObject());
w.thu = Day::from_json(obj[THURDAY].toObject());
w.fri = Day::from_json(obj[FRIDAY].toObject());
w.week_number = obj[WEEK_NUMBER].toInt();
return w;
}
QJsonObject Week::to_json() {
QJsonObject obj {
{MONDAY, mon.to_json()},
{TUESDAY, tue.to_json()},
{WEDNESDAY, wed.to_json()},
{THURDAY, thu.to_json()},
{FRIDAY, fri.to_json()},
{WEEK_NUMBER, week_number}
};
return obj;
}
double Week::total() {
return mon.get_total() + tue.get_total() + wed.get_total() + thu.get_total() + fri.get_total();
}
Day Week::getMon() {
return mon;
}
Day Week::getTue() {
return tue;
}
Day Week::getWed() {
return wed;
}
Day Week::getThu() {
return thu;
}
Day Week::getFri() {
return fri;
}
int Week::getWeekNumber() {
return week_number;
}
void Week::setMon(Day value) {
mon = value;
}
void Week::setTue(Day value) {
tue = value;
}
void Week::setWed(Day value) {
wed = value;
}
void Week::setThu(Day value) {
thu = value;
}
void Week::setFri(Day value) {
fri = value;
}
void Week::setWeekNumber(int value) {
week_number = value;
}

46
sources/week.h Normal file
View File

@@ -0,0 +1,46 @@
#ifndef WEEK_H
#define WEEK_H
#define MONDAY "monday"
#define TUESDAY "tuesday"
#define WEDNESDAY "wednesday"
#define THURDAY "thurday"
#define FRIDAY "friday"
#define WEEK_NUMBER "weekNumber"
#include <QJsonObject>
#include "day.h"
class Week
{
public:
Week();
double total();
void setMon(Day);
void setTue(Day);
void setWed(Day);
void setThu(Day);
void setFri(Day);
void setWeekNumber(int);
Day getMon();
Day getTue();
Day getWed();
Day getThu();
Day getFri();
int getWeekNumber();
static Week from_json(QJsonObject);
QJsonObject to_json();
private:
Day mon;
Day tue;
Day wed;
Day thu;
Day fri;
int week_number;
};
#endif // WEEK_H

79
sources/welcome.cpp Normal file
View File

@@ -0,0 +1,79 @@
#include "welcome.h"
#include "ui_welcome.h"
Welcome::Welcome(Week wtemplate, QWidget *parent) :
QDialog(parent),
ui(new Ui::Welcome)
{
ui->setupUi(this);
w = wtemplate;
init();
}
Welcome::~Welcome()
{
delete ui;
}
void Welcome::init() {
set_value_to_widget();
objectId.insert(ui->mon_button->objectName(), Identifier::mon);
objectId.insert(ui->tue_button->objectName(), Identifier::tue);
objectId.insert(ui->wed_button->objectName(), Identifier::wed);
objectId.insert(ui->thu_button->objectName(), Identifier::thu);
objectId.insert(ui->fri_button->objectName(), Identifier::fri);
connect(ui->mon_button, &QPushButton::clicked, this, &Welcome::edit);
connect(ui->tue_button, &QPushButton::clicked, this, &Welcome::edit);
connect(ui->wed_button, &QPushButton::clicked, this, &Welcome::edit);
connect(ui->thu_button, &QPushButton::clicked, this, &Welcome::edit);
connect(ui->fri_button, &QPushButton::clicked, this, &Welcome::edit);
}
Week Welcome::get_result() {
return w;
}
void Welcome::set_value_to_widget() {
ui->mon_time_label->setText(Tools::double_to_string_time(w.getMon().get_total()));
ui->tue_time_label->setText(Tools::double_to_string_time(w.getTue().get_total()));
ui->wed_time_label->setText(Tools::double_to_string_time(w.getWed().get_total()));
ui->thu_time_label->setText(Tools::double_to_string_time(w.getThu().get_total()));
ui->fri_time_label->setText(Tools::double_to_string_time(w.getFri().get_total()));
ui->total->setText(Tools::double_to_string_time(w.total()));
}
void Welcome::edit() {
QString name = QObject::sender()->objectName();
switch (get_identifier(name)) {
case mon:
w.setMon(modify_value(w.getMon()));
break;
case tue:
w.setTue(modify_value(w.getTue()));
break;
case wed:
w.setWed(modify_value(w.getWed()));
break;
case thu:
w.setThu(modify_value(w.getThu()));
break;
case fri:
w.setFri(modify_value(w.getFri()));
break;
}
set_value_to_widget();
}
Day Welcome::modify_value(Day d) {
SetDayDialog sdd(d, this);
int result = sdd.exec();
if (result == QDialog::Accepted) {
return sdd.get_result();
}
return d;
}
Identifier Welcome::get_identifier(QString objectName) {
return objectId[objectName];
}

50
sources/welcome.h Normal file
View File

@@ -0,0 +1,50 @@
#ifndef WELCOME_H
#define WELCOME_H
#include <QDialog>
#include <QDoubleSpinBox>
#include <math.h>
#include "week.h"
#include "day.h"
#include "tools.h"
#include "setdaydialog.h"
enum Identifier {
mon = 1,
tue = 2,
wed = 3,
thu = 4,
fri = 5
};
namespace Ui {
class Welcome;
}
class Welcome : public QDialog
{
Q_OBJECT
public:
explicit Welcome(Week tpl, QWidget *parent = nullptr);
~Welcome();
Week get_result();
private:
Ui::Welcome *ui;
Week w;
QMap<QString, Identifier> objectId;
void init();
void set_value_to_widget();
Identifier get_identifier(QString objectName);
Day modify_value(Day);
public slots:
void edit();
};
#endif // WELCOME_H

5
stylesheets.qrc Normal file
View File

@@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/stylesheets">
<file>stylesheets/style.qss</file>
</qresource>
</RCC>

395
stylesheets/style.qss Normal file
View File

@@ -0,0 +1,395 @@
/*
Material Dark Style Sheet for QT Applications
Author: Jaime A. Quiroga P.
Inspired on https://github.com/jxfwinter/qt-material-stylesheet
Company: GTRONICK
Last updated: 04/12/2018, 15:00.
Available at: https://github.com/GTRONICK/QSS/blob/master/MaterialDark.qss
*/
* {
font-size: 16px;
}
QMainWindow {
background-color:#1e1d23;
}
QDialog {
background-color:#1e1d23;
}
QColorDialog {
background-color:#1e1d23;
}
QTextEdit {
background-color:#1e1d23;
color: #a9b7c6;
}
QPlainTextEdit {
selection-background-color:#007b50;
background-color:#1e1d23;
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-width: 1px;
color: #a9b7c6;
}
QPushButton{
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-width: 1px;
border-style: solid;
color: #a9b7c6;
padding: 2px;
background-color: #1e1d23;
}
QPushButton::default{
border-style: inset;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #04b97f;
border-width: 1px;
color: #a9b7c6;
padding: 2px;
background-color: #1e1d23;
}
QToolButton {
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #04b97f;
border-bottom-width: 1px;
border-style: solid;
color: #a9b7c6;
padding: 2px;
background-color: #1e1d23;
}
QToolButton:hover{
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #37efba;
border-bottom-width: 2px;
border-style: solid;
color: #FFFFFF;
padding-bottom: 1px;
background-color: #1e1d23;
}
QPushButton:hover{
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #37efba;
border-bottom-width: 1px;
border-style: solid;
color: #FFFFFF;
padding-bottom: 2px;
background-color: #1e1d23;
}
QPushButton:pressed{
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #37efba;
border-bottom-width: 2px;
border-style: solid;
color: #37efba;
padding-bottom: 1px;
background-color: #1e1d23;
}
QPushButton:disabled{
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #808086;
border-bottom-width: 2px;
border-style: solid;
color: #808086;
padding-bottom: 1px;
background-color: #1e1d23;
}
QLineEdit {
border-width: 1px; border-radius: 4px;
border-color: rgb(58, 58, 58);
border-style: inset;
padding: 0 8px;
color: #a9b7c6;
background:#1e1d23;
selection-background-color:#007b50;
selection-color: #FFFFFF;
}
QLabel {
color: #a9b7c6;
}
QLCDNumber {
color: #37e6b4;
}
QProgressBar {
text-align: center;
color: rgb(240, 240, 240);
border-width: 1px;
border-radius: 10px;
border-color: rgb(58, 58, 58);
border-style: inset;
background-color:#1e1d23;
}
QProgressBar::chunk {
background-color: #04b97f;
border-radius: 5px;
}
QMenuBar {
background-color: #1e1d23;
}
QMenuBar::item {
color: #a9b7c6;
spacing: 3px;
padding: 1px 4px;
background: #1e1d23;
}
QMenuBar::item:selected {
background:#1e1d23;
color: #FFFFFF;
}
QMenu::item:selected {
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: #04b97f;
border-bottom-color: transparent;
border-left-width: 2px;
color: #FFFFFF;
padding-left:15px;
padding-top:4px;
padding-bottom:4px;
padding-right:7px;
background-color: #1e1d23;
}
QMenu::item {
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-bottom-width: 1px;
border-style: solid;
color: #a9b7c6;
padding-left:17px;
padding-top:4px;
padding-bottom:4px;
padding-right:7px;
background-color: #1e1d23;
}
QMenu{
background-color:#1e1d23;
}
QTabWidget {
color:rgb(0,0,0);
background-color:#1e1d23;
}
QTabWidget::pane {
border-color: rgb(77,77,77);
background-color:#1e1d23;
border-style: solid;
border-width: 1px;
border-radius: 6px;
}
QTabBar::tab {
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-bottom-width: 1px;
border-style: solid;
color: #808086;
padding: 3px;
margin-left:3px;
background-color: #1e1d23;
}
QTabBar::tab:selected, QTabBar::tab:last:selected, QTabBar::tab:hover {
border-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: #04b97f;
border-bottom-width: 2px;
border-style: solid;
color: #FFFFFF;
padding-left: 3px;
padding-bottom: 2px;
margin-left:3px;
background-color: #1e1d23;
}
QCheckBox {
color: #a9b7c6;
padding: 2px;
}
QCheckBox:disabled {
color: #808086;
padding: 2px;
}
QCheckBox:hover {
border-radius:4px;
border-style:solid;
padding-left: 1px;
padding-right: 1px;
padding-bottom: 1px;
padding-top: 1px;
border-width:1px;
border-color: rgb(87, 97, 106);
background-color:#1e1d23;
}
QCheckBox::indicator:checked {
height: 10px;
width: 10px;
border-style:solid;
border-width: 1px;
border-color: #04b97f;
color: #a9b7c6;
background-color: #04b97f;
}
QCheckBox::indicator:unchecked {
height: 10px;
width: 10px;
border-style:solid;
border-width: 1px;
border-color: #04b97f;
color: #a9b7c6;
background-color: transparent;
}
QRadioButton {
color: #a9b7c6;
background-color: #1e1d23;
padding: 1px;
}
QRadioButton::indicator:checked {
height: 10px;
width: 10px;
border-style:solid;
border-radius:5px;
border-width: 1px;
border-color: #04b97f;
color: #a9b7c6;
background-color: #04b97f;
}
QRadioButton::indicator:!checked {
height: 10px;
width: 10px;
border-style:solid;
border-radius:5px;
border-width: 1px;
border-color: #04b97f;
color: #a9b7c6;
background-color: transparent;
}
QStatusBar {
color:#027f7f;
}
QSpinBox {
color: #a9b7c6;
background-color: #1e1d23;
}
QDoubleSpinBox {
color: #a9b7c6;
background-color: #1e1d23;
}
QTimeEdit {
color: #a9b7c6;
background-color: #1e1d23;
}
QDateTimeEdit {
color: #a9b7c6;
background-color: #1e1d23;
}
QDateEdit {
color: #a9b7c6;
background-color: #1e1d23;
}
QComboBox {
color: #a9b7c6;
background: #1e1d23;
}
QComboBox:editable {
background: #1e1d23;
color: #a9b7c6;
selection-background-color: #1e1d23;
}
QComboBox QAbstractItemView {
color: #a9b7c6;
background: #1e1d23;
selection-color: #FFFFFF;
selection-background-color: #1e1d23;
}
QComboBox:!editable:on, QComboBox::drop-down:editable:on {
color: #a9b7c6;
background: #1e1d23;
}
QFontComboBox {
color: #a9b7c6;
background-color: #1e1d23;
}
QToolBox {
color: #a9b7c6;
background-color: #1e1d23;
}
QToolBox::tab {
color: #a9b7c6;
background-color: #1e1d23;
}
QToolBox::tab:selected {
color: #FFFFFF;
background-color: #1e1d23;
}
QScrollArea {
color: #FFFFFF;
background-color: #1e1d23;
}
QSlider::groove:horizontal {
height: 5px;
background: #04b97f;
}
QSlider::groove:vertical {
width: 5px;
background: #04b97f;
}
QSlider::handle:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #b4b4b4, stop:1 #8f8f8f);
border: 1px solid #5c5c5c;
width: 14px;
margin: -5px 0;
border-radius: 7px;
}
QSlider::handle:vertical {
background: qlineargradient(x1:1, y1:1, x2:0, y2:0, stop:0 #b4b4b4, stop:1 #8f8f8f);
border: 1px solid #5c5c5c;
height: 14px;
margin: 0 -5px;
border-radius: 7px;
}
QSlider::add-page:horizontal {
background: white;
}
QSlider::add-page:vertical {
background: white;
}
QSlider::sub-page:horizontal {
background: #04b97f;
}
QSlider::sub-page:vertical {
background: #04b97f;
}

182
ui/aboutbox.ui Normal file
View File

@@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AboutBox</class>
<widget class="QDialog" name="AboutBox">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>707</width>
<height>363</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>707</width>
<height>363</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>707</width>
<height>363</height>
</size>
</property>
<property name="windowTitle">
<string>À propos de Chronos</string>
</property>
<property name="modal">
<bool>true</bool>
</property>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>707</width>
<height>111</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>707</width>
<height>111</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>707</width>
<height>111</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/banner.png);</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>30</x>
<y>150</y>
<width>551</width>
<height>21</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 12px;</string>
</property>
<property name="text">
<string>Author: Alexis Delhaie</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>30</x>
<y>190</y>
<width>551</width>
<height>21</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 12px;</string>
</property>
<property name="text">
<string>Version: 1.0.0 (Beta 2)</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>30</x>
<y>230</y>
<width>541</width>
<height>21</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 12px;</string>
</property>
<property name="text">
<string>Made with Qt 5.15.0 MinGW 64bit (C++17)</string>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
<x>390</x>
<y>160</y>
<width>301</width>
<height>181</height>
</rect>
</property>
<property name="accessibleDescription">
<string notr="true"/>
</property>
<property name="undoRedoEnabled">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:7.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Application icon: Alexis Delhaie (me)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;About box banner: Alexis Delhaie (me)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Clock image: iconsdb, Iconic (MIT License)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Running image: Icons made by &lt;/span&gt;&lt;a href=&quot;https://www.flaticon.com/authors/freepik&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Freepik&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; from &lt;/span&gt;&lt;a href=&quot;https://www.flaticon.com/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;www.flaticon.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Calendar image: Icons made by &lt;/span&gt;&lt;a href=&quot;https://www.flaticon.com/authors/freepik&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Freepik&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; from &lt;/span&gt;&lt;a href=&quot;https://www.flaticon.com/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;www.flaticon.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>393</x>
<y>130</y>
<width>211</width>
<height>21</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 12px;</string>
</property>
<property name="text">
<string>Third party:</string>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>30</x>
<y>270</y>
<width>541</width>
<height>21</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 12px;</string>
</property>
<property name="text">
<string>Installer/Updater made with Delphi 10.3 Community</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

705
ui/mainwindow.ui Normal file
View File

@@ -0,0 +1,705 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1206</width>
<height>649</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>1206</width>
<height>649</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>1206</width>
<height>649</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="windowTitle">
<string>Chronos</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>192</x>
<y>19</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>240</x>
<y>29</y>
<width>141</width>
<height>61</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</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>40</x>
<y>29</y>
<width>141</width>
<height>61</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</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">
<property name="geometry">
<rect>
<x>1022</x>
<y>23</y>
<width>153</width>
<height>61</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font/>
</property>
<property name="text">
<string>Date :</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QDateEdit" name="dateEdit">
<property name="minimumSize">
<size>
<width>100</width>
<height>32</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>32</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="styleSheet">
<string notr="true">border: 1px solid white</string>
</property>
<property name="wrapping">
<bool>false</bool>
</property>
<property name="frame">
<bool>false</bool>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
</property>
<property name="calendarPopup">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_semaine">
<property name="font">
<font/>
</property>
<property name="text">
<string>Semaine : 0</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget_2">
<property name="geometry">
<rect>
<x>427</x>
<y>30</y>
<width>141</width>
<height>61</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</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>378</x>
<y>20</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">
<property name="geometry">
<rect>
<x>930</x>
<y>600</y>
<width>261</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Modifier la semaine de référence</string>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>129</x>
<y>247</y>
<width>911</width>
<height>191</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="spacing">
<number>45</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_8">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: white;
font-size: 22px;</string>
</property>
<property name="text">
<string>Lundi</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="mon_time_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="mon_button">
<property name="minimumSize">
<size>
<width>0</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>Modifier</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QLabel" name="label_9">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: white;
font-size: 22px;</string>
</property>
<property name="text">
<string>Mardi</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="tue_time_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="tue_button">
<property name="minimumSize">
<size>
<width>0</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>Modifier</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QLabel" name="label_10">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: white;
font-size: 22px;</string>
</property>
<property name="text">
<string>Mercredi</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="wed_time_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="wed_button">
<property name="minimumSize">
<size>
<width>0</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>Modifier</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QLabel" name="label_11">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: white;
font-size: 22px;</string>
</property>
<property name="text">
<string>Jeudi</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="thu_time_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="thu_button">
<property name="minimumSize">
<size>
<width>0</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>Modifier</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QLabel" name="label_12">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: white;
font-size: 22px;</string>
</property>
<property name="text">
<string>Vendredi</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="fri_time_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>42</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="fri_button">
<property name="minimumSize">
<size>
<width>0</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>Modifier</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QPushButton" name="aboutButton">
<property name="geometry">
<rect>
<x>20</x>
<y>588</y>
<width>44</width>
<height>44</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>44</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>44</width>
<height>44</height>
</size>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">border-image: url(:/clock/pictures/about.png) 0 0 0 0 stretch stretch;</string>
</property>
<property name="text">
<string/>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>

242
ui/setdaydialog.ui Normal file
View File

@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SetDayDialog</class>
<widget class="QDialog" name="SetDayDialog">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>419</width>
<height>177</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>419</width>
<height>177</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>419</width>
<height>177</height>
</size>
</property>
<property name="windowTitle">
<string>Modifier un jour</string>
</property>
<property name="modal">
<bool>true</bool>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>320</x>
<y>140</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Valider</string>
</property>
</widget>
<widget class="QTimeEdit" name="start_edit">
<property name="geometry">
<rect>
<x>40</x>
<y>49</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="time">
<time>
<hour>9</hour>
<minute>0</minute>
<second>0</second>
</time>
</property>
</widget>
<widget class="QTimeEdit" name="end_edit">
<property name="geometry">
<rect>
<x>300</x>
<y>49</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="time">
<time>
<hour>17</hour>
<minute>15</minute>
<second>0</second>
</time>
</property>
</widget>
<widget class="QDoubleSpinBox" name="break_edit">
<property name="geometry">
<rect>
<x>170</x>
<y>49</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="value">
<double>0.450000000000000</double>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>40</x>
<y>9</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Arrivé</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>170</x>
<y>9</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Pause</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>300</x>
<y>9</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Départ</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>40</x>
<y>103</y>
<width>141</width>
<height>61</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>
<resources/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>SetDayDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>357</x>
<y>151</y>
</hint>
<hint type="destinationlabel">
<x>209</x>
<y>88</y>
</hint>
</hints>
</connection>
</connections>
</ui>

370
ui/welcome.ui Normal file
View File

@@ -0,0 +1,370 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Welcome</class>
<widget class="QDialog" name="Welcome">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>516</width>
<height>276</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>516</width>
<height>276</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>516</width>
<height>276</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="windowTitle">
<string>Définir le temps de travail</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="modal">
<bool>true</bool>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>261</width>
<height>201</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<layout class="QVBoxLayout" name="verticalLayout_1">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Lundi</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="mon_time_label">
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="mon_button">
<property name="text">
<string>Modifier</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Mardi</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="tue_time_label">
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="tue_button">
<property name="text">
<string>Modifier</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Mercredi</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="wed_time_label">
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="wed_button">
<property name="text">
<string>Modifier</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Jeudi</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="thu_time_label">
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="thu_button">
<property name="text">
<string>Modifier</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label_5">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Vendredi</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="fri_time_label">
<property name="text">
<string>0h</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="fri_button">
<property name="text">
<string>Modifier</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>400</x>
<y>230</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>&amp;Valider</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
<property name="default">
<bool>true</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>300</x>
<y>60</y>
<width>201</width>
<height>103</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Temps total</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="total">
<property name="font">
<font>
<pointsize>-1</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>Welcome</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>446</x>
<y>243</y>
</hint>
<hint type="destinationlabel">
<x>257</x>
<y>137</y>
</hint>
</hints>
</connection>
</connections>
</ui>