16 Commits

Author SHA1 Message Date
Aurélie
73955a1b8b Update Chronos.pro 2022-10-17 20:50:17 +02:00
Aurélie Delhaie
0c65ab2cb5 Merge branch 'time_format' 2022-10-17 20:07:18 +02:00
Aurélie Delhaie
5515112404 Fix time string formating 2022-10-17 20:03:12 +02:00
Aurélie
8e11f3e210 Update Chronos.pro 2022-10-16 19:39:03 +02:00
Aurélie
9721350fb0 Create find_dependencies_linux.sh 2022-10-16 18:26:57 +02:00
Aurélie
689689f243 Update README.md 2022-10-16 18:25:48 +02:00
Aurélie Delhaie
fd4b766c4d Add support of leaves 2022-10-16 17:36:47 +02:00
Aurélie Delhaie
6a44c4afd9 Starting working on non working days 2022-10-16 14:49:10 +02:00
Aurélie Delhaie
63d1ca329f Move warning icon, move week number, add emoji 2022-10-13 21:41:07 +02:00
Aurélie Delhaie
1753a34957 Remove old qt config 2022-09-28 21:14:56 +02:00
Aurélie Delhaie
a6593a0151 Refresh GUI 2022-09-28 21:14:10 +02:00
Aurélie Delhaie
877fde22e0 License 2022-08-01 22:31:11 +02:00
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
Aurélie Delhaie
9bb56fe174 Pointer + time delta 2022-03-01 21:08:34 +01:00
Aurélie Delhaie
ffebb3c7d7 starting cloud save 2022-01-09 21:21:18 +01:00
54 changed files with 3381 additions and 3162 deletions

BIN
.DS_Store vendored

Binary file not shown.

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.pro.*

View File

@@ -3,23 +3,30 @@ greaterThan(QT_MAJOR_VERSION, 5): QT += widgets
CONFIG += c++17
win32:VERSION = 2.3.0.0 # major.minor.patch.build
else:VERSION = 2.3.0 # major.minor.patch
DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\"
# remove possible other optimization flags
win32 {
message("Build for Windows")
QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE *= -O2
DEFINES += APP_OS=\"\\\"Windows\\\"\"
DEFINES += APP_OS_VERSION=\"\\\"$$system(ver)\\\"\"
equals(QMAKE_TARGET.arch, arm64) {
message("CPU Architecture : aarch64")
# Add specific arm stuff here
DEFINES += APP_ARCH=\"\\\"arm64\\\"\"
}
equals(QMAKE_TARGET.arch, x86_64) {
message("CPU Architecture : x64")
QMAKE_CXXFLAGS_RELEASE += -favor:INTEL64
DEFINES += APP_ARCH=\"\\\"x64\\\"\"
}
RC_ICONS = icon.ico
VERSION = 2.0.0.0
QMAKE_TARGET_COMPANY = "Aurélie Delhaie"
QMAKE_TARGET_COMPANY = "Aurelie Delhaie"
QMAKE_TARGET_PRODUCT = "Chronos"
QMAKE_TARGET_DESCRIPTION = "Chronos"
}
@@ -32,17 +39,28 @@ macx {
QMAKE_CXXFLAGS_RELEASE -= -O1
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE *= -O3
equals(QMAKE_APPLE_DEVICE_ARCHS, arm64) {
message("CPU Architecture : aarch64")
QMAKE_CXXFLAGS_RELEASE += -mcpu=apple-a14
}
VERSION = 2.0.0
QMAKE_APPLE_DEVICE_ARCHS = x86_64 arm64
DEFINES += APP_OS=\"\\\"macOS\\\"\"
DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\"
DEFINES += APP_ARCH=\"\\\"universal\\\"\"
}
# add the desired -O3 if not present, MinGW only
# QMAKE_CXXFLAGS_RELEASE *= -O3
linux-* {
message("Build for Linux")
DEFINES += APP_OS=\"\\\"$$system(cat /etc/issue | cut -d\' \' -f1)\\\"\"
DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\"
DEFINES += APP_ARCH=\"\\\"$$system(uname -m)\\\"\"
ARCH = $$system(uname -m)
equals(ARCH, aarch64) {
message("CPU Architecture : aarch64")
QMAKE_CXXFLAGS_RELEASE += -mtune=cortex-a72
}
equals(ARCH, amd64) {
message("CPU Architecture : amd64")
QMAKE_CXXFLAGS_RELEASE += -march=skylake
}
QMAKE_CXXFLAGS_RELEASE *= -O3
}
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
@@ -56,31 +74,41 @@ DEFINES += QT_DEPRECATED_WARNINGS
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
sources/configurationmanager.cpp \
sources/configurationdialog.cpp \
sources/aboutbox.cpp \
sources/breakdialog.cpp \
sources/breakpoint.cpp \
sources/day.cpp \
sources/models/breakpoint.cpp \
sources/models/day.cpp \
sources/main.cpp \
sources/mainwindow.cpp \
sources/models/settings.cpp \
sources/setdaydialog.cpp \
sources/tools.cpp \
sources/week.cpp \
sources/models/week.cpp \
sources/weekoption.cpp \
sources/welcome.cpp \
sources/year.cpp
sources/models/year.cpp
HEADERS += \
sources/configurationmanager.h \
sources/configurationdialog.h \
sources/aboutbox.h \
sources/breakdialog.h \
sources/breakpoint.h \
sources/day.h \
sources/models/breakpoint.h \
sources/models/day.h \
sources/mainwindow.h \
sources/models/settings.h \
sources/setdaydialog.h \
sources/tools.h \
sources/week.h \
sources/models/week.h \
sources/weekoption.h \
sources/welcome.h \
sources/year.h
sources/models/year.h
FORMS += \
ui/weekoption.ui \
ui/configurationdialog.ui \
ui/breakdialog.ui \
ui/aboutbox.ui \
ui/mainwindow.ui \

View File

@@ -1,426 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 5.0.2, 2021-10-25T22:57:55. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{67c351c8-ac7f-4fbb-b594-e8b60a17310f}</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.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="QString">-fno-delayed-template-parsing</value>
</valuelist>
<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.0 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.0 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.620.win64_msvc2019_64_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="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\Qt Projects Sources\build-Chronos-Desktop_Qt_6_2_0_MSVC2019_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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">E:\Qt Projects Sources\build-Chronos-Desktop_Qt_6_2_0_MSVC2019_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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">E:\Qt Projects Sources\build-Chronos-Desktop_Qt_6_2_0_MSVC2019_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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.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:E:/Qt Projects Sources/Chronos/Chronos.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/Qt Projects Sources/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">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_64bit-Release</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.0 MSVC2019 ARM64</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.0 MSVC2019 ARM64</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.620.win64_msvc2019_arm64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</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="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\Qt Projects Sources\build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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">E:\Qt Projects Sources\build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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">E:\Qt Projects Sources\build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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.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:E:/Qt Projects Sources/Chronos/Chronos.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/Qt Projects Sources/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">E:/Qt Projects Sources/build-Chronos-Desktop_Qt_6_2_0_MSVC2019_ARM64-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</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

@@ -1,340 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.12.4, 2020-11-04T20:10:22. -->
<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 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.0 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5150.win64_msvc2019_64_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_MSVC2019_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MSVC2019_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="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_MSVC2019_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MSVC2019_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="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_MSVC2019_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/robof/OneDrive/Documents/build-Chronos-Desktop_Qt_5_15_0_MSVC2019_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="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_MSVC2019_64bit-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>

View File

@@ -1,266 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 5.0.2, 2021-10-19T22:43:22. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{f1407b1e-b4d5-4aac-ba0d-b38072a0dfb8}</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.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">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="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 6.2.0 for macOS</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 6.2.0 for macOS</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.620.clang_64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</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="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-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">
<value type="QString">arm-darwin-generic-mach_o-64bit</value>
</valuelist>
</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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-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">
<value type="QString">arm-darwin-generic-mach_o-64bit</value>
</valuelist>
</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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-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="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>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</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.CustomParsers"/>
<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.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:/Volumes/Macintosh SSD/sources/Qt/Chronos/Chronos.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/Volumes/Macintosh SSD/sources/Qt/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">/Volumes/Macintosh SSD/sources/Qt/build-Chronos-Qt_6_2_0_for_macOS-Release/Chronos.app/Contents/MacOS</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>

7
LICENSE Normal file
View File

@@ -0,0 +1,7 @@
Copyright 2022 Aurélie Delhaie
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1 +1,10 @@
# Chronos
## Install on Ubuntu
You need to install Qt 6 dependencies
```sh
sudo apt install libqt6widgets6 libqt6gui6 libqt6core5compat6 libqt6core5compat6 libqt6core6 libqt6dbus6
```
then download binary from the release section

View File

@@ -0,0 +1 @@
ldd $1 | awk '{print $1}' | sed 's/\..*//' | while read n; do apt-cache search ^$n | grep libqt6 | cut -f 1 -d '-' >> deps.txt; done

BIN
icon-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -1,10 +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>
<file>pictures/validate.png</file>
<file>pictures/warning.png</file>
<file>pictures/leave.png</file>
</qresource>
</RCC>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

BIN
pictures/leave.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

BIN
pictures/warning.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
sources/.DS_Store vendored

Binary file not shown.

View File

@@ -11,8 +11,8 @@ AboutBox::AboutBox(QWidget *parent) :
xmin = ui->frame->x();
ymax = ui->frame->x() + ui->frame->height();
ymin = ui->frame->y();
ui->systemLabel->setText(QString("Built on %1 (%2-%3)").arg(QSysInfo::prettyProductName(), QSysInfo::kernelVersion(), QSysInfo::buildCpuArchitecture()));
ui->versionLabel->setText(QString("Version: %1").arg(VERSION));
ui->systemLabel->setText(QString("Built on %1 %2 (%3)").arg(APP_OS, APP_OS_VERSION, APP_ARCH));
ui->versionLabel->setText(QString("Version: %1").arg(APP_VERSION));
}
AboutBox::~AboutBox()

View File

@@ -1,8 +1,6 @@
#ifndef ABOUTBOX_H
#define ABOUTBOX_H
#define VERSION "2.0.0"
#include <QDialog>
#include <QMouseEvent>
#include <iostream>

View File

@@ -28,5 +28,5 @@ void BreakDialog::compute()
bp.setStart(ui->startTime->time());
bp.setEnd(ui->endTime->time());
float minutes = bp.getDuration();
ui->totalTime->setText(QString("%1 minutes").arg(QString::number(minutes, 'g', 2)));
ui->totalTime->setText(Tools::double_to_string_counter(minutes));
}

View File

@@ -3,7 +3,8 @@
#include <QDialog>
#include "breakpoint.h"
#include "models/breakpoint.h"
#include "tools.h"
namespace Ui {
class BreakDialog;

View File

@@ -0,0 +1,32 @@
#include "configurationdialog.h"
#include "ui_configurationdialog.h"
ConfigurationDialog::ConfigurationDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::ConfigurationDialog)
{
ui->setupUi(this);
RefreshField();
}
ConfigurationDialog::~ConfigurationDialog()
{
delete ui;
}
void ConfigurationDialog::RefreshField()
{
Settings* s = mng.GetConfiguration();
ui->cloud_url->setText(s->GetCloudUrl());
ui->cloud_Email->setText(s->GetCloudEmail());
ui->cloud_password->setText(s->GetCloudPassword());
ui->cloud_agent->setText(s->GetCloudAgent());
ui->cloud_enable->setCheckState(s->GetCloudEnabled() ? Qt::CheckState::Checked : Qt::CheckState::Unchecked);
bool cloudDisabled = !s->GetCloudEnabled();
ui->cloud_url->setDisabled(cloudDisabled);
ui->cloud_Email->setDisabled(cloudDisabled);
ui->cloud_password->setDisabled(cloudDisabled);
ui->cloud_agent->setDisabled(cloudDisabled);
}

View File

@@ -0,0 +1,28 @@
#ifndef CONFIGURATIONDIALOG_H
#define CONFIGURATIONDIALOG_H
#include <QDialog>
#include "configurationmanager.h"
namespace Ui {
class ConfigurationDialog;
}
class ConfigurationDialog : public QDialog
{
Q_OBJECT
public:
explicit ConfigurationDialog(QWidget *parent = nullptr);
~ConfigurationDialog();
private:
Ui::ConfigurationDialog *ui;
ConfigurationManager mng;
void RefreshField();
};
#endif // CONFIGURATIONDIALOG_H

View File

@@ -0,0 +1,51 @@
#include "configurationmanager.h"
ConfigurationManager::ConfigurationManager()
{
if (QFile::exists(GetPath())) {
QFile* file = new QFile(GetPath());
file->open(QIODevice::ReadOnly);
auto json = QString(file->readAll());
file->close();
delete file;
QJsonObject obj = QJsonDocument::fromJson(json.toUtf8()).object();
this->s = Settings::FromJSON(obj);
} else {
this->s = new Settings();
Save();
}
}
ConfigurationManager::~ConfigurationManager()
{
delete s;
}
Settings *ConfigurationManager::GetConfiguration()
{
return s;
}
QString ConfigurationManager::GetPath() {
QString path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
if (!QDir(path).exists()) {
QDir().mkpath(path);
}
path += "/";
if (!QDir(path).exists()) {
QDir().mkpath(path);
}
path += FILENAME;
return path;
}
void ConfigurationManager::Save() {
QJsonDocument doc(s->ToJSON());
QFile *f = new QFile(GetPath());
if (f->open(QIODevice::WriteOnly)) {
f->write(doc.toJson());
f->close();
}
delete f;
}

View File

@@ -0,0 +1,27 @@
#ifndef CONFIGURATIONMANAGER_H
#define CONFIGURATIONMANAGER_H
#define FILENAME "settings.json"
#include <QString>
#include <QDir>
#include <QStandardPaths>
#include <QJsonObject>
#include <QJsonDocument>
#include "models/settings.h"
class ConfigurationManager
{
private:
Settings *s;
QString GetPath();
void Save();
public:
ConfigurationManager();
~ConfigurationManager();
Settings* GetConfiguration();
};
#endif // CONFIGURATIONMANAGER_H

View File

@@ -1,97 +0,0 @@
#include "day.h"
Day::Day()
{
start = QTime(9, 0, 0, 0);
end = QTime(17, 15, 0, 0);
BreakPoint lunch(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0));
breaks.append(lunch);
validate = false;
}
float Day::get_total() {
int sec = start.secsTo(end);
int minutes = sec / 60;
float breakTime = get_time_break();
return (minutes - breakTime) / 60;
}
void Day::set_start(QTime value)
{
start = value;
}
void Day::set_end(QTime value)
{
end = value;
}
void Day::set_validate(bool value) {
validate = value;
}
void Day::setBreaks(QVector<BreakPoint> breaks)
{
this->breaks = breaks;
}
QTime Day::get_start()
{
return start;
}
QTime Day::get_end()
{
return end;
}
QVector<BreakPoint> Day::getBreaks()
{
return breaks;
}
QJsonObject Day::to_json()
{
QJsonArray arr;
foreach (BreakPoint bp, breaks) {
arr.append(bp.to_json());
}
QJsonObject obj{
{KEY_START, start.toString(Qt::DateFormat::ISODate)},
{KEY_END, end.toString(Qt::DateFormat::ISODate)},
{KEY_BREAKS, arr},
{KEY_VALIDATE, validate}
};
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.validate = obj[KEY_VALIDATE].toBool();
result.breaks.clear();
QJsonArray arr = obj[KEY_BREAKS].toArray();
foreach (QJsonValue val, arr) {
result.breaks.append(BreakPoint::from_json(val.toObject()));
}
return result;
}
bool Day::get_validate() {
return validate;
}
float Day::get_time_break()
{
float result = 0;
foreach (BreakPoint bp, breaks) {
result += bp.getDuration();
}
return result;
}

View File

@@ -11,6 +11,11 @@ MainWindow::MainWindow(QWidget *parent)
MainWindow::~MainWindow()
{
delete week_template;
foreach (Year *y, years) {
delete y;
}
years.clear();
delete ui;
}
@@ -35,6 +40,8 @@ void MainWindow::init() {
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->today_button, &QPushButton::clicked, this, &MainWindow::set_date_to_now);
connect(ui->week_options_button, &QPushButton::clicked, this, &MainWindow::set_week_options);
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);
@@ -48,9 +55,9 @@ void MainWindow::init() {
if (QFile::exists(get_save_file_path())) {
open_save();
} else {
week_template = new Week();
Welcome w(week_template);
w.exec();
week_template = w.get_result();
saveLoaded = true;
}
if (saveLoaded) {
@@ -65,30 +72,33 @@ void MainWindow::highlightDayOfWeek() {
ui->wedLabel->setText("Mercredi");
ui->thuLabel->setText("Jeudi");
ui->friLabel->setText("Vendredi");
if (todayWeekNumber == current_week.getWeekNumber()) {
if (todayWeekNumber == current_week->getWeekNumber()) {
ui->today_button->setDisabled(true);
switch (dayOfWeek) {
case 1: {
ui->monLabel->setText(QString("> %1 <").arg(ui->monLabel->text()));
ui->monLabel->setText(QString("%1 📆").arg(ui->monLabel->text()));
break;
}
case 2: {
ui->tueLabel->setText(QString("> %1 <").arg(ui->tueLabel->text()));
ui->tueLabel->setText(QString("%1 📆").arg(ui->tueLabel->text()));
break;
}
case 3: {
ui->wedLabel->setText(QString("> %1 <").arg(ui->wedLabel->text()));
ui->wedLabel->setText(QString("%1 📆").arg(ui->wedLabel->text()));
break;
}
case 4: {
ui->thuLabel->setText(QString("> %1 <").arg(ui->thuLabel->text()));
ui->thuLabel->setText(QString("%1 📆").arg(ui->thuLabel->text()));
break;
}
case 5: {
ui->friLabel->setText(QString("> %1 <").arg(ui->friLabel->text()));
ui->friLabel->setText(QString("%1 📆").arg(ui->friLabel->text()));
break;
}
default: break;
}
} else {
ui->today_button->setDisabled(false);
}
}
@@ -112,8 +122,8 @@ void MainWindow::open_save() {
week_template = Week::from_json(obj[KEY_TEMPLATE].toObject());
QJsonArray arr = obj[KEY_YEARS].toArray();
foreach (QJsonValue val, arr) {
Year y = Year::from_json(val.toObject());
years[y.getNumber()] = y;
Year *y = Year::from_json(val.toObject());
years[y->getNumber()] = y;
}
saveLoaded = true;
}
@@ -126,11 +136,11 @@ void MainWindow::panic_dialog(QString text) {
void MainWindow::save_to_file() {
QJsonArray arr;
foreach (Year y, years) {
arr.append(y.to_json());
foreach (Year *y, years) {
arr.append(y->to_json());
}
QJsonObject obj {
{KEY_TEMPLATE, week_template.to_json()},
{KEY_TEMPLATE, week_template->to_json()},
{KEY_YEARS, arr},
{KEY_SAVE_FILE_VERSION, SAVE_FILE_VERSION}
};
@@ -150,19 +160,18 @@ void MainWindow::compute_week_number(const QDateTime &dt) {
if (years.contains(y)) {
current_year = years[y];
} else {
Year nYear(y);
Year *nYear = new Year(y);
years[y] = nYear;
current_year = nYear;
save_to_file();
}
if (current_year.getWeeks().contains(n)) {
auto weeks = current_year.getWeeks();
current_week = weeks[n];
if (current_year->hasWeek(n)) {
current_week = current_year->getWeek(n);
} else {
current_week = Week(week_template);
current_week.setWeekNumber(n);
current_year.addWeek(current_week);
current_week = new Week(week_template);
current_week->setWeekNumber(n);
current_year->addWeek(current_week);
save_to_file();
}
compute_time();
@@ -170,97 +179,100 @@ void MainWindow::compute_week_number(const QDateTime &dt) {
}
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()));
updateStartLabel();
updateBreakLabel();
updateEndLabel();
updateValidIcon();
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()));
updateLabels();
updateWeekTime();
double late = 0.0;
double overtime = 0.0;
int todayWeekNumber = QDate::currentDate().weekNumber();
foreach (Week w, current_year.getWeeks()) {
if (w.getWeekNumber() <= todayWeekNumber) {
late += (week_template.total() - w.total());
overtime += (w.total() - week_template.total());
QMapIterator i = current_year->iterator();
while (i.hasNext()) {
Week *w = i.next().value();
if (w->getWeekNumber() <= todayWeekNumber) {
late += (week_template->total() - w->total(week_template)) - w->getTimeDeltaInHours();
overtime += (w->total() - week_template->total(week_template)) + w->getTimeDeltaInHours();
}
}
late -= current_week->getTimeDeltaInHours();
overtime += - current_week->getTimeDeltaInHours();
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::updateValidIcon() {
ui->mondayValidate->setVisible(current_week.getMon().get_validate());
ui->tuesdayValidate->setVisible(current_week.getTue().get_validate());
ui->wednesdayValidate->setVisible(current_week.getWed().get_validate());
ui->thurdayValidate->setVisible(current_week.getThu().get_validate());
ui->fridayValidate->setVisible(current_week.getFri().get_validate());
void MainWindow::updateWeekTime()
{
double t = (current_week->total(week_template) + 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() {
ui->monStartLabel->setText(current_week.getMon().get_start().toString("HH:mm"));
ui->tueStartLabel->setText(current_week.getTue().get_start().toString("HH:mm"));
ui->wedStartLabel->setText(current_week.getWed().get_start().toString("HH:mm"));
ui->thuStartLabel->setText(current_week.getThu().get_start().toString("HH:mm"));
ui->friStartLabel->setText(current_week.getFri().get_start().toString("HH:mm"));
void MainWindow::updateLabels() {
updateDayLabels(ui->monStartLabel, ui->monEndLabel, ui->monBreakLabel, ui->mondayValidate, ui->mondayWarning, ui->mondayNotWorking, current_week->getMon());
updateDayLabels(ui->tueStartLabel, ui->tueEndLabel, ui->tueBreakLabel, ui->tuesdayValidate, ui->tuesdayWarning, ui->tuesdayNotWorking, current_week->getTue());
updateDayLabels(ui->wedStartLabel, ui->wedEndLabel, ui->wedBreakLabel, ui->wednesdayValidate, ui->wednesdayWarning, ui->wednesdayNotWorking, current_week->getWed());
updateDayLabels(ui->thuStartLabel, ui->thuEndLabel, ui->thuBreakLabel, ui->thurdayValidate, ui->thurdayWarning, ui->thurdayNotWorking, current_week->getThu());
updateDayLabels(ui->friStartLabel, ui->friEndLabel, ui->friBreakLabel, ui->fridayValidate, ui->fridayWarning, ui->fridayNotWorking, current_week->getFri());
}
void MainWindow::updateBreakLabel() {
ui->monBreakLabel->setText(QString("%1 min.").arg(current_week.getMon().get_time_break()));
ui->tueBreakLabel->setText(QString("%1 min.").arg(current_week.getTue().get_time_break()));
ui->wedBreakLabel->setText(QString("%1 min.").arg(current_week.getWed().get_time_break()));
ui->thuBreakLabel->setText(QString("%1 min.").arg(current_week.getThu().get_time_break()));
ui->friBreakLabel->setText(QString("%1 min.").arg(current_week.getFri().get_time_break()));
}
void MainWindow::updateEndLabel() {
ui->monEndLabel->setText(current_week.getMon().get_end().toString("HH:mm"));
ui->tueEndLabel->setText(current_week.getTue().get_end().toString("HH:mm"));
ui->wedEndLabel->setText(current_week.getWed().get_end().toString("HH:mm"));
ui->thuEndLabel->setText(current_week.getThu().get_end().toString("HH:mm"));
ui->friEndLabel->setText(current_week.getFri().get_end().toString("HH:mm"));
void MainWindow::updateDayLabels(QLabel *start, QLabel *end, QLabel *breaks, QFrame *validate, QFrame *warning, QFrame *not_working, Day *d)
{
not_working->setVisible(d->not_working());
if (!d->not_working()) {
start->setText(d->get_start().toString("HH:mm"));
end->setText(d->get_end().toString("HH:mm"));
breaks->setText(Tools::double_to_string_counter(d->get_time_break()));
validate->setVisible(d->get_validate());
warning->setVisible(d->has_warning());
} else {
start->setText("--:--");
end->setText("--:--");
breaks->setText("0 min.");
validate->setVisible(false);
warning->setVisible(false);
}
}
void MainWindow::edit() {
QString name = QObject::sender()->objectName();
switch (get_identifier(name)) {
case mon:
current_week.setMon(modify_value(current_week.getMon()));
modify_value(current_week->getMon());
break;
case tue:
current_week.setTue(modify_value(current_week.getTue()));
modify_value(current_week->getTue());
break;
case wed:
current_week.setWed(modify_value(current_week.getWed()));
modify_value(current_week->getWed());
break;
case thu:
current_week.setThu(modify_value(current_week.getThu()));
modify_value(current_week->getThu());
break;
case fri:
current_week.setFri(modify_value(current_week.getFri()));
modify_value(current_week->getFri());
break;
}
auto weeks = current_year.getWeeks();
weeks[current_week.getWeekNumber()] = current_week;
current_year.setWeeks(weeks);
years[current_year.getNumber()] = current_year;
save_to_file();
compute_time();
}
Day MainWindow::modify_value(Day d) {
bool isNotValidable = (current_week.getWeekNumber() > todayWeekNumber);
void MainWindow::modify_value(Day *d) {
bool isNotValidable = (current_week->getWeekNumber() > todayWeekNumber);
SetDayDialog sdd(d, isNotValidable, this);
int result = sdd.exec();
if (result == QDialog::Accepted) {
return sdd.get_result();
}
return d;
sdd.exec();
}
Identifier MainWindow::get_identifier(QString objectName) {
@@ -271,7 +283,6 @@ 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();
}
@@ -281,3 +292,14 @@ void MainWindow::open_about() {
AboutBox a(this);
a.exec();
}
void MainWindow::set_week_options()
{
WeekOption ow(current_week, this);
int result = ow.exec();
if (result == QDialog::Accepted) {
current_week->setTimeDelta(ow.get_time_delta());
save_to_file();
compute_time();
}
}

View File

@@ -4,7 +4,7 @@
#define KEY_TEMPLATE "template"
#define KEY_YEARS "years"
#define SAVE_FILENAME "data.json"
#define SAVE_FILE_VERSION 3
#define SAVE_FILE_VERSION 4
#define KEY_SAVE_FILE_VERSION "version"
#include <QMouseEvent>
@@ -22,11 +22,11 @@
#include <QProcess>
#include <QDir>
#include "week.h"
#include "year.h"
#include "models/week.h"
#include "models/year.h"
#include "welcome.h"
#include "tools.h"
#include "aboutbox.h"
#include "weekoption.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
@@ -51,31 +51,31 @@ private:
void panic_dialog(QString text);
// UI Update
void updateStartLabel();
void updateBreakLabel();
void updateEndLabel();
void updateLabels();
void highlightDayOfWeek();
void updateValidIcon();
void updateWeekTime();
void updateDayLabels(QLabel *start, QLabel *end, QLabel *breaks, QFrame *validate, QFrame *warning, QFrame *not_working, Day *d);
QString get_save_file_path();
Identifier get_identifier(QString objectName);
Day modify_value(Day);
void modify_value(Day*);
Week week_template;
Week current_week;
Year current_year;
QMap<int, Year> years;
Week* week_template;
Week* current_week;
Year* current_year;
QMap<int, Year*> years;
QMap<QString, Identifier> objectId;
int todayWeekNumber;
int dayOfWeek;
bool saveLoaded;
public slots:
private slots:
void compute_week_number(const QDateTime &dt);
void compute_time();
void set_date_to_now();
void edit();
void edit_template();
void open_about();
void set_week_options();
};
#endif // MAINWINDOW_H

View File

@@ -5,6 +5,12 @@ BreakPoint::BreakPoint()
}
BreakPoint::BreakPoint(BreakPoint *old)
{
this->start = old->start;
this->end = old->end;
}
BreakPoint::BreakPoint(QTime start, QTime end)
{
this->start = start;
@@ -45,12 +51,12 @@ QJsonObject BreakPoint::to_json()
return obj;
}
BreakPoint BreakPoint::from_json(QJsonObject obj)
BreakPoint* BreakPoint::from_json(QJsonObject obj)
{
BreakPoint result;
BreakPoint *result = new BreakPoint();
result.start = QTime::fromString(obj["start"].toString(), Qt::DateFormat::ISODate);
result.end = QTime::fromString(obj["end"].toString(), Qt::DateFormat::ISODate);
result->start = QTime::fromString(obj["start"].toString(), Qt::DateFormat::ISODate);
result->end = QTime::fromString(obj["end"].toString(), Qt::DateFormat::ISODate);
return result;
}

View File

@@ -13,6 +13,7 @@ private:
public:
BreakPoint();
BreakPoint(BreakPoint*);
BreakPoint(QTime, QTime);
QTime getStart();
@@ -23,7 +24,7 @@ public:
void setEnd(QTime);
QJsonObject to_json();
static BreakPoint from_json(QJsonObject);
static BreakPoint* from_json(QJsonObject);
};
#endif // BREAKPOINT_H

163
sources/models/day.cpp Normal file
View File

@@ -0,0 +1,163 @@
#include "day.h"
Day::Day()
{
start = QTime(9, 0, 0, 0);
end = QTime(17, 15, 0, 0);
BreakPoint *lunch = new BreakPoint(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0));
breaks.append(lunch);
validate = false;
notWorking = false;
}
Day::Day(Day *old)
{
start = QTime(9, 0, 0, 0);
end = QTime(17, 15, 0, 0);
BreakPoint *lunch = new BreakPoint(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0));
breaks.append(lunch);
validate = false;
notWorking = false;
update(old);
}
Day::~Day()
{
foreach (BreakPoint *bp, breaks) {
delete bp;
}
breaks.clear();
}
float Day::get_total() {
if (notWorking) {
return 0.0;
}
int sec = start.secsTo(end);
int minutes = sec / 60;
float breakTime = get_time_break();
return (minutes - breakTime) / 60;
}
void Day::set_start(QTime value)
{
start = value;
}
void Day::set_end(QTime value)
{
end = value;
}
void Day::set_validate(bool value) {
validate = value;
}
void Day::set_not_working(bool value)
{
this->notWorking = value;
}
void Day::setBreaks(QVector<BreakPoint*> breaks)
{
this->breaks = breaks;
}
QTime Day::get_start()
{
return start;
}
QTime Day::get_end()
{
return end;
}
QVector<BreakPoint*> Day::getBreaks()
{
return breaks;
}
QJsonObject Day::to_json()
{
QJsonArray arr;
foreach (BreakPoint *bp, breaks) {
arr.append(bp->to_json());
}
QJsonObject obj{
{KEY_START, start.toString(Qt::DateFormat::ISODate)},
{KEY_END, end.toString(Qt::DateFormat::ISODate)},
{KEY_BREAKS, arr},
{KEY_VALIDATE, validate},
{KEY_NOT_WORKING, notWorking}
};
return obj;
}
bool Day::has_warning()
{
bool warning = false;
foreach (BreakPoint val, breaks) {
if (val.getStart() < start) {
warning = true;
}
if (val.getEnd() > end) {
warning = true;
}
}
return warning;
}
Day* Day::from_json(QJsonObject obj)
{
Day *result = new Day();
result->start = QTime::fromString(obj[KEY_START].toString(), Qt::DateFormat::ISODate);
result->end = QTime::fromString(obj[KEY_END].toString(), Qt::DateFormat::ISODate);
result->validate = obj[KEY_VALIDATE].toBool(false);
result->notWorking = obj[KEY_NOT_WORKING].toBool(false);
result->breaks.clear();
QJsonArray arr = obj[KEY_BREAKS].toArray();
foreach (QJsonValue val, arr) {
result->breaks.append(BreakPoint::from_json(val.toObject()));
}
return result;
}
bool Day::get_validate() {
return validate;
}
bool Day::not_working()
{
return notWorking;
}
float Day::get_time_break()
{
float result = 0;
foreach (BreakPoint* bp, breaks) {
result += bp->getDuration();
}
return result;
}
void Day::update(Day *old)
{
this->start = old->start;
this->end = old->end;
this->validate = old->validate;
this->notWorking = old->notWorking;
foreach (BreakPoint *bp, breaks) {
delete bp;
}
breaks.clear();
foreach (BreakPoint *bp, old->breaks) {
this->breaks.append(new BreakPoint(bp));
}
}

View File

@@ -5,6 +5,7 @@
#define KEY_END "end"
#define KEY_BREAKS "breaks"
#define KEY_VALIDATE "validate"
#define KEY_NOT_WORKING "not_working"
#include <QTime>
#include <QJsonObject>
@@ -19,27 +20,34 @@ class Day
private:
QTime start;
QTime end;
QVector<BreakPoint> breaks;
QVector<BreakPoint*> breaks;
bool validate;
bool notWorking;
public:
Day();
Day(Day*);
~Day();
void set_start(QTime value);
void set_end(QTime value);
void set_validate(bool);
void setBreaks(QVector<BreakPoint>);
void set_not_working(bool);
void setBreaks(QVector<BreakPoint*>);
QTime get_start();
QTime get_end();
QVector<BreakPoint> getBreaks();
QVector<BreakPoint*> getBreaks();
bool get_validate();
bool not_working();
float get_time_break();
void update(Day *);
QJsonObject to_json();
bool has_warning();
float get_total();
static Day from_json(QJsonObject);
static Day* from_json(QJsonObject);
};
#endif // DAY_H

View File

@@ -0,0 +1,96 @@
#include "settings.h"
Settings::Settings()
{
this->cloudEnabled = false;
this->cloudEmail = "";
this->cloudPassword = "";
this->cloudUrl = "";
this->cloudAgent = DEFAULT_AGENT_KEY;
}
Settings* Settings::FromJSON(QJsonObject obj)
{
Settings *s = new Settings();
if (obj["cloud"].isObject())
{
QJsonObject cloud = obj["cloud"].toObject();
s->cloudEnabled = cloud["enabled"].toBool(false);
s->cloudUrl = cloud["url"].toString("");
s->cloudEmail = cloud["email"].toString("");
s->cloudPassword = cloud["password"].toString("");
s->cloudAgent = cloud["agent"].toString(DEFAULT_AGENT_KEY);
}
return s;
}
QJsonObject Settings::ToJSON()
{
QJsonObject s;
QJsonObject cloud;
cloud["enabled"] = this->cloudEnabled;
cloud["url"] = this->cloudUrl;
cloud["email"] = this->cloudEmail;
cloud["password"] = this->cloudPassword;
cloud["agent"] = this->cloudAgent;
s["cloud"] = cloud;
return s;
}
bool Settings::GetCloudEnabled()
{
return this->cloudEnabled;
}
QString Settings::GetCloudUrl()
{
return this->cloudUrl;
}
QString Settings::GetCloudEmail()
{
return this->cloudEmail;
}
QString Settings::GetCloudPassword()
{
return this->cloudPassword;
}
QString Settings::GetCloudAgent()
{
return this->cloudAgent;
}
QString Settings::GetCloudAgentDefault()
{
return DEFAULT_AGENT;
}
void Settings::SetCloudEnabled(bool enabled)
{
this->cloudEnabled = enabled;
}
void Settings::SetCloudUrl(QString url)
{
this->cloudUrl = url;
}
void Settings::SetCloudEmail(QString email)
{
this->cloudEmail = email;
}
void Settings::SetCloudPassword(QString password)
{
this->cloudPassword = password;
}
void Settings::SetCloudAgent(QString agent)
{
this->cloudAgent = agent;
}

43
sources/models/settings.h Normal file
View File

@@ -0,0 +1,43 @@
#ifndef SETTINGS_H
#define SETTINGS_H
#ifdef _WIN32
#define DEFAULT_AGENT "cagent.exe"
#else
#define DEFAULT_AGENT "cagent"
#endif
#define DEFAULT_AGENT_KEY "<default>"
#include <QString>
#include <QJsonObject>
class Settings
{
private:
bool cloudEnabled;
QString cloudUrl;
QString cloudEmail;
QString cloudPassword;
QString cloudAgent;
public:
Settings();
static Settings* FromJSON(QJsonObject obj);
QJsonObject ToJSON();
bool GetCloudEnabled();
QString GetCloudUrl();
QString GetCloudEmail();
QString GetCloudPassword();
QString GetCloudAgent();
QString GetCloudAgentDefault();
void SetCloudEnabled(bool enabled);
void SetCloudUrl(QString url);
void SetCloudEmail(QString email);
void SetCloudPassword(QString password);
void SetCloudAgent(QString agent);
};
#endif // SETTINGS_H

167
sources/models/week.cpp Normal file
View File

@@ -0,0 +1,167 @@
#include "week.h"
Week::Week()
{
mon = new Day();
tue = new Day();
wed = new Day();
thu = new Day();
fri = new Day();
time_delta = 0;
week_number = 0;
}
Week::Week(Week *old)
{
mon = new Day();
tue = new Day();
wed = new Day();
thu = new Day();
fri = new Day();
time_delta = 0;
week_number = 0;
update(old);
}
Week::~Week()
{
delete mon;
delete tue;
delete wed;
delete thu;
delete fri;
}
Week* Week::from_json(QJsonObject obj) {
Week *w = new Week();
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->time_delta = obj[TIME_DELTA].toInt(0);
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()},
{TIME_DELTA, time_delta},
{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();
}
double Week::total(Week *wtemplate)
{
double t = 0.0;
if (mon->not_working()) {
t += wtemplate->mon->get_total();
} else {
t += mon->get_total();
}
if (tue->not_working()) {
t += wtemplate->tue->get_total();
} else {
t += tue->get_total();
}
if (wed->not_working()) {
t += wtemplate->wed->get_total();
} else {
t += wed->get_total();
}
if (thu->not_working()) {
t += wtemplate->thu->get_total();
} else {
t += thu->get_total();
}
if (fri->not_working()) {
t += wtemplate->fri->get_total();
} else {
t += fri->get_total();
}
return t;
}
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;
}
void Week::update(Week *old)
{
mon = new Day(old->mon);
tue = new Day(old->tue);
wed = new Day(old->wed);
thu = new Day(old->thu);
fri = new Day(old->fri);
time_delta = old->time_delta;
week_number = old->week_number;
}
int Week::getWeekNumber() {
return week_number;
}
int Week::getTimeDelta()
{
return time_delta;
}
float Week::getTimeDeltaInHours()
{
return time_delta/60.0;
}
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;
}
void Week::setTimeDelta(int value)
{
time_delta = value;
}

55
sources/models/week.h Normal file
View File

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

77
sources/models/year.cpp Normal file
View File

@@ -0,0 +1,77 @@
#include "year.h"
Year::Year()
{
}
Year::Year(Year *old)
{
this->number = old->number;
foreach (int weekNumber, old->weeks.keys()) {
weeks[weekNumber] = new Week(old->weeks[weekNumber]);
}
}
Year::~Year()
{
foreach (Week *w, weeks) {
delete w;
}
weeks.clear();
}
Year::Year(int number)
{
this->number = number;
}
Year* Year::from_json(QJsonObject obj)
{
Year *result = new Year();
result->number = obj[KEY_NUMBER].toInt();
QJsonArray arr = obj[KEY_WEEKS].toArray();
foreach (QJsonValue val, arr) {
Week* w = Week::from_json(val.toObject());
result->weeks[w->getWeekNumber()] = w;
}
return result;
}
QJsonObject Year::to_json()
{
QJsonObject obj;
QJsonArray arr;
foreach (Week *w, weeks) {
arr.append(w->to_json());
}
obj[KEY_NUMBER] = number;
obj[KEY_WEEKS] = arr;
return obj;
}
Week *Year::getWeek(int weekNumber)
{
return weeks[weekNumber];
}
bool Year::hasWeek(int weekNumber)
{
return weeks.contains(weekNumber);
}
QMapIterator<int, Week *> Year::iterator()
{
QMapIterator i(weeks);
return i;
}
int Year::getNumber()
{
return number;
}
void Year::addWeek(Week* w)
{
weeks[w->getWeekNumber()] = w;
}

View File

@@ -6,6 +6,8 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QMouseEvent>
#include <QMapIterator>
#include "week.h"
@@ -13,20 +15,23 @@ class Year
{
private:
int number;
QMap<int, Week> weeks;
QMap<int, Week*> weeks;
public:
Year();
Year(Year*);
~Year();
Year(int number);
static Year from_json(QJsonObject);
static Year* from_json(QJsonObject);
QJsonObject to_json();
QMap<int, Week> getWeeks();
Week *getWeek(int);
bool hasWeek(int);
QMapIterator<int, Week*> iterator();
int getNumber();
void addWeek(Week w);
void setWeeks(QMap<int, Week> weeks);
void addWeek(Week* w);
};
#endif // YEAR_H

View File

@@ -1,11 +1,12 @@
#include "setdaydialog.h"
#include "ui_setdaydialog.h"
SetDayDialog::SetDayDialog(Day d, bool isNotValidable, QWidget *parent) :
SetDayDialog::SetDayDialog(Day *d, bool isNotValidable, QWidget *parent) :
QDialog(parent),
ui(new Ui::SetDayDialog)
{
ui->setupUi(this);
copy = new Day(d);
ui->validateButton->setEnabled(!isNotValidable);
ui->validateButton->setVisible(!isNotValidable);
this->d = d;
@@ -14,44 +15,62 @@ SetDayDialog::SetDayDialog(Day d, bool isNotValidable, QWidget *parent) :
SetDayDialog::~SetDayDialog()
{
delete copy;
delete ui;
}
void SetDayDialog::init() {
ui->start_edit->setTime(d.get_start());
ui->end_edit->setTime(d.get_end());
ui->start_edit->setTime(copy->get_start());
ui->end_edit->setTime(copy->get_end());
ui->notWorkingCheckbox->setCheckState((copy->not_working()) ? Qt::CheckState::Checked : Qt::CheckState::Unchecked);
lockControls(copy->not_working());
updateBreakList();
connect(ui->start_edit, &QTimeEdit::timeChanged, this, &SetDayDialog::compute_time);
connect(ui->end_edit, &QTimeEdit::timeChanged, this, &SetDayDialog::compute_time);
connect(ui->validateButton, &QPushButton::clicked, this, &SetDayDialog::validate);
connect(ui->validateButton, &QPushButton::clicked, this, &SetDayDialog::validate_and_accept);
connect(ui->pushButton, &QPushButton::clicked, this, &SetDayDialog::accept);
connect(ui->addBreakButton, &QPushButton::clicked, this, &SetDayDialog::add_break_point);
connect(ui->removeBreakButton, &QPushButton::clicked, this, &SetDayDialog::remove_break_point);
connect(ui->breakList, &QListWidget::currentRowChanged, this, &SetDayDialog::break_selected);
ui->total_label->setText(Tools::double_to_string_time(d.get_total()));
connect(ui->notWorkingCheckbox, &QCheckBox::stateChanged, this, &SetDayDialog::change_not_working);
ui->total_label->setText(Tools::double_to_string_time(d->get_total()));
}
void SetDayDialog::updateBreakList()
{
ui->breakList->clear();
foreach (BreakPoint bp, d.getBreaks()) {
ui->breakList->addItem(QString("%1 -> %2").arg(bp.getStart().toString("hh:mm"), bp.getEnd().toString("hh:mm")));
foreach (BreakPoint *bp, copy->getBreaks()) {
ui->breakList->addItem(QString("%1 -> %2").arg(bp->getStart().toString("hh:mm"), bp->getEnd().toString("hh:mm")));
}
}
void SetDayDialog::lockControls(bool lock)
{
ui->addBreakButton->setDisabled(lock);
ui->start_edit->setDisabled(lock);
ui->end_edit->setDisabled(lock);
ui->breakList->setDisabled(lock);
if (ui->breakList->currentRow() != -1) {
ui->removeBreakButton->setDisabled(lock);
}
}
void SetDayDialog::compute_time() {
d.set_validate(false);
d.set_start(ui->start_edit->time());
d.set_end(ui->end_edit->time());
ui->total_label->setText(Tools::double_to_string_time(d.get_total()));
copy->set_validate(false);
copy->set_start(ui->start_edit->time());
copy->set_end(ui->end_edit->time());
ui->total_label->setText(Tools::double_to_string_time(copy->get_total()));
}
Day SetDayDialog::get_result() {
return d;
void SetDayDialog::accept()
{
d->update(copy);
QDialog::accept();
}
void SetDayDialog::validate() {
d.set_validate(true);
accept();
void SetDayDialog::validate_and_accept() {
copy->set_validate(!copy->not_working());
this->accept();
}
void SetDayDialog::add_break_point()
@@ -60,9 +79,9 @@ void SetDayDialog::add_break_point()
int result = bd.exec();
if (result == QDialog::Accepted) {
BreakPoint bp = bd.get_result();
auto breaks = d.getBreaks();
breaks.append(bp);
d.setBreaks(breaks);
auto breaks = copy->getBreaks();
breaks.append(new BreakPoint(bp));
copy->setBreaks(breaks);
updateBreakList();
compute_time();
}
@@ -72,9 +91,11 @@ void SetDayDialog::remove_break_point()
{
int i = ui->breakList->currentRow();
if (i > -1) {
auto breaks = d.getBreaks();
auto breaks = copy->getBreaks();
BreakPoint *bp = breaks.at(i);
breaks.removeAt(i);
d.setBreaks(breaks);
delete bp;
copy->setBreaks(breaks);
updateBreakList();
compute_time();
}
@@ -84,3 +105,10 @@ void SetDayDialog::break_selected(int i)
{
ui->removeBreakButton->setEnabled(i > -1);
}
void SetDayDialog::change_not_working(int state)
{
copy->set_not_working(state != 0);
lockControls(copy->not_working());
compute_time();
}

View File

@@ -4,10 +4,10 @@
#include <QDialog>
#include <QMouseEvent>
#include "day.h"
#include "models/day.h"
#include "tools.h"
#include "breakdialog.h"
#include "breakpoint.h"
#include "models/breakpoint.h"
namespace Ui {
class SetDayDialog;
@@ -18,25 +18,27 @@ class SetDayDialog : public QDialog
Q_OBJECT
public:
explicit SetDayDialog(Day d, bool isNotValidable, QWidget *parent = nullptr);
explicit SetDayDialog(Day *d, bool isNotValidable, QWidget *parent = nullptr);
~SetDayDialog();
Day get_result();
private slots:
void compute_time();
void validate();
void validate_and_accept();
void accept();
void add_break_point();
void remove_break_point();
void break_selected(int);
void change_not_working(int);
private:
Ui::SetDayDialog *ui;
Day d;
Day *copy;
Day *d;
void init();
void updateBreakList();
void lockControls(bool);
};
#endif // SETDAYDIALOG_H

View File

@@ -1,13 +1,42 @@
#include "tools.h"
QString Tools::double_to_string_time(double value) {
value = abs(value);
const int h = floor(value);
value = round((value - h) * 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(value));
int m = round((value - h) * 60);
if (m == 0) {
return QString("%1h").arg(QString::number(h, 10));
} else if (m < 10) {
return QString("%1h0%2").arg(QString::number(h, 10), QString::number(m, 10));
}
return QString("%1h%2").arg(QString::number(h), QString::number(value));
return QString("%1h%2").arg(QString::number(h, 10), QString::number(m, 10));
}
QString Tools::double_to_string_counter(double value) {
value = abs(value);
const int h = floor(value / 60);
int m = round(value - (60 * h));
if (h == 0) {
return QString("%1 minutes").arg(QString::number(m, 10));
}
if (m == 0) {
return QString("%1 heures").arg(QString::number(h, 10));
} else if (m < 10) {
return QString("%1h0%2").arg(QString::number(h, 10), QString::number(m, 10));
}
return QString("%1h%2").arg(QString::number(h, 10), QString::number(m, 10));
}
QString Tools::int_to_string_time(int value)
{
value = abs(value);
const int h = floor(value / 60);
int m = round(value - (60 * h));
QString minutes = "";
if (m >= 10) {
minutes = QString::number(m, 10);
} else {
minutes = QString("0%1").arg(QString::number(m, 10));
}
return QString("%1h%2").arg(QString::number(h, 10), minutes);
}

View File

@@ -8,6 +8,8 @@ class Tools
{
public:
static QString double_to_string_time(double value);
static QString double_to_string_counter(double value);
static QString int_to_string_time(int value);
};
#endif // TOOLS_H

View File

@@ -1,86 +0,0 @@
#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;
}

View File

@@ -1,46 +0,0 @@
#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

34
sources/weekoption.cpp Normal file
View File

@@ -0,0 +1,34 @@
#include "weekoption.h"
#include "ui_weekoption.h"
WeekOption::WeekOption(Week *w, QWidget *parent) :
QDialog(parent),
ui(new Ui::WeekOption)
{
ui->setupUi(this);
this->time_delta = w->getTimeDelta();
ui->time_delta_spinbox->setValue(time_delta);
compute();
connect(ui->time_delta_spinbox, &QSpinBox::valueChanged, this, &WeekOption::set_time_delta);
}
WeekOption::~WeekOption()
{
delete ui;
}
int WeekOption::get_time_delta()
{
return this->time_delta;
}
void WeekOption::set_time_delta(int value)
{
this->time_delta = value;
compute();
}
void WeekOption::compute()
{
ui->total_label->setText(Tools::int_to_string_time(this->time_delta));
}

33
sources/weekoption.h Normal file
View File

@@ -0,0 +1,33 @@
#ifndef WEEKOPTION_H
#define WEEKOPTION_H
#include <QDialog>
#include "models/week.h"
#include "tools.h"
namespace Ui {
class WeekOption;
}
class WeekOption : public QDialog
{
Q_OBJECT
public:
explicit WeekOption(Week *w, QWidget *parent = nullptr);
~WeekOption();
int get_time_delta();
private slots:
void set_time_delta(int);
private:
Ui::WeekOption *ui;
void compute();
int time_delta;
};
#endif // WEEKOPTION_H

View File

@@ -1,7 +1,7 @@
#include "welcome.h"
#include "ui_welcome.h"
Welcome::Welcome(Week wtemplate, QWidget *parent) :
Welcome::Welcome(Week *wtemplate, QWidget *parent) :
QDialog(parent),
ui(new Ui::Welcome)
{
@@ -34,43 +34,39 @@ Week Welcome::get_result() {
}
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()));
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()));
modify_value(w->getMon());
break;
case tue:
w.setTue(modify_value(w.getTue()));
modify_value(w->getTue());
break;
case wed:
w.setWed(modify_value(w.getWed()));
modify_value(w->getWed());
break;
case thu:
w.setThu(modify_value(w.getThu()));
modify_value(w->getThu());
break;
case fri:
w.setFri(modify_value(w.getFri()));
modify_value(w->getFri());
break;
}
set_value_to_widget();
}
Day Welcome::modify_value(Day d) {
void Welcome::modify_value(Day *d) {
SetDayDialog sdd(d, true, this);
int result = sdd.exec();
if (result == QDialog::Accepted) {
return sdd.get_result();
}
return d;
sdd.exec();
}
Identifier Welcome::get_identifier(QString objectName) {

View File

@@ -6,8 +6,8 @@
#include <QMouseEvent>
#include <math.h>
#include "week.h"
#include "day.h"
#include "models/week.h"
#include "models/day.h"
#include "tools.h"
#include "setdaydialog.h"
@@ -28,7 +28,7 @@ class Welcome : public QDialog
Q_OBJECT
public:
explicit Welcome(Week tpl, QWidget *parent = nullptr);
explicit Welcome(Week *tpl, QWidget *parent = nullptr);
~Welcome();
Week get_result();
@@ -36,13 +36,13 @@ public:
private:
Ui::Welcome *ui;
Week w;
Week *w;
QMap<QString, Identifier> objectId;
void init();
void set_value_to_widget();
Identifier get_identifier(QString objectName);
Day modify_value(Day);
void modify_value(Day*);
public slots:
void edit();

View File

@@ -1,55 +0,0 @@
#include "year.h"
Year::Year()
{
}
Year::Year(int number)
{
this->number = number;
}
Year Year::from_json(QJsonObject obj)
{
Year result;
result.number = obj[KEY_NUMBER].toInt();
QJsonArray arr = obj[KEY_WEEKS].toArray();
foreach (QJsonValue val, arr) {
Week w = Week::from_json(val.toObject());
result.weeks[w.getWeekNumber()] = w;
}
return result;
}
QJsonObject Year::to_json()
{
QJsonObject obj;
QJsonArray arr;
foreach (Week w, weeks) {
arr.append(w.to_json());
}
obj[KEY_NUMBER] = number;
obj[KEY_WEEKS] = arr;
return obj;
}
QMap<int, Week> Year::getWeeks()
{
return weeks;
}
int Year::getNumber()
{
return number;
}
void Year::addWeek(Week w)
{
weeks[w.getWeekNumber()] = w;
}
void Year::setWeeks(QMap<int, Week> weeks)
{
this->weeks = weeks;
}

View File

@@ -217,18 +217,14 @@ background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:1, stop:0 rgb
<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:12px; 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:12px;&quot;&gt;Qt 6.2.0 : https://www.qt.io/download-open-source&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;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>
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'.AppleSystemUIFont'; font-size:12px; 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-family:'MS Shell Dlg 2'; font-size:12px;&quot;&gt;Qt 6.2.0 : https://www.qt.io/download-open-source&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-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Freepik&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt; from &lt;/span&gt;&lt;a href=&quot;https://www.flaticon.com/&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; 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-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Freepik&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt; from &lt;/span&gt;&lt;a href=&quot;https://www.flaticon.com/&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; 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>

221
ui/configurationdialog.ui Normal file
View File

@@ -0,0 +1,221 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ConfigurationDialog</class>
<widget class="QDialog" name="ConfigurationDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>269</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>400</width>
<height>269</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>400</width>
<height>269</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>141</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Sauvegarde Cloud</string>
</property>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>140</x>
<y>24</y>
<width>251</width>
<height>20</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLineEdit" name="cloud_url">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>164</x>
<y>86</y>
<width>221</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>13</x>
<y>87</y>
<width>101</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Serveur</string>
</property>
</widget>
<widget class="QCheckBox" name="cloud_enable">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>371</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Utiliser la sauvegarde en ligne</string>
</property>
</widget>
<widget class="QLineEdit" name="cloud_Email">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>164</x>
<y>118</y>
<width>221</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>13</x>
<y>119</y>
<width>101</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Email</string>
</property>
</widget>
<widget class="QLineEdit" name="cloud_password">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>164</x>
<y>150</y>
<width>221</width>
<height>21</height>
</rect>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>13</x>
<y>151</y>
<width>101</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Mot de passe</string>
</property>
</widget>
<widget class="QLineEdit" name="cloud_agent">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>164</x>
<y>183</y>
<width>171</width>
<height>21</height>
</rect>
</property>
<property name="inputMask">
<string/>
</property>
<property name="text">
<string>&lt;default&gt;</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Normal</enum>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>13</x>
<y>184</y>
<width>151</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Agent de sauvegarde</string>
</property>
</widget>
<widget class="QPushButton" name="cloud_agent_btn">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>339</x>
<y>178</y>
<width>51</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QPushButton" name="close">
<property name="geometry">
<rect>
<x>280</x>
<y>230</y>
<width>113</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>Fermer</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

File diff suppressed because it is too large Load Diff

View File

@@ -34,9 +34,9 @@
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>200</x>
<y>373</y>
<width>201</width>
<x>10</x>
<y>410</y>
<width>191</width>
<height>23</height>
</rect>
</property>
@@ -137,74 +137,12 @@
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>18</x>
<y>372</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 class="QPushButton" name="validateButton">
<property name="geometry">
<rect>
<x>200</x>
<y>403</y>
<width>201</width>
<x>220</x>
<y>410</y>
<width>191</width>
<height>23</height>
</rect>
</property>
@@ -273,7 +211,7 @@ color: white;</string>
<property name="geometry">
<rect>
<x>0</x>
<y>350</y>
<y>380</y>
<width>421</width>
<height>20</height>
</rect>
@@ -314,24 +252,53 @@ color: rgb(255, 255, 255);</string>
<enum>Qt::IgnoreAction</enum>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>370</y>
<width>91</width>
<height>19</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 14px;</string>
</property>
<property name="text">
<string>Temps total</string>
</property>
</widget>
<widget class="QLabel" name="total_label">
<property name="geometry">
<rect>
<x>100</x>
<y>360</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
<widget class="QCheckBox" name="notWorkingCheckbox">
<property name="geometry">
<rect>
<x>210</x>
<y>350</y>
<width>191</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Jour non travaillé</string>
</property>
</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>
<connections/>
</ui>

161
ui/weekoption.ui Normal file
View File

@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WeekOption</class>
<widget class="QDialog" name="WeekOption">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>372</width>
<height>159</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>372</width>
<height>159</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>372</width>
<height>159</height>
</size>
</property>
<property name="windowTitle">
<string>Options</string>
</property>
<widget class="QSpinBox" name="time_delta_spinbox">
<property name="geometry">
<rect>
<x>260</x>
<y>40</y>
<width>101</width>
<height>27</height>
</rect>
</property>
<property name="suffix">
<string> min</string>
</property>
<property name="minimum">
<number>-1000000</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>111</width>
<height>18</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Réalignement</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>44</y>
<width>161</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Delta (en minutes)</string>
</property>
</widget>
<widget class="QPushButton" name="validate_button">
<property name="geometry">
<rect>
<x>270</x>
<y>120</y>
<width>88</width>
<height>26</height>
</rect>
</property>
<property name="text">
<string>Valider</string>
</property>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>172</x>
<y>52</y>
<width>81</width>
<height>20</height>
</rect>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="midLineWidth">
<number>1</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="Line" name="line_2">
<property name="geometry">
<rect>
<x>130</x>
<y>16</y>
<width>231</width>
<height>20</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLabel" name="total_label">
<property name="geometry">
<rect>
<x>10</x>
<y>107</y>
<width>152</width>
<height>41</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font-size: 28px;
color: white;</string>
</property>
<property name="text">
<string>0h</string>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>validate_button</sender>
<signal>clicked()</signal>
<receiver>WeekOption</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>313</x>
<y>132</y>
</hint>
<hint type="destinationlabel">
<x>185</x>
<y>79</y>
</hint>
</hints>
</connection>
</connections>
</ui>