From 1bd5a46d6bad998fe9f3b1d86c8adc2ceafdd941 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Sat, 13 Jun 2020 19:47:44 +0200 Subject: [PATCH 001/208] Add manual time editing. --- cpp/controller/timercontroller.h | 4 +- qml/components/TimeProgressBar.qml | 137 ++++++++++++++++++++++++++--- qml/main.qml | 16 ++++ 3 files changed, 143 insertions(+), 14 deletions(-) diff --git a/cpp/controller/timercontroller.h b/cpp/controller/timercontroller.h index 9e0ec4b..cc50eef 100644 --- a/cpp/controller/timercontroller.h +++ b/cpp/controller/timercontroller.h @@ -31,8 +31,8 @@ class TimerController final : public QObject Q_OBJECT Q_PROPERTY(int elapsedBreakDuration READ elapsedBreakDuration NOTIFY elapsedBreakDurationChanged) - Q_PROPERTY(int elapsedWorkPeriod READ elapsedWorkPeriod NOTIFY elapsedWorkPeriodChanged) - Q_PROPERTY(int elapsedWorkTime READ elapsedWorkTime NOTIFY elapsedWorkTimeChanged) + Q_PROPERTY(int elapsedWorkPeriod READ elapsedWorkPeriod WRITE setElapsedWorkPeriod NOTIFY elapsedWorkPeriodChanged) + Q_PROPERTY(int elapsedWorkTime READ elapsedWorkTime WRITE setElapsedWorkTime NOTIFY elapsedWorkTimeChanged) Q_PROPERTY(PeriodType activePeriodType READ activePeriodType NOTIFY activePeriodTypeChanged) public: diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index d868dd5..37a55d1 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -21,6 +21,7 @@ ********************************************/ import QtQuick 2.12 +import QtQuick.Layouts 1.3 import "../style" import "helpers" @@ -32,6 +33,8 @@ Item { implicitHeight: text.font.pixelSize*1.4 implicitWidth: 200 + signal timeValueChanged(var newValue) + QtObject { id: d @@ -51,6 +54,17 @@ Item { return hoursStr + ':' + minsStr + ':' + secsStr } + + function deFormatTime(timeStr) + { + var splitted = timeStr.split(':') + + var hours = parseInt(splitted[0]) + var mins = parseInt(splitted[1]) + var secs = parseInt(splitted[2]) + + return hours * 60 * 60 + mins * 60 + secs + } } Rectangle { @@ -86,23 +100,122 @@ Item { gradient: BarGradient { color: Style.timeBar.secondaryColor } } - Label { - id: text + RowLayout { anchors.fill: parent + spacing: 1 + + Item { + Layout.fillHeight: true + Layout.fillWidth: true + Label { + id: text + anchors.fill: parent + visible: !textEditableInput.visible + fontStyle: Style.timeBar.font + + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignRight + + elide: Text.ElideRight + + text: d.formatTime(value) + + BarTextGradient { //TODO + source: parent + value: d.valuePercent + } + } + + LabelInput { + id: textEditableInput + anchors.fill: parent + visible: false + + cursorVisible: true + + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignRight + + fontStyle: Style.spinBox.font + color: "red" + + inputMask: "99:99:99" + + onAccepted: + { + timeValueChanged(d.deFormatTime(textEditableInput.text)) + visible = false + } + + onFocusChanged: + { + if(!focus) + { + visible = false + } + } + } + + MouseArea { + anchors.fill: parent + propagateComposedEvents: true + onPressAndHold: + { + textEditableInput.visible = !textEditableInput.visible + if(textEditableInput.visible) + { + textEditableInput.text = text.text.replace(/ /g, '') + textEditableInput.focus = true + } + else + { + timeValueChanged(d.deFormatTime(textEditableInput.text)) + } + } + + onClicked: + { + textEditableInput.visible = false + } + } + } - fontStyle: Style.timeBar.font + Label { + Layout.fillHeight: true + Layout.preferredHeight: 0 + Layout.preferredWidth: implicitWidth + fontStyle: Style.timeBar.font - elide: Text.ElideRight - horizontalAlignment: Qt.AlignHCenter - verticalAlignment: Qt.AlignVCenter + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignLeft - text: d.formatTime(value) + " / " + - d.formatTime(maxValue) + text: "/" - } - BarTextGradient { - source: text - value: d.valuePercent + BarTextGradient { //TODO + source: parent + value: d.valuePercent + } + } + + Label { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.preferredHeight: 0 + Layout.preferredWidth: 0 + fontStyle: Style.timeBar.font + + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignLeft + + elide: Text.ElideRight + + text: d.formatTime(maxValue) + + BarTextGradient { //TODO + source: parent + value: d.valuePercent + } + } } } diff --git a/qml/main.qml b/qml/main.qml index 221dacd..8ae7978 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -182,6 +182,13 @@ Window { maxValue: controller.settings.breakInterval value: controller.timer.elapsedWorkPeriod + + onTimeValueChanged: + { + var timeDiff = newValue - controller.timer.elapsedWorkPeriod + controller.timer.elapsedWorkPeriod = newValue + controller.timer.elapsedWorkTime += timeDiff + } } Label { text: qsTr("Work time:") @@ -191,6 +198,15 @@ Window { maxValue: controller.settings.workTime value: controller.timer.elapsedWorkTime + + onTimeValueChanged: + { + var timeDiff = newValue - controller.timer.elapsedWorkTime + controller.timer.elapsedWorkTime = newValue + + var newElapsedWorkTime = controller.timer.elapsedWorkPeriod + timeDiff + controller.timer.elapsedWorkPeriod = Math.max(newElapsedWorkTime, 0) + } } } } From df5c43c0aacdbc5ab9343f5b3b8f4f6a3115c06b Mon Sep 17 00:00:00 2001 From: mhudziak Date: Sat, 13 Jun 2020 20:06:32 +0200 Subject: [PATCH 002/208] Fix time gradients by minmaxing relative position of progress width. --- qml/components/TimeProgressBar.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 37a55d1..e628dfa 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -120,9 +120,9 @@ Item { text: d.formatTime(value) - BarTextGradient { //TODO + BarTextGradient { source: parent - value: d.valuePercent + value: Math.min(Math.max((progress.width - parent.x), 0.0) / width, 1.0) } } @@ -191,9 +191,9 @@ Item { text: "/" - BarTextGradient { //TODO + BarTextGradient { source: parent - value: d.valuePercent + value: Math.min(Math.max((progress.width - parent.x), 0.0) / width, 1.0) } } @@ -211,9 +211,9 @@ Item { text: d.formatTime(maxValue) - BarTextGradient { //TODO + BarTextGradient { source: parent - value: d.valuePercent + value: Math.min(Math.max((progress.width - parent.x), 0.0) / width, 1.0) } } } From 34e5d85326fc408df5de95d0e92d4c7d5379e561 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Sat, 13 Jun 2020 20:07:52 +0200 Subject: [PATCH 003/208] Set edited time after losing focus. --- qml/components/TimeProgressBar.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index e628dfa..11e7923 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -151,6 +151,7 @@ Item { { if(!focus) { + timeValueChanged(d.deFormatTime(textEditableInput.text)) visible = false } } From ee8a1467798afb0067a1d991583f6ea7d3b07d94 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Mon, 15 Jun 2020 12:12:13 +0200 Subject: [PATCH 004/208] Change accepting/discarding methods for changing time value. --- qml/components/TimeProgressBar.qml | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 11e7923..be96e03 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -137,7 +137,7 @@ Item { horizontalAlignment: Text.AlignRight fontStyle: Style.spinBox.font - color: "red" + color: "red" //TODO inputMask: "99:99:99" @@ -147,6 +147,12 @@ Item { visible = false } + Keys.onEscapePressed: + { + visible = false + focus = false + } + onFocusChanged: { if(!focus) @@ -160,23 +166,26 @@ Item { MouseArea { anchors.fill: parent propagateComposedEvents: true - onPressAndHold: + acceptedButtons: Qt.LeftButton | Qt.RightButton + onDoubleClicked: { - textEditableInput.visible = !textEditableInput.visible if(textEditableInput.visible) { - textEditableInput.text = text.text.replace(/ /g, '') - textEditableInput.focus = true - } - else - { - timeValueChanged(d.deFormatTime(textEditableInput.text)) + return } + + textEditableInput.visible = true + textEditableInput.focus = true + textEditableInput.text = text.text.replace(/ /g, '') } onClicked: { - textEditableInput.visible = false + if(mouse.button === Qt.RightButton) + { + textEditableInput.visible = false + textEditableInput.focus = false + } } } } From 80fd095aacd852788e4a14de28d5760519b5740e Mon Sep 17 00:00:00 2001 From: mhudziak Date: Mon, 15 Jun 2020 14:31:17 +0200 Subject: [PATCH 005/208] Add time edit button. --- qml.qrc | 1 + qml/components/TimeProgressBar.qml | 27 ++++++++++++++++--------- qml/main.qml | 31 ++++++++++++++++++++++++++++- resources/images/edit.png | Bin 0 -> 3874 bytes 4 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 resources/images/edit.png diff --git a/qml.qrc b/qml.qrc index 6af3b3b..77d4e72 100644 --- a/qml.qrc +++ b/qml.qrc @@ -70,5 +70,6 @@ qml/components/LabelInput.qml qml/components/TabTextButton.qml qml/components/Overlay.qml + resources/images/edit.png diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index be96e03..c34968b 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -26,15 +26,31 @@ import "../style" import "helpers" Item { + id: root + property int minValue: 0 property int maxValue: 100 property int value: 0 + readonly property bool timeEditionInProgress: textEditableInput.visible + implicitHeight: text.font.pixelSize*1.4 implicitWidth: 200 signal timeValueChanged(var newValue) + function startTimeEdition() + { + if(textEditableInput.visible) + { + return + } + + textEditableInput.visible = true + textEditableInput.focus = true + textEditableInput.text = text.text.replace(/ /g, '') + } + QtObject { id: d @@ -110,7 +126,7 @@ Item { Label { id: text anchors.fill: parent - visible: !textEditableInput.visible + visible: !root.timeEditionInProgress fontStyle: Style.timeBar.font verticalAlignment: Text.AlignVCenter @@ -169,14 +185,7 @@ Item { acceptedButtons: Qt.LeftButton | Qt.RightButton onDoubleClicked: { - if(textEditableInput.visible) - { - return - } - - textEditableInput.visible = true - textEditableInput.focus = true - textEditableInput.text = text.text.replace(/ /g, '') + startTimeEdition() } onClicked: diff --git a/qml/main.qml b/qml/main.qml index 8ae7978..6d053b2 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -172,12 +172,14 @@ Window { } GridLayout { Layout.fillWidth: true - columns: 2 + columns: 3 Label { text: qsTr("Next break:") } + TimeProgressBar { + id: nextBreakTimeProgressBar Layout.fillWidth: true maxValue: controller.settings.breakInterval @@ -190,10 +192,25 @@ Window { controller.timer.elapsedWorkTime += timeDiff } } + + ImageButton { + enabled: !nextBreakTimeProgressBar.timeEditionInProgress + styleFont: Style.font.imageButtonSmall + type: "edit" + tooltip: qsTr("Edit next break") + + onClicked: + { + nextBreakTimeProgressBar.startTimeEdition() + } + } + Label { text: qsTr("Work time:") } + TimeProgressBar { + id: workTimeProgressBar Layout.fillWidth: true maxValue: controller.settings.workTime @@ -208,6 +225,18 @@ Window { controller.timer.elapsedWorkPeriod = Math.max(newElapsedWorkTime, 0) } } + + ImageButton { + enabled: !workTimeProgressBar.timeEditionInProgress + styleFont: Style.font.imageButtonSmall + type: "edit" + tooltip: qsTr("Edit work time") + + onClicked: + { + workTimeProgressBar.startTimeEdition() + } + } } } diff --git a/resources/images/edit.png b/resources/images/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..fec9930ab4c2d4b297e8970a43c4ef283873e21e GIT binary patch literal 3874 zcmds4eQZJXqR6=P7E=Tgkt(ilqH1rmzEXbBTE&gj4}--;n4KQ-=OlR@jy3?1>l)rWI z7~S;Tv`W)c7jN$UB=c$rrdEEw$=sdykENZ-r_GD=`b&j} z3vh8@Zy9=u_S6v$IWDa25NOOXW)1)a(tv>&<%BjDk%Ct}btiS?)S6<|(?-G5&E}-j3s6J zE9O+PzWdaYm}` z#dx(2WXTT^Yu!#3+=Wi5D!XVFMiVUZ6n)z`BuO_$PiZ1=0gPD9#RI;oGNdbJ>%I!L zTaZqqi>^eojY!8+ZL8wd9LQMvDzR&l9A(T&uo%7tZt@hRW!UWvD(E@G{Y zqe6GG8EIbk5s9&loTtebd`I2=-WU9{y4&dsZdZ5ve8E4eyRa|VqU?Ao6nPp6wMIS} zz_xmM>fK10dO#W&Hai`jWSU|K4VW-sF^)jRgE*|MXGbZXxS6ZN8i@F@MDW<4gbzQk zNK|Z0%wTa~5zJ)P19md_g4c<+z?$;om2fAGIOqh-D_~IpI}|Vi5R3p+iGYBe07wc1 ze4l7e1?-o$_tdlQBvn8Nz5gXu*2eM)Zx|;!Yz}mgy`WUWnj$gWN;Rx0A_~Q!s8Ax8 zh#GJy;Ef8{Ohg6j1R!{cs38C;rHpsPn!+w3n8Ijsg28Ac@_oR=M?)})Mx?SBS(SQc zMrttom0}{Z%gX|$%!%oCWRw)$W@BitSAqgiSj$iMa5oxzarmC z`xZG)z-?fk(jhHLC1xOX8a|p4Z1lYdht#TSz6aqDfV5mok(L{1rLgP+s2Kv20lQPa z(iKi=Ij^)_R0>P?b*U13)S(Y-b z{qfCU&R(9csZ2K8`2& zG$o#`R*_WS2`5lzqMmB#zC2#urQc;@Ca0tvNi3ieMWktgESrloGPWSOszL5~eTCND zWc&{i=Rs}qmTaX{fvp2tY`whydOcuwtxIesY1fMDo$A7825HlS6U`>u~stPQCo zU}J@1Z;h0(;^J88bnVAq>*6D*9(?jy*QZ()tIKNxBH&MU6Pcm#=RvLe;W-^_pZT{f zE8R(Z5xt+1%ca2v!10Km)r;tqT1idneP=l&Q)hFwJzBIhW{7I!XT#wy6AaELpEEyZ zz}a+ES2x=U=esASrXaF1G2W36qyJ*;Y$QV6kGz~)oun`ge<{uzrX^-kVYAzAIK)J+ zc}uSDx$?^-N)%Ta5Z{AzOdiY9q-3dodw^kG<4vH|CgD0z$y z*yX={^M+RLAB?5`@996oB6R_*uA#xhND113Z(S%n?e)@DTP%+MixD;;IRLqAkUad# zqCKBZqhLQ7P*T6!jIZq~ZrNaBDAEJ~a{B-a3x9v1`DoAk_+-q%r@2alR}66ow(k9M z#o5ej-8aQ3gM( z62QR-8*JV;X~WsU=BH5g&=Czjg9Pa1DcxlPz3q0B+{NH0V*({1mP1FN(ebV$*9)5$ z%r6`4m5`RLA)c)sCjQOOiF<9jG$j`yvV-!>WrcbWir}iBSWF`%*UM7)Z(Ly V+cph+{UYW7GfQVX_e^&;{tv Date: Fri, 26 Jun 2020 10:29:58 +0200 Subject: [PATCH 006/208] Add Freepik icon attribution. --- js/resourceInfo.js | 92 ++++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 32 deletions(-) diff --git a/js/resourceInfo.js b/js/resourceInfo.js index f8173a1..224d3a2 100644 --- a/js/resourceInfo.js +++ b/js/resourceInfo.js @@ -27,45 +27,66 @@ var licences = { "CC-BY-SA-3.0": { "name": "CC BY-SA 3.0", "url": "https://creativecommons.org/licenses/by-sa/3.0/" }, "CC-BY-NC-ND-3.0": { "name": "CC BY-NC-ND 3.0", "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/" }, "OFL": { "name": "OFL", "url": "http://scripts.sil.org/OFL" }, + "Freepik": { "name": "Freepik terms of use", "url": "https://www.freepikcompany.com/legal#nav-freepik" } } var resources = [ { "description": qsTr("Background"), - "name": "Rice paper 2", - "url": "http://subtlepatterns.com/rice-paper-2/", - "author": "Atle Mo", - "authorUrl": "http://atle.co/", - "licence": "CC-BY-SA-3.0", - "additionalInfo": "" + "info" : + [{ + "name": "Rice paper 2", + "url": "http://subtlepatterns.com/rice-paper-2/", + "author": "Atle Mo", + "authorUrl": "http://atle.co/", + "licence": "CC-BY-SA-3.0", + "additionalInfo": "" + }] }, { "description": qsTr("Decorative"), - "name": "Ivy", - "url": "https://pixabay.com/pl/ivy-wirowa%C4%87-upadek-design-okr%C4%85g-303546/", - "author": "Clker-Free-Vector-Images", - "authorUrl": "https://pixabay.com/pl/users/Clker-Free-Vector-Images-3736/", - "licence": "CC0", - "additionalInfo": qsTr("Colors changed") + "info" : + [{ + "name": "Ivy", + "url": "https://pixabay.com/pl/ivy-wirowa%C4%87-upadek-design-okr%C4%85g-303546/", + "author": "Clker-Free-Vector-Images", + "authorUrl": "https://pixabay.com/pl/users/Clker-Free-Vector-Images-3736/", + "licence": "CC0", + "additionalInfo": qsTr("Colors changed") + }] }, { "description": qsTr("Icons"), - "name": "Devine", - "url": "http://findicons.com/pack/1579/devine/1", - "author": "ipapun", - "authorUrl": "http://ipapun.deviantart.com/", - "licence": "CC-BY-NC-ND-3.0", - "additionalInfo": "" + "info" : + [{ + "name": "Devine", + "url": "http://findicons.com/pack/1579/devine/1", + "author": "ipapun", + "authorUrl": "http://ipapun.deviantart.com/", + "licence": "CC-BY-NC-ND-3.0", + "additionalInfo": "" + }, + { + "name": "flaticon", + "url": "https://www.flaticon.com", + "author": "Freepik", + "authorUrl": "https://www.flaticon.com/authors/freepik", + "licence": "Freepik", + "additionalInfo": qsTr("Edit button colors changed") + }] }, { "description": qsTr("Font"), - "name": "Josefin Sans", - "url": "http://www.1001freefonts.com/josefin_sans.font", - "author": "Santiago Orozco", - "authorUrl": "http://www.1001freefonts.com/designer-santiago-orozco-fontlisting.php", - "licence": "OFL", - "additionalInfo": "" - }, + "info": + [{ + "name": "Josefin Sans", + "url": "http://www.1001freefonts.com/josefin_sans.font", + "author": "Santiago Orozco", + "authorUrl": "http://www.1001freefonts.com/designer-santiago-orozco-fontlisting.php", + "licence": "OFL", + "additionalInfo": "" + }] + } ] function formatLink(description, address) { @@ -78,16 +99,23 @@ function getInfo() { for (var i=0; i" + "
"; - infoString += indent + formatLink(item.name, item.url) - + " " + qsTr("by") + " " + formatLink(item.author, item.authorUrl) - + " " + qsTr("under") + " " + formatLink(licence.name, licence.url) + "
"; - if (item.additionalInfo.length) + for (var j=0; j" + item.additionalInfo + "" + "
"; + var currentInfo = resourceInfo[j] + var licence = licences[currentInfo.licence] + + infoString += (indent + formatLink(currentInfo.name, currentInfo.url) + + " " + qsTr("by") + " " + formatLink(currentInfo.author, currentInfo.authorUrl) + + " " + qsTr("under") + " " + formatLink(licence.name, licence.url) + "
") + if (currentInfo.additionalInfo.length) + { + infoString += indent + "" + currentInfo.additionalInfo + "" + "
"; + } + infoString += "
" } } return infoString; From 83bfa8da92b5c7a0fbf10a2ce0f44d4f92157116 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 10:59:11 +0200 Subject: [PATCH 007/208] End time edition on focus change. --- qml/components/TimeProgressBar.qml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index c34968b..ed38b5e 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -51,6 +51,12 @@ Item { textEditableInput.text = text.text.replace(/ /g, '') } + function endTimeEdition() + { + textEditableInput.visible = false + textEditableInput.focus = false + } + QtObject { id: d @@ -165,16 +171,14 @@ Item { Keys.onEscapePressed: { - visible = false - focus = false + endTimeEdition() } onFocusChanged: { if(!focus) { - timeValueChanged(d.deFormatTime(textEditableInput.text)) - visible = false + endTimeEdition() } } } @@ -192,8 +196,7 @@ Item { { if(mouse.button === Qt.RightButton) { - textEditableInput.visible = false - textEditableInput.focus = false + endTimeEdition() } } } From dc9a2dc3ae3e3a7ab428497bb1b7bd33eee7b107 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 11:52:39 +0200 Subject: [PATCH 008/208] Use color index in settings instead of color --- cpp/controller/settingscontroller.cpp | 21 +++++++-------------- cpp/controller/settingscontroller.h | 14 +++++--------- cpp/model/settings.cpp | 16 ++++++++-------- cpp/model/settings.h | 16 ++++++++-------- qml/components/ColorPicker.qml | 8 ++++---- qml/dialogs/subitems/VisualSettings.qml | 18 +++++++++--------- qml/style/Style.qml | 8 +++++--- qml/style/helpers/ColorPallete.qml | 5 ++++- 8 files changed, 50 insertions(+), 56 deletions(-) diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index 965b1d7..40b1bfd 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -23,12 +23,10 @@ #include "settingscontroller.h" #include -const QStringList SettingsController::sc_availableColors = { "#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666" }; - SettingsController::SettingsController(QObject *parent) : QObject(parent), m_settings(QCoreApplication::organizationName(), QCoreApplication::applicationName()) { - m_settings.setDefaultApplicationColor(sc_availableColors.first()); + m_settings.setDefaultApplicationColorIndex(0); } int SettingsController::breakDuration() const @@ -62,14 +60,9 @@ QSize SettingsController::windowSize() const return m_settings.windowSize(); } -QStringList SettingsController::availableColors() const -{ - return sc_availableColors; -} - -QColor SettingsController::applicationColor() const +int SettingsController::applicationColorIndex() const { - return m_settings.applicationColor(); + return m_settings.applicationColorIndex(); } bool SettingsController::trayAvailable() const @@ -161,13 +154,13 @@ void SettingsController::setWindowSize(const QSize &windowSize) emit windowSizeChanged(windowSize); } -void SettingsController::setApplicationColor(QColor color) +void SettingsController::setApplicationColorIndex(const int colorIndex) { - if (m_settings.applicationColor() == color) + if (m_settings.applicationColorIndex() == colorIndex) return; - m_settings.setApplicationColor(color); - emit applicationColorChanged(color); + m_settings.setApplicationColorIndex(colorIndex); + emit applicationColorIndexChanged(colorIndex); } void SettingsController::setTrayAvailable(bool trayAvailable) diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index b0933fe..98aa032 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -44,8 +44,7 @@ class SettingsController final : public QObject Q_PROPERTY(QPoint windowPosition READ windowPosition WRITE setWindowPosition NOTIFY windowPositionChanged) Q_PROPERTY(QSize windowSize READ windowSize WRITE setWindowSize NOTIFY windowSizeChanged) - Q_PROPERTY(QStringList availableColors READ availableColors CONSTANT) - Q_PROPERTY(QColor applicationColor READ applicationColor WRITE setApplicationColor NOTIFY applicationColorChanged) + Q_PROPERTY(int applicationColorIndex READ applicationColorIndex WRITE setApplicationColorIndex NOTIFY applicationColorIndexChanged) Q_PROPERTY(bool trayAvailable READ trayAvailable WRITE setTrayAvailable NOTIFY trayAvailableChanged) Q_PROPERTY(bool showTrayInfo READ showTrayInfo WRITE setShowTrayInfo NOTIFY showTrayInfoChanged) @@ -56,7 +55,7 @@ class SettingsController final : public QObject Q_PROPERTY(QDateTime nextUpdateCheck READ nextUpdateCheck WRITE setNextUpdateCheck NOTIFY nextUpdateCheckChanged) public: - explicit SettingsController(QObject *parent = 0); + explicit SettingsController(QObject *parent = nullptr); int breakDuration() const; int breakInterval() const; @@ -67,8 +66,7 @@ class SettingsController final : public QObject QPoint windowPosition() const; QSize windowSize() const; - QStringList availableColors() const; - QColor applicationColor() const; + int applicationColorIndex() const; bool trayAvailable() const; bool showTrayInfo() const; @@ -87,7 +85,7 @@ class SettingsController final : public QObject void windowPositionChanged(const QPoint &windowPosition) const; void windowSizeChanged(const QSize &windowSize) const; - void applicationColorChanged(QColor applicationColor) const; + void applicationColorIndexChanged(const int applicationColorIndex) const; void trayAvailableChanged(bool trayAvailable) const; void showTrayInfoChanged(bool showTrayInfo) const; @@ -106,7 +104,7 @@ public slots: void setWindowPosition(const QPoint &windowPosition); void setWindowSize(const QSize &windowSize); - void setApplicationColor(QColor applicationColor); + void setApplicationColorIndex(const int applicationColorIndex); void setTrayAvailable(bool trayAvailable); void setShowTrayInfo(bool showTrayInfo); @@ -121,8 +119,6 @@ public slots: * \brief Settings model class. */ Settings m_settings; - - static const QStringList sc_availableColors; }; #endif // SETTINGSCONTROLLER_H diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index cc7c997..fbd6b79 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -47,7 +47,7 @@ const QLatin1String Settings::sc_windowPositionXKey = QLatin1String("window-x"); const QLatin1String Settings::sc_windowPositionYKey = QLatin1String("window-y"); const QLatin1String Settings::sc_windowWidthKey = QLatin1String("window-width"); const QLatin1String Settings::sc_windowHeightKey = QLatin1String("window-height"); -const QLatin1String Settings::sc_applicationColorKey = QLatin1String("mainColor"); +const QLatin1String Settings::sc_applicationColorIndexKey = QLatin1String("mainColorIndex"); const int Settings::sc_defaultBreakDuration = 10*60; //! 10 min const int Settings::sc_defaultBreakInterval = 45*60; //! 45 min @@ -55,7 +55,7 @@ const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min const QSize Settings::sc_defaultWindowSize = { 400, 200 }; // px -QColor Settings::sc_defaultApplicationColor; +int Settings::sc_defaultApplicationColorIndex = 0; Settings::Settings(const QString organization, const QString name) : m_settings(QSettings::UserScope, organization, name) @@ -190,19 +190,19 @@ void Settings::setWindowSize(const QSize &size) setValue(sc_viewGroupName, sc_windowHeightKey, size.height()); } -QColor Settings::applicationColor() const +int Settings::applicationColorIndex() const { - return value(sc_viewGroupName, sc_applicationColorKey, sc_defaultApplicationColor).toString(); + return value(sc_viewGroupName, sc_applicationColorIndexKey, sc_defaultApplicationColorIndex).toInt(); } -void Settings::setApplicationColor(const QColor &color) +void Settings::setApplicationColorIndex(const int colorIndex) { - setValue(sc_viewGroupName, sc_applicationColorKey, color.name(QColor::HexRgb)); + setValue(sc_viewGroupName, sc_applicationColorIndexKey, colorIndex); } -void Settings::setDefaultApplicationColor(const QColor &value) +void Settings::setDefaultApplicationColorIndex(const int value) { - sc_defaultApplicationColor = value; + sc_defaultApplicationColorIndex = value; } void Settings::setValue(const QString &groupName, const QString &key, const QVariant &value) diff --git a/cpp/model/settings.h b/cpp/model/settings.h index 2410540..48a1599 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -184,16 +184,16 @@ class Settings final : public QObject void setWindowSize(const QSize &size); /*! - * \brief Returns the application main color. + * \brief Returns the application main color index. */ - QColor applicationColor() const; + int applicationColorIndex() const; /*! - * \brief Sets the application main color. + * \brief Sets the application main color index. */ - void setApplicationColor(const QColor &color); + void setApplicationColorIndex(const int colorIndex); /* ============================================= */ - static void setDefaultApplicationColor(const QColor &value); + static void setDefaultApplicationColorIndex(const int value); private: QSettings m_settings; @@ -222,7 +222,7 @@ class Settings final : public QObject static const QLatin1String sc_windowPositionYKey; //! key used for settings: window position y value static const QLatin1String sc_windowWidthKey; //! key used for settings: window width static const QLatin1String sc_windowHeightKey; //! key used for settings: window height - static const QLatin1String sc_applicationColorKey; //! key used for settings: application main color + static const QLatin1String sc_applicationColorIndexKey; //! key used for settings: application main color index // logic default static const int sc_defaultBreakDuration; //! default braak duration \see breakDuration() @@ -230,8 +230,8 @@ class Settings final : public QObject static const int sc_defaultWorkTime; //! default work day duration \see workTime() static const int sc_defaultPostponeTime; //! default postpone time \see postponeTime() // view default - static const QSize sc_defaultWindowSize; //! default postpone time \see postponeTime() - static QColor sc_defaultApplicationColor; //! default postpone time \see postponeTime() + static const QSize sc_defaultWindowSize; //! default window size \see windowSize() + static int sc_defaultApplicationColorIndex; //! default color index \see applicationColorIndex() void setValue(const QString &groupName, const QString &key, const QVariant &value); QVariant value(const QString &groupName, const QString &key, const QVariant &defaultValue = QVariant()) const; diff --git a/qml/components/ColorPicker.qml b/qml/components/ColorPicker.qml index d7e6429..604b1c7 100644 --- a/qml/components/ColorPicker.qml +++ b/qml/components/ColorPicker.qml @@ -25,14 +25,14 @@ import QtQuick.Layouts 1.3 import "../style" RowLayout { - property color currentColor - property alias availableColors: repeater.model + property int currentColorIndex + property alias availableApplicationColors: repeater.model Repeater { id: repeater Rectangle { - property bool isSelected: Qt.colorEqual(modelData, currentColor) + property bool isSelected: index === currentColorIndex color: modelData width: Style.colorPicker.itemSize @@ -49,7 +49,7 @@ RowLayout { anchors.fill: parent onClicked: { - currentColor = modelData + currentColorIndex = index } } } diff --git a/qml/dialogs/subitems/VisualSettings.qml b/qml/dialogs/subitems/VisualSettings.qml index 577b8af..73421f9 100644 --- a/qml/dialogs/subitems/VisualSettings.qml +++ b/qml/dialogs/subitems/VisualSettings.qml @@ -28,20 +28,20 @@ import "../../style" SettingsPage { QtObject { id: d - - property color applicationColor + property int previousApplicationColorIndex } Component.onCompleted: { // save state before change - d.applicationColor = Style.mainColor + d.previousApplicationColorIndex = Style.mainColorIndex } function save() { // save current state - controller.settings.applicationColor = Style.mainColor + controller.settings.applicationColorIndex = Style.mainColorIndex } + function discard() { // restore previous state - Style.mainColor = d.applicationColor + Style.mainColorIndex = d.previousApplicationColorIndex } FormElement { @@ -49,11 +49,11 @@ SettingsPage { ColorPicker { id: picker - currentColor: Style.mainColor - availableColors: controller.settings.availableColors + currentColorIndex: Style.mainColorIndex + availableApplicationColors: Style.availableApplicationColors - onCurrentColorChanged: { - Style.mainColor = currentColor + onCurrentColorIndexChanged: { + Style.mainColorIndex = currentColorIndex } } } diff --git a/qml/style/Style.qml b/qml/style/Style.qml index bbc8b78..22dcc1d 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -28,9 +28,11 @@ import "helpers" QtObject { id: style - property color mainColor: ColorPallete.mainColor - onMainColorChanged: { - ColorPallete.mainColor = mainColor; + property int mainColorIndex: ColorPallete.mainColorIndex + readonly property var availableApplicationColors: ColorPallete.availableApplicationColors + + onMainColorIndexChanged: { + ColorPallete.mainColorIndex = mainColorIndex } readonly property var tooltip: QtObject { diff --git a/qml/style/helpers/ColorPallete.qml b/qml/style/helpers/ColorPallete.qml index c3b6e84..b800db0 100644 --- a/qml/style/helpers/ColorPallete.qml +++ b/qml/style/helpers/ColorPallete.qml @@ -26,7 +26,10 @@ import QtQuick 2.12 QtObject { id: style - property color mainColor: controller.settings.applicationColor + readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] + + property int mainColorIndex: controller.settings.applicationColorIndex + property color mainColor: availableApplicationColors[mainColorIndex] readonly property color secondaryLightColor: "white" readonly property color secondaryDarkColor: "#1E1E1E" From 7d3cb25a425403460aa44357a60897c454e7e824 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 12:09:55 +0200 Subject: [PATCH 009/208] Add ajacent and complementary colors. --- qml/style/Style.qml | 3 +++ qml/style/helpers/ColorPallete.qml | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 22dcc1d..61a3d32 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -30,6 +30,9 @@ QtObject { property int mainColorIndex: ColorPallete.mainColorIndex readonly property var availableApplicationColors: ColorPallete.availableApplicationColors + readonly property var adjacentApplicationColorsPrimary: ColorPallete.adjacentApplicationColorsPrimary + readonly property var adjacentApplicationColorsSecondary: ColorPallete.adjacentApplicationColorsSecondary + readonly property var complementaryApplicationColors: ColorPallete.complementaryApplicationColors onMainColorIndexChanged: { ColorPallete.mainColorIndex = mainColorIndex diff --git a/qml/style/helpers/ColorPallete.qml b/qml/style/helpers/ColorPallete.qml index b800db0..33dc718 100644 --- a/qml/style/helpers/ColorPallete.qml +++ b/qml/style/helpers/ColorPallete.qml @@ -26,7 +26,10 @@ import QtQuick 2.12 QtObject { id: style - readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] + readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] + readonly property var adjacentApplicationColorsPrimary: ["#49B421", "#EC2F1B", "#473494", "#6B1FB4", "#649500", "#00EAD1", "#666666"] + readonly property var adjacentApplicationColorsSecondary: ["#234F8B", "#ECAB1B", "#A82C7A", "#EF1A44", "#006060", "#380BED", "#525252"] + readonly property var complementaryApplicationColors: ["#D36927", "#147E91", "#D7D438", "#C1F41B", "#A00000", "#FFA500", "#888888"] property int mainColorIndex: controller.settings.applicationColorIndex property color mainColor: availableApplicationColors[mainColorIndex] From 99432bdb83fffeb1c79297b00e8eeb17b94a562d Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 12:10:18 +0200 Subject: [PATCH 010/208] Use complementary colors for time edit color. --- qml/components/TimeProgressBar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index ed38b5e..9a0e015 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -159,7 +159,7 @@ Item { horizontalAlignment: Text.AlignRight fontStyle: Style.spinBox.font - color: "red" //TODO + color: Style.complementaryApplicationColors[Style.mainColorIndex] inputMask: "99:99:99" From c180c1e7502f4df308894c1339f097af16b124a4 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 12:21:31 +0200 Subject: [PATCH 011/208] Revert "Use complementary colors for time edit color." This reverts commit 99432bdb83fffeb1c79297b00e8eeb17b94a562d. --- qml/components/TimeProgressBar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 9a0e015..ed38b5e 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -159,7 +159,7 @@ Item { horizontalAlignment: Text.AlignRight fontStyle: Style.spinBox.font - color: Style.complementaryApplicationColors[Style.mainColorIndex] + color: "red" //TODO inputMask: "99:99:99" From d716c48d4ae153b5f5c9a0daf5943e1f67fd5487 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 12:21:57 +0200 Subject: [PATCH 012/208] Revert "Add ajacent and complementary colors." This reverts commit 7d3cb25a425403460aa44357a60897c454e7e824. --- qml/style/Style.qml | 3 --- qml/style/helpers/ColorPallete.qml | 5 +---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 61a3d32..22dcc1d 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -30,9 +30,6 @@ QtObject { property int mainColorIndex: ColorPallete.mainColorIndex readonly property var availableApplicationColors: ColorPallete.availableApplicationColors - readonly property var adjacentApplicationColorsPrimary: ColorPallete.adjacentApplicationColorsPrimary - readonly property var adjacentApplicationColorsSecondary: ColorPallete.adjacentApplicationColorsSecondary - readonly property var complementaryApplicationColors: ColorPallete.complementaryApplicationColors onMainColorIndexChanged: { ColorPallete.mainColorIndex = mainColorIndex diff --git a/qml/style/helpers/ColorPallete.qml b/qml/style/helpers/ColorPallete.qml index 33dc718..b800db0 100644 --- a/qml/style/helpers/ColorPallete.qml +++ b/qml/style/helpers/ColorPallete.qml @@ -26,10 +26,7 @@ import QtQuick 2.12 QtObject { id: style - readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] - readonly property var adjacentApplicationColorsPrimary: ["#49B421", "#EC2F1B", "#473494", "#6B1FB4", "#649500", "#00EAD1", "#666666"] - readonly property var adjacentApplicationColorsSecondary: ["#234F8B", "#ECAB1B", "#A82C7A", "#EF1A44", "#006060", "#380BED", "#525252"] - readonly property var complementaryApplicationColors: ["#D36927", "#147E91", "#D7D438", "#C1F41B", "#A00000", "#FFA500", "#888888"] + readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] property int mainColorIndex: controller.settings.applicationColorIndex property color mainColor: availableApplicationColors[mainColorIndex] From 01593f49f5a4a05bf339b90fc1149af9c556bbca Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 13:00:17 +0200 Subject: [PATCH 013/208] Add highlighted colors. --- qml/style/Style.qml | 4 ++-- qml/style/helpers/ColorPallete.qml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 22dcc1d..64dfa82 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -28,9 +28,9 @@ import "helpers" QtObject { id: style - property int mainColorIndex: ColorPallete.mainColorIndex readonly property var availableApplicationColors: ColorPallete.availableApplicationColors - + readonly property var highlightedApplicationColors: ColorPallete.highlightedApplicationColors + property int mainColorIndex: ColorPallete.mainColorIndex onMainColorIndexChanged: { ColorPallete.mainColorIndex = mainColorIndex } diff --git a/qml/style/helpers/ColorPallete.qml b/qml/style/helpers/ColorPallete.qml index b800db0..2226de7 100644 --- a/qml/style/helpers/ColorPallete.qml +++ b/qml/style/helpers/ColorPallete.qml @@ -26,8 +26,10 @@ import QtQuick 2.12 QtObject { id: style - readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] + readonly property var availableApplicationColors: ["#19886F", "#EC811B", "#682C90", "#C0159B", "#008000", "#0958EC", "#666666"] + readonly property var highlightedApplicationColors: ["#28DAB2", "#FFB545", "#EF3EAD", "#FF9EB1", "#00CD00", "#84AFFF", "#A3A3A3"] + //FF5072 property int mainColorIndex: controller.settings.applicationColorIndex property color mainColor: availableApplicationColors[mainColorIndex] readonly property color secondaryLightColor: "white" From 885efc3d6a0eaa8e18cfa9252f2b670b846c3bfb Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 13:00:53 +0200 Subject: [PATCH 014/208] Use highlighted colors when editing time. --- qml/components/TimeProgressBar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index ed38b5e..d49b479 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -159,7 +159,7 @@ Item { horizontalAlignment: Text.AlignRight fontStyle: Style.spinBox.font - color: "red" //TODO + color: Style.highlightedApplicationColors[Style.mainColorIndex] inputMask: "99:99:99" From 276829c85dfebc2a1bf6cef2f8a46c64e3308905 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Jun 2020 14:58:46 +0200 Subject: [PATCH 015/208] Getting inline with GitHub --- .gitignore | 152 ++++++++++++++++++++++++++++------------------------- 1 file changed, 79 insertions(+), 73 deletions(-) diff --git a/.gitignore b/.gitignore index 1358d83..b6e8605 100644 --- a/.gitignore +++ b/.gitignore @@ -1,73 +1,79 @@ -# This file is used to ignore files which are generated -# ---------------------------------------------------------------------------- - -*~ -*.autosave -*.a -*.core -*.moc -*.o -*.obj -*.orig -*.rej -*.so -*.so.* -*_pch.h.cpp -*_resource.rc -*.qm -.#* -*.*# -core -!core/ -tags -.DS_Store -.directory -*.debug -Makefile* -*.prl -*.app -moc_*.cpp -ui_*.h -qrc_*.cpp -Thumbs.db -*.res -*.rc -/.qmake.cache -/.qmake.stash - -# qtcreator generated files -*.pro.user* - -# xemacs temporary files -*.flc - -# Vim temporary files -.*.swp - -# Visual Studio generated files -*.ib_pdb_index -*.idb -*.ilk -*.pdb -*.sln -*.suo -*.vcproj -*vcproj.*.*.user -*.ncb -*.sdf -*.opensdf -*.vcxproj -*vcxproj.* - -# MinGW generated files -*.Debug -*.Release - -# Python byte code -*.pyc - -# Binaries -# -------- -*.dll -*.exe - +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Installers files +installers/config/config.xml +installers/config/control.qs +installers/packages/org.justcode.resto/data/* +installers/packages/org.justcode.resto/meta/installscript.qs +installers/packages/org.justcode.resto/meta/package.xml From ff50cd64aac91a1843299244f6dace3dcaa9f5cf Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Sun, 20 Oct 2019 18:01:01 +0200 Subject: [PATCH 016/208] Develop version 1.0.7 --- appInfo.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appInfo.pri b/appInfo.pri index 32ded66..30f2b19 100644 --- a/appInfo.pri +++ b/appInfo.pri @@ -2,7 +2,7 @@ APP_NAME = "Resto" APP_DESCRIPTION = "A small application for work time management" -APP_VERSION = 1.0.6 +APP_VERSION = 1.0.7 BUILD_NUMBER = $$system(git --git-dir $$PWD/.git --work-tree $$PWD log --pretty=format:'%h' -n 1) delivery { From 101565be6b98aa4dae518ebbe2a379fcca0b84a5 Mon Sep 17 00:00:00 2001 From: JustCode Date: Fri, 25 Oct 2019 13:43:09 +0200 Subject: [PATCH 017/208] #57 Upgrade to C++17 --- Resto.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resto.pro b/Resto.pro index fcabb0a..f90c007 100644 --- a/Resto.pro +++ b/Resto.pro @@ -1,7 +1,7 @@ TEMPLATE = app QT += qml quick widgets -CONFIG += c++11 +CONFIG += c++17 INCLUDEPATH += cpp/ From b7c5ec00a472885fb482bbba2f9e9eaea1f1c8ea Mon Sep 17 00:00:00 2001 From: JustCode Date: Fri, 25 Oct 2019 13:43:44 +0200 Subject: [PATCH 018/208] #57 Fix fallthrough warning --- cpp/controller/controller.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index b88bf78..cfb7a02 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -116,6 +116,7 @@ void Controller::start() case State::Off: case State::Paused: startWork(); + [[fallthrough]]; case State::Recovered: timer().start( (m_state == State::Off) ); // restart only from Off setState(State::Working); From 667a0cab446594486f04b2ccdf289e1fce1a0d14 Mon Sep 17 00:00:00 2001 From: JustCode Date: Fri, 25 Oct 2019 13:45:00 +0200 Subject: [PATCH 019/208] #57 Split main.qml file to extract UI content from it --- qml.qrc | 1 + qml/MainContent.qml | 152 ++++++++++++++++++++++++++++++++++++++++++++ qml/main.qml | 113 +------------------------------- 3 files changed, 154 insertions(+), 112 deletions(-) create mode 100644 qml/MainContent.qml diff --git a/qml.qrc b/qml.qrc index 6af3b3b..640c053 100644 --- a/qml.qrc +++ b/qml.qrc @@ -70,5 +70,6 @@ qml/components/LabelInput.qml qml/components/TabTextButton.qml qml/components/Overlay.qml + qml/MainContent.qml diff --git a/qml/MainContent.qml b/qml/MainContent.qml new file mode 100644 index 0000000..797be90 --- /dev/null +++ b/qml/MainContent.qml @@ -0,0 +1,152 @@ +/******************************************** +** +** Copyright 2016 JustCode Justyna Kulinska +** +** This file is part of Resto. +** +** Resto is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** any later version. +** +** Resto is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Resto; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +********************************************/ + +import QtQuick 2.12 +import QtQuick.Window 2.11 +import QtQuick.Controls 2.4 +import QtQuick.Layouts 1.3 +import QtQuick.Dialogs 1.2 +import Resto.Types 1.0 +import "components" +import "dialogs" +import "style" + +Item { + Background { + Decorative {} + } + + ColumnLayout { + id: content + anchors.fill: parent + anchors.margins: 30 + spacing: 0 + + RowLayout { + ImageButton { + type: "play" + tooltip: qsTr("Play") + + visible: controller.state != Controller.Working + + onClicked: { + controller.start() + } + } + ImageButton { + type: "break" + tooltip: qsTr("Break") + + visible: controller.state == Controller.Working + + onClicked: { + controller.startBreak() + dialogsManager.showBreakDialog(); + } + } + ImageButton { + type: "pause" + tooltip: qsTr("Pause") + + visible: controller.state == Controller.Working + + onClicked: { + controller.pause() + } + } + ImageButton { + type: "stop" + tooltip: qsTr("Stop") + + visible: controller.state == Controller.Working + + onClicked: { + controller.stop() + } + } + } + GridLayout { + Layout.fillWidth: true + columns: 2 + + Label { + text: qsTr("Next break:") + } + TimeProgressBar { + Layout.fillWidth: true + + maxValue: controller.settings.breakInterval + value: controller.timer.elapsedWorkPeriod + } + Label { + text: qsTr("Work time:") + } + TimeProgressBar { + Layout.fillWidth: true + + maxValue: controller.settings.workTime + value: controller.timer.elapsedWorkTime + } + } + } + + // small buttons + // left + RowLayout { + anchors { + left: parent.left + bottom: parent.bottom + } + + ImageButton { + styleFont: Style.font.imageButtonSmallest + type: "help" + tooltip: qsTr("Here you find your help") + + onClicked: controller.openHelp() + } + } + + // right + RowLayout { + anchors { + right: parent.right + bottom: parent.bottom + } + + ImageButton { + styleFont: Style.font.imageButtonSmall + type: "settings" + tooltip: qsTr("Change settings") + + onClicked: dialogsManager.showSettingsDialog() + } + ImageButton { + styleFont: Style.font.imageButtonSmall + type: "about" + tooltip: qsTr("About resto") + + onClicked: dialogsManager.showAboutDialog() + } + } +} + diff --git a/qml/main.qml b/qml/main.qml index 221dacd..be80831 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -120,119 +120,8 @@ Window { dialogsManager: dialogsManager } - // content - ColumnLayout { - id: content + MainContent { anchors.fill: parent - anchors.margins: 30 - spacing: 0 - - RowLayout { - ImageButton { - type: "play" - tooltip: qsTr("Play") - - visible: controller.state != Controller.Working - - onClicked: { - controller.start() - } - } - ImageButton { - type: "break" - tooltip: qsTr("Break") - - visible: controller.state == Controller.Working - - onClicked: { - controller.startBreak() - dialogsManager.showBreakDialog(); - } - } - ImageButton { - type: "pause" - tooltip: qsTr("Pause") - - visible: controller.state == Controller.Working - - onClicked: { - controller.pause() - } - } - ImageButton { - type: "stop" - tooltip: qsTr("Stop") - - visible: controller.state == Controller.Working - - onClicked: { - controller.stop() - } - } - } - GridLayout { - Layout.fillWidth: true - columns: 2 - - Label { - text: qsTr("Next break:") - } - TimeProgressBar { - Layout.fillWidth: true - - maxValue: controller.settings.breakInterval - value: controller.timer.elapsedWorkPeriod - } - Label { - text: qsTr("Work time:") - } - TimeProgressBar { - Layout.fillWidth: true - - maxValue: controller.settings.workTime - value: controller.timer.elapsedWorkTime - } - } - } - - // small buttons - // left - RowLayout { - anchors { - left: parent.left - bottom: parent.bottom - } - - ImageButton { - styleFont: Style.font.imageButtonSmallest - type: "help" - tooltip: qsTr("Here you find your help") - - onClicked: controller.openHelp() - } - } - - // right - RowLayout { - anchors { - right: parent.right - bottom: parent.bottom - } - - ImageButton { - styleFont: Style.font.imageButtonSmall - type: "settings" - tooltip: qsTr("Change settings") - - onClicked: dialogsManager.showSettingsDialog() - } - ImageButton { - styleFont: Style.font.imageButtonSmall - type: "about" - tooltip: qsTr("About resto") - - onClicked: dialogsManager.showAboutDialog() - } } Overlay { From 9b73f6d13cb9f27cfaf4feb4f56f184aea1cdeae Mon Sep 17 00:00:00 2001 From: JustCode Date: Fri, 25 Oct 2019 14:25:15 +0200 Subject: [PATCH 020/208] #57 Update dialogs system to handel properly multiple stacked windows --- qml/DialogsManager.qml | 18 +++++++++++++++++- qml/dialogs/CustomDialog.qml | 10 +++++++++- qml/main.qml | 7 ++----- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/qml/DialogsManager.qml b/qml/DialogsManager.qml index 7d24135..54fb37d 100644 --- a/qml/DialogsManager.qml +++ b/qml/DialogsManager.qml @@ -67,6 +67,7 @@ Item { property var loaderComponent: Component { Loader { property string id + property var parentItem Connections { target: item @@ -74,6 +75,13 @@ Item { onClosing: { d.loadersMap[id] = ""; d.activeWindowsCount--; + + // update top most + if (typeof(parentItem) !== "undefined") { + parentItem.topMost = true; + } + d.topMostItem = parentItem + destroy(); } } @@ -81,6 +89,7 @@ Item { } property var loadersMap: new Object property int activeWindowsCount: 0 + property var topMostItem function showDialog(component) { var id = component.toString(); @@ -91,12 +100,19 @@ Item { var loaderItem = loaderComponent.createObject(root); loaderItem.id = id; + loaderItem.parentItem = topMostItem loaderItem.sourceComponent = component; - loaderItem.active = true; loaderItem.item.show(); + loaderItem.item.requestActivate(); d.activeWindowsCount++; loadersMap[id] = loaderItem; + + // update top most + if (typeof(topMostItem) !== "undefined") { + topMostItem.topMost = false; + } + topMostItem = loaderItem.item } function closeAllDialogs() { const ids = Object.keys(loadersMap) diff --git a/qml/dialogs/CustomDialog.qml b/qml/dialogs/CustomDialog.qml index 3133656..74d2f43 100644 --- a/qml/dialogs/CustomDialog.qml +++ b/qml/dialogs/CustomDialog.qml @@ -45,10 +45,13 @@ Window { } property alias additionalContent: additionalContentItem + property bool topMost: true + signal showing signal hiding - flags: Qt.Dialog | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint + flags: Qt.Dialog | Qt.FramelessWindowHint | + (topMost ? Qt.WindowStaysOnTopHint : 0) x: Screen.width/2 - width/2 y: Screen.height/2 - height/2 @@ -151,4 +154,9 @@ Window { } } } + + Overlay { + id: overlay + visible: !topMost + } } diff --git a/qml/main.qml b/qml/main.qml index be80831..2467ec7 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -30,7 +30,7 @@ import "components" import "dialogs" import "style" -Window { +ApplicationWindow { visible: true function showBreakDialog() { @@ -106,10 +106,6 @@ Window { } // ---------------------------------------------- - Background { - Decorative {} - } - // logic DialogsManager { id: dialogsManager @@ -121,6 +117,7 @@ Window { } MainContent { + id: mainContent anchors.fill: parent } From 5a66cd418c3a45962d72aa7b996fbbe6dcb6e755 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Jun 2020 15:17:43 +0200 Subject: [PATCH 021/208] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index f5b9a0e..fe82354 100644 --- a/README.md +++ b/README.md @@ -9,5 +9,4 @@ remaining time of your work and to take care of your regular rests. More information and prebuild packages available on a project webpage: http://just-code.org/applications/resto/ ## Build information -Built and tested with Qt 5.5. -Tested to work properly with Qt 5.8. +Built and tested with Qt 5.14.1. From 39b41671a4a7de067db108c1c4ecacf6a59153cb Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Jun 2020 15:58:16 +0200 Subject: [PATCH 022/208] #7 Initial changes: settings, logic, UI; Fix qml components name hidding --- cpp/controller/controller.cpp | 42 +++++ cpp/controller/controller.h | 12 ++ cpp/controller/settingscontroller.cpp | 42 +++++ cpp/controller/settingscontroller.h | 12 ++ cpp/model/settings.cpp | 39 ++++- cpp/model/settings.h | 38 ++++- qml.qrc | 5 +- qml/MainContent.qml | 8 + .../{SpinBox.qml => CustomSpinBox.qml} | 0 .../{Switch.qml => CustomSwitch.qml} | 0 qml/components/TimeSelector.qml | 6 +- qml/dialogs/BreakDialog.qml | 6 +- qml/dialogs/SettingsDialog.qml | 3 +- qml/dialogs/subitems/LogicSettings.qml | 65 +------- qml/dialogs/subitems/TimesSettings.qml | 149 ++++++++++++++++++ 15 files changed, 352 insertions(+), 75 deletions(-) rename qml/components/{SpinBox.qml => CustomSpinBox.qml} (100%) rename qml/components/{Switch.qml => CustomSwitch.qml} (100%) create mode 100644 qml/dialogs/subitems/TimesSettings.qml diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index cfb7a02..dfacf47 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -31,6 +31,8 @@ Controller::Controller() : m_updateController(m_settingsController, QUrl(QString("http://%1").arg(APP_VERSION_URL)) ), m_saveManager(m_backupManager) { + connect(this, &Controller::currentIterationChanged, this, [this] { emit isCycleBreakChanged(isCycleBreak()); }); + connect(&m_timerController, &TimerController::elapsedBreakDurationChanged, this, &Controller::onElapsedBreakDurationChange); connect(&m_timerController, &TimerController::elapsedWorkPeriodChanged, this, &Controller::onElapsedWorkPeriodChange); connect(&m_timerController, &TimerController::elapsedWorkTimeChanged, this, &Controller::onElapsedWorkTimeChange); @@ -78,6 +80,23 @@ UpdateController *Controller::updaterPtr() return &m_updateController; } +void Controller::resetCurrentIteration() +{ + m_currentIteration = 0; + emit currentIterationChanged(m_currentIteration); +} + +void Controller::incrementCurrentIteration() +{ + if (m_currentIteration == m_settingsController.cycleIterations()) { + m_currentIteration = 1; + } else { + m_currentIteration++; + } + + emit currentIterationChanged(m_currentIteration); +} + Controller::State Controller::state() const { return m_state; @@ -109,6 +128,16 @@ void Controller::openHelp() const QDesktopServices::openUrl(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/help.pdf")); } +int Controller::currentIteration() const +{ + return m_currentIteration; +} + +bool Controller::isCycleBreak() const +{ + return m_currentIteration == m_settingsController.cycleIterations(); +} + void Controller::start() { switch (m_state) @@ -155,6 +184,8 @@ void Controller::stop() qWarning() << "Stop requested in unsupported state"; break; } + + resetCurrentIteration(); } void Controller::startBreak() @@ -171,8 +202,19 @@ void Controller::postponeBreak() } void Controller::startWork() { + incrementCurrentIteration(); + m_postponeDuration = m_lastRequestTime = 0; timer().setElapsedWorkPeriod(0); + + if (m_settingsController.includeBreaks()) { + const auto breakTimeSet = isCycleBreak() ? m_settingsController.cycleBreakDuration() + : m_settingsController.breakDuration(); + const auto breakTimeToInclude = qMin(timer().elapsedBreakDuration(), breakTimeSet); + timer().setElapsedWorkTime(timer().elapsedWorkTime() + breakTimeToInclude); + } + + timer().countWorkTime(); } diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 9785164..8270830 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -40,6 +40,8 @@ class Controller final : public QObject Q_PROPERTY(SettingsController* settings READ settingsPtr CONSTANT) Q_PROPERTY(TimerController* timer READ timerPtr CONSTANT) Q_PROPERTY(UpdateController* updater READ updaterPtr CONSTANT) + Q_PROPERTY(int currentIteration READ currentIteration NOTIFY currentIterationChanged) + Q_PROPERTY(bool isCycleBreak READ isCycleBreak NOTIFY isCycleBreakChanged) Q_PROPERTY(State state READ state NOTIFY stateChanged) @@ -67,6 +69,9 @@ class Controller final : public QObject Q_INVOKABLE void openHelp() const; + int currentIteration() const; + bool isCycleBreak() const; + signals: void stateChanged(State state) const; @@ -76,6 +81,9 @@ class Controller final : public QObject void exitRequest() const; + void currentIterationChanged(int currentIteration); + void isCycleBreakChanged(bool isCycleBreak); + public slots: void start(); void pause(); @@ -99,11 +107,15 @@ public slots: State m_state = State::Off; //! current state int m_postponeDuration = 0; //! sum duration for all postpones for current break int m_lastRequestTime = 0; //! last time when postpone button was clicked + int m_currentIteration = 0; //! number of current small iterations SettingsController *settingsPtr(); TimerController *timerPtr(); UpdateController *updaterPtr(); + void resetCurrentIteration(); + void incrementCurrentIteration(); + private slots: void setState(State state); diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index 965b1d7..2b15e4f 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -31,10 +31,25 @@ SettingsController::SettingsController(QObject *parent) m_settings.setDefaultApplicationColor(sc_availableColors.first()); } +bool SettingsController::includeBreaks() const +{ + return m_settings.includeBreaks(); +} + int SettingsController::breakDuration() const { return m_settings.breakDuration(); } + +int SettingsController::cycleBreakDuration() const +{ + return m_settings.cycleBreakDuration(); +} + +int SettingsController::cycleIterations() const +{ + return m_settings.cycleIterations(); +} int SettingsController::breakInterval() const { return m_settings.breakInterval(); @@ -102,6 +117,15 @@ QDateTime SettingsController::nextUpdateCheck() const return m_settings.nextUpdateCheck(); } +void SettingsController::setIncludeBreaks(bool includeBreaks) +{ + if (m_settings.includeBreaks() == includeBreaks) + return; + + m_settings.setIncluseBreaks(includeBreaks); + emit includeBreaksChanged(includeBreaks); +} + void SettingsController::setBreakDuration(int breakDuration) { if (m_settings.breakDuration() == breakDuration) @@ -110,6 +134,24 @@ void SettingsController::setBreakDuration(int breakDuration) m_settings.setBreakDuration(breakDuration); emit breakDurationChanged(breakDuration); } + +void SettingsController::setCycleBreakDuration(int cycleBreakDuration) +{ + if (m_settings.cycleBreakDuration() == cycleBreakDuration) + return; + + m_settings.setCycleBreakDuration(cycleBreakDuration); + emit cycleBreakDurationChanged(cycleBreakDuration); +} + +void SettingsController::setCycleIterations(int cycleIterations) +{ + if (m_settings.cycleIterations() == cycleIterations) + return; + + m_settings.setCycleIterations(cycleIterations); + emit cycleIterationsChanged(cycleIterations); +} void SettingsController::setBreakInterval(int breakInterval) { if (m_settings.breakInterval() == breakInterval) diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index b0933fe..1fdf373 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -35,7 +35,10 @@ class SettingsController final : public QObject { Q_OBJECT + Q_PROPERTY(bool includeBreaks READ includeBreaks WRITE setIncludeBreaks NOTIFY includeBreaksChanged) Q_PROPERTY(int breakDuration READ breakDuration WRITE setBreakDuration NOTIFY breakDurationChanged) + Q_PROPERTY(int cycleBreakDuration READ cycleBreakDuration WRITE setCycleBreakDuration NOTIFY cycleBreakDurationChanged) + Q_PROPERTY(int cycleIterations READ cycleIterations WRITE setCycleIterations NOTIFY cycleIterationsChanged) Q_PROPERTY(int breakInterval READ breakInterval WRITE setBreakInterval NOTIFY breakIntervalChanged) Q_PROPERTY(int workTime READ workTime WRITE setWorkTime NOTIFY workTimeChanged) Q_PROPERTY(int postponeTime READ postponeTime WRITE setPostponeTime NOTIFY postponeTimeChanged) @@ -58,7 +61,10 @@ class SettingsController final : public QObject public: explicit SettingsController(QObject *parent = 0); + bool includeBreaks() const; int breakDuration() const; + int cycleBreakDuration() const; + int cycleIterations() const; int breakInterval() const; int workTime() const; int postponeTime() const; @@ -79,7 +85,10 @@ class SettingsController final : public QObject QDateTime nextUpdateCheck() const; signals: + void includeBreaksChanged(bool includeBreaks) const; void breakDurationChanged(int breakDuration) const; + void cycleBreakDurationChanged(int cycleBreakDuration) const; + void cycleIterationsChanged(int cycleIterations) const; void breakIntervalChanged(int breakInterval) const; void workTimeChanged(int workTime) const; void postponeTimeChanged(int postponeTime) const; @@ -98,7 +107,10 @@ class SettingsController final : public QObject void nextUpdateCheckChanged(QDateTime nextUpdateCheck) const; public slots: + void setIncludeBreaks(bool includeBreaks); void setBreakDuration(int breakDuration); + void setCycleBreakDuration(int cycleBreakDuration); + void setCycleIterations(int cycleIterations); void setBreakInterval(int breakInterval); void setWorkTime(int workTime); void setPostponeTime(int postponeTime); diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index cc7c997..16e1d37 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -32,7 +32,10 @@ const QLatin1String Settings::sc_viewGroupName = QLatin1String("view"); const QLatin1String Settings::sc_trayAvailableKey = QLatin1String("trayAvailable"); const QLatin1String Settings::sc_showTrayInfoKey = QLatin1String("showTrayInfo"); +const QLatin1String Settings::sc_includeBreaksKey = QLatin1String("includeBreaks"); const QLatin1String Settings::sc_breakDurationKey = QLatin1String("breakDuration"); +const QLatin1String Settings::sc_cycleBreakDurationKey = QLatin1String("cycleBreakDuration"); +const QLatin1String Settings::sc_cycleIterations = QLatin1String("cycleIterations"); const QLatin1String Settings::sc_breakIntervalKey = QLatin1String("breakInterval"); const QLatin1String Settings::sc_workTimeKey = QLatin1String("workTime"); const QLatin1String Settings::sc_postponeTimeKey = QLatin1String("postponeTime"); @@ -49,8 +52,10 @@ const QLatin1String Settings::sc_windowWidthKey = QLatin1String("window-width"); const QLatin1String Settings::sc_windowHeightKey = QLatin1String("window-height"); const QLatin1String Settings::sc_applicationColorKey = QLatin1String("mainColor"); -const int Settings::sc_defaultBreakDuration = 10*60; //! 10 min -const int Settings::sc_defaultBreakInterval = 45*60; //! 45 min +const int Settings::sc_defaultBreakDuration = 5*60; //! 5 min +const int Settings::sc_defaultCycleBreakDuration = 30*60; //! 30 min +const int Settings::sc_defaultlCycleIterations = 3; +const int Settings::sc_defaultBreakInterval = 25*60; //! 25 min const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min @@ -81,6 +86,16 @@ void Settings::setShowTrayInfo(bool show) setValue(sc_systemGroupName, sc_showTrayInfoKey, show); } +bool Settings::includeBreaks() const +{ + return value(sc_logicGroupName, sc_includeBreaksKey, true).toBool(); +} + +void Settings::setIncluseBreaks(bool include) +{ + setValue(sc_logicGroupName, sc_includeBreaksKey, include); +} + int Settings::breakDuration() const { return value(sc_logicGroupName, sc_breakDurationKey, sc_defaultBreakDuration).toInt(); @@ -90,6 +105,26 @@ void Settings::setBreakDuration(int duration) setValue(sc_logicGroupName, sc_breakDurationKey, duration); } +int Settings::cycleBreakDuration() const +{ + return value(sc_logicGroupName, sc_cycleBreakDurationKey, sc_defaultCycleBreakDuration).toInt(); +} + +void Settings::setCycleBreakDuration(int duration) +{ + setValue(sc_logicGroupName, sc_cycleBreakDurationKey, duration); +} + +int Settings::cycleIterations() const +{ + return value(sc_logicGroupName, sc_cycleIterations, sc_defaultlCycleIterations).toInt(); +} + +void Settings::setCycleIterations(int iterations) +{ + setValue(sc_logicGroupName, sc_cycleIterations, iterations); +} + int Settings::breakInterval() const { return value(sc_logicGroupName, sc_breakIntervalKey, sc_defaultBreakInterval).toInt(); diff --git a/cpp/model/settings.h b/cpp/model/settings.h index 2410540..b8c2683 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -64,6 +64,15 @@ class Settings final : public QObject /* ============================================= */ /* ============== logic accessors ============== */ + /*! + * \brief Returns an information if breaks are included in the work time. + */ + bool includeBreaks() const; + /*! + * \brief Sets an information if include breaks in the work time. + */ + void setIncluseBreaks(bool include); + /*! * \brief Returns break duration in seconds. */ @@ -73,6 +82,24 @@ class Settings final : public QObject */ void setBreakDuration(int duration); + /*! + * \brief Returns a break duration in seconds after a full cycle. + */ + int cycleBreakDuration() const; + /*! + * \brief Sets a break duration in seconds a full cycle. + */ + void setCycleBreakDuration(int duration); + + /*! + * \brief Returns a number of iterations for a single cycle. + */ + int cycleIterations() const; + /*! + * \brief Sets a number of iterations for a single cycle. + */ + void setCycleIterations(int iterations); + /*! * \brief Returns break interval in seconds. * @@ -207,7 +234,10 @@ class Settings final : public QObject static const QLatin1String sc_trayAvailableKey; //! key used for settings: tray available static const QLatin1String sc_showTrayInfoKey; //! key used for settings: show tray info // logic keys + static const QLatin1String sc_includeBreaksKey; //! key used for settings: include breaks static const QLatin1String sc_breakDurationKey; //! key used for settings: break duration + static const QLatin1String sc_cycleBreakDurationKey; //! key used for settings: cycle break duration + static const QLatin1String sc_cycleIterations; //! key used for settings: iterations for cycle static const QLatin1String sc_breakIntervalKey; //! key used for settings: break interval static const QLatin1String sc_workTimeKey; //! key used for settings: work day duration static const QLatin1String sc_postponeTimeKey; //! key used for settings: postpone time @@ -225,13 +255,15 @@ class Settings final : public QObject static const QLatin1String sc_applicationColorKey; //! key used for settings: application main color // logic default - static const int sc_defaultBreakDuration; //! default braak duration \see breakDuration() + static const int sc_defaultBreakDuration; //! default break duration \see breakDuration() + static const int sc_defaultCycleBreakDuration; //! default cycle break duration \see cycleBreakDuration() + static const int sc_defaultlCycleIterations; //! default interations for cycle \see cycleIterations() static const int sc_defaultBreakInterval; //! default break interval \see breakInterval() static const int sc_defaultWorkTime; //! default work day duration \see workTime() static const int sc_defaultPostponeTime; //! default postpone time \see postponeTime() // view default - static const QSize sc_defaultWindowSize; //! default postpone time \see postponeTime() - static QColor sc_defaultApplicationColor; //! default postpone time \see postponeTime() + static const QSize sc_defaultWindowSize; //! default window size \see windowSize() + static QColor sc_defaultApplicationColor; //! default application color \see applicationColor() void setValue(const QString &groupName, const QString &key, const QVariant &value); QVariant value(const QString &groupName, const QString &key, const QVariant &defaultValue = QVariant()) const; diff --git a/qml.qrc b/qml.qrc index 640c053..a10989e 100644 --- a/qml.qrc +++ b/qml.qrc @@ -49,10 +49,10 @@ qml/components/ColorPicker.qml qml/style/helpers/ColorPallete.qml qml/style/helpers/qmldir - qml/components/Switch.qml + qml/components/CustomSwitch.qml qml/components/SpacerLine.qml qml/components/TimeSelector.qml - qml/components/SpinBox.qml + qml/components/CustomSpinBox.qml resources/images/inc.png resources/images/dec.png qml/components/helpers/SpinBoxControl.qml @@ -71,5 +71,6 @@ qml/components/TabTextButton.qml qml/components/Overlay.qml qml/MainContent.qml + qml/dialogs/subitems/TimesSettings.qml diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 797be90..da116bb 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -88,6 +88,13 @@ Item { Layout.fillWidth: true columns: 2 + Label { + text: qsTr("Current iteration:") + } + Label { + text: controller.currentIteration + } + Label { text: qsTr("Next break:") } @@ -97,6 +104,7 @@ Item { maxValue: controller.settings.breakInterval value: controller.timer.elapsedWorkPeriod } + Label { text: qsTr("Work time:") } diff --git a/qml/components/SpinBox.qml b/qml/components/CustomSpinBox.qml similarity index 100% rename from qml/components/SpinBox.qml rename to qml/components/CustomSpinBox.qml diff --git a/qml/components/Switch.qml b/qml/components/CustomSwitch.qml similarity index 100% rename from qml/components/Switch.qml rename to qml/components/CustomSwitch.qml diff --git a/qml/components/TimeSelector.qml b/qml/components/TimeSelector.qml index fdf61cb..a5a3fd3 100644 --- a/qml/components/TimeSelector.qml +++ b/qml/components/TimeSelector.qml @@ -84,7 +84,7 @@ RowLayout { onSecondsChanged: calculateTime(); } - SpinBox { + CustomSpinBox { id: hoursSpin from: 23 @@ -99,7 +99,7 @@ RowLayout { d.hours = value } } - SpinBox { + CustomSpinBox { id: minutesSpin from: 59 @@ -115,7 +115,7 @@ RowLayout { d.minutes = value } } - SpinBox { + CustomSpinBox { from: 59 to: (hoursSpin.value > d.minHours || minutesSpin.value > d.minMinutes) diff --git a/qml/dialogs/BreakDialog.qml b/qml/dialogs/BreakDialog.qml index 72a1621..71882b1 100644 --- a/qml/dialogs/BreakDialog.qml +++ b/qml/dialogs/BreakDialog.qml @@ -33,7 +33,8 @@ CustomDialog { endButton.text = qsTr("Abort"); } - title: qsTr("Time for a break!") + title: controller.isCycleBreak ? qsTr("Take a long break!") + : qsTr("Time for a break!") description: qsTr("Break time:") image.source: "qrc:/resources/images/break.png" @@ -63,7 +64,8 @@ CustomDialog { additionalContent.fillWidth: true additionalContent.data: TimeProgressBar { width: parent.width - maxValue: controller.settings.breakDuration + maxValue: controller.isCycleBreak ? controller.settings.cycleBreakDuration + : controller.settings.breakDuration value: controller.timer.elapsedBreakDuration } diff --git a/qml/dialogs/SettingsDialog.qml b/qml/dialogs/SettingsDialog.qml index 3d318b5..f3436e0 100644 --- a/qml/dialogs/SettingsDialog.qml +++ b/qml/dialogs/SettingsDialog.qml @@ -46,8 +46,9 @@ CustomDialog { additionalContent.data: TabView { id: tabView - tabNames: [ qsTr("Behaviour"), qsTr("Appearance") ] + tabNames: [ qsTr("Behaviour"), qsTr("General"), qsTr("Appearance") ] + TimesSettings {} LogicSettings {} VisualSettings {} } diff --git a/qml/dialogs/subitems/LogicSettings.qml b/qml/dialogs/subitems/LogicSettings.qml index 8cd196e..e6b31b3 100644 --- a/qml/dialogs/subitems/LogicSettings.qml +++ b/qml/dialogs/subitems/LogicSettings.qml @@ -30,11 +30,6 @@ SettingsPage { // set defaults autoStartSwitch.checked = controller.settings.autoStart - breakDurationSelector.time = controller.settings.breakDuration - breakIntervalSelector.time = controller.settings.breakInterval - postponeTimeSelector.time = controller.settings.postponeTime - workTimeSelector.time = controller.settings.workTime - autoHideSwitch.checked = controller.settings.autoHide hideOnCloseSwitch.checked = controller.settings.hideOnClose } @@ -42,11 +37,6 @@ SettingsPage { function save() { // save current state controller.settings.autoStart = autoStartSwitch.checked - controller.settings.breakDuration = breakDurationSelector.time - controller.settings.breakInterval = breakIntervalSelector.time - controller.settings.postponeTime = postponeTimeSelector.time - controller.settings.workTime = workTimeSelector.time - controller.settings.autoHide = autoHideSwitch.checked controller.settings.hideOnClose = hideOnCloseSwitch.checked } @@ -54,7 +44,7 @@ SettingsPage { FormElement { labelText: qsTr("Auto start:") - Switch { + CustomSwitch { id: autoStartSwitch Layout.alignment: Qt.AlignRight } @@ -62,55 +52,6 @@ SettingsPage { Spacer {} - // TIMES SETTINGS - Label { - fontStyle: Style.font.formHeader - text: qsTr("Times") - } - - FormElement { - labelText: qsTr("Break duration:") - - TimeSelector { - id: breakDurationSelector - - showSeconds: false - minTime: 60 - } - } - FormElement { - labelText: qsTr("Break interval:") - - TimeSelector { - id: breakIntervalSelector - - showSeconds: false - minTime: 60 - } - } - FormElement { - labelText: qsTr("Postpone time:") - - TimeSelector { - id: postponeTimeSelector - - showSeconds: false - minTime: 60 - } - } - FormElement { - labelText: qsTr("Work time:") - - TimeSelector { - id: workTimeSelector - - showSeconds: false - minTime: 60 - } - } - - Spacer {} - // TRAY SETTINGS Label { visible: controller.settings.trayAvailable @@ -124,7 +65,7 @@ SettingsPage { labelText: qsTr("Auto hide:") - Switch { + CustomSwitch { id: autoHideSwitch Layout.alignment: Qt.AlignRight } @@ -135,7 +76,7 @@ SettingsPage { labelText: qsTr("Hide on close:") - Switch { + CustomSwitch { id: hideOnCloseSwitch Layout.alignment: Qt.AlignRight } diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml new file mode 100644 index 0000000..f88aafd --- /dev/null +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -0,0 +1,149 @@ +/******************************************** +** +** Copyright 2016 JustCode Justyna Kulinska +** +** This file is part of Resto. +** +** Resto is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** any later version. +** +** Resto is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Resto; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +********************************************/ + +import QtQuick 2.12 +import QtQuick.Layouts 1.3 +import "../../components" +import "../../style" + +SettingsPage { + Component.onCompleted: { + // set defaults + breakDurationSelector.time = controller.settings.breakDuration + breakIntervalSelector.time = controller.settings.breakInterval + includeBreaksSwitch.checked = controller.settings.includeBreaks + + cycleBreakDurationSelector.time = controller.settings.cycleBreakDuration + cycleIterationsSpin.value = controller.settings.cycleIterations + + postponeTimeSelector.time = controller.settings.postponeTime + workTimeSelector.time = controller.settings.workTime + } + + function save() { // save current state + controller.settings.breakDuration = breakDurationSelector.time + controller.settings.breakInterval = breakIntervalSelector.time + controller.settings.includeBreaks = includeBreaksSwitch.checked + + controller.settings.cycleBreakDuration = cycleBreakDurationSelector.time + controller.settings.cycleIterations = cycleIterationsSpin.value + + controller.settings.postponeTime = postponeTimeSelector.time + controller.settings.workTime = workTimeSelector.time + } + + // BREAKS SETTINGS + Label { + fontStyle: Style.font.formHeader + text: qsTr("Breaks") + } + + FormElement { + labelText: qsTr("Break duration:") + + TimeSelector { + id: breakDurationSelector + + showSeconds: false + minTime: 60 + } + } + FormElement { + labelText: qsTr("Break interval:") + + TimeSelector { + id: breakIntervalSelector + + showSeconds: false + minTime: 60 + } + } + FormElement { + labelText: qsTr("Include breaks:") + + CustomSwitch { + id: includeBreaksSwitch + Layout.alignment: Qt.AlignRight + } + } + + Spacer {} + + // CYCLES SETTINGS + Label { + fontStyle: Style.font.formHeader + text: qsTr("Cycles") + } + + FormElement { + labelText: qsTr("Cycle break duration:") + + TimeSelector { + id: cycleBreakDurationSelector + + showSeconds: false + minTime: 60 + } + } + FormElement { + labelText: qsTr("Cycle iterations:") + + CustomSpinBox { + id: cycleIterationsSpin + + from: 1 + to: 10 + maxCharCount: 2 + } + } + + Spacer {} + + // GENERAL SETTINGS + Label { + visible: controller.settings.trayAvailable + + fontStyle: Style.font.formHeader + text: qsTr("General") + } + + FormElement { + labelText: qsTr("Work time:") + + TimeSelector { + id: workTimeSelector + + showSeconds: false + minTime: 60 + } + } + FormElement { + labelText: qsTr("Postpone time:") + + TimeSelector { + id: postponeTimeSelector + + showSeconds: false + minTime: 60 + } + } +} From 1267886a421e82fd3f109dbc6ea19c413c73dd4e Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 16:46:57 +0200 Subject: [PATCH 023/208] Post merge fixes. --- qml/MainContent.qml | 47 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 797be90..993bb69 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -86,25 +86,70 @@ Item { } GridLayout { Layout.fillWidth: true - columns: 2 + columns: 3 Label { text: qsTr("Next break:") } + TimeProgressBar { + id: nextBreakTimeProgressBar Layout.fillWidth: true maxValue: controller.settings.breakInterval value: controller.timer.elapsedWorkPeriod + + onTimeValueChanged: + { + var timeDiff = newValue - controller.timer.elapsedWorkPeriod + controller.timer.elapsedWorkPeriod = newValue + controller.timer.elapsedWorkTime += timeDiff + } + } + + ImageButton { + enabled: !nextBreakTimeProgressBar.timeEditionInProgress + styleFont: Style.font.imageButtonSmall + type: "edit" + tooltip: qsTr("Edit next break") + + onClicked: + { + nextBreakTimeProgressBar.startTimeEdition() + } } + Label { text: qsTr("Work time:") } + TimeProgressBar { + id: workTimeProgressBar Layout.fillWidth: true maxValue: controller.settings.workTime value: controller.timer.elapsedWorkTime + + onTimeValueChanged: + { + var timeDiff = newValue - controller.timer.elapsedWorkTime + controller.timer.elapsedWorkTime = newValue + + var newElapsedWorkTime = controller.timer.elapsedWorkPeriod + timeDiff + controller.timer.elapsedWorkPeriod = Math.max(newElapsedWorkTime, 0) + } + } + + ImageButton { + enabled: !workTimeProgressBar.timeEditionInProgress + styleFont: Style.font.imageButtonSmall + type: "edit" + tooltip: qsTr("Edit work time") + + onClicked: + { + workTimeProgressBar.startTimeEdition() + } } } } From 2c3ca27aa0cb34f51bd82ce9f9d17c764d1e3b5d Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 26 Jun 2020 16:48:58 +0200 Subject: [PATCH 024/208] Use the smallest font for time edit buttons. --- qml/MainContent.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 993bb69..bc41df2 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -109,7 +109,7 @@ Item { ImageButton { enabled: !nextBreakTimeProgressBar.timeEditionInProgress - styleFont: Style.font.imageButtonSmall + styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit next break") @@ -142,7 +142,7 @@ Item { ImageButton { enabled: !workTimeProgressBar.timeEditionInProgress - styleFont: Style.font.imageButtonSmall + styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit work time") From 1e9304b7f82683a598b580976290a8f028a1a292 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 17 Jul 2020 14:35:30 +0200 Subject: [PATCH 025/208] #7 Add disabled UI look to settings controls --- qml.qrc | 2 ++ qml/components/CustomSwitch.qml | 12 ++++++-- qml/components/LabelInput.qml | 4 ++- qml/components/helpers/SpinBoxControl.qml | 4 ++- qml/style/Style.qml | 2 ++ qml/utils/UiUtils.qml | 36 +++++++++++++++++++++++ qml/utils/qmldir | 1 + 7 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 qml/utils/UiUtils.qml create mode 100644 qml/utils/qmldir diff --git a/qml.qrc b/qml.qrc index a10989e..be47c4e 100644 --- a/qml.qrc +++ b/qml.qrc @@ -72,5 +72,7 @@ qml/components/Overlay.qml qml/MainContent.qml qml/dialogs/subitems/TimesSettings.qml + qml/utils/UiUtils.qml + qml/utils/qmldir diff --git a/qml/components/CustomSwitch.qml b/qml/components/CustomSwitch.qml index 85b5e70..0b8535d 100644 --- a/qml/components/CustomSwitch.qml +++ b/qml/components/CustomSwitch.qml @@ -24,6 +24,7 @@ import QtQuick 2.12 import QtQuick.Layouts 1.3 import QtQuick.Controls 2.4 import "../style" +import "../utils" import "../components" Switch { @@ -31,6 +32,13 @@ Switch { property string onStateName: qsTr("On") property string offStateName: qsTr("Off") + QtObject { + id: d + + property color resolvedHandleColor: UiUtils.resolveControlColor( + Style.switchControl.handleColor, switchControl.enabled) + } + implicitWidth: 90 implicitHeight: Style.switchControl.font.size * 1.5 @@ -40,7 +48,7 @@ Switch { x: switchControl.visualPosition * (switchControl.width - width) - color: Style.switchControl.handleColor + color: d.resolvedHandleColor border.width: 2 border.color: contentItem.fontStyle.color @@ -48,7 +56,7 @@ Switch { } background: Rectangle { border.width: Style.switchControl.borderWidth - border.color: Style.switchControl.handleColor + border.color: d.resolvedHandleColor radius: Style.switchControl.font.size / 2 diff --git a/qml/components/LabelInput.qml b/qml/components/LabelInput.qml index 7951812..f05b263 100644 --- a/qml/components/LabelInput.qml +++ b/qml/components/LabelInput.qml @@ -1,5 +1,6 @@ import QtQuick 2.12 import "../style" +import "../utils" TextInput { property var fontStyle @@ -11,7 +12,8 @@ TextInput { pixelSize: fontStyle.size } - color: fontStyle.color + + color: UiUtils.resolveControlColor(fontStyle.color, enabled) selectionColor: color selectedTextColor: fontStyle.selectionColor } diff --git a/qml/components/helpers/SpinBoxControl.qml b/qml/components/helpers/SpinBoxControl.qml index bf25325..93f1b85 100644 --- a/qml/components/helpers/SpinBoxControl.qml +++ b/qml/components/helpers/SpinBoxControl.qml @@ -23,8 +23,10 @@ import QtQuick 2.12 import QtGraphicalEffects 1.0 import "../../style" +import "../../utils" Item { + id: spinBoxControl property bool increment: true implicitWidth: spinImage.sourceSize.width @@ -45,6 +47,6 @@ Item { anchors.fill: parent source: spinImage - color: Style.spinBox.font.color + color: UiUtils.resolveControlColor(Style.spinBox.font.color, spinBoxControl.enabled) } } diff --git a/qml/style/Style.qml b/qml/style/Style.qml index bbc8b78..b368cd6 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -59,6 +59,8 @@ QtObject { readonly property string color: ColorPallete.shadowColor } + readonly property string disableTint: "#CCCCCCCC" + readonly property var font: QtObject { readonly property var text: StyleFont {} readonly property var smallerText: StyleFont { diff --git a/qml/utils/UiUtils.qml b/qml/utils/UiUtils.qml new file mode 100644 index 0000000..80393af --- /dev/null +++ b/qml/utils/UiUtils.qml @@ -0,0 +1,36 @@ +/******************************************** +** +** Copyright 2020 JustCode Justyna Kulinska +** +** This file is part of Resto. +** +** Resto is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** any later version. +** +** Resto is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Resto; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +********************************************/ + +pragma Singleton +import QtQuick 2.12 +import "." +import "../style" + +QtObject { + id: uiUtils + + function resolveControlColor(baseColor, enabled) + { + return enabled ? baseColor + : Qt.tint(baseColor, Style.disableTint); + } +} diff --git a/qml/utils/qmldir b/qml/utils/qmldir new file mode 100644 index 0000000..9203973 --- /dev/null +++ b/qml/utils/qmldir @@ -0,0 +1 @@ +singleton Utils UiUtils.qml From 40b5b86f96cfda0698c92ef555416ba913dbe37e Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 17 Jul 2020 14:49:59 +0200 Subject: [PATCH 026/208] #7 Fix wrong label placement for CustomSpinBox --- qml/components/CustomSpinBox.qml | 6 +++--- qml/utils/UiUtils.qml | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/qml/components/CustomSpinBox.qml b/qml/components/CustomSpinBox.qml index fe53a04..67e9fde 100644 --- a/qml/components/CustomSpinBox.qml +++ b/qml/components/CustomSpinBox.qml @@ -21,10 +21,11 @@ ********************************************/ import QtQuick 2.12 -import QtQuick.Controls 2.4 +import QtQuick.Controls 2.5 import "../components" import "../components/helpers" import "../style" +import "../utils" SpinBox { id: spinBox @@ -51,8 +52,7 @@ SpinBox { return text.substring(prefix.length, text.length - suffix.length) } - implicitWidth: (maxCharCount + 1) * d.fontMetrics.averageCharacterWidth + Style.spacing / 2 + up.implicitIndicatorWidth - + implicitWidth: UiUtils.averageTextWidth(d.fontMetrics, maxCharCount + 1) + Style.spacing + up.implicitIndicatorWidth contentItem: LabelInput { fontStyle: Style.spinBox.font diff --git a/qml/utils/UiUtils.qml b/qml/utils/UiUtils.qml index 80393af..cf9c2ef 100644 --- a/qml/utils/UiUtils.qml +++ b/qml/utils/UiUtils.qml @@ -33,4 +33,10 @@ QtObject { return enabled ? baseColor : Qt.tint(baseColor, Style.disableTint); } + + function averageTextWidth(fontMetrics, charsCount) + { + var AVERAGE_WIDHT_ENLARGE = 1.2; + return charsCount * AVERAGE_WIDHT_ENLARGE * fontMetrics.averageCharacterWidth; + } } From a686e614da30fd92c3de203c745b155edd56f9fd Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 17 Jul 2020 15:04:17 +0200 Subject: [PATCH 027/208] #7 Update support to switch off cycles mode in UI; Support new settings in Settings and SettingsController classes --- cpp/controller/settingscontroller.cpp | 21 +++++++++++++++++++-- cpp/controller/settingscontroller.h | 25 +++++++++++++++++++++---- cpp/model/settings.cpp | 16 +++++++++++++++- cpp/model/settings.h | 15 ++++++++++++++- qml/components/FormElement.qml | 2 ++ qml/dialogs/subitems/TimesSettings.qml | 17 ++++++++++++++--- 6 files changed, 85 insertions(+), 11 deletions(-) diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index 2b15e4f..19f11a0 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -41,6 +41,11 @@ int SettingsController::breakDuration() const return m_settings.breakDuration(); } +int SettingsController::breakInterval() const +{ + return m_settings.breakInterval(); +} + int SettingsController::cycleBreakDuration() const { return m_settings.cycleBreakDuration(); @@ -50,10 +55,12 @@ int SettingsController::cycleIterations() const { return m_settings.cycleIterations(); } -int SettingsController::breakInterval() const + +bool SettingsController::cyclesMode() const { - return m_settings.breakInterval(); + return m_settings.cyclesMode(); } + int SettingsController::workTime() const { return m_settings.workTime(); @@ -160,6 +167,16 @@ void SettingsController::setBreakInterval(int breakInterval) m_settings.setBreakInterval(breakInterval); emit breakIntervalChanged(breakInterval); } + +void SettingsController::setCyclesMode(bool cyclesMode) +{ + if (m_settings.cyclesMode() == cyclesMode) + return; + + m_settings.setCyclesMode(cyclesMode); + emit cyclesModeChanged(cyclesMode); +} + void SettingsController::setWorkTime(int workTime) { if (m_settings.workTime() == workTime) diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index 1fdf373..320438e 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -37,11 +37,15 @@ class SettingsController final : public QObject Q_PROPERTY(bool includeBreaks READ includeBreaks WRITE setIncludeBreaks NOTIFY includeBreaksChanged) Q_PROPERTY(int breakDuration READ breakDuration WRITE setBreakDuration NOTIFY breakDurationChanged) + Q_PROPERTY(int breakInterval READ breakInterval WRITE setBreakInterval NOTIFY breakIntervalChanged) + + Q_PROPERTY(bool cyclesMode READ cyclesMode WRITE setCyclesMode NOTIFY cyclesModeChanged) Q_PROPERTY(int cycleBreakDuration READ cycleBreakDuration WRITE setCycleBreakDuration NOTIFY cycleBreakDurationChanged) Q_PROPERTY(int cycleIterations READ cycleIterations WRITE setCycleIterations NOTIFY cycleIterationsChanged) - Q_PROPERTY(int breakInterval READ breakInterval WRITE setBreakInterval NOTIFY breakIntervalChanged) + Q_PROPERTY(int workTime READ workTime WRITE setWorkTime NOTIFY workTimeChanged) Q_PROPERTY(int postponeTime READ postponeTime WRITE setPostponeTime NOTIFY postponeTimeChanged) + Q_PROPERTY(bool autoStart READ autoStart WRITE setAutoStart NOTIFY autoStartChanged) Q_PROPERTY(QPoint windowPosition READ windowPosition WRITE setWindowPosition NOTIFY windowPositionChanged) @@ -63,11 +67,15 @@ class SettingsController final : public QObject bool includeBreaks() const; int breakDuration() const; + int breakInterval() const; + + bool cyclesMode() const; int cycleBreakDuration() const; int cycleIterations() const; - int breakInterval() const; + int workTime() const; int postponeTime() const; + bool autoStart() const; QPoint windowPosition() const; @@ -87,11 +95,15 @@ class SettingsController final : public QObject signals: void includeBreaksChanged(bool includeBreaks) const; void breakDurationChanged(int breakDuration) const; + void breakIntervalChanged(int breakInterval) const; + + void cyclesModeChanged(bool cyclesMode) const; void cycleBreakDurationChanged(int cycleBreakDuration) const; void cycleIterationsChanged(int cycleIterations) const; - void breakIntervalChanged(int breakInterval) const; + void workTimeChanged(int workTime) const; void postponeTimeChanged(int postponeTime) const; + void autoStartChanged(bool autoStart) const; void windowPositionChanged(const QPoint &windowPosition) const; @@ -106,14 +118,19 @@ class SettingsController final : public QObject void updateVersionChanged(QString updateVersion) const; void nextUpdateCheckChanged(QDateTime nextUpdateCheck) const; + public slots: void setIncludeBreaks(bool includeBreaks); void setBreakDuration(int breakDuration); + void setBreakInterval(int breakInterval); + + void setCyclesMode(bool cyclesMode); void setCycleBreakDuration(int cycleBreakDuration); void setCycleIterations(int cycleIterations); - void setBreakInterval(int breakInterval); + void setWorkTime(int workTime); void setPostponeTime(int postponeTime); + void setAutoStart(bool autoStart); void setWindowPosition(const QPoint &windowPosition); diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 16e1d37..3220f6a 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -34,11 +34,15 @@ const QLatin1String Settings::sc_showTrayInfoKey = QLatin1String("showTrayInfo") const QLatin1String Settings::sc_includeBreaksKey = QLatin1String("includeBreaks"); const QLatin1String Settings::sc_breakDurationKey = QLatin1String("breakDuration"); +const QLatin1String Settings::sc_breakIntervalKey = QLatin1String("breakInterval"); + +const QLatin1String Settings::sc_cyclesModeKey = QLatin1String("cyclesMode"); const QLatin1String Settings::sc_cycleBreakDurationKey = QLatin1String("cycleBreakDuration"); const QLatin1String Settings::sc_cycleIterations = QLatin1String("cycleIterations"); -const QLatin1String Settings::sc_breakIntervalKey = QLatin1String("breakInterval"); + const QLatin1String Settings::sc_workTimeKey = QLatin1String("workTime"); const QLatin1String Settings::sc_postponeTimeKey = QLatin1String("postponeTime"); + const QLatin1String Settings::sc_autoStartKey = QLatin1String("autoStart"); const QLatin1String Settings::sc_autoHideKey = QLatin1String("autoHide"); const QLatin1String Settings::sc_hideOnCloseKey = QLatin1String("hideOnClose"); @@ -105,6 +109,16 @@ void Settings::setBreakDuration(int duration) setValue(sc_logicGroupName, sc_breakDurationKey, duration); } +bool Settings::cyclesMode() const +{ + return value(sc_logicGroupName, sc_cyclesModeKey, false).toBool(); +} + +void Settings::setCyclesMode(bool on) +{ + setValue(sc_logicGroupName, sc_cyclesModeKey, on); +} + int Settings::cycleBreakDuration() const { return value(sc_logicGroupName, sc_cycleBreakDurationKey, sc_defaultCycleBreakDuration).toInt(); diff --git a/cpp/model/settings.h b/cpp/model/settings.h index b8c2683..e0121c0 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -82,6 +82,15 @@ class Settings final : public QObject */ void setBreakDuration(int duration); + /*! + * \brief Returns an information if cycles mode is on. + */ + bool cyclesMode() const; + /*! + * \brief Sets an information if cycles mode is on. + */ + void setCyclesMode(bool on); + /*! * \brief Returns a break duration in seconds after a full cycle. */ @@ -236,11 +245,15 @@ class Settings final : public QObject // logic keys static const QLatin1String sc_includeBreaksKey; //! key used for settings: include breaks static const QLatin1String sc_breakDurationKey; //! key used for settings: break duration + static const QLatin1String sc_breakIntervalKey; //! key used for settings: break interval + + static const QLatin1String sc_cyclesModeKey; //! key used for settings: cycles mode static const QLatin1String sc_cycleBreakDurationKey; //! key used for settings: cycle break duration static const QLatin1String sc_cycleIterations; //! key used for settings: iterations for cycle - static const QLatin1String sc_breakIntervalKey; //! key used for settings: break interval + static const QLatin1String sc_workTimeKey; //! key used for settings: work day duration static const QLatin1String sc_postponeTimeKey; //! key used for settings: postpone time + static const QLatin1String sc_autoStartKey; //! key used for settings: auto start static const QLatin1String sc_autoHideKey; //! key used for settings: auto hide static const QLatin1String sc_hideOnCloseKey; //! key used for settings: hide on close diff --git a/qml/components/FormElement.qml b/qml/components/FormElement.qml index 816ab06..ad17dd8 100644 --- a/qml/components/FormElement.qml +++ b/qml/components/FormElement.qml @@ -27,6 +27,8 @@ import "../style" GridLayout { property alias labelText: label.text + property alias labelFontStyle: label.fontStyle + property bool strechHorizontally: true property bool strechVertically: false property real horizontalSpacing: spacer.size diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index f88aafd..18b07f0 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -32,6 +32,7 @@ SettingsPage { breakIntervalSelector.time = controller.settings.breakInterval includeBreaksSwitch.checked = controller.settings.includeBreaks + cyclesModeSwitch.checked = controller.settings.cyclesMode cycleBreakDurationSelector.time = controller.settings.cycleBreakDuration cycleIterationsSpin.value = controller.settings.cycleIterations @@ -44,6 +45,7 @@ SettingsPage { controller.settings.breakInterval = breakIntervalSelector.time controller.settings.includeBreaks = includeBreaksSwitch.checked + controller.settings.cyclesMode = cyclesModeSwitch.checked controller.settings.cycleBreakDuration = cycleBreakDurationSelector.time controller.settings.cycleIterations = cycleIterationsSpin.value @@ -89,12 +91,19 @@ SettingsPage { Spacer {} // CYCLES SETTINGS - Label { - fontStyle: Style.font.formHeader - text: qsTr("Cycles") + FormElement { + labelFontStyle: Style.font.formHeader + labelText: qsTr("Cycles") + + CustomSwitch { + id: cyclesModeSwitch + Layout.alignment: Qt.AlignRight + } } FormElement { + enabled: cyclesModeSwitch.checked + labelText: qsTr("Cycle break duration:") TimeSelector { @@ -105,6 +114,8 @@ SettingsPage { } } FormElement { + enabled: cyclesModeSwitch.checked + labelText: qsTr("Cycle iterations:") CustomSpinBox { From 7eaf37fe0c1904889929bf050ec0fb60bcc6d8d2 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 17 Jul 2020 15:09:55 +0200 Subject: [PATCH 028/208] #7 Fix names to be consistet across the application: work period -> break interval --- cpp/controller/controller.cpp | 22 +++++++++++----------- cpp/controller/controller.h | 4 ++-- cpp/controller/timercontroller.cpp | 16 ++++++++-------- cpp/controller/timercontroller.h | 10 +++++----- cpp/view/traymanager.cpp | 4 ++-- cpp/workers/backupmanager.cpp | 6 +++--- cpp/workers/backupmanager.h | 2 +- qml/MainContent.qml | 2 +- 8 files changed, 33 insertions(+), 33 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index dfacf47..5025b0d 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -34,7 +34,7 @@ Controller::Controller() connect(this, &Controller::currentIterationChanged, this, [this] { emit isCycleBreakChanged(isCycleBreak()); }); connect(&m_timerController, &TimerController::elapsedBreakDurationChanged, this, &Controller::onElapsedBreakDurationChange); - connect(&m_timerController, &TimerController::elapsedWorkPeriodChanged, this, &Controller::onElapsedWorkPeriodChange); + connect(&m_timerController, &TimerController::elapsedBreakIntervalChanged, this, &Controller::onElapsedBreakIntervalChange); connect(&m_timerController, &TimerController::elapsedWorkTimeChanged, this, &Controller::onElapsedWorkTimeChange); connect(&m_settingsController, &SettingsController::breakIntervalChanged, this, &Controller::onBreakIntervalChanged); @@ -198,14 +198,14 @@ void Controller::startBreak() } void Controller::postponeBreak() { - m_postponeDuration += (timer().elapsedWorkPeriod() - m_lastRequestTime) + settings().postponeTime(); + m_postponeDuration += (timer().elapsedBreakInterval() - m_lastRequestTime) + settings().postponeTime(); } void Controller::startWork() { incrementCurrentIteration(); m_postponeDuration = m_lastRequestTime = 0; - timer().setElapsedWorkPeriod(0); + timer().setElapsedBreakInterval(0); if (m_settingsController.includeBreaks()) { const auto breakTimeSet = isCycleBreak() ? m_settingsController.cycleBreakDuration() @@ -238,9 +238,9 @@ void Controller::onBackupData(const BackupManager::Data &data) } timer().setElapsedBreakDuration(0); - timer().setElapsedWorkPeriod(data.elapsedWorkPeriod); + timer().setElapsedBreakInterval(data.elapsedBreakInterval); timer().setElapsedWorkTime(data.elapsedWorkTime); - if (data.elapsedWorkPeriod >= settings().breakInterval()) { + if (data.elapsedBreakInterval >= settings().breakInterval()) { postponeBreak(); } @@ -259,17 +259,17 @@ void Controller::onElapsedBreakDurationChange(int elapsedBreakDuration) } } -void Controller::onElapsedWorkPeriodChange(int elapsedWorkPeriod) +void Controller::onElapsedBreakIntervalChange(int elapsedBreakInterval) { // check if break is needed: - if (elapsedWorkPeriod == settings().breakInterval() + m_postponeDuration) // break should be taken now + if (elapsedBreakInterval == settings().breakInterval() + m_postponeDuration) // break should be taken now { - m_lastRequestTime = elapsedWorkPeriod; + m_lastRequestTime = elapsedBreakInterval; emit breakStartRequest(); // inform about it } // update backup manager - m_backupManager.data().elapsedWorkPeriod = elapsedWorkPeriod; + m_backupManager.data().elapsedBreakInterval = elapsedBreakInterval; } void Controller::onElapsedWorkTimeChange(int elapsedWorkTime) @@ -287,8 +287,8 @@ void Controller::onElapsedWorkTimeChange(int elapsedWorkTime) void Controller::onBreakIntervalChanged(int breakInterval) { m_postponeDuration = 0; // clear postpones - auto elapsedWorkPeriod = timer().elapsedWorkPeriod(); - if (elapsedWorkPeriod > breakInterval) // break should be taken now + auto elapsedBreakInterval = timer().elapsedBreakInterval(); + if (elapsedBreakInterval > breakInterval) // break should be taken now { m_lastRequestTime = breakInterval; emit breakStartRequest(); // inform about it diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 8270830..ceccbdf 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -135,9 +135,9 @@ private slots: * Check if break is needed and informs about it. * Takes into account also postponing of break. * - * \param elapsedWorkPeriod elapsed time of work period. + * \param elapsedBreakInterval elapsed time from the last break. */ - void onElapsedWorkPeriodChange(int elapsedWorkPeriod); + void onElapsedBreakIntervalChange(int elapsedBreakInterval); /*! * \brief Method handling change in total work time elapsed. * diff --git a/cpp/controller/timercontroller.cpp b/cpp/controller/timercontroller.cpp index 8689a6b..993cbec 100644 --- a/cpp/controller/timercontroller.cpp +++ b/cpp/controller/timercontroller.cpp @@ -36,9 +36,9 @@ int TimerController::elapsedBreakDuration() const return m_elapsedBreakDuration; } -int TimerController::elapsedWorkPeriod() const +int TimerController::elapsedBreakInterval() const { - return m_elapsedWorkPeriod; + return m_elapsedBreakInterval; } int TimerController::elapsedWorkTime() const @@ -57,7 +57,7 @@ void TimerController::start(bool restart) { // set initial state setElapsedBreakDuration(0); - setElapsedWorkPeriod(0); + setElapsedBreakInterval(0); setElapsedWorkTime(0); } @@ -99,15 +99,15 @@ void TimerController::setElapsedBreakDuration(int elapsedBreakDuration) m_elapsedBreakDuration = elapsedBreakDuration; emit elapsedBreakDurationChanged(elapsedBreakDuration); } -void TimerController::setElapsedWorkPeriod(int elapsedWorkPeriod) +void TimerController::setElapsedBreakInterval(int elapsedBreakInterval) { - if (m_elapsedWorkPeriod == elapsedWorkPeriod) + if (m_elapsedBreakInterval == elapsedBreakInterval) { return; } - m_elapsedWorkPeriod = elapsedWorkPeriod; - emit elapsedWorkPeriodChanged(elapsedWorkPeriod); + m_elapsedBreakInterval = elapsedBreakInterval; + emit elapsedBreakIntervalChanged(elapsedBreakInterval); } void TimerController::setElapsedWorkTime(int elapsedWorkTime) { @@ -122,7 +122,7 @@ void TimerController::setElapsedWorkTime(int elapsedWorkTime) void TimerController::incrementWorkTime() { - setElapsedWorkPeriod(elapsedWorkPeriod() + 1); + setElapsedBreakInterval(elapsedBreakInterval() + 1); setElapsedWorkTime(elapsedWorkTime() + 1); } void TimerController::incrementBreakTime() diff --git a/cpp/controller/timercontroller.h b/cpp/controller/timercontroller.h index 9e0ec4b..eff86c6 100644 --- a/cpp/controller/timercontroller.h +++ b/cpp/controller/timercontroller.h @@ -31,7 +31,7 @@ class TimerController final : public QObject Q_OBJECT Q_PROPERTY(int elapsedBreakDuration READ elapsedBreakDuration NOTIFY elapsedBreakDurationChanged) - Q_PROPERTY(int elapsedWorkPeriod READ elapsedWorkPeriod NOTIFY elapsedWorkPeriodChanged) + Q_PROPERTY(int elapsedBreakInterval READ elapsedBreakInterval NOTIFY elapsedBreakIntervalChanged) Q_PROPERTY(int elapsedWorkTime READ elapsedWorkTime NOTIFY elapsedWorkTimeChanged) Q_PROPERTY(PeriodType activePeriodType READ activePeriodType NOTIFY activePeriodTypeChanged) @@ -45,14 +45,14 @@ class TimerController final : public QObject explicit TimerController(QObject *parent = 0); int elapsedBreakDuration() const; - int elapsedWorkPeriod() const; + int elapsedBreakInterval() const; int elapsedWorkTime() const; PeriodType activePeriodType() const; signals: void elapsedBreakDurationChanged(int elapsedBreakDuration) const; - void elapsedWorkPeriodChanged(int elapsedWorkPeriod) const; + void elapsedBreakIntervalChanged(int elapsedBreakInterval) const; void elapsedWorkTimeChanged(int elapsedWorkTime) const; void activePeriodTypeChanged(PeriodType activePeriodType) const; @@ -65,7 +65,7 @@ public slots: void countWorkTime(); void setElapsedBreakDuration(int elapsedBreakDuration); - void setElapsedWorkPeriod(int elapsedWorkPeriod); + void setElapsedBreakInterval(int elapsedBreakInterval); void setElapsedWorkTime(int elapsedWorkTime); private: @@ -74,7 +74,7 @@ public slots: PeriodType m_periodType = PeriodType::Work; int m_elapsedBreakDuration = 0; - int m_elapsedWorkPeriod = 0; + int m_elapsedBreakInterval = 0; int m_elapsedWorkTime = 0; private slots: diff --git a/cpp/view/traymanager.cpp b/cpp/view/traymanager.cpp index 60762b8..cf02ad8 100644 --- a/cpp/view/traymanager.cpp +++ b/cpp/view/traymanager.cpp @@ -97,7 +97,7 @@ void TrayManager::initTrayIcon() this, &TrayManager::updateToolTip); connect(&m_controller.settings(), &SettingsController::workTimeChanged, this, &TrayManager::updateToolTip); - connect(&m_controller.timer(), &TimerController::elapsedWorkPeriodChanged, + connect(&m_controller.timer(), &TimerController::elapsedBreakIntervalChanged, this, &TrayManager::updateToolTip); connect(&m_controller.timer(), &TimerController::elapsedWorkTimeChanged, this, &TrayManager::updateToolTip); @@ -229,7 +229,7 @@ void TrayManager::updateToolTip() "WORK TIME:\n" "%3 / %4"); m_trayIcon.setToolTip(tooltipTemplate - .arg(Helpers::formatTime(m_controller.timer().elapsedWorkPeriod()) ) + .arg(Helpers::formatTime(m_controller.timer().elapsedBreakInterval()) ) .arg(Helpers::formatTime(m_controller.settings().breakInterval()) ) .arg(Helpers::formatTime(m_controller.timer().elapsedWorkTime()) ) .arg(Helpers::formatTime(m_controller.settings().workTime()) ) diff --git a/cpp/workers/backupmanager.cpp b/cpp/workers/backupmanager.cpp index bf6ac58..92945b9 100644 --- a/cpp/workers/backupmanager.cpp +++ b/cpp/workers/backupmanager.cpp @@ -151,18 +151,18 @@ void BackupManager::doBackup() bool BackupManager::Data::isEmpty() { - return (elapsedWorkPeriod == 0 && + return (elapsedBreakInterval == 0 && elapsedWorkTime == 0 ); } QDataStream &operator<<(QDataStream &stream, const BackupManager::Data &data) { - stream << data.elapsedWorkPeriod << data.elapsedWorkTime; + stream << data.elapsedBreakInterval << data.elapsedWorkTime; return stream; } QDataStream &operator>>(QDataStream &stream, BackupManager::Data &data) { - stream >> data.elapsedWorkPeriod; + stream >> data.elapsedBreakInterval; stream >> data.elapsedWorkTime; return stream; } diff --git a/cpp/workers/backupmanager.h b/cpp/workers/backupmanager.h index d1a4334..65008e2 100644 --- a/cpp/workers/backupmanager.h +++ b/cpp/workers/backupmanager.h @@ -40,7 +40,7 @@ class BackupManager final : public QObject * \brief Structure used to save and restore the data. */ struct Data { - int elapsedWorkPeriod = 0; + int elapsedBreakInterval = 0; int elapsedWorkTime = 0; bool isEmpty(); diff --git a/qml/MainContent.qml b/qml/MainContent.qml index da116bb..2391047 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -102,7 +102,7 @@ Item { Layout.fillWidth: true maxValue: controller.settings.breakInterval - value: controller.timer.elapsedWorkPeriod + value: controller.timer.elapsedBreakInterval } Label { From 734176c412bb17eb1385d01ce420a97b804622df Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 17 Jul 2020 18:27:07 +0200 Subject: [PATCH 029/208] Code review changes. --- js/resourceInfo.js | 8 +++--- qml/MainContent.qml | 11 +++----- qml/components/TimeProgressBar.qml | 40 ++++++++++++++---------------- 3 files changed, 26 insertions(+), 33 deletions(-) diff --git a/js/resourceInfo.js b/js/resourceInfo.js index 224d3a2..69d69d0 100644 --- a/js/resourceInfo.js +++ b/js/resourceInfo.js @@ -27,7 +27,7 @@ var licences = { "CC-BY-SA-3.0": { "name": "CC BY-SA 3.0", "url": "https://creativecommons.org/licenses/by-sa/3.0/" }, "CC-BY-NC-ND-3.0": { "name": "CC BY-NC-ND 3.0", "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/" }, "OFL": { "name": "OFL", "url": "http://scripts.sil.org/OFL" }, - "Freepik": { "name": "Freepik terms of use", "url": "https://www.freepikcompany.com/legal#nav-freepik" } + "Flaticon": { "name": "Flaticon terms of use", "url": "https://www.freepikcompany.com/legal#nav-flaticon" } } var resources = [ @@ -67,11 +67,11 @@ var resources = [ "additionalInfo": "" }, { - "name": "flaticon", - "url": "https://www.flaticon.com", + "name": "Pencil edit button", + "url": "https://www.flaticon.com/free-icon/pencil-edit-button_61456", "author": "Freepik", "authorUrl": "https://www.flaticon.com/authors/freepik", - "licence": "Freepik", + "licence": "Flaticon", "additionalInfo": qsTr("Edit button colors changed") }] }, diff --git a/qml/MainContent.qml b/qml/MainContent.qml index bc41df2..394c706 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -108,14 +108,14 @@ Item { } ImageButton { - enabled: !nextBreakTimeProgressBar.timeEditionInProgress + enabled: !nextBreakTimeProgressBar.timeEditMode styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit next break") onClicked: { - nextBreakTimeProgressBar.startTimeEdition() + nextBreakTimeProgressBar.timeEditMode = true } } @@ -134,21 +134,18 @@ Item { { var timeDiff = newValue - controller.timer.elapsedWorkTime controller.timer.elapsedWorkTime = newValue - - var newElapsedWorkTime = controller.timer.elapsedWorkPeriod + timeDiff - controller.timer.elapsedWorkPeriod = Math.max(newElapsedWorkTime, 0) } } ImageButton { - enabled: !workTimeProgressBar.timeEditionInProgress + enabled: !workTimeProgressBar.timeEditMode styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit work time") onClicked: { - workTimeProgressBar.startTimeEdition() + workTimeProgressBar.timeEditMode = true } } } diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index d49b479..943b884 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -31,30 +31,26 @@ Item { property int minValue: 0 property int maxValue: 100 property int value: 0 - - readonly property bool timeEditionInProgress: textEditableInput.visible + property bool timeEditMode: false implicitHeight: text.font.pixelSize*1.4 implicitWidth: 200 signal timeValueChanged(var newValue) - function startTimeEdition() + onTimeEditModeChanged: { - if(textEditableInput.visible) + if(timeEditMode) { - return + textEditableInput.visible = true + textEditableInput.focus = true + textEditableInput.text = text.text.replace(/ /g, '') + } + else + { + textEditableInput.visible = false + textEditableInput.focus = false } - - textEditableInput.visible = true - textEditableInput.focus = true - textEditableInput.text = text.text.replace(/ /g, '') - } - - function endTimeEdition() - { - textEditableInput.visible = false - textEditableInput.focus = false } QtObject { @@ -132,7 +128,7 @@ Item { Label { id: text anchors.fill: parent - visible: !root.timeEditionInProgress + visible: !timeEditMode fontStyle: Style.timeBar.font verticalAlignment: Text.AlignVCenter @@ -151,7 +147,7 @@ Item { LabelInput { id: textEditableInput anchors.fill: parent - visible: false + visible: timeEditMode cursorVisible: true @@ -166,19 +162,19 @@ Item { onAccepted: { timeValueChanged(d.deFormatTime(textEditableInput.text)) - visible = false + timeEditMode = false } Keys.onEscapePressed: { - endTimeEdition() + timeEditMode = false } onFocusChanged: { if(!focus) { - endTimeEdition() + timeEditMode = false } } } @@ -189,14 +185,14 @@ Item { acceptedButtons: Qt.LeftButton | Qt.RightButton onDoubleClicked: { - startTimeEdition() + timeEditMode = true } onClicked: { if(mouse.button === Qt.RightButton) { - endTimeEdition() + timeEditMode = false } } } From 290d5d67762d0d0018efc1061222dbaea2e25059 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Thu, 23 Jul 2020 14:42:56 +0200 Subject: [PATCH 030/208] #7 Support for cycles in BackupManager --- cpp/controller/controller.cpp | 33 ++++++++++++++++++++++----------- cpp/controller/controller.h | 1 + cpp/workers/backupmanager.cpp | 3 ++- cpp/workers/backupmanager.h | 1 + 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index 5025b0d..5ec6ff9 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -80,21 +80,31 @@ UpdateController *Controller::updaterPtr() return &m_updateController; } -void Controller::resetCurrentIteration() +void Controller::setCurrentIteration(int iteration) { - m_currentIteration = 0; + if (m_currentIteration == iteration) + return; + + m_currentIteration = iteration; emit currentIterationChanged(m_currentIteration); + + // update backup manager + m_backupManager.data().currentIteration = m_currentIteration; +} + +void Controller::resetCurrentIteration() +{ + setCurrentIteration(0); } void Controller::incrementCurrentIteration() { - if (m_currentIteration == m_settingsController.cycleIterations()) { - m_currentIteration = 1; - } else { - m_currentIteration++; + auto iteration = m_currentIteration + 1; + if (iteration > m_settingsController.cycleIterations()) { + iteration = 1; } - emit currentIterationChanged(m_currentIteration); + setCurrentIteration(iteration); } Controller::State Controller::state() const @@ -109,7 +119,9 @@ bool Controller::isWorking() const void Controller::save() { - m_saveManager.save(); + if (isWorking()) { + m_saveManager.save(); + } } void Controller::clear() @@ -192,9 +204,6 @@ void Controller::startBreak() { timer().setElapsedBreakDuration(0); timer().countBreakTime(); - - // update backup manager - m_backupManager.data().elapsedWorkTime = 0; } void Controller::postponeBreak() { @@ -244,6 +253,8 @@ void Controller::onBackupData(const BackupManager::Data &data) postponeBreak(); } + setCurrentIteration(data.currentIteration); + setState(State::Recovered); // set recovered state to avoid restart if (wasWorking) { start(); diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index ceccbdf..29b41e6 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -113,6 +113,7 @@ public slots: TimerController *timerPtr(); UpdateController *updaterPtr(); + void setCurrentIteration(int iteration); void resetCurrentIteration(); void incrementCurrentIteration(); diff --git a/cpp/workers/backupmanager.cpp b/cpp/workers/backupmanager.cpp index 92945b9..6646b0a 100644 --- a/cpp/workers/backupmanager.cpp +++ b/cpp/workers/backupmanager.cpp @@ -157,12 +157,13 @@ bool BackupManager::Data::isEmpty() QDataStream &operator<<(QDataStream &stream, const BackupManager::Data &data) { - stream << data.elapsedBreakInterval << data.elapsedWorkTime; + stream << data.elapsedBreakInterval << data.elapsedWorkTime << data.currentIteration; return stream; } QDataStream &operator>>(QDataStream &stream, BackupManager::Data &data) { stream >> data.elapsedBreakInterval; stream >> data.elapsedWorkTime; + stream >> data.currentIteration; return stream; } diff --git a/cpp/workers/backupmanager.h b/cpp/workers/backupmanager.h index 65008e2..72e74e8 100644 --- a/cpp/workers/backupmanager.h +++ b/cpp/workers/backupmanager.h @@ -42,6 +42,7 @@ class BackupManager final : public QObject struct Data { int elapsedBreakInterval = 0; int elapsedWorkTime = 0; + int currentIteration = 0; bool isEmpty(); }; From 18f28432b9a31d96eef3e91b1d0fd7f1cba4928e Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Thu, 23 Jul 2020 14:47:02 +0200 Subject: [PATCH 031/208] #7 Fix wrong pause behavior --- cpp/controller/controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index 5ec6ff9..25e8e2d 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -155,9 +155,9 @@ void Controller::start() switch (m_state) { case State::Off: - case State::Paused: startWork(); [[fallthrough]]; + case State::Paused: case State::Recovered: timer().start( (m_state == State::Off) ); // restart only from Off setState(State::Working); From fdc8e93c6d96a2c9e7ed2335cb8e4374a15fde2f Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 24 Jul 2020 17:57:25 +0200 Subject: [PATCH 032/208] Code review. Remove slot and move releated code to input. --- qml/components/TimeProgressBar.qml | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 943b884..8bce9d5 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -33,26 +33,11 @@ Item { property int value: 0 property bool timeEditMode: false - implicitHeight: text.font.pixelSize*1.4 + implicitHeight: textLabel.font.pixelSize * 1.4 implicitWidth: 200 signal timeValueChanged(var newValue) - onTimeEditModeChanged: - { - if(timeEditMode) - { - textEditableInput.visible = true - textEditableInput.focus = true - textEditableInput.text = text.text.replace(/ /g, '') - } - else - { - textEditableInput.visible = false - textEditableInput.focus = false - } - } - QtObject { id: d @@ -126,7 +111,7 @@ Item { Layout.fillHeight: true Layout.fillWidth: true Label { - id: text + id: textLabel anchors.fill: parent visible: !timeEditMode fontStyle: Style.timeBar.font @@ -148,6 +133,11 @@ Item { id: textEditableInput anchors.fill: parent visible: timeEditMode + focus: visible + onVisibleChanged: + { + text = textLabel.text.replace(/ /g, '') + } cursorVisible: true From 723073592345f10394fbac938ec7a8152984cfe2 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 31 Jul 2020 14:17:15 +0200 Subject: [PATCH 033/208] #7 Extract cycles related code into a separate controller --- Resto.pro | 2 + cpp/controller/controller.cpp | 73 ++++++++++------------------- cpp/controller/controller.h | 47 ++++++++++++------- cpp/controller/cyclescontroller.cpp | 63 +++++++++++++++++++++++++ cpp/controller/cyclescontroller.h | 59 +++++++++++++++++++++++ qml/MainContent.qml | 2 +- qml/dialogs/BreakDialog.qml | 8 ++-- 7 files changed, 185 insertions(+), 69 deletions(-) create mode 100644 cpp/controller/cyclescontroller.cpp create mode 100644 cpp/controller/cyclescontroller.h diff --git a/Resto.pro b/Resto.pro index f90c007..e3c1dae 100644 --- a/Resto.pro +++ b/Resto.pro @@ -7,6 +7,7 @@ INCLUDEPATH += cpp/ SOURCES += cpp/main.cpp \ cpp/controller/controller.cpp \ + cpp/controller/cyclescontroller.cpp \ cpp/model/settings.cpp \ cpp/controller/settingscontroller.cpp \ cpp/controller/timercontroller.cpp \ @@ -21,6 +22,7 @@ RESOURCES += qml.qrc HEADERS += \ cpp/controller/controller.h \ + cpp/controller/cyclescontroller.h \ cpp/model/settings.h \ cpp/controller/settingscontroller.h \ cpp/controller/timercontroller.h \ diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index 25e8e2d..02d9e2f 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -28,15 +28,16 @@ #include Controller::Controller() - : m_updateController(m_settingsController, QUrl(QString("http://%1").arg(APP_VERSION_URL)) ), + : m_cyclesController(m_settingsController), + m_updateController(m_settingsController, QUrl(QString("http://%1").arg(APP_VERSION_URL)) ), m_saveManager(m_backupManager) { - connect(this, &Controller::currentIterationChanged, this, [this] { emit isCycleBreakChanged(isCycleBreak()); }); - connect(&m_timerController, &TimerController::elapsedBreakDurationChanged, this, &Controller::onElapsedBreakDurationChange); connect(&m_timerController, &TimerController::elapsedBreakIntervalChanged, this, &Controller::onElapsedBreakIntervalChange); connect(&m_timerController, &TimerController::elapsedWorkTimeChanged, this, &Controller::onElapsedWorkTimeChange); + connect(&m_cyclesController, &CyclesController::currentIterationChanged, this, &Controller::onCycleCurrentIterationChange); + connect(&m_settingsController, &SettingsController::breakIntervalChanged, this, &Controller::onBreakIntervalChanged); connect(&m_settingsController, &SettingsController::workTimeChanged, this, &Controller::onWorkTimeChanged); @@ -66,6 +67,11 @@ TimerController &Controller::timer() return m_timerController; } +CyclesController &Controller::cycles() +{ + return m_cyclesController; +} + UpdateController &Controller::updater() { return m_updateController; @@ -75,36 +81,14 @@ TimerController *Controller::timerPtr() return &m_timerController; } -UpdateController *Controller::updaterPtr() -{ - return &m_updateController; -} - -void Controller::setCurrentIteration(int iteration) -{ - if (m_currentIteration == iteration) - return; - - m_currentIteration = iteration; - emit currentIterationChanged(m_currentIteration); - - // update backup manager - m_backupManager.data().currentIteration = m_currentIteration; -} - -void Controller::resetCurrentIteration() +CyclesController *Controller::cyclesPtr() { - setCurrentIteration(0); + return &m_cyclesController; } -void Controller::incrementCurrentIteration() +UpdateController *Controller::updaterPtr() { - auto iteration = m_currentIteration + 1; - if (iteration > m_settingsController.cycleIterations()) { - iteration = 1; - } - - setCurrentIteration(iteration); + return &m_updateController; } Controller::State Controller::state() const @@ -140,16 +124,6 @@ void Controller::openHelp() const QDesktopServices::openUrl(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/help.pdf")); } -int Controller::currentIteration() const -{ - return m_currentIteration; -} - -bool Controller::isCycleBreak() const -{ - return m_currentIteration == m_settingsController.cycleIterations(); -} - void Controller::start() { switch (m_state) @@ -189,6 +163,7 @@ void Controller::stop() case State::Working: setState(State::Off); timer().stop(); + cycles().resetCurrentIteration(); m_backupManager.stop(); m_backupManager.cleanup(); break; @@ -196,8 +171,6 @@ void Controller::stop() qWarning() << "Stop requested in unsupported state"; break; } - - resetCurrentIteration(); } void Controller::startBreak() @@ -211,14 +184,15 @@ void Controller::postponeBreak() } void Controller::startWork() { - incrementCurrentIteration(); + cycles().incrementCurrentIteration(); m_postponeDuration = m_lastRequestTime = 0; timer().setElapsedBreakInterval(0); if (m_settingsController.includeBreaks()) { - const auto breakTimeSet = isCycleBreak() ? m_settingsController.cycleBreakDuration() - : m_settingsController.breakDuration(); + const auto breakTimeSet = cycles().isCycleFinished() + ? m_settingsController.cycleBreakDuration() + : m_settingsController.breakDuration(); const auto breakTimeToInclude = qMin(timer().elapsedBreakDuration(), breakTimeSet); timer().setElapsedWorkTime(timer().elapsedWorkTime() + breakTimeToInclude); } @@ -229,8 +203,7 @@ void Controller::startWork() void Controller::setState(Controller::State state) { - if (m_state == state) - { + if (m_state == state) { return; } @@ -253,7 +226,7 @@ void Controller::onBackupData(const BackupManager::Data &data) postponeBreak(); } - setCurrentIteration(data.currentIteration); + cycles().setCurrentIteration(data.currentIteration); setState(State::Recovered); // set recovered state to avoid restart if (wasWorking) { @@ -295,6 +268,12 @@ void Controller::onElapsedWorkTimeChange(int elapsedWorkTime) m_backupManager.data().elapsedWorkTime = elapsedWorkTime; } +void Controller::onCycleCurrentIterationChange(int currentIteration) +{ + // update backup manager + m_backupManager.data().currentIteration = currentIteration; +} + void Controller::onBreakIntervalChanged(int breakInterval) { m_postponeDuration = 0; // clear postpones diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 29b41e6..5eab491 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -27,6 +27,7 @@ #include "settingscontroller.h" #include "timercontroller.h" +#include "cyclescontroller.h" #include "updatecontroller.h" #include "workers/backupmanager.h" @@ -39,9 +40,8 @@ class Controller final : public QObject Q_PROPERTY(SettingsController* settings READ settingsPtr CONSTANT) Q_PROPERTY(TimerController* timer READ timerPtr CONSTANT) + Q_PROPERTY(CyclesController* cycles READ cyclesPtr CONSTANT) Q_PROPERTY(UpdateController* updater READ updaterPtr CONSTANT) - Q_PROPERTY(int currentIteration READ currentIteration NOTIFY currentIterationChanged) - Q_PROPERTY(bool isCycleBreak READ isCycleBreak NOTIFY isCycleBreakChanged) Q_PROPERTY(State state READ state NOTIFY stateChanged) @@ -57,6 +57,7 @@ class Controller final : public QObject Controller(); SettingsController &settings(); TimerController &timer(); + CyclesController &cycles(); UpdateController &updater(); State state() const; @@ -69,9 +70,6 @@ class Controller final : public QObject Q_INVOKABLE void openHelp() const; - int currentIteration() const; - bool isCycleBreak() const; - signals: void stateChanged(State state) const; @@ -81,9 +79,6 @@ class Controller final : public QObject void exitRequest() const; - void currentIterationChanged(int currentIteration); - void isCycleBreakChanged(bool isCycleBreak); - public slots: void start(); void pause(); @@ -97,6 +92,7 @@ public slots: // controllers SettingsController m_settingsController; TimerController m_timerController; + CyclesController m_cyclesController; UpdateController m_updateController; // workers @@ -111,19 +107,23 @@ public slots: SettingsController *settingsPtr(); TimerController *timerPtr(); + CyclesController *cyclesPtr(); UpdateController *updaterPtr(); - void setCurrentIteration(int iteration); - void resetCurrentIteration(); - void incrementCurrentIteration(); - private slots: void setState(State state); + // TIMER CONTROLLER + /*! + * \brief Method handles restored backup data + * to update application state. + * + * \param data backupData + */ void onBackupData(const BackupManager::Data &data); /*! - * \brief Method handling change in elapsed time of break. + * \brief Method handles a change in elapsed time of break. * * Check if end should be finished and informs about this. * @@ -131,25 +131,38 @@ private slots: */ void onElapsedBreakDurationChange(int elapsedBreakDuration); /*! - * \brief Method handling change in elapsed time of work period. + * \brief Method handles a change in elapsed time of work period. * * Check if break is needed and informs about it. * Takes into account also postponing of break. + * Updates backup data. * * \param elapsedBreakInterval elapsed time from the last break. */ void onElapsedBreakIntervalChange(int elapsedBreakInterval); /*! - * \brief Method handling change in total work time elapsed. + * \brief Method handles a change in total work time elapsed. * * Check if work should be finished and informs about it. + * Updates backup data. * * \param elapsedWorkTime total work time elapsed */ void onElapsedWorkTimeChange(int elapsedWorkTime); + // CYCLES CONTROLLER + /*! + * \brief Method handles a change in current iteration counter. + * + * Updates backup data. + * + * \param currentIteration current cycle iteration + */ + void onCycleCurrentIterationChange(int currentIteration); + + // SETTINGS CONTROLLER /*! - * \brief Method handling change in break interval. + * \brief Method handles a change in break interval. * * Takes into compare current elapsed times and postpone duration. * @@ -157,7 +170,7 @@ private slots: */ void onBreakIntervalChanged(int breakInterval); /*! - * \brief Method handling change in work time. + * \brief Method handles a change in work time. * * \param workTime new work time setting */ diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp new file mode 100644 index 0000000..fc2e906 --- /dev/null +++ b/cpp/controller/cyclescontroller.cpp @@ -0,0 +1,63 @@ +/******************************************** +** +** Copyright 2016 JustCode Justyna Kulinska +** +** This file is part of Resto. +** +** Resto is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** any later version. +** +** Resto is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Resto; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +********************************************/ + +#include "cyclescontroller.h" + +CyclesController::CyclesController(SettingsController &settingsController, QObject *parent) + : QObject(parent), m_settingsController(settingsController) +{ + connect(this, &CyclesController::currentIterationChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); +} + +int CyclesController::currentIteration() const +{ + return m_currentIteration; +} + +bool CyclesController::isCycleFinished() const +{ + return m_currentIteration == m_settingsController.cycleIterations(); +} + +void CyclesController::setCurrentIteration(int iteration) +{ + if (m_currentIteration == iteration) + return; + + m_currentIteration = iteration; + emit currentIterationChanged(m_currentIteration); +} + +void CyclesController::resetCurrentIteration() +{ + setCurrentIteration(0); +} + +void CyclesController::incrementCurrentIteration() +{ + auto iteration = m_currentIteration + 1; + if (iteration > m_settingsController.cycleIterations()) { + iteration = 1; + } + + setCurrentIteration(iteration); +} diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h new file mode 100644 index 0000000..32fd480 --- /dev/null +++ b/cpp/controller/cyclescontroller.h @@ -0,0 +1,59 @@ +/******************************************** +** +** Copyright 2020 JustCode Justyna Kulinska +** +** This file is part of Resto. +** +** Resto is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** any later version. +** +** Resto is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with Resto; if not, write to the Free Software +** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +** +********************************************/ + +#ifndef CYCLESCONTROLLER_H +#define CYCLESCONTROLLER_H + +#include + +#include "settingscontroller.h" + +class CyclesController final : public QObject +{ + Q_OBJECT + Q_ENUMS(State) + + Q_PROPERTY(int currentIteration READ currentIteration NOTIFY currentIterationChanged) + Q_PROPERTY(bool isCycleFinished READ isCycleFinished NOTIFY isCycleFinishedChanged) + +public: + CyclesController(SettingsController &settingsController, QObject *parent = 0); + + int currentIteration() const; + bool isCycleFinished() const; + +signals: + void currentIterationChanged(int currentIteration) const; + void isCycleFinishedChanged(bool isCycleFinished) const; + +public slots: + void setCurrentIteration(int iteration); + void resetCurrentIteration(); + void incrementCurrentIteration(); + +private: + SettingsController &m_settingsController; + + int m_currentIteration = 0; +}; + +#endif // CYCLESCONTROLLER_H diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 2391047..81e6ec0 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -92,7 +92,7 @@ Item { text: qsTr("Current iteration:") } Label { - text: controller.currentIteration + text: controller.cycles.currentIteration } Label { diff --git a/qml/dialogs/BreakDialog.qml b/qml/dialogs/BreakDialog.qml index 71882b1..106b851 100644 --- a/qml/dialogs/BreakDialog.qml +++ b/qml/dialogs/BreakDialog.qml @@ -33,8 +33,8 @@ CustomDialog { endButton.text = qsTr("Abort"); } - title: controller.isCycleBreak ? qsTr("Take a long break!") - : qsTr("Time for a break!") + title: controller.cycles.isCycleFinished ? qsTr("Take a long break!") + : qsTr("Time for a break!") description: qsTr("Break time:") image.source: "qrc:/resources/images/break.png" @@ -64,8 +64,8 @@ CustomDialog { additionalContent.fillWidth: true additionalContent.data: TimeProgressBar { width: parent.width - maxValue: controller.isCycleBreak ? controller.settings.cycleBreakDuration - : controller.settings.breakDuration + maxValue: controller.cycles.isCycleFinished ? controller.settings.cycleBreakDuration + : controller.settings.breakDuration value: controller.timer.elapsedBreakDuration } From 58707c4be26693ebe2a4e276b9dcd78c3465a40d Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 31 Jul 2020 14:17:41 +0200 Subject: [PATCH 034/208] #7 lesser fixes and improvements --- cpp/view/traymanager.cpp | 2 +- cpp/workers/singleappmanager.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/view/traymanager.cpp b/cpp/view/traymanager.cpp index cf02ad8..82f2aa9 100644 --- a/cpp/view/traymanager.cpp +++ b/cpp/view/traymanager.cpp @@ -165,7 +165,7 @@ void TrayManager::onWindowClosed() showInformationDialog(); } else { - if (m_controller.state() != Controller::State::Off && + if (m_controller.isWorking() && QMessageBox::question(nullptr, tr("Save"), tr("Do you want to save your state?")) == QMessageBox::Yes) { saveAndQuit(); } diff --git a/cpp/workers/singleappmanager.cpp b/cpp/workers/singleappmanager.cpp index 5f6cf7d..d6d30e6 100644 --- a/cpp/workers/singleappmanager.cpp +++ b/cpp/workers/singleappmanager.cpp @@ -42,7 +42,9 @@ bool SingleAppManager::isAnotherRunned() testSocket.write(sc_pingCommand.data()); testSocket.waitForBytesWritten(); testSocket.disconnectFromServer(); - testSocket.waitForDisconnected(); + if (testSocket.state() != QLocalSocket::UnconnectedState) { + testSocket.waitForDisconnected(); + } return true; } From 141da046c45994481ab49807eb5da03ef867529e Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 31 Jul 2020 14:40:18 +0200 Subject: [PATCH 035/208] #7 Support cycles mode off --- cpp/controller/controller.cpp | 66 ++++++++++++++++++----------- cpp/controller/controller.h | 8 ++++ cpp/controller/cyclescontroller.cpp | 7 ++- qml/MainContent.qml | 2 + qml/dialogs/BreakDialog.qml | 3 +- 5 files changed, 57 insertions(+), 29 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index 02d9e2f..189d9d6 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -40,6 +40,7 @@ Controller::Controller() connect(&m_settingsController, &SettingsController::breakIntervalChanged, this, &Controller::onBreakIntervalChanged); connect(&m_settingsController, &SettingsController::workTimeChanged, this, &Controller::onWorkTimeChanged); + connect(&m_settingsController, &SettingsController::cyclesModeChanged, this, &Controller::onCyclesModeChanged); connect(&m_updateController, &UpdateController::updateStarted, this, &Controller::exitRequest); connect(&m_backupManager, &BackupManager::backupData, this, &Controller::onBackupData); @@ -57,10 +58,6 @@ SettingsController &Controller::settings() { return m_settingsController; } -SettingsController *Controller::settingsPtr() -{ - return &m_settingsController; -} TimerController &Controller::timer() { @@ -76,6 +73,12 @@ UpdateController &Controller::updater() { return m_updateController; } + +SettingsController *Controller::settingsPtr() +{ + return &m_settingsController; +} + TimerController *Controller::timerPtr() { return &m_timerController; @@ -101,6 +104,13 @@ bool Controller::isWorking() const return (m_state == State::Working); } +int Controller::currentBreakDuration() const +{ + return m_cyclesController.isCycleFinished() + ? m_settingsController.cycleBreakDuration() + : m_settingsController.breakDuration(); +} + void Controller::save() { if (isWorking()) { @@ -133,7 +143,7 @@ void Controller::start() [[fallthrough]]; case State::Paused: case State::Recovered: - timer().start( (m_state == State::Off) ); // restart only from Off + m_timerController.start( (m_state == State::Off) ); // restart only from Off setState(State::Working); m_backupManager.start(); break; @@ -148,7 +158,7 @@ void Controller::pause() { case State::Working: setState(State::Paused); - timer().stop(); + m_timerController.stop(); m_backupManager.stop(); break; default: @@ -162,8 +172,8 @@ void Controller::stop() { case State::Working: setState(State::Off); - timer().stop(); - cycles().resetCurrentIteration(); + m_timerController.stop(); + m_cyclesController.resetCurrentIteration(); m_backupManager.stop(); m_backupManager.cleanup(); break; @@ -175,30 +185,29 @@ void Controller::stop() void Controller::startBreak() { - timer().setElapsedBreakDuration(0); - timer().countBreakTime(); + m_timerController.setElapsedBreakDuration(0); + m_timerController.countBreakTime(); } void Controller::postponeBreak() { - m_postponeDuration += (timer().elapsedBreakInterval() - m_lastRequestTime) + settings().postponeTime(); + m_postponeDuration += + (m_timerController.elapsedBreakInterval() - m_lastRequestTime) + + settings().postponeTime(); } void Controller::startWork() { - cycles().incrementCurrentIteration(); + m_cyclesController.incrementCurrentIteration(); m_postponeDuration = m_lastRequestTime = 0; - timer().setElapsedBreakInterval(0); + m_timerController.setElapsedBreakInterval(0); if (m_settingsController.includeBreaks()) { - const auto breakTimeSet = cycles().isCycleFinished() - ? m_settingsController.cycleBreakDuration() - : m_settingsController.breakDuration(); - const auto breakTimeToInclude = qMin(timer().elapsedBreakDuration(), breakTimeSet); - timer().setElapsedWorkTime(timer().elapsedWorkTime() + breakTimeToInclude); + const auto breakTimeToInclude = qMin(m_timerController.elapsedBreakDuration(), currentBreakDuration()); + m_timerController.setElapsedWorkTime(m_timerController.elapsedWorkTime() + breakTimeToInclude); } - timer().countWorkTime(); + m_timerController.countWorkTime(); } void Controller::setState(Controller::State state) @@ -219,14 +228,14 @@ void Controller::onBackupData(const BackupManager::Data &data) wasWorking = true; } - timer().setElapsedBreakDuration(0); - timer().setElapsedBreakInterval(data.elapsedBreakInterval); - timer().setElapsedWorkTime(data.elapsedWorkTime); + m_timerController.setElapsedBreakDuration(0); + m_timerController.setElapsedBreakInterval(data.elapsedBreakInterval); + m_timerController.setElapsedWorkTime(data.elapsedWorkTime); if (data.elapsedBreakInterval >= settings().breakInterval()) { postponeBreak(); } - cycles().setCurrentIteration(data.currentIteration); + m_cyclesController.setCurrentIteration(data.currentIteration); setState(State::Recovered); // set recovered state to avoid restart if (wasWorking) { @@ -277,7 +286,7 @@ void Controller::onCycleCurrentIterationChange(int currentIteration) void Controller::onBreakIntervalChanged(int breakInterval) { m_postponeDuration = 0; // clear postpones - auto elapsedBreakInterval = timer().elapsedBreakInterval(); + auto elapsedBreakInterval = m_timerController.elapsedBreakInterval(); if (elapsedBreakInterval > breakInterval) // break should be taken now { m_lastRequestTime = breakInterval; @@ -287,10 +296,17 @@ void Controller::onBreakIntervalChanged(int breakInterval) void Controller::onWorkTimeChanged(int workTime) { - auto elapsedWorkTime = timer().elapsedWorkTime(); + auto elapsedWorkTime = m_timerController.elapsedWorkTime(); if (elapsedWorkTime > workTime) // work should be finished now { emit workEndRequest(); // inform about it } } +void Controller::onCyclesModeChanged(bool cyclesMode) +{ + m_cyclesController.resetCurrentIteration(); + if (cyclesMode && m_state > State::Off) { + m_cyclesController.incrementCurrentIteration(); + } +} diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 5eab491..40aa2ff 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -63,6 +63,8 @@ class Controller final : public QObject State state() const; bool isWorking() const; + Q_INVOKABLE int currentBreakDuration() const; + void save(); void clear(); @@ -175,6 +177,12 @@ private slots: * \param workTime new work time setting */ void onWorkTimeChanged(int workTime); + /*! + * \brief Method handles a change cycles mode enabling. + * + * \param cyclesMode if cycles mode is enabled + */ + void onCyclesModeChanged(bool cyclesMode); }; #endif // CONTROLLER_H diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index fc2e906..12f2959 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -30,12 +30,15 @@ CyclesController::CyclesController(SettingsController &settingsController, QObje int CyclesController::currentIteration() const { - return m_currentIteration; + return m_settingsController.cyclesMode() ? m_currentIteration + : 0; } bool CyclesController::isCycleFinished() const { - return m_currentIteration == m_settingsController.cycleIterations(); + return m_settingsController.cyclesMode() + ? (m_currentIteration == m_settingsController.cycleIterations()) + : 0; } void CyclesController::setCurrentIteration(int iteration) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 81e6ec0..9e458ba 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -90,9 +90,11 @@ Item { Label { text: qsTr("Current iteration:") + visible: controller.settings.cyclesMode } Label { text: controller.cycles.currentIteration + visible: controller.settings.cyclesMode } Label { diff --git a/qml/dialogs/BreakDialog.qml b/qml/dialogs/BreakDialog.qml index 106b851..1a3db28 100644 --- a/qml/dialogs/BreakDialog.qml +++ b/qml/dialogs/BreakDialog.qml @@ -64,8 +64,7 @@ CustomDialog { additionalContent.fillWidth: true additionalContent.data: TimeProgressBar { width: parent.width - maxValue: controller.cycles.isCycleFinished ? controller.settings.cycleBreakDuration - : controller.settings.breakDuration + maxValue: controller.currentBreakDuration() value: controller.timer.elapsedBreakDuration } From 8e8f2fc8a2ac1979ed59577994220cc7f931009c Mon Sep 17 00:00:00 2001 From: mhudziak Date: Mon, 10 Aug 2020 18:53:08 +0200 Subject: [PATCH 036/208] Add input validation. --- qml/components/TimeProgressBar.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 8bce9d5..5ad91f5 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -20,7 +20,7 @@ ** ********************************************/ -import QtQuick 2.12 +import QtQuick 2.14 import QtQuick.Layouts 1.3 import "../style" import "helpers" @@ -148,6 +148,9 @@ Item { color: Style.highlightedApplicationColors[Style.mainColorIndex] inputMask: "99:99:99" + validator: RegularExpressionValidator { + regularExpression: /^[0-9][0-9]:[0-5][0-9]:[0-5][0-9]/ + } onAccepted: { From c4e5ae8cd5e13e1d7eab635d895a354959321416 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Mon, 10 Aug 2020 20:08:06 +0200 Subject: [PATCH 037/208] Add timer stopping when crossing the limits. --- cpp/controller/controller.cpp | 11 +++++++++ cpp/controller/controller.h | 7 +++++- cpp/controller/timercontroller.cpp | 37 ++++++++++++++++++++++-------- cpp/controller/timercontroller.h | 1 + 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index cfb7a02..a96d69a 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -34,6 +34,7 @@ Controller::Controller() connect(&m_timerController, &TimerController::elapsedBreakDurationChanged, this, &Controller::onElapsedBreakDurationChange); connect(&m_timerController, &TimerController::elapsedWorkPeriodChanged, this, &Controller::onElapsedWorkPeriodChange); connect(&m_timerController, &TimerController::elapsedWorkTimeChanged, this, &Controller::onElapsedWorkTimeChange); + connect(&m_timerController, &TimerController::timerStopRequest, this, &Controller::onTimerStopRequested); connect(&m_settingsController, &SettingsController::breakIntervalChanged, this, &Controller::onBreakIntervalChanged); connect(&m_settingsController, &SettingsController::workTimeChanged, this, &Controller::onWorkTimeChanged); @@ -262,3 +263,13 @@ void Controller::onWorkTimeChanged(int workTime) } } +void Controller::onTimerStopRequested() +{ + if(m_state != State::Working) + { + start(); + } + + stop(); +} + diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 9785164..9fedc54 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -1,4 +1,4 @@ -/******************************************** +/******************************************** ** ** Copyright 2016 JustCode Justyna Kulinska ** @@ -149,6 +149,11 @@ private slots: * \param workTime new work time setting */ void onWorkTimeChanged(int workTime); + /*! + * \brief Timer could request stop if some event occurs, + * for example if timer limit was exceeded. + */ + void onTimerStopRequested(); }; #endif // CONTROLLER_H diff --git a/cpp/controller/timercontroller.cpp b/cpp/controller/timercontroller.cpp index 8689a6b..69152e4 100644 --- a/cpp/controller/timercontroller.cpp +++ b/cpp/controller/timercontroller.cpp @@ -22,6 +22,16 @@ #include "timercontroller.h" +namespace +{ + constexpr int MAX_HOUR_LIMIT = 99; + constexpr int MAX_MINUTES_LIMIT = 59; + constexpr int MAX_SECONDS_LIMIT = 59; + constexpr int MAX_TIME_LIMIT_SEC = 60 * 60 * MAX_HOUR_LIMIT + + 60 * MAX_MINUTES_LIMIT + + MAX_SECONDS_LIMIT; +} + TimerController::TimerController(QObject *parent) : QObject(parent) { @@ -91,33 +101,42 @@ void TimerController::countWorkTime() void TimerController::setElapsedBreakDuration(int elapsedBreakDuration) { - if (m_elapsedBreakDuration == elapsedBreakDuration) + int tmpElapsedBreakDuration = qMin(elapsedBreakDuration, MAX_TIME_LIMIT_SEC); + if (m_elapsedBreakDuration == tmpElapsedBreakDuration) { return; } - m_elapsedBreakDuration = elapsedBreakDuration; - emit elapsedBreakDurationChanged(elapsedBreakDuration); + m_elapsedBreakDuration = tmpElapsedBreakDuration; + emit elapsedBreakDurationChanged(m_elapsedBreakDuration); } + void TimerController::setElapsedWorkPeriod(int elapsedWorkPeriod) { - if (m_elapsedWorkPeriod == elapsedWorkPeriod) + int tmpElapsedPeriod = qMin(elapsedWorkPeriod, MAX_TIME_LIMIT_SEC); + if (m_elapsedWorkPeriod == tmpElapsedPeriod) { return; } - m_elapsedWorkPeriod = elapsedWorkPeriod; - emit elapsedWorkPeriodChanged(elapsedWorkPeriod); + m_elapsedWorkPeriod = tmpElapsedPeriod; + emit elapsedWorkPeriodChanged(m_elapsedWorkPeriod); } void TimerController::setElapsedWorkTime(int elapsedWorkTime) { - if (m_elapsedWorkTime == elapsedWorkTime) + int tmpElapsedWorkTime = qMin(elapsedWorkTime, MAX_TIME_LIMIT_SEC); + if (m_elapsedWorkTime == tmpElapsedWorkTime) { return; } - m_elapsedWorkTime = elapsedWorkTime; - emit elapsedWorkTimeChanged(elapsedWorkTime); + m_elapsedWorkTime = tmpElapsedWorkTime; + emit elapsedWorkTimeChanged(m_elapsedWorkTime); + + if (m_elapsedWorkTime == MAX_TIME_LIMIT_SEC) + { + emit timerStopRequest(); + } } void TimerController::incrementWorkTime() diff --git a/cpp/controller/timercontroller.h b/cpp/controller/timercontroller.h index cc50eef..460f94e 100644 --- a/cpp/controller/timercontroller.h +++ b/cpp/controller/timercontroller.h @@ -54,6 +54,7 @@ class TimerController final : public QObject void elapsedBreakDurationChanged(int elapsedBreakDuration) const; void elapsedWorkPeriodChanged(int elapsedWorkPeriod) const; void elapsedWorkTimeChanged(int elapsedWorkTime) const; + void timerStopRequest() const; void activePeriodTypeChanged(PeriodType activePeriodType) const; From 964f0ac5df1c667e1ae06030314ed3e94d605837 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Mon, 10 Aug 2020 20:27:23 +0200 Subject: [PATCH 038/208] Add enabling of time edition. --- qml/MainContent.qml | 3 ++- qml/components/TimeProgressBar.qml | 6 ++++-- qml/dialogs/BreakDialog.qml | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 394c706..584e373 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -109,6 +109,7 @@ Item { ImageButton { enabled: !nextBreakTimeProgressBar.timeEditMode + visible: nextBreakTimeProgressBar.enableEditMode styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit next break") @@ -126,7 +127,6 @@ Item { TimeProgressBar { id: workTimeProgressBar Layout.fillWidth: true - maxValue: controller.settings.workTime value: controller.timer.elapsedWorkTime @@ -139,6 +139,7 @@ Item { ImageButton { enabled: !workTimeProgressBar.timeEditMode + visible: workTimeProgressBar.enableEditMode styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit work time") diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 5ad91f5..c2140e9 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -31,6 +31,7 @@ Item { property int minValue: 0 property int maxValue: 100 property int value: 0 + property bool enableEditMode: true property bool timeEditMode: false implicitHeight: textLabel.font.pixelSize * 1.4 @@ -113,7 +114,7 @@ Item { Label { id: textLabel anchors.fill: parent - visible: !timeEditMode + visible: !(timeEditMode && enableEditMode) fontStyle: Style.timeBar.font verticalAlignment: Text.AlignVCenter @@ -132,7 +133,7 @@ Item { LabelInput { id: textEditableInput anchors.fill: parent - visible: timeEditMode + visible: timeEditMode && enableEditMode focus: visible onVisibleChanged: { @@ -174,6 +175,7 @@ Item { MouseArea { anchors.fill: parent + enabled: enableEditMode propagateComposedEvents: true acceptedButtons: Qt.LeftButton | Qt.RightButton onDoubleClicked: diff --git a/qml/dialogs/BreakDialog.qml b/qml/dialogs/BreakDialog.qml index 72a1621..b3b94ad 100644 --- a/qml/dialogs/BreakDialog.qml +++ b/qml/dialogs/BreakDialog.qml @@ -65,6 +65,7 @@ CustomDialog { width: parent.width maxValue: controller.settings.breakDuration value: controller.timer.elapsedBreakDuration + enableEditMode: false } Connections { From 2b6c8daf6ff084d0094283b9c73caca23bd3d1b3 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 21 Aug 2020 14:33:11 +0200 Subject: [PATCH 039/208] #7 Support skip for right mouse press&Hold on break button --- qml/MainContent.qml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 9e458ba..fbcb414 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -54,7 +54,7 @@ Item { } ImageButton { type: "break" - tooltip: qsTr("Break") + tooltip: qsTr("Break\nHold right button to skip") visible: controller.state == Controller.Working @@ -62,6 +62,14 @@ Item { controller.startBreak() dialogsManager.showBreakDialog(); } + + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.RightButton + onPressAndHold: { + controller.startWork(); + } + } } ImageButton { type: "pause" From 75baa02fffbbe5451cf56d391f73beab687797ef Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 30 Oct 2020 15:26:22 +0100 Subject: [PATCH 040/208] Code review chages. Use chrono. --- cpp/controller/controller.cpp | 1 + cpp/controller/timercontroller.cpp | 13 +++++++------ cpp/controller/timercontroller.h | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index a96d69a..721f6a4 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -265,6 +265,7 @@ void Controller::onWorkTimeChanged(int workTime) void Controller::onTimerStopRequested() { + // this is to support for example paused state if(m_state != State::Working) { start(); diff --git a/cpp/controller/timercontroller.cpp b/cpp/controller/timercontroller.cpp index 69152e4..a92b003 100644 --- a/cpp/controller/timercontroller.cpp +++ b/cpp/controller/timercontroller.cpp @@ -22,14 +22,15 @@ #include "timercontroller.h" +#include + +using namespace std::chrono_literals; + namespace { - constexpr int MAX_HOUR_LIMIT = 99; - constexpr int MAX_MINUTES_LIMIT = 59; - constexpr int MAX_SECONDS_LIMIT = 59; - constexpr int MAX_TIME_LIMIT_SEC = 60 * 60 * MAX_HOUR_LIMIT + - 60 * MAX_MINUTES_LIMIT + - MAX_SECONDS_LIMIT; + constexpr std::chrono::seconds MAX_TIME_LIMIT = std::chrono::hours(99) // max available hours + + std::chrono::minutes(59) + std::chrono::seconds(59); + constexpr int MAX_TIME_LIMIT_SEC = static_cast(MAX_TIME_LIMIT.count()); // TODO: remove this after switch to chrono } TimerController::TimerController(QObject *parent) diff --git a/cpp/controller/timercontroller.h b/cpp/controller/timercontroller.h index 460f94e..44c7880 100644 --- a/cpp/controller/timercontroller.h +++ b/cpp/controller/timercontroller.h @@ -26,6 +26,7 @@ #include #include +// TODO: switch to std::chrono class TimerController final : public QObject { Q_OBJECT From fdeca25050a86bc244ed4be7c7acd9113b6cc293 Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 30 Oct 2020 15:27:08 +0100 Subject: [PATCH 041/208] Fix time editing with new regexp. --- qml/components/TimeProgressBar.qml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index c2140e9..8cc1364 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -132,6 +132,12 @@ Item { LabelInput { id: textEditableInput + + /* we need this property to compare in onAccepted slot + * it seems that inputMask is extended with additional characters after creation + */ + property string timeInputMask: "99:99:99" + anchors.fill: parent visible: timeEditMode && enableEditMode focus: visible @@ -148,15 +154,18 @@ Item { fontStyle: Style.spinBox.font color: Style.highlightedApplicationColors[Style.mainColorIndex] - inputMask: "99:99:99" + inputMask: timeInputMask validator: RegularExpressionValidator { - regularExpression: /^[0-9][0-9]:[0-5][0-9]:[0-5][0-9]/ + regularExpression: /^([0-9][0-9]|[0-9] | ):([0-5][0-9]|[0-5] | ):([0-5][0-9]|[0-5] | )$/ } onAccepted: { - timeValueChanged(d.deFormatTime(textEditableInput.text)) - timeEditMode = false + var intermediateInput = text.length != timeInputMask.length; + if (!intermediateInput) { + timeValueChanged(d.deFormatTime(textEditableInput.text)) + timeEditMode = false + } } Keys.onEscapePressed: From 1bfc625763c8ddb55ed6b3a8fae3b82030d4893a Mon Sep 17 00:00:00 2001 From: mhudziak Date: Fri, 30 Oct 2020 15:27:31 +0100 Subject: [PATCH 042/208] App size change and pen visibility. --- cpp/model/settings.cpp | 2 +- qml/components/ImageButton.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index fbd6b79..aaeeb25 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -54,7 +54,7 @@ const int Settings::sc_defaultBreakInterval = 45*60; //! 45 min const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min -const QSize Settings::sc_defaultWindowSize = { 400, 200 }; // px +const QSize Settings::sc_defaultWindowSize = { 440, 200 }; // px int Settings::sc_defaultApplicationColorIndex = 0; Settings::Settings(const QString organization, const QString name) diff --git a/qml/components/ImageButton.qml b/qml/components/ImageButton.qml index f721f30..a1b9156 100644 --- a/qml/components/ImageButton.qml +++ b/qml/components/ImageButton.qml @@ -50,7 +50,7 @@ TextButton { } contentItem: RowLayout { - opacity: button.pressed ? 0.8 : 1 + opacity: button.pressed || !button.enabled ? 0.8 : 1 Image { id: image From 59289ae4be6bcea3d0d892cdc6f4a98e03fbdc00 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 30 Oct 2020 16:27:27 +0100 Subject: [PATCH 043/208] #7: Post merge content layouts improvements --- qml/MainContent.qml | 14 ++++++++------ qml/style/Style.qml | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 58d9364..0d9ac36 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -38,7 +38,7 @@ Item { ColumnLayout { id: content anchors.fill: parent - anchors.margins: 30 + anchors.margins: Style.bigMargins spacing: 0 RowLayout { @@ -92,11 +92,9 @@ Item { } } } - GridLayout { - Layout.fillWidth: true - columns: 3 - // current iteration + // current iteration + RowLayout { Label { text: qsTr("Current iteration:") visible: controller.settings.cyclesMode @@ -109,7 +107,6 @@ Item { ImageButton { //enabled: !workTimeProgressBar.timeEditMode //visible: workTimeProgressBar.enableEditMode - visible: controller.settings.cyclesMode styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit current iteration") @@ -119,6 +116,11 @@ Item { // TODO } } + } + + GridLayout { + Layout.fillWidth: true + columns: 3 // next break Label { diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 299af6f..3459aa0 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -40,6 +40,7 @@ QtObject { readonly property int timeout: 10000 } + readonly property int bigMargins: 30 readonly property int margins: 20 readonly property int smallMargins: 10 readonly property int spacing: 10 From 08a592d8da64aafb8eac35d5bf26f00332718a31 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 30 Oct 2020 16:30:57 +0100 Subject: [PATCH 044/208] #7: Update the default window size and utilize it as a minimal window size --- cpp/controller/settingscontroller.cpp | 5 +++++ cpp/controller/settingscontroller.h | 3 ++- cpp/model/settings.cpp | 7 ++++++- cpp/model/settings.h | 6 ++++++ qml/main.qml | 3 +++ 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index dda95f3..cc04a30 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -82,6 +82,11 @@ QSize SettingsController::windowSize() const return m_settings.windowSize(); } +QSize SettingsController::defaultWindowSize() const +{ + return m_settings.defaultWindowSize(); +} + int SettingsController::applicationColorIndex() const { return m_settings.applicationColorIndex(); diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index 2b0926b..1c4382a 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -50,6 +50,7 @@ class SettingsController final : public QObject Q_PROPERTY(QPoint windowPosition READ windowPosition WRITE setWindowPosition NOTIFY windowPositionChanged) Q_PROPERTY(QSize windowSize READ windowSize WRITE setWindowSize NOTIFY windowSizeChanged) + Q_PROPERTY(QSize defaultWindowSize READ defaultWindowSize CONSTANT) Q_PROPERTY(int applicationColorIndex READ applicationColorIndex WRITE setApplicationColorIndex NOTIFY applicationColorIndexChanged) @@ -79,6 +80,7 @@ class SettingsController final : public QObject QPoint windowPosition() const; QSize windowSize() const; + QSize defaultWindowSize() const; int applicationColorIndex() const; @@ -116,7 +118,6 @@ class SettingsController final : public QObject void updateVersionChanged(QString updateVersion) const; void nextUpdateCheckChanged(QDateTime nextUpdateCheck) const; - public slots: void setIncludeBreaks(bool includeBreaks); void setBreakDuration(int breakDuration); diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 9386016..3bd6efe 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -63,7 +63,7 @@ const int Settings::sc_defaultBreakInterval = 25*60; //! 25 min const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min -const QSize Settings::sc_defaultWindowSize = { 440, 200 }; // px +const QSize Settings::sc_defaultWindowSize = { 440, 240 }; // px int Settings::sc_defaultApplicationColorIndex = 0; Settings::Settings(const QString organization, const QString name) @@ -233,6 +233,11 @@ QSize Settings::windowSize() const value(sc_viewGroupName, sc_windowHeightKey, sc_defaultWindowSize.height()).toInt() }; } +QSize Settings::defaultWindowSize() const +{ + return sc_defaultWindowSize; +} + void Settings::setWindowSize(const QSize &size) { setValue(sc_viewGroupName, sc_windowWidthKey, size.width()); diff --git a/cpp/model/settings.h b/cpp/model/settings.h index 22d4728..0a219f2 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -214,6 +214,12 @@ class Settings final : public QObject * \brief Returns the lastest size of the main window. */ QSize windowSize() const; + + /*! + * \brief Returns the default size of the main window. + */ + QSize defaultWindowSize() const; + /*! * \brief Sets a current size of the main window. */ diff --git a/qml/main.qml b/qml/main.qml index 2467ec7..792cf7b 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -33,6 +33,9 @@ import "style" ApplicationWindow { visible: true + minimumWidth: controller.settings.defaultWindowSize.width + minimumHeight: controller.settings.defaultWindowSize.height + function showBreakDialog() { dialogsManager.showBreakDialog() } From a2170c9bea7bb17495e8ca435fabf50e21288f0c Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 6 Nov 2020 17:43:44 +0100 Subject: [PATCH 045/208] #7: Fixes and improvements for CustomSpinBox: fix reverted up and down indicator, improve implicit height --- qml/components/CustomSpinBox.qml | 17 +++++++---------- qml/components/TimeSelector.qml | 20 +++++++++++++------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/qml/components/CustomSpinBox.qml b/qml/components/CustomSpinBox.qml index 67e9fde..9b626e3 100644 --- a/qml/components/CustomSpinBox.qml +++ b/qml/components/CustomSpinBox.qml @@ -33,6 +33,7 @@ SpinBox { property string suffix property int maxCharCount: prefix.length + suffix.length + charCount(to) + property real maxWidth: UiUtils.averageTextWidth(d.fontMetrics, maxCharCount + 1) + Style.spacing + up.implicitIndicatorWidth QtObject { id: d @@ -40,8 +41,6 @@ SpinBox { property var fontMetrics: FontMetrics { font: font } - - function charCount(value) { return value ? Math.ceil(Math.log(value) / Math.log(10)) : 1; } } textFromValue: function(value) { @@ -52,8 +51,6 @@ SpinBox { return text.substring(prefix.length, text.length - suffix.length) } - implicitWidth: UiUtils.averageTextWidth(d.fontMetrics, maxCharCount + 1) + Style.spacing + up.implicitIndicatorWidth - contentItem: LabelInput { fontStyle: Style.spinBox.font text: spinBox.textFromValue(spinBox.value, spinBox.locale) @@ -71,19 +68,19 @@ SpinBox { up.indicator: SpinBoxControl { anchors { right: parent.right - top: mirrored ? parent.top : undefined - bottom: mirrored ? undefined : parent.bottom + top: mirrored ? undefined : parent.top + bottom: mirrored ? parent.bottom : undefined } height: 0.45 * parent.height - increment: mirrored + increment: !mirrored } down.indicator: SpinBoxControl { anchors { right: parent.right - top: mirrored ? undefined : parent.top - bottom: mirrored ? parent.bottom : undefined + top: mirrored ? parent.top : undefined + bottom: mirrored ? undefined : parent.bottom } height: 0.45 * parent.height - increment: !mirrored + increment: mirrored } } diff --git a/qml/components/TimeSelector.qml b/qml/components/TimeSelector.qml index a5a3fd3..c8e8493 100644 --- a/qml/components/TimeSelector.qml +++ b/qml/components/TimeSelector.qml @@ -87,8 +87,10 @@ RowLayout { CustomSpinBox { id: hoursSpin - from: 23 - to: d.minHours + Layout.preferredWidth: maxWidth + + to: 23 + from: d.minHours suffix: "h" maxCharCount: 4 @@ -102,8 +104,10 @@ RowLayout { CustomSpinBox { id: minutesSpin - from: 59 - to: (hoursSpin.value > d.minHours) + Layout.preferredWidth: maxWidth + + to: 59 + from: (hoursSpin.value > d.minHours) ? 0 : d.minMinutes suffix: "m" maxCharCount: 4 @@ -115,9 +119,11 @@ RowLayout { d.minutes = value } } - CustomSpinBox { - from: 59 - to: (hoursSpin.value > d.minHours || + CustomSpinBox { + Layout.preferredWidth: maxWidth + + to: 59 + from: (hoursSpin.value > d.minHours || minutesSpin.value > d.minMinutes) ? 0 : d.minSeconds From 7d0cf460591005cf405137e3957774cf1cdeffd5 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 6 Nov 2020 17:44:22 +0100 Subject: [PATCH 046/208] #7: Introduce max cycles number constant --- cpp/controller/cyclescontroller.cpp | 16 ++++++++++------ cpp/controller/cyclescontroller.h | 6 +++++- qml/dialogs/subitems/TimesSettings.qml | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index 12f2959..9dce561 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -28,6 +28,11 @@ CyclesController::CyclesController(SettingsController &settingsController, QObje connect(this, &CyclesController::currentIterationChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); } +int CyclesController::maxCyclesNumber() const +{ + return sc_maxCyclesNumber; +} + int CyclesController::currentIteration() const { return m_settingsController.cyclesMode() ? m_currentIteration @@ -46,6 +51,10 @@ void CyclesController::setCurrentIteration(int iteration) if (m_currentIteration == iteration) return; + if (iteration > m_settingsController.cycleIterations()) { + iteration = 1; + } + m_currentIteration = iteration; emit currentIterationChanged(m_currentIteration); } @@ -57,10 +66,5 @@ void CyclesController::resetCurrentIteration() void CyclesController::incrementCurrentIteration() { - auto iteration = m_currentIteration + 1; - if (iteration > m_settingsController.cycleIterations()) { - iteration = 1; - } - - setCurrentIteration(iteration); + setCurrentIteration(m_currentIteration + 1); } diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h index 32fd480..a815fa5 100644 --- a/cpp/controller/cyclescontroller.h +++ b/cpp/controller/cyclescontroller.h @@ -32,12 +32,15 @@ class CyclesController final : public QObject Q_OBJECT Q_ENUMS(State) - Q_PROPERTY(int currentIteration READ currentIteration NOTIFY currentIterationChanged) + Q_PROPERTY(int maxCyclesNumber READ maxCyclesNumber CONSTANT) + Q_PROPERTY(int currentIteration READ currentIteration WRITE setCurrentIteration NOTIFY currentIterationChanged) Q_PROPERTY(bool isCycleFinished READ isCycleFinished NOTIFY isCycleFinishedChanged) public: CyclesController(SettingsController &settingsController, QObject *parent = 0); + int maxCyclesNumber() const; + int currentIteration() const; bool isCycleFinished() const; @@ -51,6 +54,7 @@ public slots: void incrementCurrentIteration(); private: + static const int sc_maxCyclesNumber = 3; SettingsController &m_settingsController; int m_currentIteration = 0; diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index 18b07f0..4bdafe2 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -122,7 +122,7 @@ SettingsPage { id: cycleIterationsSpin from: 1 - to: 10 + to: controller.cycles.maxCycleNumber maxCharCount: 2 } } From 7fe4da66d95c016511aac07829ec3dd4140b23e1 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 6 Nov 2020 17:52:53 +0100 Subject: [PATCH 047/208] #7: Reset time on stop not on start - consistent with cycles --- cpp/controller/controller.cpp | 4 ++-- cpp/controller/timercontroller.cpp | 24 +++++++++++++++--------- cpp/controller/timercontroller.h | 5 +++-- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index a92f233..f33ba2f 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -144,7 +144,7 @@ void Controller::start() [[fallthrough]]; case State::Paused: case State::Recovered: - m_timerController.start( (m_state == State::Off) ); // restart only from Off + m_timerController.start(); // restart only from Off setState(State::Working); m_backupManager.start(); break; @@ -173,7 +173,7 @@ void Controller::stop() { case State::Working: setState(State::Off); - m_timerController.stop(); + m_timerController.stop(true); m_cyclesController.resetCurrentIteration(); m_backupManager.stop(); m_backupManager.cleanup(); diff --git a/cpp/controller/timercontroller.cpp b/cpp/controller/timercontroller.cpp index 106134f..6a4ed58 100644 --- a/cpp/controller/timercontroller.cpp +++ b/cpp/controller/timercontroller.cpp @@ -62,21 +62,27 @@ TimerController::PeriodType TimerController::activePeriodType() const return m_periodType; } -void TimerController::start(bool restart) +void TimerController::start() { - if (restart) + m_timer.start(); +} + +void TimerController::stop(bool reset) +{ + if (reset) { - // set initial state - setElapsedBreakDuration(0); - setElapsedBreakInterval(0); - setElapsedWorkTime(0); + this->reset(); } - m_timer.start(); + m_timer.stop(); } -void TimerController::stop() + +void TimerController::reset() { - m_timer.stop(); + // set initial state + setElapsedBreakDuration(0); + setElapsedBreakInterval(0); + setElapsedWorkTime(0); } void TimerController::countBreakTime() diff --git a/cpp/controller/timercontroller.h b/cpp/controller/timercontroller.h index fb86da2..cefa70b 100644 --- a/cpp/controller/timercontroller.h +++ b/cpp/controller/timercontroller.h @@ -60,8 +60,9 @@ class TimerController final : public QObject void activePeriodTypeChanged(PeriodType activePeriodType) const; public slots: - void start(bool restart); - void stop(); + void start(); + void stop(bool reset = false); + void reset(); void countBreakTime(); void countWorkTime(); From 85d20c6aeba71fd664f0a4a101e9d7258a070118 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 6 Nov 2020 17:53:24 +0100 Subject: [PATCH 048/208] #7: Improve the window default size --- cpp/model/settings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 3bd6efe..9d9f6de 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -63,7 +63,7 @@ const int Settings::sc_defaultBreakInterval = 25*60; //! 25 min const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min -const QSize Settings::sc_defaultWindowSize = { 440, 240 }; // px +const QSize Settings::sc_defaultWindowSize = { 460, 240 }; // px int Settings::sc_defaultApplicationColorIndex = 0; Settings::Settings(const QString organization, const QString name) From db31299d2743551592ebb042f21d588da7f39a42 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 6 Nov 2020 17:54:12 +0100 Subject: [PATCH 049/208] #7 Enable editing for current interation --- qml/MainContent.qml | 95 +++++++++++++++++++++++++++++++++++++++------ qml/style/Style.qml | 1 + 2 files changed, 85 insertions(+), 11 deletions(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 0d9ac36..7d3777f 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -95,33 +95,104 @@ Item { // current iteration RowLayout { + visible: controller.settings.cyclesMode + + spacing: Style.spacing + Label { text: qsTr("Current iteration:") - visible: controller.settings.cyclesMode } - Label { - text: controller.cycles.currentIteration - visible: controller.settings.cyclesMode + Item { + id: currentIterationItem + property bool cyclesEditMode: false + + Layout.preferredWidth: width + + implicitWidth: currentIterationLabel.implicitWidth + implicitHeight: currentIterationLabel.implicitHeight + + Label { + id: currentIterationLabel + anchors.centerIn: parent + + text: controller.cycles.currentIteration + visible: !currentIterationItem.cyclesEditMode + } + + CustomSpinBox { + id: currentIteractionEdit + anchors.centerIn: parent + + visible: currentIterationItem.cyclesEditMode + + value: controller.cycles.currentIteration + + from: 1 + to: controller.settings.cycleIterations + + onVisibleChanged: { + if (visible) { + forceActiveFocus() + parent.width = maxWidth + } else { + parent.width = parent.cyclesEditMode + } + } + + function acceptChanges() + { + controller.cycles.currentIteration = currentIteractionEdit.value + currentIterationItem.cyclesEditMode = false + } + + Keys.onReturnPressed: + { + acceptChanges() + } + + Keys.onEnterPressed: + { + acceptChanges() + } + + Keys.onEscapePressed: + { + currentIterationItem.cyclesEditMode = false + } + + onFocusChanged: + { + if(!focus) + { + currentIterationItem.cyclesEditMode = false + } + } + } } ImageButton { - //enabled: !workTimeProgressBar.timeEditMode - //visible: workTimeProgressBar.enableEditMode + enabled: !currentIterationItem.cyclesEditMode && + controller.state != Controller.Off + styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit current iteration") onClicked: { - // TODO + currentIterationItem.cyclesEditMode = true } } } GridLayout { Layout.fillWidth: true + columns: 3 + columnSpacing: Style.spacing + rowSpacing: Style.smallSpacing + // next break Label { text: qsTr("Next break:") @@ -136,14 +207,15 @@ Item { onTimeValueChanged: { - var timeDiff = newValue - controller.timer.elapsedWorkPeriod - controller.timer.elapsedWorkPeriod = newValue + var timeDiff = newValue - controller.timer.elapsedBreakInterval + controller.timer.elapsedBreakInterval = newValue controller.timer.elapsedWorkTime += timeDiff } } ImageButton { - enabled: !nextBreakTimeProgressBar.timeEditMode + enabled: !nextBreakTimeProgressBar.timeEditMode && + controller.state != Controller.Off visible: nextBreakTimeProgressBar.enableEditMode styleFont: Style.font.imageButtonSmallest type: "edit" @@ -174,7 +246,8 @@ Item { } ImageButton { - enabled: !workTimeProgressBar.timeEditMode + enabled: !workTimeProgressBar.timeEditMode && + controller.state != Controller.Off visible: workTimeProgressBar.enableEditMode styleFont: Style.font.imageButtonSmallest type: "edit" diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 3459aa0..66fcc1c 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -43,6 +43,7 @@ QtObject { readonly property int bigMargins: 30 readonly property int margins: 20 readonly property int smallMargins: 10 + readonly property int smallSpacing: 5 readonly property int spacing: 10 readonly property int hugeSpacing: 100 From 63406d244f0a6b36421c6ba40a3820a54b6c1fa1 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 6 Nov 2020 18:00:27 +0100 Subject: [PATCH 050/208] #7: Improve naming convention --- cpp/controller/controller.cpp | 16 ++++++------ cpp/controller/controller.h | 8 +++--- cpp/controller/cyclescontroller.cpp | 28 ++++++++++---------- cpp/controller/cyclescontroller.h | 14 +++++----- cpp/controller/settingscontroller.cpp | 12 ++++----- cpp/controller/settingscontroller.h | 8 +++--- cpp/model/settings.cpp | 12 ++++----- cpp/model/settings.h | 12 ++++----- cpp/workers/backupmanager.cpp | 4 +-- cpp/workers/backupmanager.h | 2 +- qml/MainContent.qml | 36 +++++++++++++------------- qml/dialogs/subitems/TimesSettings.qml | 8 +++--- 12 files changed, 80 insertions(+), 80 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index f33ba2f..e74b962 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -37,7 +37,7 @@ Controller::Controller() connect(&m_timerController, &TimerController::elapsedWorkTimeChanged, this, &Controller::onElapsedWorkTimeChange); connect(&m_timerController, &TimerController::timerStopRequest, this, &Controller::onTimerStopRequested); - connect(&m_cyclesController, &CyclesController::currentIterationChanged, this, &Controller::onCycleCurrentIterationChange); + connect(&m_cyclesController, &CyclesController::currentCycleChanged, this, &Controller::onCycleCurrentCycleChange); connect(&m_settingsController, &SettingsController::breakIntervalChanged, this, &Controller::onBreakIntervalChanged); connect(&m_settingsController, &SettingsController::workTimeChanged, this, &Controller::onWorkTimeChanged); @@ -174,7 +174,7 @@ void Controller::stop() case State::Working: setState(State::Off); m_timerController.stop(true); - m_cyclesController.resetCurrentIteration(); + m_cyclesController.resetCurrentCycle(); m_backupManager.stop(); m_backupManager.cleanup(); break; @@ -197,7 +197,7 @@ void Controller::postponeBreak() } void Controller::startWork() { - m_cyclesController.incrementCurrentIteration(); + m_cyclesController.incrementCurrentCycle(); m_postponeDuration = m_lastRequestTime = 0; m_timerController.setElapsedBreakInterval(0); @@ -236,7 +236,7 @@ void Controller::onBackupData(const BackupManager::Data &data) postponeBreak(); } - m_cyclesController.setCurrentIteration(data.currentIteration); + m_cyclesController.setCurrentCycle(data.currentCycle); setState(State::Recovered); // set recovered state to avoid restart if (wasWorking) { @@ -278,10 +278,10 @@ void Controller::onElapsedWorkTimeChange(int elapsedWorkTime) m_backupManager.data().elapsedWorkTime = elapsedWorkTime; } -void Controller::onCycleCurrentIterationChange(int currentIteration) +void Controller::onCycleCurrentCycleChange(int currentCycle) { // update backup manager - m_backupManager.data().currentIteration = currentIteration; + m_backupManager.data().currentCycle = currentCycle; } void Controller::onBreakIntervalChanged(int breakInterval) @@ -317,8 +317,8 @@ void Controller::onTimerStopRequested() void Controller::onCyclesModeChanged(bool cyclesMode) { - m_cyclesController.resetCurrentIteration(); + m_cyclesController.resetCurrentCycle(); if (cyclesMode && m_state > State::Off) { - m_cyclesController.incrementCurrentIteration(); + m_cyclesController.incrementCurrentCycle(); } } diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 5c9e3ff..399eb88 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -105,7 +105,7 @@ public slots: State m_state = State::Off; //! current state int m_postponeDuration = 0; //! sum duration for all postpones for current break int m_lastRequestTime = 0; //! last time when postpone button was clicked - int m_currentIteration = 0; //! number of current small iterations + int m_currentCycle = 0; //! number of current cycle SettingsController *settingsPtr(); TimerController *timerPtr(); @@ -154,13 +154,13 @@ private slots: // CYCLES CONTROLLER /*! - * \brief Method handles a change in current iteration counter. + * \brief Method handles a change in current cycle counter. * * Updates backup data. * - * \param currentIteration current cycle iteration + * \param currentCycle current cycle */ - void onCycleCurrentIterationChange(int currentIteration); + void onCycleCurrentCycleChange(int currentCycle); // SETTINGS CONTROLLER /*! diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index 9dce561..4b4a7e9 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -25,7 +25,7 @@ CyclesController::CyclesController(SettingsController &settingsController, QObject *parent) : QObject(parent), m_settingsController(settingsController) { - connect(this, &CyclesController::currentIterationChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); + connect(this, &CyclesController::currentCycleChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); } int CyclesController::maxCyclesNumber() const @@ -33,38 +33,38 @@ int CyclesController::maxCyclesNumber() const return sc_maxCyclesNumber; } -int CyclesController::currentIteration() const +int CyclesController::currentCycle() const { - return m_settingsController.cyclesMode() ? m_currentIteration + return m_settingsController.cyclesMode() ? m_currentCycle : 0; } bool CyclesController::isCycleFinished() const { return m_settingsController.cyclesMode() - ? (m_currentIteration == m_settingsController.cycleIterations()) + ? (m_currentCycle == m_settingsController.cyclesNumber()) : 0; } -void CyclesController::setCurrentIteration(int iteration) +void CyclesController::setCurrentCycle(int cycle) { - if (m_currentIteration == iteration) + if (m_currentCycle == cycle) return; - if (iteration > m_settingsController.cycleIterations()) { - iteration = 1; + if (cycle > m_settingsController.cyclesNumber()) { + cycle = 1; } - m_currentIteration = iteration; - emit currentIterationChanged(m_currentIteration); + m_currentCycle = cycle; + emit currentCycleChanged(m_currentCycle); } -void CyclesController::resetCurrentIteration() +void CyclesController::resetCurrentCycle() { - setCurrentIteration(0); + setCurrentCycle(0); } -void CyclesController::incrementCurrentIteration() +void CyclesController::incrementCurrentCycle() { - setCurrentIteration(m_currentIteration + 1); + setCurrentCycle(m_currentCycle + 1); } diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h index a815fa5..f41b8ec 100644 --- a/cpp/controller/cyclescontroller.h +++ b/cpp/controller/cyclescontroller.h @@ -33,7 +33,7 @@ class CyclesController final : public QObject Q_ENUMS(State) Q_PROPERTY(int maxCyclesNumber READ maxCyclesNumber CONSTANT) - Q_PROPERTY(int currentIteration READ currentIteration WRITE setCurrentIteration NOTIFY currentIterationChanged) + Q_PROPERTY(int currentCycle READ currentCycle WRITE setCurrentCycle NOTIFY currentCycleChanged) Q_PROPERTY(bool isCycleFinished READ isCycleFinished NOTIFY isCycleFinishedChanged) public: @@ -41,23 +41,23 @@ class CyclesController final : public QObject int maxCyclesNumber() const; - int currentIteration() const; + int currentCycle() const; bool isCycleFinished() const; signals: - void currentIterationChanged(int currentIteration) const; + void currentCycleChanged(int currentCycle) const; void isCycleFinishedChanged(bool isCycleFinished) const; public slots: - void setCurrentIteration(int iteration); - void resetCurrentIteration(); - void incrementCurrentIteration(); + void setCurrentCycle(int cycle); + void resetCurrentCycle(); + void incrementCurrentCycle(); private: static const int sc_maxCyclesNumber = 3; SettingsController &m_settingsController; - int m_currentIteration = 0; + int m_currentCycle = 0; }; #endif // CYCLESCONTROLLER_H diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index cc04a30..53adb86 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -49,9 +49,9 @@ int SettingsController::cycleBreakDuration() const return m_settings.cycleBreakDuration(); } -int SettingsController::cycleIterations() const +int SettingsController::cyclesNumber() const { - return m_settings.cycleIterations(); + return m_settings.cyclesNumber(); } bool SettingsController::cyclesMode() const @@ -149,13 +149,13 @@ void SettingsController::setCycleBreakDuration(int cycleBreakDuration) emit cycleBreakDurationChanged(cycleBreakDuration); } -void SettingsController::setCycleIterations(int cycleIterations) +void SettingsController::setCyclesNumber(int cyclesNumber) { - if (m_settings.cycleIterations() == cycleIterations) + if (m_settings.cyclesNumber() == cyclesNumber) return; - m_settings.setCycleIterations(cycleIterations); - emit cycleIterationsChanged(cycleIterations); + m_settings.setCyclesNumber(cyclesNumber); + emit cyclesNumberChanged(cyclesNumber); } void SettingsController::setBreakInterval(int breakInterval) { diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index 1c4382a..a6de455 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -41,7 +41,7 @@ class SettingsController final : public QObject Q_PROPERTY(bool cyclesMode READ cyclesMode WRITE setCyclesMode NOTIFY cyclesModeChanged) Q_PROPERTY(int cycleBreakDuration READ cycleBreakDuration WRITE setCycleBreakDuration NOTIFY cycleBreakDurationChanged) - Q_PROPERTY(int cycleIterations READ cycleIterations WRITE setCycleIterations NOTIFY cycleIterationsChanged) + Q_PROPERTY(int cyclesNumber READ cyclesNumber WRITE setCyclesNumber NOTIFY cyclesNumberChanged) Q_PROPERTY(int workTime READ workTime WRITE setWorkTime NOTIFY workTimeChanged) Q_PROPERTY(int postponeTime READ postponeTime WRITE setPostponeTime NOTIFY postponeTimeChanged) @@ -71,7 +71,7 @@ class SettingsController final : public QObject bool cyclesMode() const; int cycleBreakDuration() const; - int cycleIterations() const; + int cyclesNumber() const; int workTime() const; int postponeTime() const; @@ -99,7 +99,7 @@ class SettingsController final : public QObject void cyclesModeChanged(bool cyclesMode) const; void cycleBreakDurationChanged(int cycleBreakDuration) const; - void cycleIterationsChanged(int cycleIterations) const; + void cyclesNumberChanged(int cyclesNumber) const; void workTimeChanged(int workTime) const; void postponeTimeChanged(int postponeTime) const; @@ -125,7 +125,7 @@ public slots: void setCyclesMode(bool cyclesMode); void setCycleBreakDuration(int cycleBreakDuration); - void setCycleIterations(int cycleIterations); + void setCyclesNumber(int cyclesNumber); void setWorkTime(int workTime); void setPostponeTime(int postponeTime); diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 9d9f6de..11f5e07 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -38,7 +38,7 @@ const QLatin1String Settings::sc_breakIntervalKey = QLatin1String("breakInterval const QLatin1String Settings::sc_cyclesModeKey = QLatin1String("cyclesMode"); const QLatin1String Settings::sc_cycleBreakDurationKey = QLatin1String("cycleBreakDuration"); -const QLatin1String Settings::sc_cycleIterations = QLatin1String("cycleIterations"); +const QLatin1String Settings::sc_cyclesNumber = QLatin1String("cyclesNumber"); const QLatin1String Settings::sc_workTimeKey = QLatin1String("workTime"); const QLatin1String Settings::sc_postponeTimeKey = QLatin1String("postponeTime"); @@ -58,7 +58,7 @@ const QLatin1String Settings::sc_applicationColorIndexKey = QLatin1String("mainC const int Settings::sc_defaultBreakDuration = 5*60; //! 5 min const int Settings::sc_defaultCycleBreakDuration = 30*60; //! 30 min -const int Settings::sc_defaultlCycleIterations = 3; +const int Settings::sc_defaultlCyclesNumber = 3; const int Settings::sc_defaultBreakInterval = 25*60; //! 25 min const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min @@ -129,14 +129,14 @@ void Settings::setCycleBreakDuration(int duration) setValue(sc_logicGroupName, sc_cycleBreakDurationKey, duration); } -int Settings::cycleIterations() const +int Settings::cyclesNumber() const { - return value(sc_logicGroupName, sc_cycleIterations, sc_defaultlCycleIterations).toInt(); + return value(sc_logicGroupName, sc_cyclesNumber, sc_defaultlCyclesNumber).toInt(); } -void Settings::setCycleIterations(int iterations) +void Settings::setCyclesNumber(int cyclesNumber) { - setValue(sc_logicGroupName, sc_cycleIterations, iterations); + setValue(sc_logicGroupName, sc_cyclesNumber, cyclesNumber); } int Settings::breakInterval() const diff --git a/cpp/model/settings.h b/cpp/model/settings.h index 0a219f2..cbc82cd 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -101,13 +101,13 @@ class Settings final : public QObject void setCycleBreakDuration(int duration); /*! - * \brief Returns a number of iterations for a single cycle. + * \brief Returns a number of cycles. */ - int cycleIterations() const; + int cyclesNumber() const; /*! - * \brief Sets a number of iterations for a single cycle. + * \brief Sets a number of cycles. */ - void setCycleIterations(int iterations); + void setCyclesNumber(int cyclesNumber); /*! * \brief Returns break interval in seconds. @@ -255,7 +255,7 @@ class Settings final : public QObject static const QLatin1String sc_cyclesModeKey; //! key used for settings: cycles mode static const QLatin1String sc_cycleBreakDurationKey; //! key used for settings: cycle break duration - static const QLatin1String sc_cycleIterations; //! key used for settings: iterations for cycle + static const QLatin1String sc_cyclesNumber; //! key used for settings: cycles number static const QLatin1String sc_workTimeKey; //! key used for settings: work day duration static const QLatin1String sc_postponeTimeKey; //! key used for settings: postpone time @@ -276,7 +276,7 @@ class Settings final : public QObject // logic default static const int sc_defaultBreakDuration; //! default break duration \see breakDuration() static const int sc_defaultCycleBreakDuration; //! default cycle break duration \see cycleBreakDuration() - static const int sc_defaultlCycleIterations; //! default interations for cycle \see cycleIterations() + static const int sc_defaultlCyclesNumber; //! default interations for cycle \see cyclesNumber() static const int sc_defaultBreakInterval; //! default break interval \see breakInterval() static const int sc_defaultWorkTime; //! default work day duration \see workTime() static const int sc_defaultPostponeTime; //! default postpone time \see postponeTime() diff --git a/cpp/workers/backupmanager.cpp b/cpp/workers/backupmanager.cpp index 6646b0a..c440a41 100644 --- a/cpp/workers/backupmanager.cpp +++ b/cpp/workers/backupmanager.cpp @@ -157,13 +157,13 @@ bool BackupManager::Data::isEmpty() QDataStream &operator<<(QDataStream &stream, const BackupManager::Data &data) { - stream << data.elapsedBreakInterval << data.elapsedWorkTime << data.currentIteration; + stream << data.elapsedBreakInterval << data.elapsedWorkTime << data.currentCycle; return stream; } QDataStream &operator>>(QDataStream &stream, BackupManager::Data &data) { stream >> data.elapsedBreakInterval; stream >> data.elapsedWorkTime; - stream >> data.currentIteration; + stream >> data.currentCycle; return stream; } diff --git a/cpp/workers/backupmanager.h b/cpp/workers/backupmanager.h index 72e74e8..4c2d402 100644 --- a/cpp/workers/backupmanager.h +++ b/cpp/workers/backupmanager.h @@ -42,7 +42,7 @@ class BackupManager final : public QObject struct Data { int elapsedBreakInterval = 0; int elapsedWorkTime = 0; - int currentIteration = 0; + int currentCycle = 0; bool isEmpty(); }; diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 7d3777f..2224497 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -93,42 +93,42 @@ Item { } } - // current iteration + // current cycle RowLayout { visible: controller.settings.cyclesMode spacing: Style.spacing Label { - text: qsTr("Current iteration:") + text: qsTr("Current cycle:") } Item { - id: currentIterationItem + id: currentCycleItem property bool cyclesEditMode: false Layout.preferredWidth: width - implicitWidth: currentIterationLabel.implicitWidth - implicitHeight: currentIterationLabel.implicitHeight + implicitWidth: currentCycleLabel.implicitWidth + implicitHeight: currentCycleLabel.implicitHeight Label { - id: currentIterationLabel + id: currentCycleLabel anchors.centerIn: parent - text: controller.cycles.currentIteration - visible: !currentIterationItem.cyclesEditMode + text: controller.cycles.currentCycle + visible: !currentCycleItem.cyclesEditMode } CustomSpinBox { id: currentIteractionEdit anchors.centerIn: parent - visible: currentIterationItem.cyclesEditMode + visible: currentCycleItem.cyclesEditMode - value: controller.cycles.currentIteration + value: controller.cycles.currentCycle from: 1 - to: controller.settings.cycleIterations + to: controller.settings.cyclesNumber onVisibleChanged: { if (visible) { @@ -141,8 +141,8 @@ Item { function acceptChanges() { - controller.cycles.currentIteration = currentIteractionEdit.value - currentIterationItem.cyclesEditMode = false + controller.cycles.currentCycle = currentIteractionEdit.value + currentCycleItem.cyclesEditMode = false } Keys.onReturnPressed: @@ -157,30 +157,30 @@ Item { Keys.onEscapePressed: { - currentIterationItem.cyclesEditMode = false + currentCycleItem.cyclesEditMode = false } onFocusChanged: { if(!focus) { - currentIterationItem.cyclesEditMode = false + currentCycleItem.cyclesEditMode = false } } } } ImageButton { - enabled: !currentIterationItem.cyclesEditMode && + enabled: !currentCycleItem.cyclesEditMode && controller.state != Controller.Off styleFont: Style.font.imageButtonSmallest type: "edit" - tooltip: qsTr("Edit current iteration") + tooltip: qsTr("Edit current cycle") onClicked: { - currentIterationItem.cyclesEditMode = true + currentCycleItem.cyclesEditMode = true } } } diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index 4bdafe2..9358be9 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -34,7 +34,7 @@ SettingsPage { cyclesModeSwitch.checked = controller.settings.cyclesMode cycleBreakDurationSelector.time = controller.settings.cycleBreakDuration - cycleIterationsSpin.value = controller.settings.cycleIterations + cyclesNumberSpin.value = controller.settings.cyclesNumber postponeTimeSelector.time = controller.settings.postponeTime workTimeSelector.time = controller.settings.workTime @@ -47,7 +47,7 @@ SettingsPage { controller.settings.cyclesMode = cyclesModeSwitch.checked controller.settings.cycleBreakDuration = cycleBreakDurationSelector.time - controller.settings.cycleIterations = cycleIterationsSpin.value + controller.settings.cyclesNumber = cyclesNumberSpin.value controller.settings.postponeTime = postponeTimeSelector.time controller.settings.workTime = workTimeSelector.time @@ -116,10 +116,10 @@ SettingsPage { FormElement { enabled: cyclesModeSwitch.checked - labelText: qsTr("Cycle iterations:") + labelText: qsTr("Cycles number:") CustomSpinBox { - id: cycleIterationsSpin + id: cyclesNumberSpin from: 1 to: controller.cycles.maxCycleNumber From 172c77d123fd55aed2dfc2ef264b2101c3c38776 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 11 Dec 2020 15:23:37 +0100 Subject: [PATCH 051/208] #7: Fix renaming Label (reserved for Qt component) to CustomLabel --- qml.qrc | 2 +- qml/MainContent.qml | 8 ++++---- qml/components/ClickableLabel.qml | 2 +- qml/components/{Label.qml => CustomLabel.qml} | 0 qml/components/CustomSwitch.qml | 2 +- qml/components/FormElement.qml | 2 +- qml/components/ImageButton.qml | 2 +- qml/components/TabTextButton.qml | 2 +- qml/components/TextBox.qml | 2 +- qml/components/TextButton.qml | 2 +- qml/components/TimeProgressBar.qml | 6 +++--- qml/dialogs/CustomDialog.qml | 4 ++-- qml/dialogs/subitems/LogicSettings.qml | 2 +- qml/dialogs/subitems/TimesSettings.qml | 4 ++-- 14 files changed, 20 insertions(+), 20 deletions(-) rename qml/components/{Label.qml => CustomLabel.qml} (100%) diff --git a/qml.qrc b/qml.qrc index 94e06ba..56dafd2 100644 --- a/qml.qrc +++ b/qml.qrc @@ -9,7 +9,7 @@ qml/components/Background.qml qml/style/Style.qml qml/style/qmldir - qml/components/Label.qml + qml/components/CustomLabel.qml qml/components/helpers/BarGradient.qml qml/components/helpers/BarTextGradient.qml resources/fonts/font-bold-italic.ttf diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 2224497..7cbf44f 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -99,7 +99,7 @@ Item { spacing: Style.spacing - Label { + CustomLabel { text: qsTr("Current cycle:") } Item { @@ -111,7 +111,7 @@ Item { implicitWidth: currentCycleLabel.implicitWidth implicitHeight: currentCycleLabel.implicitHeight - Label { + CustomLabel { id: currentCycleLabel anchors.centerIn: parent @@ -194,7 +194,7 @@ Item { rowSpacing: Style.smallSpacing // next break - Label { + CustomLabel { text: qsTr("Next break:") } @@ -228,7 +228,7 @@ Item { } // work time - Label { + CustomLabel { text: qsTr("Work time:") } diff --git a/qml/components/ClickableLabel.qml b/qml/components/ClickableLabel.qml index ad88c16..f8c9e2a 100644 --- a/qml/components/ClickableLabel.qml +++ b/qml/components/ClickableLabel.qml @@ -22,7 +22,7 @@ import QtQuick 2.12 -Label { +CustomLabel { signal clicked(); MouseArea { diff --git a/qml/components/Label.qml b/qml/components/CustomLabel.qml similarity index 100% rename from qml/components/Label.qml rename to qml/components/CustomLabel.qml diff --git a/qml/components/CustomSwitch.qml b/qml/components/CustomSwitch.qml index 0b8535d..e8973e0 100644 --- a/qml/components/CustomSwitch.qml +++ b/qml/components/CustomSwitch.qml @@ -64,7 +64,7 @@ Switch { ? Qt.darker(Style.switchControl.backgroundColor, 1.1) : Style.switchControl.backgroundColor } - contentItem: Label { + contentItem: CustomLabel { anchors.fill: indicator horizontalAlignment: Qt.AlignHCenter verticalAlignment: Qt.AlignVCenter diff --git a/qml/components/FormElement.qml b/qml/components/FormElement.qml index ad17dd8..ada99e0 100644 --- a/qml/components/FormElement.qml +++ b/qml/components/FormElement.qml @@ -33,7 +33,7 @@ GridLayout { property bool strechVertically: false property real horizontalSpacing: spacer.size - Label { + CustomLabel { id: label fontStyle: Style.font.formLabel } diff --git a/qml/components/ImageButton.qml b/qml/components/ImageButton.qml index a1b9156..57de5d1 100644 --- a/qml/components/ImageButton.qml +++ b/qml/components/ImageButton.qml @@ -59,7 +59,7 @@ TextButton { source: d.path + type + d.extension } - Label { + CustomLabel { id: text Layout.alignment: Qt.AlignVCenter diff --git a/qml/components/TabTextButton.qml b/qml/components/TabTextButton.qml index b08bf90..5ca2e98 100644 --- a/qml/components/TabTextButton.qml +++ b/qml/components/TabTextButton.qml @@ -24,7 +24,7 @@ TabButton { radius: button.styleFont.size/5 } - contentItem: Label { + contentItem: CustomLabel { fontStyle: button.styleFont opacity: button.pressed ? 0.8 : 1 diff --git a/qml/components/TextBox.qml b/qml/components/TextBox.qml index e4ac0de..606c58f 100644 --- a/qml/components/TextBox.qml +++ b/qml/components/TextBox.qml @@ -33,7 +33,7 @@ Rectangle { implicitWidth: textItem.implicitWidth + textItem.anchors.leftMargin + textItem.anchors.rightMargin implicitHeight: textItem.implicitHeight + textItem.anchors.topMargin + textItem.anchors.bottomMargin - Label { + CustomLabel { id: textItem anchors { fill: parent diff --git a/qml/components/TextButton.qml b/qml/components/TextButton.qml index 3afe173..7c86ba3 100644 --- a/qml/components/TextButton.qml +++ b/qml/components/TextButton.qml @@ -46,7 +46,7 @@ Button { radius: button.styleFont.size/5 } - contentItem: Label { + contentItem: CustomLabel { fontStyle: button.styleFont opacity: button.pressed ? 0.8 : 1 diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 8cc1364..7f79225 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -111,7 +111,7 @@ Item { Item { Layout.fillHeight: true Layout.fillWidth: true - Label { + CustomLabel { id: textLabel anchors.fill: parent visible: !(timeEditMode && enableEditMode) @@ -202,7 +202,7 @@ Item { } } - Label { + CustomLabel { Layout.fillHeight: true Layout.preferredHeight: 0 Layout.preferredWidth: implicitWidth @@ -219,7 +219,7 @@ Item { } } - Label { + CustomLabel { Layout.fillHeight: true Layout.fillWidth: true Layout.preferredHeight: 0 diff --git a/qml/dialogs/CustomDialog.qml b/qml/dialogs/CustomDialog.qml index 74d2f43..e3795be 100644 --- a/qml/dialogs/CustomDialog.qml +++ b/qml/dialogs/CustomDialog.qml @@ -107,7 +107,7 @@ Window { columns: 2 columnSpacing: Style.spacing - Label { + CustomLabel { fontStyle: Style.font.title text: title } @@ -119,7 +119,7 @@ Window { Layout.preferredHeight: preferredHeight } - Label { + CustomLabel { Layout.columnSpan: 2 text: description } diff --git a/qml/dialogs/subitems/LogicSettings.qml b/qml/dialogs/subitems/LogicSettings.qml index e6b31b3..6ee0aea 100644 --- a/qml/dialogs/subitems/LogicSettings.qml +++ b/qml/dialogs/subitems/LogicSettings.qml @@ -53,7 +53,7 @@ SettingsPage { Spacer {} // TRAY SETTINGS - Label { + CustomLabel { visible: controller.settings.trayAvailable fontStyle: Style.font.formHeader diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index 9358be9..ff49b2f 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -54,7 +54,7 @@ SettingsPage { } // BREAKS SETTINGS - Label { + CustomLabel { fontStyle: Style.font.formHeader text: qsTr("Breaks") } @@ -130,7 +130,7 @@ SettingsPage { Spacer {} // GENERAL SETTINGS - Label { + CustomLabel { visible: controller.settings.trayAvailable fontStyle: Style.font.formHeader From d4ef727e11fe87d26d0459b4266662f5195974e0 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 12 Feb 2021 15:52:48 +0100 Subject: [PATCH 052/208] #7: Fixes and improvements for CustomSpinBox width --- qml/components/CustomSpinBox.qml | 17 +++++++++++++++-- qml/components/TimeSelector.qml | 14 ++++---------- qml/dialogs/subitems/TimesSettings.qml | 1 - qml/utils/UiUtils.qml | 6 +++++- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/qml/components/CustomSpinBox.qml b/qml/components/CustomSpinBox.qml index 9b626e3..8ffde3b 100644 --- a/qml/components/CustomSpinBox.qml +++ b/qml/components/CustomSpinBox.qml @@ -32,15 +32,22 @@ SpinBox { property string prefix property string suffix - property int maxCharCount: prefix.length + suffix.length + charCount(to) - property real maxWidth: UiUtils.averageTextWidth(d.fontMetrics, maxCharCount + 1) + Style.spacing + up.implicitIndicatorWidth + readonly property real averageWidth: UiUtils.averageTextWidth(d.fontMetrics, d.maxCharCount) + 2 * spacing + up.implicitIndicatorWidth + readonly property real maxWidth: UiUtils.maxTextWidth(d.fontMetrics, d.maxCharCount) + 2 * spacing + up.implicitIndicatorWidth + + spacing: Style.smallSpacing + + implicitWidth: contentItem.implicitWidth + 2 * spacing + up.implicitIndicatorWidth QtObject { id: d + readonly property int maxCharCount: prefix.length + suffix.length + d.digitsCount(to) property var fontMetrics: FontMetrics { font: font } + + function digitsCount(number) { return number ? Math.ceil(Math.log(number) / Math.log(10)) : 1; } } textFromValue: function(value) { @@ -52,6 +59,12 @@ SpinBox { } contentItem: LabelInput { + anchors { + right: up.indicator.left + rightMargin: spacing + leftMargin: spacing + } + fontStyle: Style.spinBox.font text: spinBox.textFromValue(spinBox.value, spinBox.locale) diff --git a/qml/components/TimeSelector.qml b/qml/components/TimeSelector.qml index c8e8493..8cd021e 100644 --- a/qml/components/TimeSelector.qml +++ b/qml/components/TimeSelector.qml @@ -86,13 +86,11 @@ RowLayout { CustomSpinBox { id: hoursSpin - - Layout.preferredWidth: maxWidth + Layout.preferredWidth: averageWidth to: 23 from: d.minHours suffix: "h" - maxCharCount: 4 visible: showHours @@ -103,14 +101,12 @@ RowLayout { } CustomSpinBox { id: minutesSpin - - Layout.preferredWidth: maxWidth + Layout.preferredWidth: averageWidth to: 59 from: (hoursSpin.value > d.minHours) ? 0 : d.minMinutes suffix: "m" - maxCharCount: 4 visible: showMinutes @@ -119,16 +115,14 @@ RowLayout { d.minutes = value } } - CustomSpinBox { - Layout.preferredWidth: maxWidth + CustomSpinBox { + Layout.preferredWidth: averageWidth to: 59 from: (hoursSpin.value > d.minHours || minutesSpin.value > d.minMinutes) ? 0 : d.minSeconds - suffix: "s" - maxCharCount: 4 visible: showSeconds diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index ff49b2f..a389160 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -123,7 +123,6 @@ SettingsPage { from: 1 to: controller.cycles.maxCycleNumber - maxCharCount: 2 } } diff --git a/qml/utils/UiUtils.qml b/qml/utils/UiUtils.qml index cf9c2ef..287c1b0 100644 --- a/qml/utils/UiUtils.qml +++ b/qml/utils/UiUtils.qml @@ -36,7 +36,11 @@ QtObject { function averageTextWidth(fontMetrics, charsCount) { - var AVERAGE_WIDHT_ENLARGE = 1.2; + var AVERAGE_WIDHT_ENLARGE = 2; return charsCount * AVERAGE_WIDHT_ENLARGE * fontMetrics.averageCharacterWidth; } + function maxTextWidth(fontMetrics, charsCount) + { + return charsCount * fontMetrics.maximumCharacterWidth; + } } From d0920d8012cb502e45fbdca4755b0f9598295aa4 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 12 Feb 2021 16:04:24 +0100 Subject: [PATCH 053/208] #7: Rename to more accurate name cyclesNumber -> cycleIntervals --- cpp/controller/cyclescontroller.cpp | 8 ++++---- cpp/controller/cyclescontroller.h | 6 +++--- cpp/controller/settingscontroller.cpp | 12 ++++++------ cpp/controller/settingscontroller.h | 8 ++++---- cpp/model/settings.cpp | 12 ++++++------ cpp/model/settings.h | 12 ++++++------ qml/MainContent.qml | 2 +- qml/dialogs/subitems/TimesSettings.qml | 10 +++++----- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index 4b4a7e9..85988e5 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -28,9 +28,9 @@ CyclesController::CyclesController(SettingsController &settingsController, QObje connect(this, &CyclesController::currentCycleChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); } -int CyclesController::maxCyclesNumber() const +int CyclesController::maxCycleIntervals() const { - return sc_maxCyclesNumber; + return sc_maxCycleIntervals; } int CyclesController::currentCycle() const @@ -42,7 +42,7 @@ int CyclesController::currentCycle() const bool CyclesController::isCycleFinished() const { return m_settingsController.cyclesMode() - ? (m_currentCycle == m_settingsController.cyclesNumber()) + ? (m_currentCycle == m_settingsController.cycleIntervals()) : 0; } @@ -51,7 +51,7 @@ void CyclesController::setCurrentCycle(int cycle) if (m_currentCycle == cycle) return; - if (cycle > m_settingsController.cyclesNumber()) { + if (cycle > m_settingsController.cycleIntervals()) { cycle = 1; } diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h index f41b8ec..6c1738f 100644 --- a/cpp/controller/cyclescontroller.h +++ b/cpp/controller/cyclescontroller.h @@ -32,14 +32,14 @@ class CyclesController final : public QObject Q_OBJECT Q_ENUMS(State) - Q_PROPERTY(int maxCyclesNumber READ maxCyclesNumber CONSTANT) + Q_PROPERTY(int maxCycleIntervals READ maxCycleIntervals CONSTANT) Q_PROPERTY(int currentCycle READ currentCycle WRITE setCurrentCycle NOTIFY currentCycleChanged) Q_PROPERTY(bool isCycleFinished READ isCycleFinished NOTIFY isCycleFinishedChanged) public: CyclesController(SettingsController &settingsController, QObject *parent = 0); - int maxCyclesNumber() const; + int maxCycleIntervals() const; int currentCycle() const; bool isCycleFinished() const; @@ -54,7 +54,7 @@ public slots: void incrementCurrentCycle(); private: - static const int sc_maxCyclesNumber = 3; + static const int sc_maxCycleIntervals = 3; SettingsController &m_settingsController; int m_currentCycle = 0; diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index 53adb86..62a6e8f 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -49,9 +49,9 @@ int SettingsController::cycleBreakDuration() const return m_settings.cycleBreakDuration(); } -int SettingsController::cyclesNumber() const +int SettingsController::cycleIntervals() const { - return m_settings.cyclesNumber(); + return m_settings.cycleIntervals(); } bool SettingsController::cyclesMode() const @@ -149,13 +149,13 @@ void SettingsController::setCycleBreakDuration(int cycleBreakDuration) emit cycleBreakDurationChanged(cycleBreakDuration); } -void SettingsController::setCyclesNumber(int cyclesNumber) +void SettingsController::setCycleIntervals(int cycleIntervals) { - if (m_settings.cyclesNumber() == cyclesNumber) + if (m_settings.cycleIntervals() == cycleIntervals) return; - m_settings.setCyclesNumber(cyclesNumber); - emit cyclesNumberChanged(cyclesNumber); + m_settings.setCycleIntervals(cycleIntervals); + emit cycleIntervalsChanged(cycleIntervals); } void SettingsController::setBreakInterval(int breakInterval) { diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index a6de455..c2992b9 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -41,7 +41,7 @@ class SettingsController final : public QObject Q_PROPERTY(bool cyclesMode READ cyclesMode WRITE setCyclesMode NOTIFY cyclesModeChanged) Q_PROPERTY(int cycleBreakDuration READ cycleBreakDuration WRITE setCycleBreakDuration NOTIFY cycleBreakDurationChanged) - Q_PROPERTY(int cyclesNumber READ cyclesNumber WRITE setCyclesNumber NOTIFY cyclesNumberChanged) + Q_PROPERTY(int cycleIntervals READ cycleIntervals WRITE setCycleIntervals NOTIFY cycleIntervalsChanged) Q_PROPERTY(int workTime READ workTime WRITE setWorkTime NOTIFY workTimeChanged) Q_PROPERTY(int postponeTime READ postponeTime WRITE setPostponeTime NOTIFY postponeTimeChanged) @@ -71,7 +71,7 @@ class SettingsController final : public QObject bool cyclesMode() const; int cycleBreakDuration() const; - int cyclesNumber() const; + int cycleIntervals() const; int workTime() const; int postponeTime() const; @@ -99,7 +99,7 @@ class SettingsController final : public QObject void cyclesModeChanged(bool cyclesMode) const; void cycleBreakDurationChanged(int cycleBreakDuration) const; - void cyclesNumberChanged(int cyclesNumber) const; + void cycleIntervalsChanged(int cycleIntervals) const; void workTimeChanged(int workTime) const; void postponeTimeChanged(int postponeTime) const; @@ -125,7 +125,7 @@ public slots: void setCyclesMode(bool cyclesMode); void setCycleBreakDuration(int cycleBreakDuration); - void setCyclesNumber(int cyclesNumber); + void setCycleIntervals(int cycleIntervals); void setWorkTime(int workTime); void setPostponeTime(int postponeTime); diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 11f5e07..4fbc48e 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -38,7 +38,7 @@ const QLatin1String Settings::sc_breakIntervalKey = QLatin1String("breakInterval const QLatin1String Settings::sc_cyclesModeKey = QLatin1String("cyclesMode"); const QLatin1String Settings::sc_cycleBreakDurationKey = QLatin1String("cycleBreakDuration"); -const QLatin1String Settings::sc_cyclesNumber = QLatin1String("cyclesNumber"); +const QLatin1String Settings::sc_cycleIntervals = QLatin1String("cycleIntervals"); const QLatin1String Settings::sc_workTimeKey = QLatin1String("workTime"); const QLatin1String Settings::sc_postponeTimeKey = QLatin1String("postponeTime"); @@ -58,7 +58,7 @@ const QLatin1String Settings::sc_applicationColorIndexKey = QLatin1String("mainC const int Settings::sc_defaultBreakDuration = 5*60; //! 5 min const int Settings::sc_defaultCycleBreakDuration = 30*60; //! 30 min -const int Settings::sc_defaultlCyclesNumber = 3; +const int Settings::sc_defaultlCycleIntervals = 3; const int Settings::sc_defaultBreakInterval = 25*60; //! 25 min const int Settings::sc_defaultWorkTime = 8*60*60; //! 8 h const int Settings::sc_defaultPostponeTime = 5*60; //! 5 min @@ -129,14 +129,14 @@ void Settings::setCycleBreakDuration(int duration) setValue(sc_logicGroupName, sc_cycleBreakDurationKey, duration); } -int Settings::cyclesNumber() const +int Settings::cycleIntervals() const { - return value(sc_logicGroupName, sc_cyclesNumber, sc_defaultlCyclesNumber).toInt(); + return value(sc_logicGroupName, sc_cycleIntervals, sc_defaultlCycleIntervals).toInt(); } -void Settings::setCyclesNumber(int cyclesNumber) +void Settings::setCycleIntervals(int cycleIntervals) { - setValue(sc_logicGroupName, sc_cyclesNumber, cyclesNumber); + setValue(sc_logicGroupName, sc_cycleIntervals, cycleIntervals); } int Settings::breakInterval() const diff --git a/cpp/model/settings.h b/cpp/model/settings.h index cbc82cd..58c5ca5 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -101,13 +101,13 @@ class Settings final : public QObject void setCycleBreakDuration(int duration); /*! - * \brief Returns a number of cycles. + * \brief Returns a number intervals for a cycle. */ - int cyclesNumber() const; + int cycleIntervals() const; /*! - * \brief Sets a number of cycles. + * \brief Sets a number intervals for a cycle. */ - void setCyclesNumber(int cyclesNumber); + void setCycleIntervals(int cycleIntervals); /*! * \brief Returns break interval in seconds. @@ -255,7 +255,7 @@ class Settings final : public QObject static const QLatin1String sc_cyclesModeKey; //! key used for settings: cycles mode static const QLatin1String sc_cycleBreakDurationKey; //! key used for settings: cycle break duration - static const QLatin1String sc_cyclesNumber; //! key used for settings: cycles number + static const QLatin1String sc_cycleIntervals; //! key used for settings: cycle intervals static const QLatin1String sc_workTimeKey; //! key used for settings: work day duration static const QLatin1String sc_postponeTimeKey; //! key used for settings: postpone time @@ -276,7 +276,7 @@ class Settings final : public QObject // logic default static const int sc_defaultBreakDuration; //! default break duration \see breakDuration() static const int sc_defaultCycleBreakDuration; //! default cycle break duration \see cycleBreakDuration() - static const int sc_defaultlCyclesNumber; //! default interations for cycle \see cyclesNumber() + static const int sc_defaultlCycleIntervals; //! default cycle intervals \see cycleIntervals() static const int sc_defaultBreakInterval; //! default break interval \see breakInterval() static const int sc_defaultWorkTime; //! default work day duration \see workTime() static const int sc_defaultPostponeTime; //! default postpone time \see postponeTime() diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 7cbf44f..e73be9a 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -128,7 +128,7 @@ Item { value: controller.cycles.currentCycle from: 1 - to: controller.settings.cyclesNumber + to: controller.settings.cycleIntervals onVisibleChanged: { if (visible) { diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index a389160..c07d484 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -34,7 +34,7 @@ SettingsPage { cyclesModeSwitch.checked = controller.settings.cyclesMode cycleBreakDurationSelector.time = controller.settings.cycleBreakDuration - cyclesNumberSpin.value = controller.settings.cyclesNumber + cycleIntervalsSpin.value = controller.settings.cycleIntervals postponeTimeSelector.time = controller.settings.postponeTime workTimeSelector.time = controller.settings.workTime @@ -47,7 +47,7 @@ SettingsPage { controller.settings.cyclesMode = cyclesModeSwitch.checked controller.settings.cycleBreakDuration = cycleBreakDurationSelector.time - controller.settings.cyclesNumber = cyclesNumberSpin.value + controller.settings.cycleIntervals = cycleIntervalsSpin.value controller.settings.postponeTime = postponeTimeSelector.time controller.settings.workTime = workTimeSelector.time @@ -116,13 +116,13 @@ SettingsPage { FormElement { enabled: cyclesModeSwitch.checked - labelText: qsTr("Cycles number:") + labelText: qsTr("Cycle intervals:") CustomSpinBox { - id: cyclesNumberSpin + id: cycleIntervalsSpin from: 1 - to: controller.cycles.maxCycleNumber + to: controller.cycles.maxCycleIntervals } } From 89f06fb711f019a0e555e8a106c753cb031aa954 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 12 Feb 2021 16:06:41 +0100 Subject: [PATCH 054/208] #7: Enlarge maximum possible cycle intervals --- cpp/controller/cyclescontroller.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h index 6c1738f..2226217 100644 --- a/cpp/controller/cyclescontroller.h +++ b/cpp/controller/cyclescontroller.h @@ -54,7 +54,7 @@ public slots: void incrementCurrentCycle(); private: - static const int sc_maxCycleIntervals = 3; + static const int sc_maxCycleIntervals = 10; SettingsController &m_settingsController; int m_currentCycle = 0; From 6aa4f87aa1fe948bb8d97d2561fbc479f982787b Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 12 Feb 2021 16:18:53 +0100 Subject: [PATCH 055/208] #7: Add and utlize EditableIntegerLabel for editing current cycle value --- qml.qrc | 2 + qml/MainContent.qml | 76 +++--------------------- qml/components/EditableIntegerLabel.qml | 55 +++++++++++++++++ qml/components/helpers/ValueEditMode.qml | 61 +++++++++++++++++++ 4 files changed, 126 insertions(+), 68 deletions(-) create mode 100644 qml/components/EditableIntegerLabel.qml create mode 100644 qml/components/helpers/ValueEditMode.qml diff --git a/qml.qrc b/qml.qrc index 56dafd2..563532b 100644 --- a/qml.qrc +++ b/qml.qrc @@ -75,5 +75,7 @@ qml/dialogs/subitems/TimesSettings.qml qml/utils/UiUtils.qml qml/utils/qmldir + qml/components/helpers/ValueEditMode.qml + qml/components/EditableIntegerLabel.qml diff --git a/qml/MainContent.qml b/qml/MainContent.qml index e73be9a..224a93b 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -97,81 +97,21 @@ Item { RowLayout { visible: controller.settings.cyclesMode - spacing: Style.spacing + spacing: Style.smallSpacing CustomLabel { text: qsTr("Current cycle:") } - Item { - id: currentCycleItem - property bool cyclesEditMode: false + EditableIntegerLabel { + id: currentCycleLabel + number: controller.cycles.currentCycle + maxNumber: controller.settings.cycleIntervals - Layout.preferredWidth: width - - implicitWidth: currentCycleLabel.implicitWidth - implicitHeight: currentCycleLabel.implicitHeight - - CustomLabel { - id: currentCycleLabel - anchors.centerIn: parent - - text: controller.cycles.currentCycle - visible: !currentCycleItem.cyclesEditMode - } - - CustomSpinBox { - id: currentIteractionEdit - anchors.centerIn: parent - - visible: currentCycleItem.cyclesEditMode - - value: controller.cycles.currentCycle - - from: 1 - to: controller.settings.cycleIntervals - - onVisibleChanged: { - if (visible) { - forceActiveFocus() - parent.width = maxWidth - } else { - parent.width = parent.cyclesEditMode - } - } - - function acceptChanges() - { - controller.cycles.currentCycle = currentIteractionEdit.value - currentCycleItem.cyclesEditMode = false - } - - Keys.onReturnPressed: - { - acceptChanges() - } - - Keys.onEnterPressed: - { - acceptChanges() - } - - Keys.onEscapePressed: - { - currentCycleItem.cyclesEditMode = false - } - - onFocusChanged: - { - if(!focus) - { - currentCycleItem.cyclesEditMode = false - } - } - } + editMode.onConfirmChanges: controller.cycles.currentCycle = editNumber } ImageButton { - enabled: !currentCycleItem.cyclesEditMode && + enabled: !currentCycleLabel.editMode.activeEdit && controller.state != Controller.Off styleFont: Style.font.imageButtonSmallest @@ -180,7 +120,7 @@ Item { onClicked: { - currentCycleItem.cyclesEditMode = true + currentCycleLabel.editMode.activeEdit = true } } } diff --git a/qml/components/EditableIntegerLabel.qml b/qml/components/EditableIntegerLabel.qml new file mode 100644 index 0000000..9a7cc35 --- /dev/null +++ b/qml/components/EditableIntegerLabel.qml @@ -0,0 +1,55 @@ +import QtQuick 2.12 + +import "./" +import "helpers" + +Item { + id: rootItem + property alias fontStyle: displayLabel.fontStyle + property alias editMode: editMode + + property alias editNumber: editSpinBox.value + property alias minNumber: editSpinBox.from + property alias maxNumber: editSpinBox.to + + property int number + + implicitWidth: Math.max(editSpinBox.implicitWidth, displayLabel.implicitWidth) + implicitHeight: displayLabel.implicitHeight + + ValueEditMode { + id: editMode + + focusItem: editSpinBox + + onRevertChanges: editSpinBox.value = rootItem.number + } + + CustomLabel { + id: displayLabel + + anchors.fill: parent + horizontalAlignment: Text.AlignRight + + visible: !editMode.activeEdit + text: rootItem.number + } + + CustomSpinBox { + id: editSpinBox + + anchors.fill: parent + layer.enabled: true + + visible: editMode.activeEdit + value: rootItem.number + + from: 1 + + Binding { + target: editSpinBox + property: "value" + value: rootItem.number + } + } +} diff --git a/qml/components/helpers/ValueEditMode.qml b/qml/components/helpers/ValueEditMode.qml new file mode 100644 index 0000000..88da5c7 --- /dev/null +++ b/qml/components/helpers/ValueEditMode.qml @@ -0,0 +1,61 @@ +import QtQuick 2.12 + +Item { + id: valueEditMode + property bool activeEdit: false + property Item focusItem: null + + signal confirmChanges() + signal revertChanges() + + function edit() { + activeEdit = true + } + + function accept() { + confirmChanges() + activeEdit = false + } + + function decline() { + revertChanges() + activeEdit = false + } + + onFocusItemChanged: { + focusItem.Keys.forwardTo.push(valueEditMode) + } + + onActiveEditChanged: { + if (activeEdit && focusItem) { + focusItem.forceActiveFocus() + } + } + + Keys.onReturnPressed: + { + accept() + } + + Keys.onEnterPressed: + { + accept() + } + + Keys.onEscapePressed: + { + decline() + } + + Connections { + target: focusItem + + onActiveFocusChanged: + { + if (!focusItem.activeFocus) + { + decline() + } + } + } +} From 635ba60ee66579c695efd9a1bf85418662e52223 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 12 Feb 2021 16:23:12 +0100 Subject: [PATCH 056/208] #7: Make background focusable to be able to decline editing while clicking on a background --- qml/MainContent.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 224a93b..8ac3636 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -35,6 +35,11 @@ Item { Decorative {} } + MouseArea { + anchors.fill: parent + onClicked: forceActiveFocus() + } + ColumnLayout { id: content anchors.fill: parent From 3ecfbfc6a612747ef2a35c2bf730c8e1d0cf3cf6 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 12 Feb 2021 16:46:19 +0100 Subject: [PATCH 057/208] #7: Utilize ValueEditMode also in TimeProgressBar --- qml/MainContent.qml | 11 ++-- qml/components/TimeProgressBar.qml | 64 +++++++++++------------- qml/components/helpers/ValueEditMode.qml | 16 +++++- qml/dialogs/BreakDialog.qml | 2 +- 4 files changed, 50 insertions(+), 43 deletions(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 8ac3636..2ff8088 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -125,7 +125,7 @@ Item { onClicked: { - currentCycleLabel.editMode.activeEdit = true + currentCycleLabel.editMode.edit() } } } @@ -150,7 +150,7 @@ Item { maxValue: controller.settings.breakInterval value: controller.timer.elapsedBreakInterval - onTimeValueChanged: + onTimeEdited: { var timeDiff = newValue - controller.timer.elapsedBreakInterval controller.timer.elapsedBreakInterval = newValue @@ -168,7 +168,7 @@ Item { onClicked: { - nextBreakTimeProgressBar.timeEditMode = true + nextBreakTimeProgressBar.editMode.edit() } } @@ -180,10 +180,11 @@ Item { TimeProgressBar { id: workTimeProgressBar Layout.fillWidth: true + maxValue: controller.settings.workTime value: controller.timer.elapsedWorkTime - onTimeValueChanged: + onTimeEdited: { var timeDiff = newValue - controller.timer.elapsedWorkTime controller.timer.elapsedWorkTime = newValue @@ -200,7 +201,7 @@ Item { onClicked: { - workTimeProgressBar.timeEditMode = true + workTimeProgressBar.editMode.edit() } } } diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 7f79225..541d2a1 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -27,17 +27,38 @@ import "helpers" Item { id: root + property alias editMode: editMode property int minValue: 0 property int maxValue: 100 property int value: 0 - property bool enableEditMode: true - property bool timeEditMode: false implicitHeight: textLabel.font.pixelSize * 1.4 implicitWidth: 200 - signal timeValueChanged(var newValue) + signal timeEdited(int newValue) + + ValueEditMode { + id: editMode + + focusItem: textEditableInput + autoConfirm: false + + onActiveEditChanged: { + textEditableInput.text = textLabel.text.replace(/ /g, '') + } + + onConfirmChanges: { + var intermediateInput = textEditableInput.text.length != textEditableInput.timeInputMask.length; + if (!intermediateInput) { + timeEdited(d.deFormatTime(textEditableInput.text)) + + // we need to change activeEdit manually because autoConfirm is set to false + // this is done to avoid finishing edition for intermidate input + activeEdit = false + } + } + } QtObject { id: d @@ -114,7 +135,7 @@ Item { CustomLabel { id: textLabel anchors.fill: parent - visible: !(timeEditMode && enableEditMode) + visible: !editMode.activeEdit fontStyle: Style.timeBar.font verticalAlignment: Text.AlignVCenter @@ -139,12 +160,7 @@ Item { property string timeInputMask: "99:99:99" anchors.fill: parent - visible: timeEditMode && enableEditMode - focus: visible - onVisibleChanged: - { - text = textLabel.text.replace(/ /g, '') - } + visible: editMode.activeEdit cursorVisible: true @@ -158,45 +174,23 @@ Item { validator: RegularExpressionValidator { regularExpression: /^([0-9][0-9]|[0-9] | ):([0-5][0-9]|[0-5] | ):([0-5][0-9]|[0-5] | )$/ } - - onAccepted: - { - var intermediateInput = text.length != timeInputMask.length; - if (!intermediateInput) { - timeValueChanged(d.deFormatTime(textEditableInput.text)) - timeEditMode = false - } - } - - Keys.onEscapePressed: - { - timeEditMode = false - } - - onFocusChanged: - { - if(!focus) - { - timeEditMode = false - } - } } MouseArea { anchors.fill: parent - enabled: enableEditMode + enabled: editMode.enabled propagateComposedEvents: true acceptedButtons: Qt.LeftButton | Qt.RightButton onDoubleClicked: { - timeEditMode = true + editMode.edit() } onClicked: { if(mouse.button === Qt.RightButton) { - timeEditMode = false + editMode.decline() } } } diff --git a/qml/components/helpers/ValueEditMode.qml b/qml/components/helpers/ValueEditMode.qml index 88da5c7..fe31a15 100644 --- a/qml/components/helpers/ValueEditMode.qml +++ b/qml/components/helpers/ValueEditMode.qml @@ -5,6 +5,12 @@ Item { property bool activeEdit: false property Item focusItem: null + // defines if editing is finished automatically for accepting + property bool autoConfirm: true + + // defines if editing is finished automatically for declining + property bool autoDecline: true + signal confirmChanges() signal revertChanges() @@ -14,12 +20,18 @@ Item { function accept() { confirmChanges() - activeEdit = false + + if (autoConfirm) { + activeEdit = false + } } function decline() { revertChanges() - activeEdit = false + + if (autoDecline) { + activeEdit = false + } } onFocusItemChanged: { diff --git a/qml/dialogs/BreakDialog.qml b/qml/dialogs/BreakDialog.qml index e9df54f..c75f8b1 100644 --- a/qml/dialogs/BreakDialog.qml +++ b/qml/dialogs/BreakDialog.qml @@ -66,7 +66,7 @@ CustomDialog { width: parent.width maxValue: controller.currentBreakDuration() value: controller.timer.elapsedBreakDuration - enableEditMode: false + editMode.enabled: false } Connections { From 4c9f0d12c4eebe11457cb1e426f15efe15cce518 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Feb 2021 11:52:08 +0100 Subject: [PATCH 058/208] #7: Improve remaining name confusions: current cycle -> current interval --- cpp/controller/controller.cpp | 16 ++++++++-------- cpp/controller/controller.h | 8 ++++---- cpp/controller/cyclescontroller.cpp | 28 ++++++++++++++-------------- cpp/controller/cyclescontroller.h | 14 +++++++------- cpp/workers/backupmanager.cpp | 4 ++-- cpp/workers/backupmanager.h | 2 +- qml/MainContent.qml | 16 ++++++++-------- 7 files changed, 44 insertions(+), 44 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index e74b962..23bac6a 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -37,7 +37,7 @@ Controller::Controller() connect(&m_timerController, &TimerController::elapsedWorkTimeChanged, this, &Controller::onElapsedWorkTimeChange); connect(&m_timerController, &TimerController::timerStopRequest, this, &Controller::onTimerStopRequested); - connect(&m_cyclesController, &CyclesController::currentCycleChanged, this, &Controller::onCycleCurrentCycleChange); + connect(&m_cyclesController, &CyclesController::currentIntervalChanged, this, &Controller::onCurrentCycleIntervalChange); connect(&m_settingsController, &SettingsController::breakIntervalChanged, this, &Controller::onBreakIntervalChanged); connect(&m_settingsController, &SettingsController::workTimeChanged, this, &Controller::onWorkTimeChanged); @@ -174,7 +174,7 @@ void Controller::stop() case State::Working: setState(State::Off); m_timerController.stop(true); - m_cyclesController.resetCurrentCycle(); + m_cyclesController.resetCurrentInterval(); m_backupManager.stop(); m_backupManager.cleanup(); break; @@ -197,7 +197,7 @@ void Controller::postponeBreak() } void Controller::startWork() { - m_cyclesController.incrementCurrentCycle(); + m_cyclesController.incrementCurrentInterval(); m_postponeDuration = m_lastRequestTime = 0; m_timerController.setElapsedBreakInterval(0); @@ -236,7 +236,7 @@ void Controller::onBackupData(const BackupManager::Data &data) postponeBreak(); } - m_cyclesController.setCurrentCycle(data.currentCycle); + m_cyclesController.setCurrentInterval(data.currentCycleInterval); setState(State::Recovered); // set recovered state to avoid restart if (wasWorking) { @@ -278,10 +278,10 @@ void Controller::onElapsedWorkTimeChange(int elapsedWorkTime) m_backupManager.data().elapsedWorkTime = elapsedWorkTime; } -void Controller::onCycleCurrentCycleChange(int currentCycle) +void Controller::onCurrentCycleIntervalChange(int currentInterval) { // update backup manager - m_backupManager.data().currentCycle = currentCycle; + m_backupManager.data().currentCycleInterval = currentInterval; } void Controller::onBreakIntervalChanged(int breakInterval) @@ -317,8 +317,8 @@ void Controller::onTimerStopRequested() void Controller::onCyclesModeChanged(bool cyclesMode) { - m_cyclesController.resetCurrentCycle(); + m_cyclesController.resetCurrentInterval(); if (cyclesMode && m_state > State::Off) { - m_cyclesController.incrementCurrentCycle(); + m_cyclesController.incrementCurrentInterval(); } } diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 399eb88..ad8439a 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -105,7 +105,7 @@ public slots: State m_state = State::Off; //! current state int m_postponeDuration = 0; //! sum duration for all postpones for current break int m_lastRequestTime = 0; //! last time when postpone button was clicked - int m_currentCycle = 0; //! number of current cycle + int m_currentInterval = 0; //! number of current interval SettingsController *settingsPtr(); TimerController *timerPtr(); @@ -154,13 +154,13 @@ private slots: // CYCLES CONTROLLER /*! - * \brief Method handles a change in current cycle counter. + * \brief Method handles a change in current interval counter. * * Updates backup data. * - * \param currentCycle current cycle + * \param currentInterval current interval of a cycle */ - void onCycleCurrentCycleChange(int currentCycle); + void onCurrentCycleIntervalChange(int currentInterval); // SETTINGS CONTROLLER /*! diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index 85988e5..af0e770 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -25,7 +25,7 @@ CyclesController::CyclesController(SettingsController &settingsController, QObject *parent) : QObject(parent), m_settingsController(settingsController) { - connect(this, &CyclesController::currentCycleChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); + connect(this, &CyclesController::currentIntervalChanged, this, [this] { emit isCycleFinishedChanged(isCycleFinished()); }); } int CyclesController::maxCycleIntervals() const @@ -33,38 +33,38 @@ int CyclesController::maxCycleIntervals() const return sc_maxCycleIntervals; } -int CyclesController::currentCycle() const +int CyclesController::currentInterval() const { - return m_settingsController.cyclesMode() ? m_currentCycle + return m_settingsController.cyclesMode() ? m_currentInterval : 0; } bool CyclesController::isCycleFinished() const { return m_settingsController.cyclesMode() - ? (m_currentCycle == m_settingsController.cycleIntervals()) + ? (m_currentInterval == m_settingsController.cycleIntervals()) : 0; } -void CyclesController::setCurrentCycle(int cycle) +void CyclesController::setCurrentInterval(int currentInterval) { - if (m_currentCycle == cycle) + if (m_currentInterval == currentInterval) return; - if (cycle > m_settingsController.cycleIntervals()) { - cycle = 1; + if (currentInterval > m_settingsController.cycleIntervals()) { + currentInterval = 1; } - m_currentCycle = cycle; - emit currentCycleChanged(m_currentCycle); + m_currentInterval = currentInterval; + emit currentIntervalChanged(m_currentInterval); } -void CyclesController::resetCurrentCycle() +void CyclesController::resetCurrentInterval() { - setCurrentCycle(0); + setCurrentInterval(0); } -void CyclesController::incrementCurrentCycle() +void CyclesController::incrementCurrentInterval() { - setCurrentCycle(m_currentCycle + 1); + setCurrentInterval(m_currentInterval + 1); } diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h index 2226217..f360569 100644 --- a/cpp/controller/cyclescontroller.h +++ b/cpp/controller/cyclescontroller.h @@ -33,7 +33,7 @@ class CyclesController final : public QObject Q_ENUMS(State) Q_PROPERTY(int maxCycleIntervals READ maxCycleIntervals CONSTANT) - Q_PROPERTY(int currentCycle READ currentCycle WRITE setCurrentCycle NOTIFY currentCycleChanged) + Q_PROPERTY(int currentInterval READ currentInterval WRITE setCurrentInterval NOTIFY currentIntervalChanged) Q_PROPERTY(bool isCycleFinished READ isCycleFinished NOTIFY isCycleFinishedChanged) public: @@ -41,23 +41,23 @@ class CyclesController final : public QObject int maxCycleIntervals() const; - int currentCycle() const; + int currentInterval() const; bool isCycleFinished() const; signals: - void currentCycleChanged(int currentCycle) const; + void currentIntervalChanged(int currentInterval) const; void isCycleFinishedChanged(bool isCycleFinished) const; public slots: - void setCurrentCycle(int cycle); - void resetCurrentCycle(); - void incrementCurrentCycle(); + void setCurrentInterval(int currentInterval); + void resetCurrentInterval(); + void incrementCurrentInterval(); private: static const int sc_maxCycleIntervals = 10; SettingsController &m_settingsController; - int m_currentCycle = 0; + int m_currentInterval = 0; }; #endif // CYCLESCONTROLLER_H diff --git a/cpp/workers/backupmanager.cpp b/cpp/workers/backupmanager.cpp index c440a41..cbc466a 100644 --- a/cpp/workers/backupmanager.cpp +++ b/cpp/workers/backupmanager.cpp @@ -157,13 +157,13 @@ bool BackupManager::Data::isEmpty() QDataStream &operator<<(QDataStream &stream, const BackupManager::Data &data) { - stream << data.elapsedBreakInterval << data.elapsedWorkTime << data.currentCycle; + stream << data.elapsedBreakInterval << data.elapsedWorkTime << data.currentCycleInterval; return stream; } QDataStream &operator>>(QDataStream &stream, BackupManager::Data &data) { stream >> data.elapsedBreakInterval; stream >> data.elapsedWorkTime; - stream >> data.currentCycle; + stream >> data.currentCycleInterval; return stream; } diff --git a/cpp/workers/backupmanager.h b/cpp/workers/backupmanager.h index 4c2d402..377b9c4 100644 --- a/cpp/workers/backupmanager.h +++ b/cpp/workers/backupmanager.h @@ -42,7 +42,7 @@ class BackupManager final : public QObject struct Data { int elapsedBreakInterval = 0; int elapsedWorkTime = 0; - int currentCycle = 0; + int currentCycleInterval = 0; bool isEmpty(); }; diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 2ff8088..30b777d 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -98,34 +98,34 @@ Item { } } - // current cycle + // current interval RowLayout { visible: controller.settings.cyclesMode spacing: Style.smallSpacing CustomLabel { - text: qsTr("Current cycle:") + text: qsTr("Current interval:") } EditableIntegerLabel { - id: currentCycleLabel - number: controller.cycles.currentCycle + id: currentCycleIntervalLabel + number: controller.cycles.currentInterval maxNumber: controller.settings.cycleIntervals - editMode.onConfirmChanges: controller.cycles.currentCycle = editNumber + editMode.onConfirmChanges: controller.cycles.currentInterval = editNumber } ImageButton { - enabled: !currentCycleLabel.editMode.activeEdit && + enabled: !currentCycleIntervalLabel.editMode.activeEdit && controller.state != Controller.Off styleFont: Style.font.imageButtonSmallest type: "edit" - tooltip: qsTr("Edit current cycle") + tooltip: qsTr("Edit current interval") onClicked: { - currentCycleLabel.editMode.edit() + currentCycleIntervalLabel.editMode.edit() } } } From 1790b0c9a2ab007827d0ae425b572bd0a8d6021f Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Feb 2021 11:55:19 +0100 Subject: [PATCH 059/208] #7: Add current interval value into a tray button tooltip --- cpp/view/traymanager.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cpp/view/traymanager.cpp b/cpp/view/traymanager.cpp index 82f2aa9..cc6ae44 100644 --- a/cpp/view/traymanager.cpp +++ b/cpp/view/traymanager.cpp @@ -93,10 +93,14 @@ void TrayManager::initTrayIcon() this, SLOT(onWindowClosed()) ); // tooltip + connect(&m_controller.settings(), &SettingsController::cycleIntervalsChanged, + this, &TrayManager::updateToolTip); connect(&m_controller.settings(), &SettingsController::breakIntervalChanged, this, &TrayManager::updateToolTip); connect(&m_controller.settings(), &SettingsController::workTimeChanged, this, &TrayManager::updateToolTip); + connect(&m_controller.cycles(), &CyclesController::currentIntervalChanged, + this, &TrayManager::updateToolTip); connect(&m_controller.timer(), &TimerController::elapsedBreakIntervalChanged, this, &TrayManager::updateToolTip); connect(&m_controller.timer(), &TimerController::elapsedWorkTimeChanged, @@ -223,12 +227,17 @@ void TrayManager::changeVisibility() void TrayManager::updateToolTip() { - static const QString tooltipTemplate = tr("NEXT BREAK:\n" + static const QString tooltipTemplate = tr("CURRENT INTERVAL:\n" "%1 / %2\n" "\n" + "NEXT BREAK:\n" + "%3 / %4\n" + "\n" "WORK TIME:\n" - "%3 / %4"); + "%5 / %6"); m_trayIcon.setToolTip(tooltipTemplate + .arg(m_controller.cycles().currentInterval()) + .arg(m_controller.settings().cycleIntervals()) .arg(Helpers::formatTime(m_controller.timer().elapsedBreakInterval()) ) .arg(Helpers::formatTime(m_controller.settings().breakInterval()) ) .arg(Helpers::formatTime(m_controller.timer().elapsedWorkTime()) ) From 5b3e4df007dce84be688f13a6b91d5e6640e6344 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Feb 2021 12:11:56 +0100 Subject: [PATCH 060/208] #7: Adds a skip break action into the tray menu --- cpp/controller/controller.cpp | 6 ++++++ cpp/controller/controller.h | 1 + cpp/view/traymanager.cpp | 19 +++++++++++++++---- cpp/view/traymanager.h | 3 ++- qml/MainContent.qml | 2 +- 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index 23bac6a..1608155 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -195,6 +195,12 @@ void Controller::postponeBreak() (m_timerController.elapsedBreakInterval() - m_lastRequestTime) + settings().postponeTime(); } + +void Controller::skipBreak() +{ + startWork(); +} + void Controller::startWork() { m_cyclesController.incrementCurrentInterval(); diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index ad8439a..5dc9aac 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -88,6 +88,7 @@ public slots: void startBreak(); void postponeBreak(); + void skipBreak(); void startWork(); private: diff --git a/cpp/view/traymanager.cpp b/cpp/view/traymanager.cpp index cc6ae44..eda75c6 100644 --- a/cpp/view/traymanager.cpp +++ b/cpp/view/traymanager.cpp @@ -121,7 +121,11 @@ void TrayManager::initTrayMenu() action = m_trayMenu->addAction(QIcon(":/resources/images/break.png"), tr("Take a break!")); connect(action, &QAction::triggered, this, &TrayManager::takeBreak); - m_breakAction = action; + m_breakActions.append(action); + + action = m_trayMenu->addAction(QIcon(":/resources/images/break.png"), tr("Skip a break")); + connect(action, &QAction::triggered, this, &TrayManager::skipBreak); + m_breakActions.append(action); m_trayMenu->addSeparator(); action = m_trayMenu->addAction(QIcon(":/resources/images/settings.png"), tr("Settings")); @@ -140,7 +144,6 @@ void TrayManager::initTrayMenu() connect(&m_controller.timer(), &TimerController::activePeriodTypeChanged, this, &TrayManager::checkBreakAvailability); checkBreakAvailability(); - } void TrayManager::checkInitState() @@ -205,8 +208,11 @@ void TrayManager::showInformationDialog() void TrayManager::checkBreakAvailability() { - m_breakAction->setEnabled(m_controller.state() == Controller::State::Working && - m_controller.timer().activePeriodType() == TimerController::PeriodType::Work); + const auto breakActionsEnabled = (m_controller.state() == Controller::State::Working) && + (m_controller.timer().activePeriodType() == TimerController::PeriodType::Work); + + std::for_each(m_breakActions.begin(), m_breakActions.end(), + std::bind(&QAction::setEnabled, std::placeholders::_1, breakActionsEnabled)); } void TrayManager::takeBreak() @@ -215,6 +221,11 @@ void TrayManager::takeBreak() QMetaObject::invokeMethod(m_mainWindow, "showBreakDialog"); } +void TrayManager::skipBreak() +{ + m_controller.skipBreak(); +} + void TrayManager::changeVisibility() { if (m_mainWindow->isVisible()) { diff --git a/cpp/view/traymanager.h b/cpp/view/traymanager.h index 023feb1..9cd2296 100644 --- a/cpp/view/traymanager.h +++ b/cpp/view/traymanager.h @@ -69,7 +69,7 @@ public slots: QPointer m_mainWindow; //! A pointer for a main window class QSystemTrayIcon m_trayIcon; QScopedPointer m_trayMenu; - QPointer m_breakAction; //! A break action pointer + QVector m_breakActions; //! A pointers for break related actions #ifdef Q_OS_LINUX /*! @@ -92,6 +92,7 @@ private slots: void checkBreakAvailability(); void takeBreak(); + void skipBreak(); void changeVisibility(); void updateToolTip(); diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 30b777d..50621b7 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -72,7 +72,7 @@ Item { anchors.fill: parent acceptedButtons: Qt.RightButton onPressAndHold: { - controller.startWork(); + controller.skipBreak(); } } } From 5975bfa1fa621fbdba419e1929b22a5ca7a0130f Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 26 Feb 2021 15:01:07 +0100 Subject: [PATCH 061/208] #10: Initial template for a help html page. --- help/help.html | 103 ++++++++++++++++++++++++++++++++++++++++ help/resources/logo.png | Bin 0 -> 24310 bytes 2 files changed, 103 insertions(+) create mode 100644 help/help.html create mode 100644 help/resources/logo.png diff --git a/help/help.html b/help/help.html new file mode 100644 index 0000000..92e4746 --- /dev/null +++ b/help/help.html @@ -0,0 +1,103 @@ + + + + + + + +

Resto

+
ver. 1.0.7
+
    +

  1. Header 1
  2. +

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right. Edit any of the two areas and see the other changing in real time.

    + + +

  3. Header 1
  4. +

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right. Edit any of the two areas and see the other changing in real time.

    +
      +

    1. Header 2
    2. +

      Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
      Edit any of the two areas and see the other changing in real time. 

      + +

    3. Header 2
    4. +

      Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
      Edit any of the two areas and see the other changing in real time. 

      +
        +
      • something
      • +
      • something
      • +
      +
    +

  5. Header 1
  6. +

    HEADER 3

    +

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
    Edit any of the two areas and see the other changing in real time. 

    +

    HEADER 3

    +

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
    Edit any of the two areas and see the other changing in real time. 

    +

    HEADER 3

    +

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
    Edit any of the two areas and see the other changing in real time. 

    +
+ + \ No newline at end of file diff --git a/help/resources/logo.png b/help/resources/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3fce04be7aef3b5cbda51f51893dab2dee91caa7 GIT binary patch literal 24310 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 pg0FlNeenhSnh3sl9Dn6=_ Date: Fri, 5 Mar 2021 14:14:05 +0100 Subject: [PATCH 062/208] #10: Improve fonts size --- help/help.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/help/help.html b/help/help.html index 92e4746..8f5370b 100644 --- a/help/help.html +++ b/help/help.html @@ -24,7 +24,7 @@ margin: auto; font-family: 'josefin_sans-regular'; - font-size: 14pt; + font-size: 16pt; } h1, h2, h3, @@ -37,25 +37,25 @@ h1 { margin-left: 0.5em; - font-size: 6em; + font-size: 5.5em; font-variant: small-caps; } h2 { - font-size: 2em; + font-size: 1.7em; font-variant: small-caps; } h3 { - font-size: 1.5em; + font-size: 1.25em; } .subtitle { - margin-top: -2em; - margin-bottom: 2em; - margin-left: 2em; + margin-top: -1.7em; + margin-bottom: 1.7em; + margin-left: 1.7em; font-family: 'josefin_sans-bolder'; - font-size: 2em; + font-size: 1.7em; } .paragraphImage { @@ -65,7 +65,7 @@ } #titleImage { - margin-left: 1em; + margin-left: 3em; } From 7472544d9829935b544f861616de042d1222acdc Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 14:16:59 +0100 Subject: [PATCH 063/208] #10 Move contents of two initals and one final sections (simple ones) --- help/help.html | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/help/help.html b/help/help.html index 8f5370b..52aa130 100644 --- a/help/help.html +++ b/help/help.html @@ -74,6 +74,20 @@

Resto

ver. 1.0.7
    + + +

  1. The name
  2. +

    „Resto†is a Spanish first person singular form of a verb „restarâ€, which can be translated as „to remainâ€. There is also an obvious phonetic connection to an English verb „to restâ€.

    +

    The name is explaining two main purposes of the application: to count the remaining time of your work and to take care of your regular rests.

    + + +

  3. REASON
  4. +

    Resto is useful for every one working with a computer. To keep you in a good health and let you remain focused whole day it is important to do regular breaks. You should stand up for a while, take a short walk and try not to think about your work issues.

    +

    Additionally Resto is especially useful for anyone working at home. It is counting your working time, so you are free to mix your personal and professional tasks and you are always aware of how many hours you have already worked.

    +

    You can customize Resto to fit to your own need. It is up to you to decide how often you want to take breaks, how long they should last and more. You can even choose your favorite color!

    +

    Of course you are not always able to take a break at certain time. That is why Resto just reminds you gently about a need of rest and let you to decide what you want to do. You can take your break right away, postpone it by some time or even skip it if you are really busy.

    + +

  5. Header 1
  6. Paste your documents in the visual editor on the left or your HTML code in the source editor in the right. Edit any of the two areas and see the other changing in real time.

    @@ -98,6 +112,12 @@

    HEADER 3

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
    Edit any of the two areas and see the other changing in real time. 

    HEADER 3

    Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
    Edit any of the two areas and see the other changing in real time. 

    + + + +

  7. Epilogue
  8. +

    If you have any additional questions, notes or comments. You're welcomed to share them. Please take a look on authors page, which you can find in the About dialog.

    +
\ No newline at end of file From 33f32c6b4fed1c8bc09cbc72829364d021b1ac2e Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 14:22:49 +0100 Subject: [PATCH 064/208] #10 A few language improvements for already moved sections --- help/help.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/help/help.html b/help/help.html index 52aa130..529ed52 100644 --- a/help/help.html +++ b/help/help.html @@ -82,10 +82,10 @@

  • The name
  • REASON
  • -

    Resto is useful for every one working with a computer. To keep you in a good health and let you remain focused whole day it is important to do regular breaks. You should stand up for a while, take a short walk and try not to think about your work issues.

    -

    Additionally Resto is especially useful for anyone working at home. It is counting your working time, so you are free to mix your personal and professional tasks and you are always aware of how many hours you have already worked.

    -

    You can customize Resto to fit to your own need. It is up to you to decide how often you want to take breaks, how long they should last and more. You can even choose your favorite color!

    -

    Of course you are not always able to take a break at certain time. That is why Resto just reminds you gently about a need of rest and let you to decide what you want to do. You can take your break right away, postpone it by some time or even skip it if you are really busy.

    +

    Resto is useful for every one working with a computer. To keep you in a good health and let you remain focused for the whole day it is important to take regular breaks. You should stand up for a while, take a short walk and try not to think about your work issues.

    +

    Additionally Resto is especially useful for anyone working from home. It is counting a working time, so you are free to mix your personal and professional tasks and you are always aware of how many hours you have already worked.

    +

    You can customize Resto to fit to your own needs. It is up to you to decide how often do you want to take breaks, how long should they last and more. You can even choose your favorite color!

    +

    Of course you are not always able to take a break instantly. That is why Resto just reminds you gently about the need of rest and let you to decide what do you want to do. You can start your break right away, postpone it or even skip it if you are really busy.

  • Header 1
  • @@ -116,7 +116,7 @@

    HEADER 3

  • Epilogue
  • -

    If you have any additional questions, notes or comments. You're welcomed to share them. Please take a look on authors page, which you can find in the About dialog.

    +

    If you have any additional questions, notes or comments. You're welcomed to share them. Please take a look on the authors page, which you can find in the About dialog.

    From ffa3246c02ab8ef30030d2a8301e7857bfda174f Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 14:53:39 +0100 Subject: [PATCH 065/208] #7: Minor code improvements: typos, coding style, conditions checking --- cpp/controller/controller.cpp | 6 ++- cpp/controller/cyclescontroller.cpp | 10 ++--- cpp/controller/settingscontroller.cpp | 56 ++++++++++++++++++--------- cpp/model/settings.cpp | 2 +- cpp/model/settings.h | 2 +- qml/utils/UiUtils.qml | 4 +- 6 files changed, 50 insertions(+), 30 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index 1608155..a9f70e4 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -144,7 +144,7 @@ void Controller::start() [[fallthrough]]; case State::Paused: case State::Recovered: - m_timerController.start(); // restart only from Off + m_timerController.start(); setState(State::Working); m_backupManager.start(); break; @@ -324,7 +324,9 @@ void Controller::onTimerStopRequested() void Controller::onCyclesModeChanged(bool cyclesMode) { m_cyclesController.resetCurrentInterval(); - if (cyclesMode && m_state > State::Off) { + + const bool isRunning = (m_state == State::Working || m_state == State::Paused); + if (cyclesMode && isRunning) { m_cyclesController.incrementCurrentInterval(); } } diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index af0e770..ef961e7 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2021 JustCode Justyna Kulinska ** ** This file is part of Resto. ** @@ -41,15 +41,15 @@ int CyclesController::currentInterval() const bool CyclesController::isCycleFinished() const { - return m_settingsController.cyclesMode() - ? (m_currentInterval == m_settingsController.cycleIntervals()) - : 0; + return m_settingsController.cyclesMode() && + (m_currentInterval == m_settingsController.cycleIntervals()); } void CyclesController::setCurrentInterval(int currentInterval) { - if (m_currentInterval == currentInterval) + if (m_currentInterval == currentInterval) { return; + } if (currentInterval > m_settingsController.cycleIntervals()) { currentInterval = 1; diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index 62a6e8f..f20bdce 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -124,17 +124,19 @@ QDateTime SettingsController::nextUpdateCheck() const void SettingsController::setIncludeBreaks(bool includeBreaks) { - if (m_settings.includeBreaks() == includeBreaks) + if (m_settings.includeBreaks() == includeBreaks) { return; + } - m_settings.setIncluseBreaks(includeBreaks); + m_settings.setIncludeBreaks(includeBreaks); emit includeBreaksChanged(includeBreaks); } void SettingsController::setBreakDuration(int breakDuration) { - if (m_settings.breakDuration() == breakDuration) + if (m_settings.breakDuration() == breakDuration) { return; + } m_settings.setBreakDuration(breakDuration); emit breakDurationChanged(breakDuration); @@ -142,8 +144,9 @@ void SettingsController::setBreakDuration(int breakDuration) void SettingsController::setCycleBreakDuration(int cycleBreakDuration) { - if (m_settings.cycleBreakDuration() == cycleBreakDuration) + if (m_settings.cycleBreakDuration() == cycleBreakDuration) { return; + } m_settings.setCycleBreakDuration(cycleBreakDuration); emit cycleBreakDurationChanged(cycleBreakDuration); @@ -151,16 +154,18 @@ void SettingsController::setCycleBreakDuration(int cycleBreakDuration) void SettingsController::setCycleIntervals(int cycleIntervals) { - if (m_settings.cycleIntervals() == cycleIntervals) + if (m_settings.cycleIntervals() == cycleIntervals) { return; + } m_settings.setCycleIntervals(cycleIntervals); emit cycleIntervalsChanged(cycleIntervals); } void SettingsController::setBreakInterval(int breakInterval) { - if (m_settings.breakInterval() == breakInterval) + if (m_settings.breakInterval() == breakInterval) { return; + } m_settings.setBreakInterval(breakInterval); emit breakIntervalChanged(breakInterval); @@ -168,8 +173,9 @@ void SettingsController::setBreakInterval(int breakInterval) void SettingsController::setCyclesMode(bool cyclesMode) { - if (m_settings.cyclesMode() == cyclesMode) + if (m_settings.cyclesMode() == cyclesMode) { return; + } m_settings.setCyclesMode(cyclesMode); emit cyclesModeChanged(cyclesMode); @@ -177,24 +183,27 @@ void SettingsController::setCyclesMode(bool cyclesMode) void SettingsController::setWorkTime(int workTime) { - if (m_settings.workTime() == workTime) + if (m_settings.workTime() == workTime) { return; + } m_settings.setWorkTime(workTime); emit workTimeChanged(workTime); } void SettingsController::setPostponeTime(int postponeTime) { - if (m_settings.postponeTime() == postponeTime) + if (m_settings.postponeTime() == postponeTime) { return; + } m_settings.setPostponeTime(postponeTime); emit postponeTimeChanged(postponeTime); } void SettingsController::setAutoStart(bool autoStart) { - if (m_settings.autoStart() == autoStart) + if (m_settings.autoStart() == autoStart) { return; + } m_settings.setAutoStart(autoStart); emit autoStartChanged(autoStart); @@ -202,8 +211,9 @@ void SettingsController::setAutoStart(bool autoStart) void SettingsController::setWindowPosition(const QPoint &windowPosition) { - if (m_settings.windowPosition() == windowPosition) + if (m_settings.windowPosition() == windowPosition) { return; + } m_settings.setWindowPosition(windowPosition); emit windowPositionChanged(windowPosition); @@ -211,8 +221,9 @@ void SettingsController::setWindowPosition(const QPoint &windowPosition) void SettingsController::setWindowSize(const QSize &windowSize) { - if (m_settings.windowSize() == windowSize) + if (m_settings.windowSize() == windowSize) { return; + } m_settings.setWindowSize(windowSize); emit windowSizeChanged(windowSize); @@ -220,8 +231,9 @@ void SettingsController::setWindowSize(const QSize &windowSize) void SettingsController::setApplicationColorIndex(const int colorIndex) { - if (m_settings.applicationColorIndex() == colorIndex) + if (m_settings.applicationColorIndex() == colorIndex) { return; + } m_settings.setApplicationColorIndex(colorIndex); emit applicationColorIndexChanged(colorIndex); @@ -229,8 +241,9 @@ void SettingsController::setApplicationColorIndex(const int colorIndex) void SettingsController::setTrayAvailable(bool trayAvailable) { - if (m_settings.trayAvailable() == trayAvailable) + if (m_settings.trayAvailable() == trayAvailable) { return; + } m_settings.setTrayAvailable(trayAvailable); emit trayAvailableChanged(trayAvailable); @@ -238,8 +251,9 @@ void SettingsController::setTrayAvailable(bool trayAvailable) void SettingsController::setShowTrayInfo(bool showTrayInfo) { - if (m_settings.showTrayInfo() == showTrayInfo) + if (m_settings.showTrayInfo() == showTrayInfo) { return; + } m_settings.setShowTrayInfo(showTrayInfo); emit showTrayInfoChanged(showTrayInfo); @@ -247,8 +261,9 @@ void SettingsController::setShowTrayInfo(bool showTrayInfo) void SettingsController::setAutoHide(bool autoHide) { - if (m_settings.autoHide() == autoHide) + if (m_settings.autoHide() == autoHide) { return; + } m_settings.setAutoHide(autoHide); emit autoHideChanged(autoHide); @@ -256,8 +271,9 @@ void SettingsController::setAutoHide(bool autoHide) void SettingsController::setHideOnClose(bool hideOnClose) { - if (m_settings.hideOnClose() == hideOnClose) + if (m_settings.hideOnClose() == hideOnClose) { return; + } m_settings.setHideOnClose(hideOnClose); emit hideOnCloseChanged(hideOnClose); @@ -265,8 +281,9 @@ void SettingsController::setHideOnClose(bool hideOnClose) void SettingsController::setUpdateVersion(const QString &updateVersion) { - if (m_settings.updateVersion() == updateVersion) + if (m_settings.updateVersion() == updateVersion) { return; + } m_settings.setUpdateVersion(updateVersion); emit updateVersionChanged(updateVersion); @@ -274,8 +291,9 @@ void SettingsController::setUpdateVersion(const QString &updateVersion) void SettingsController::setNextUpdateCheck(const QDateTime &nextUpdateCheck) { - if (m_settings.nextUpdateCheck() == nextUpdateCheck) + if (m_settings.nextUpdateCheck() == nextUpdateCheck) { return; + } m_settings.setNextUpdateCheck(nextUpdateCheck); emit nextUpdateCheckChanged(nextUpdateCheck); diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 4fbc48e..514d297 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -95,7 +95,7 @@ bool Settings::includeBreaks() const return value(sc_logicGroupName, sc_includeBreaksKey, true).toBool(); } -void Settings::setIncluseBreaks(bool include) +void Settings::setIncludeBreaks(bool include) { setValue(sc_logicGroupName, sc_includeBreaksKey, include); } diff --git a/cpp/model/settings.h b/cpp/model/settings.h index 58c5ca5..2d8003f 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -71,7 +71,7 @@ class Settings final : public QObject /*! * \brief Sets an information if include breaks in the work time. */ - void setIncluseBreaks(bool include); + void setIncludeBreaks(bool include); /*! * \brief Returns break duration in seconds. diff --git a/qml/utils/UiUtils.qml b/qml/utils/UiUtils.qml index 287c1b0..3c5cf21 100644 --- a/qml/utils/UiUtils.qml +++ b/qml/utils/UiUtils.qml @@ -36,8 +36,8 @@ QtObject { function averageTextWidth(fontMetrics, charsCount) { - var AVERAGE_WIDHT_ENLARGE = 2; - return charsCount * AVERAGE_WIDHT_ENLARGE * fontMetrics.averageCharacterWidth; + var AVERAGE_WIDTH_ENLARGE = 2; + return charsCount * AVERAGE_WIDTH_ENLARGE * fontMetrics.averageCharacterWidth; } function maxTextWidth(fontMetrics, charsCount) { From a9bc6a86841ca7057295e22ae0d04548622f3a30 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 14:54:57 +0100 Subject: [PATCH 066/208] #7: Add a missing check for current cycle interval in BackupManager::Data::isEmpty --- cpp/workers/backupmanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpp/workers/backupmanager.cpp b/cpp/workers/backupmanager.cpp index cbc466a..709f94f 100644 --- a/cpp/workers/backupmanager.cpp +++ b/cpp/workers/backupmanager.cpp @@ -152,7 +152,8 @@ void BackupManager::doBackup() bool BackupManager::Data::isEmpty() { return (elapsedBreakInterval == 0 && - elapsedWorkTime == 0 ); + elapsedWorkTime == 0 && + currentCycleInterval == 0); } QDataStream &operator<<(QDataStream &stream, const BackupManager::Data &data) From 2ad280135e8e4f119cc484e5f03822ec4f881726 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 15:01:05 +0100 Subject: [PATCH 067/208] #7: Utilize QPointer for m_breakActions --- cpp/view/traymanager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/view/traymanager.h b/cpp/view/traymanager.h index 9cd2296..a56422b 100644 --- a/cpp/view/traymanager.h +++ b/cpp/view/traymanager.h @@ -69,7 +69,7 @@ public slots: QPointer m_mainWindow; //! A pointer for a main window class QSystemTrayIcon m_trayIcon; QScopedPointer m_trayMenu; - QVector m_breakActions; //! A pointers for break related actions + QVector> m_breakActions; //! A pointers for break related actions #ifdef Q_OS_LINUX /*! From c785f493c92729faec2a1f8dea898f49950d405e Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 15:03:43 +0100 Subject: [PATCH 068/208] #7: Update the license notes to remove a real name from it --- cpp/controller/settingscontroller.h | 2 +- cpp/controller/timercontroller.cpp | 2 +- cpp/controller/timercontroller.h | 2 +- cpp/controller/updatecontroller.cpp | 2 +- cpp/controller/updatecontroller.h | 2 +- cpp/model/settings.cpp | 2 +- cpp/utility/helpers.cpp | 2 +- cpp/utility/helpers.h | 2 +- cpp/workers/backupmanager.cpp | 2 +- cpp/workers/savemanager.cpp | 2 +- cpp/workers/savemanager.h | 2 +- js/resourceInfo.js | 2 +- qml/ConnectionsManager.qml | 2 +- qml/DialogsManager.qml | 2 +- qml/MainContent.qml | 2 +- qml/components/Background.qml | 2 +- qml/components/ClickableLabel.qml | 2 +- qml/components/ColorPicker.qml | 2 +- qml/components/CustomLabel.qml | 2 +- qml/components/CustomSwitch.qml | 2 +- qml/components/Decorative.qml | 2 +- qml/components/FormElement.qml | 2 +- qml/components/ImageButton.qml | 2 +- qml/components/Spacer.qml | 2 +- qml/components/SpacerLine.qml | 2 +- qml/components/TabView.qml | 2 +- qml/components/TextBox.qml | 2 +- qml/components/TextButton.qml | 2 +- qml/components/TimeProgressBar.qml | 2 +- qml/components/helpers/BarGradient.qml | 2 +- qml/components/helpers/BarTextGradient.qml | 2 +- qml/components/helpers/LayoutImage.qml | 2 +- qml/components/helpers/LayoutItem.qml | 2 +- qml/components/helpers/SpinBoxControl.qml | 2 +- qml/dialogs/AboutDialog.qml | 2 +- qml/dialogs/BreakDialog.qml | 2 +- qml/dialogs/BreakRequestDialog.qml | 2 +- qml/dialogs/CustomDialog.qml | 2 +- qml/dialogs/EndWorkRequestDialog.qml | 2 +- qml/dialogs/SettingsDialog.qml | 2 +- qml/dialogs/UpdateInfoDialog.qml | 2 +- qml/dialogs/subitems/LogicSettings.qml | 2 +- qml/dialogs/subitems/SettingsPage.qml | 2 +- qml/dialogs/subitems/TimesSettings.qml | 2 +- qml/dialogs/subitems/VisualSettings.qml | 2 +- qml/main.qml | 2 +- qml/style/Style.qml | 2 +- qml/style/StyleFont.qml | 2 +- qml/style/helpers/ColorPallete.qml | 2 +- 49 files changed, 49 insertions(+), 49 deletions(-) diff --git a/cpp/controller/settingscontroller.h b/cpp/controller/settingscontroller.h index c2992b9..2ac30d4 100644 --- a/cpp/controller/settingscontroller.h +++ b/cpp/controller/settingscontroller.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/timercontroller.cpp b/cpp/controller/timercontroller.cpp index 6a4ed58..1c3a0e7 100644 --- a/cpp/controller/timercontroller.cpp +++ b/cpp/controller/timercontroller.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/timercontroller.h b/cpp/controller/timercontroller.h index cefa70b..a622c55 100644 --- a/cpp/controller/timercontroller.h +++ b/cpp/controller/timercontroller.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/updatecontroller.cpp b/cpp/controller/updatecontroller.cpp index 2df8224..5647068 100644 --- a/cpp/controller/updatecontroller.cpp +++ b/cpp/controller/updatecontroller.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2017 JustCode Justyna Kulinska +** Copyright 2017 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/updatecontroller.h b/cpp/controller/updatecontroller.h index f7d905b..0a45dfd 100644 --- a/cpp/controller/updatecontroller.h +++ b/cpp/controller/updatecontroller.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2017 JustCode Justyna Kulinska +** Copyright 2017 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/model/settings.cpp b/cpp/model/settings.cpp index 514d297..aaaf6b1 100644 --- a/cpp/model/settings.cpp +++ b/cpp/model/settings.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/utility/helpers.cpp b/cpp/utility/helpers.cpp index f1fd134..8751e0a 100644 --- a/cpp/utility/helpers.cpp +++ b/cpp/utility/helpers.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/utility/helpers.h b/cpp/utility/helpers.h index c0c2915..2db41e5 100644 --- a/cpp/utility/helpers.h +++ b/cpp/utility/helpers.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/workers/backupmanager.cpp b/cpp/workers/backupmanager.cpp index 709f94f..15e32c4 100644 --- a/cpp/workers/backupmanager.cpp +++ b/cpp/workers/backupmanager.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/workers/savemanager.cpp b/cpp/workers/savemanager.cpp index 5d1f201..2530e46 100644 --- a/cpp/workers/savemanager.cpp +++ b/cpp/workers/savemanager.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/workers/savemanager.h b/cpp/workers/savemanager.h index e2b5da6..096daf1 100644 --- a/cpp/workers/savemanager.h +++ b/cpp/workers/savemanager.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/js/resourceInfo.js b/js/resourceInfo.js index 69d69d0..05cd7e7 100644 --- a/js/resourceInfo.js +++ b/js/resourceInfo.js @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/ConnectionsManager.qml b/qml/ConnectionsManager.qml index 313b454..467ae09 100644 --- a/qml/ConnectionsManager.qml +++ b/qml/ConnectionsManager.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2017 JustCode Justyna Kulinska +** Copyright 2017 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/DialogsManager.qml b/qml/DialogsManager.qml index 54fb37d..ccfdc89 100644 --- a/qml/DialogsManager.qml +++ b/qml/DialogsManager.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 50621b7..7cb9c7f 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/Background.qml b/qml/components/Background.qml index 48ba924..205b000 100644 --- a/qml/components/Background.qml +++ b/qml/components/Background.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/ClickableLabel.qml b/qml/components/ClickableLabel.qml index f8c9e2a..c6dbd89 100644 --- a/qml/components/ClickableLabel.qml +++ b/qml/components/ClickableLabel.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2017 JustCode Justyna Kulinska +** Copyright 2017 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/ColorPicker.qml b/qml/components/ColorPicker.qml index 604b1c7..b98df80 100644 --- a/qml/components/ColorPicker.qml +++ b/qml/components/ColorPicker.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/CustomLabel.qml b/qml/components/CustomLabel.qml index f370426..f855493 100644 --- a/qml/components/CustomLabel.qml +++ b/qml/components/CustomLabel.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/CustomSwitch.qml b/qml/components/CustomSwitch.qml index e8973e0..04577e9 100644 --- a/qml/components/CustomSwitch.qml +++ b/qml/components/CustomSwitch.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/Decorative.qml b/qml/components/Decorative.qml index fa0463c..31fd68e 100644 --- a/qml/components/Decorative.qml +++ b/qml/components/Decorative.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/FormElement.qml b/qml/components/FormElement.qml index ada99e0..0e898d7 100644 --- a/qml/components/FormElement.qml +++ b/qml/components/FormElement.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/ImageButton.qml b/qml/components/ImageButton.qml index 57de5d1..1cfe5f4 100644 --- a/qml/components/ImageButton.qml +++ b/qml/components/ImageButton.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/Spacer.qml b/qml/components/Spacer.qml index 4818ecc..8e048fa 100644 --- a/qml/components/Spacer.qml +++ b/qml/components/Spacer.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/SpacerLine.qml b/qml/components/SpacerLine.qml index 8796e85..6f934d6 100644 --- a/qml/components/SpacerLine.qml +++ b/qml/components/SpacerLine.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/TabView.qml b/qml/components/TabView.qml index f2b97a9..21fca19 100644 --- a/qml/components/TabView.qml +++ b/qml/components/TabView.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/TextBox.qml b/qml/components/TextBox.qml index 606c58f..3a2c123 100644 --- a/qml/components/TextBox.qml +++ b/qml/components/TextBox.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2017 JustCode Justyna Kulinska +** Copyright 2017 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/TextButton.qml b/qml/components/TextButton.qml index 7c86ba3..5d99203 100644 --- a/qml/components/TextButton.qml +++ b/qml/components/TextButton.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/TimeProgressBar.qml b/qml/components/TimeProgressBar.qml index 541d2a1..364f154 100644 --- a/qml/components/TimeProgressBar.qml +++ b/qml/components/TimeProgressBar.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/helpers/BarGradient.qml b/qml/components/helpers/BarGradient.qml index 8f193fd..4ecd8ec 100644 --- a/qml/components/helpers/BarGradient.qml +++ b/qml/components/helpers/BarGradient.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/helpers/BarTextGradient.qml b/qml/components/helpers/BarTextGradient.qml index 0363540..d41157a 100644 --- a/qml/components/helpers/BarTextGradient.qml +++ b/qml/components/helpers/BarTextGradient.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/helpers/LayoutImage.qml b/qml/components/helpers/LayoutImage.qml index a21fd6b..2ba5efd 100644 --- a/qml/components/helpers/LayoutImage.qml +++ b/qml/components/helpers/LayoutImage.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/helpers/LayoutItem.qml b/qml/components/helpers/LayoutItem.qml index f02dae8..2c863d8 100644 --- a/qml/components/helpers/LayoutItem.qml +++ b/qml/components/helpers/LayoutItem.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/helpers/SpinBoxControl.qml b/qml/components/helpers/SpinBoxControl.qml index 93f1b85..8f5bfdb 100644 --- a/qml/components/helpers/SpinBoxControl.qml +++ b/qml/components/helpers/SpinBoxControl.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/AboutDialog.qml b/qml/dialogs/AboutDialog.qml index 2e21c4a..486ce2e 100644 --- a/qml/dialogs/AboutDialog.qml +++ b/qml/dialogs/AboutDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/BreakDialog.qml b/qml/dialogs/BreakDialog.qml index c75f8b1..ab9cdda 100644 --- a/qml/dialogs/BreakDialog.qml +++ b/qml/dialogs/BreakDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/BreakRequestDialog.qml b/qml/dialogs/BreakRequestDialog.qml index 2010ef9..a65c61c 100644 --- a/qml/dialogs/BreakRequestDialog.qml +++ b/qml/dialogs/BreakRequestDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/CustomDialog.qml b/qml/dialogs/CustomDialog.qml index e3795be..de828e2 100644 --- a/qml/dialogs/CustomDialog.qml +++ b/qml/dialogs/CustomDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/EndWorkRequestDialog.qml b/qml/dialogs/EndWorkRequestDialog.qml index 5d6bea2..50299ce 100644 --- a/qml/dialogs/EndWorkRequestDialog.qml +++ b/qml/dialogs/EndWorkRequestDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/SettingsDialog.qml b/qml/dialogs/SettingsDialog.qml index f3436e0..b01fd9e 100644 --- a/qml/dialogs/SettingsDialog.qml +++ b/qml/dialogs/SettingsDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/UpdateInfoDialog.qml b/qml/dialogs/UpdateInfoDialog.qml index 6aee784..20f95e0 100644 --- a/qml/dialogs/UpdateInfoDialog.qml +++ b/qml/dialogs/UpdateInfoDialog.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2017 JustCode Justyna Kulinska +** Copyright 2017 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/subitems/LogicSettings.qml b/qml/dialogs/subitems/LogicSettings.qml index 6ee0aea..6ce6ff9 100644 --- a/qml/dialogs/subitems/LogicSettings.qml +++ b/qml/dialogs/subitems/LogicSettings.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/subitems/SettingsPage.qml b/qml/dialogs/subitems/SettingsPage.qml index 4133f32..67987e1 100644 --- a/qml/dialogs/subitems/SettingsPage.qml +++ b/qml/dialogs/subitems/SettingsPage.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/subitems/TimesSettings.qml b/qml/dialogs/subitems/TimesSettings.qml index c07d484..08c1174 100644 --- a/qml/dialogs/subitems/TimesSettings.qml +++ b/qml/dialogs/subitems/TimesSettings.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/dialogs/subitems/VisualSettings.qml b/qml/dialogs/subitems/VisualSettings.qml index 73421f9..3b6fd2b 100644 --- a/qml/dialogs/subitems/VisualSettings.qml +++ b/qml/dialogs/subitems/VisualSettings.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/main.qml b/qml/main.qml index 792cf7b..2f1e985 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 66fcc1c..e787467 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/style/StyleFont.qml b/qml/style/StyleFont.qml index 5ebba4d..02ed793 100644 --- a/qml/style/StyleFont.qml +++ b/qml/style/StyleFont.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/style/helpers/ColorPallete.qml b/qml/style/helpers/ColorPallete.qml index 2226de7..15cec2a 100644 --- a/qml/style/helpers/ColorPallete.qml +++ b/qml/style/helpers/ColorPallete.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** From 99be77feeae4e9ae6ceb166441675857dedc6214 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 15:04:36 +0100 Subject: [PATCH 069/208] #7: Update the license notes to remove a real name from it --- cpp/controller/controller.cpp | 2 +- cpp/controller/controller.h | 2 +- cpp/controller/cyclescontroller.cpp | 2 +- cpp/controller/cyclescontroller.h | 2 +- cpp/controller/settingscontroller.cpp | 2 +- cpp/main.cpp | 2 +- cpp/model/settings.h | 2 +- cpp/view/traymanager.cpp | 2 +- cpp/view/traymanager.h | 2 +- cpp/workers/backupmanager.h | 2 +- qml/components/CustomSpinBox.qml | 2 +- qml/components/TimeSelector.qml | 2 +- qml/utils/UiUtils.qml | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cpp/controller/controller.cpp b/cpp/controller/controller.cpp index a9f70e4..517aa03 100644 --- a/cpp/controller/controller.cpp +++ b/cpp/controller/controller.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/controller.h b/cpp/controller/controller.h index 5dc9aac..75bb0d0 100644 --- a/cpp/controller/controller.h +++ b/cpp/controller/controller.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/cyclescontroller.cpp b/cpp/controller/cyclescontroller.cpp index ef961e7..26a056c 100644 --- a/cpp/controller/cyclescontroller.cpp +++ b/cpp/controller/cyclescontroller.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2021 JustCode Justyna Kulinska +** Copyright 2021 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/cyclescontroller.h b/cpp/controller/cyclescontroller.h index f360569..156c248 100644 --- a/cpp/controller/cyclescontroller.h +++ b/cpp/controller/cyclescontroller.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2020 JustCode Justyna Kulinska +** Copyright 2020 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/controller/settingscontroller.cpp b/cpp/controller/settingscontroller.cpp index f20bdce..bbbd519 100644 --- a/cpp/controller/settingscontroller.cpp +++ b/cpp/controller/settingscontroller.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/main.cpp b/cpp/main.cpp index fd32fa4..79b12fc 100644 --- a/cpp/main.cpp +++ b/cpp/main.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/model/settings.h b/cpp/model/settings.h index 2d8003f..9663b07 100644 --- a/cpp/model/settings.h +++ b/cpp/model/settings.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/view/traymanager.cpp b/cpp/view/traymanager.cpp index eda75c6..263843c 100644 --- a/cpp/view/traymanager.cpp +++ b/cpp/view/traymanager.cpp @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/view/traymanager.h b/cpp/view/traymanager.h index a56422b..2858490 100644 --- a/cpp/view/traymanager.h +++ b/cpp/view/traymanager.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/cpp/workers/backupmanager.h b/cpp/workers/backupmanager.h index 377b9c4..38c21ff 100644 --- a/cpp/workers/backupmanager.h +++ b/cpp/workers/backupmanager.h @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/CustomSpinBox.qml b/qml/components/CustomSpinBox.qml index 8ffde3b..bb41ab3 100644 --- a/qml/components/CustomSpinBox.qml +++ b/qml/components/CustomSpinBox.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/components/TimeSelector.qml b/qml/components/TimeSelector.qml index 8cd021e..7a49421 100644 --- a/qml/components/TimeSelector.qml +++ b/qml/components/TimeSelector.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2016 JustCode Justyna Kulinska +** Copyright 2016 Justyna JustCode ** ** This file is part of Resto. ** diff --git a/qml/utils/UiUtils.qml b/qml/utils/UiUtils.qml index 3c5cf21..f4854f5 100644 --- a/qml/utils/UiUtils.qml +++ b/qml/utils/UiUtils.qml @@ -1,6 +1,6 @@ /******************************************** ** -** Copyright 2020 JustCode Justyna Kulinska +** Copyright 2020 Justyna JustCode ** ** This file is part of Resto. ** From 6dad27e14f05a9ee615669a1fcb085bd2163c350 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 5 Mar 2021 15:10:20 +0100 Subject: [PATCH 070/208] #7: Fix an implicitHeight value for the EditableIntegerLabel --- qml/components/EditableIntegerLabel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/components/EditableIntegerLabel.qml b/qml/components/EditableIntegerLabel.qml index 9a7cc35..f0a1165 100644 --- a/qml/components/EditableIntegerLabel.qml +++ b/qml/components/EditableIntegerLabel.qml @@ -15,7 +15,7 @@ Item { property int number implicitWidth: Math.max(editSpinBox.implicitWidth, displayLabel.implicitWidth) - implicitHeight: displayLabel.implicitHeight + implicitHeight: Math.max(editSpinBox.implicitHeight, displayLabel.implicitHeight) ValueEditMode { id: editMode From c0a91a7fe0841bb14ce7e012374f9a7795b8d0a2 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 7 May 2021 15:28:57 +0200 Subject: [PATCH 071/208] #7: Fix for old and non existing code still used in MainContent qml --- qml/MainContent.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qml/MainContent.qml b/qml/MainContent.qml index 7cb9c7f..df500f2 100644 --- a/qml/MainContent.qml +++ b/qml/MainContent.qml @@ -161,7 +161,7 @@ Item { ImageButton { enabled: !nextBreakTimeProgressBar.timeEditMode && controller.state != Controller.Off - visible: nextBreakTimeProgressBar.enableEditMode + visible: nextBreakTimeProgressBar.editMode.enabled styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit next break") @@ -194,7 +194,7 @@ Item { ImageButton { enabled: !workTimeProgressBar.timeEditMode && controller.state != Controller.Off - visible: workTimeProgressBar.enableEditMode + visible: workTimeProgressBar.editMode.enabled styleFont: Style.font.imageButtonSmallest type: "edit" tooltip: qsTr("Edit work time") From 31cbe264893930503c39f3e93ca64823d5f32607 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 7 May 2021 15:32:52 +0200 Subject: [PATCH 072/208] #7: Add vertical alignment for text in EditableIntegerLabel to improve the UI --- qml/components/EditableIntegerLabel.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/qml/components/EditableIntegerLabel.qml b/qml/components/EditableIntegerLabel.qml index f0a1165..d4cf75c 100644 --- a/qml/components/EditableIntegerLabel.qml +++ b/qml/components/EditableIntegerLabel.qml @@ -30,6 +30,7 @@ Item { anchors.fill: parent horizontalAlignment: Text.AlignRight + verticalAlignment: Text.AlignCenter visible: !editMode.activeEdit text: rootItem.number From fa94f711fb9c6b83d0f0c2bd81695de68e505c53 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:06:37 +0200 Subject: [PATCH 073/208] #10: Removes unneeded resources --- help/resources/logo.png | Bin 24310 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 help/resources/logo.png diff --git a/help/resources/logo.png b/help/resources/logo.png deleted file mode 100644 index 3fce04be7aef3b5cbda51f51893dab2dee91caa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24310 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 pg0FlNeenhSnh3sl9Dn6=_ Date: Fri, 28 May 2021 15:13:21 +0200 Subject: [PATCH 074/208] #10: Adds functions sections with images (no descriptions) --- help/help.html | 98 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 67 insertions(+), 31 deletions(-) diff --git a/help/help.html b/help/help.html index 529ed52..2b66644 100644 --- a/help/help.html +++ b/help/help.html @@ -33,7 +33,8 @@ } h1, h2, h3 { color: #008080; - } +} + h1 { margin-left: 0.5em; @@ -58,10 +59,27 @@ font-size: 1.7em; } +ul { + list-style-type: disc; +} + +ul li { + margin-bottom: 0.75em; +} + +ol.h3 { + list-style-type: lower-alpha; +} + +span.emphasised { + color: #008080; + font-weight: bold; +} + .paragraphImage { - display: block; - margin-left: auto; - margin-right: auto; + display: block; + margin-left: auto; + margin-right: auto; } #titleImage { @@ -73,8 +91,8 @@

    Resto

    ver. 1.0.7
    -
      +

      1. The name
      2. „Resto†is a Spanish first person singular form of a verb „restarâ€, which can be translated as „to remainâ€. There is also an obvious phonetic connection to an English verb „to restâ€.

        @@ -88,32 +106,50 @@

      3. REASON
      4. Of course you are not always able to take a break instantly. That is why Resto just reminds you gently about the need of rest and let you to decide what do you want to do. You can start your break right away, postpone it or even skip it if you are really busy.

        -

      5. Header 1
      6. -

        Paste your documents in the visual editor on the left or your HTML code in the source editor in the right. Edit any of the two areas and see the other changing in real time.

        - - -

      7. Header 1
      8. -

        Paste your documents in the visual editor on the left or your HTML code in the source editor in the right. Edit any of the two areas and see the other changing in real time.

        -
          -

        1. Header 2
        2. -

          Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
          Edit any of the two areas and see the other changing in real time. 

          - -

        3. Header 2
        4. -

          Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
          Edit any of the two areas and see the other changing in real time. 

          -
            -
          • something
          • -
          • something
          • -
          -
        -

      9. Header 1
      10. -

        HEADER 3

        -

        Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
        Edit any of the two areas and see the other changing in real time. 

        -

        HEADER 3

        -

        Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
        Edit any of the two areas and see the other changing in real time. 

        -

        HEADER 3

        -

        Paste your documents in the visual editor on the left or your HTML code in the source editor in the right.
        Edit any of the two areas and see the other changing in real time. 

        - - +

      11. Functions
      12. +
          +

        1. Main window (idle)
        2. + +
            +
          • TODO: TODO.
          • +
          +

        3. Main window (working)
        4. + +
            +
          • TODO: TODO.
          • +
          +

        5. Break reminder dialog
        6. + +
            +
          • TODO: TODO.
          • +
          +

        7. Break dialog
        8. + +
            +
          • TODO: TODO.
          • +
          +

        9. Finish work reminder dialog
        10. + +
            +
          • TODO: TODO.
          • +
          +

        11. Settings dialog
        12. + +
            +
          • TODO: TODO.
          • +
          +

        13. About dialog
        14. + +
            +
          • TODO: TODO.
          • +
          +

        15. Update available dialog
        16. + +
            +
          • TODO: TODO.
          • +
          +
        +

      13. Epilogue
      14. If you have any additional questions, notes or comments. You're welcomed to share them. Please take a look on the authors page, which you can find in the About dialog.

        From 6bd5fc6aa74193dc71fb1dcefed4478398289c2d Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:14:48 +0200 Subject: [PATCH 075/208] #10: Fix title text should not be all lowercase --- help/help.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/help.html b/help/help.html index 2b66644..633e42a 100644 --- a/help/help.html +++ b/help/help.html @@ -99,7 +99,7 @@

      15. The name
      16. The name is explaining two main purposes of the application: to count the remaining time of your work and to take care of your regular rests.

        -

      17. REASON
      18. +

      19. Reason
      20. Resto is useful for every one working with a computer. To keep you in a good health and let you remain focused for the whole day it is important to take regular breaks. You should stand up for a while, take a short walk and try not to think about your work issues.

        Additionally Resto is especially useful for anyone working from home. It is counting a working time, so you are free to mix your personal and professional tasks and you are always aware of how many hours you have already worked.

        You can customize Resto to fit to your own needs. It is up to you to decide how often do you want to take breaks, how long should they last and more. You can even choose your favorite color!

        From 0fbcf870b2044e25a768a8c94fdb8aca9b9fecb4 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:17:39 +0200 Subject: [PATCH 076/208] #10: Adds table of contents --- help/help.html | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/help/help.html b/help/help.html index 633e42a..14d215f 100644 --- a/help/help.html +++ b/help/help.html @@ -59,6 +59,18 @@ font-size: 1.7em; } +.tableContents { + margin-left: 45%; + margin-bottom: 2em; + font-size: 1.25em +} +.tableContents a { + color: #008080; +} +.tableContents ol.lower { + list-style-type: lower-alpha; +} + ul { list-style-type: disc; } @@ -92,14 +104,34 @@

        Resto

        ver. 1.0.7
        + +
          -

        1. The name
        2. +

        3. The name
        4. „Resto†is a Spanish first person singular form of a verb „restarâ€, which can be translated as „to remainâ€. There is also an obvious phonetic connection to an English verb „to restâ€.

          The name is explaining two main purposes of the application: to count the remaining time of your work and to take care of your regular rests.

          -

        5. Reason
        6. +

        7. Reason
        8. Resto is useful for every one working with a computer. To keep you in a good health and let you remain focused for the whole day it is important to take regular breaks. You should stand up for a while, take a short walk and try not to think about your work issues.

          Additionally Resto is especially useful for anyone working from home. It is counting a working time, so you are free to mix your personal and professional tasks and you are always aware of how many hours you have already worked.

          You can customize Resto to fit to your own needs. It is up to you to decide how often do you want to take breaks, how long should they last and more. You can even choose your favorite color!

          @@ -151,9 +183,9 @@

        9. Update available dialog
        -

      21. Epilogue
      22. +

      23. Epilogue
      24. If you have any additional questions, notes or comments. You're welcomed to share them. Please take a look on the authors page, which you can find in the About dialog.

      - \ No newline at end of file + From 7890c6d70f1fbf057c2d6c61c4d86f329b995449 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:20:21 +0200 Subject: [PATCH 077/208] #10: Adds description for main window, break related and work related dialogs --- help/help.html | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/help/help.html b/help/help.html index 14d215f..9db50f4 100644 --- a/help/help.html +++ b/help/help.html @@ -26,6 +26,9 @@ font-family: 'josefin_sans-regular'; font-size: 16pt; } +a { + color: dimgray; +} h1, h2, h3, h4, h5, h6 { @@ -143,27 +146,42 @@

    1. Functions
    2. Main window (idle)
      • -
      • TODO: TODO.
      • +
      • Start button: can be used to start counting a work time.
        Navigates to a working window.
      • +
      • Help button: can be used to open this help page.
      • +
      • Settings button: can be used to change application settings.
        Navigates to a settings dialog.
      • +
      • About button: can be used to find information about the application, the author and resources used.
        Navigates to an about dialog.
      • + +
      • Break bar: shows the time elapsed since the last break comapred to a defined break duration.
      • +
      • Work bar: shows the time elapsed since the work start compared to a defined work time.
      • +
      • Interval number: shows the current cycle interval (only visible if cycles mode is enabled).
      • + +
      • Edit buttons: can be used to edit current internal, break time or work time elapsed.

    3. Main window (working)
      • -
      • TODO: TODO.
      • +
      • Break button: can be used to start the next break manually.
        Navigates to a break dialog.
      • +
      • Pause button: can be used to pause the application.
        Navigates to an idle window.
      • +
      • Stop button: can be used to change application settings.
        Navigates to an idle window.

    4. Break reminder dialog
      • -
      • TODO: TODO.
      • +
      • Skip button: can be used to skip a break. The break is considered taken.
      • +
      • Postpone button: can be used to postponse a break for a defined time.
      • +
      • Ok button: can be used to take a break.
        Navigates to a break dialog.

    5. Break dialog
      • -
      • TODO: TODO.
      • +
      • Duration bar: shows the time elapsed since the break is taken compared to a defined break time.
      • +
      • Abort / Ok buttons: can be used to finish a break.

    6. Finish work reminder dialog
      • -
      • TODO: TODO.
      • +
      • Ignore button: can be used to ignore the reminder and continue counting the times.
      • +
      • Ok button: can be used to stop the application.

    7. Settings dialog
    8. From d6650a307a2802dcac5ff12d17cd8cf70746f232 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:22:13 +0200 Subject: [PATCH 078/208] #10: Adds description for settings dialog --- help/help.html | 69 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/help/help.html b/help/help.html index 9db50f4..2aaf9f4 100644 --- a/help/help.html +++ b/help/help.html @@ -30,13 +30,16 @@ color: dimgray; } -h1, h2, h3, -h4, h5, h6 { +h1, h2, h3 { font-family: 'josefin_sans-bolder'; } -h1, h2, h3 { +h1, h2, h3, +h4 { color: #008080; } +h4, h5, h6 { + text-transform: uppercase; +} h1 { margin-left: 0.5em; @@ -51,6 +54,11 @@ h3 { font-size: 1.25em; } +h4 { + font-size: 1em; + text-transform: uppercase; + margin-top: 2em; +} .subtitle { margin-top: -1.7em; @@ -78,6 +86,15 @@ list-style-type: disc; } +ul.lesser { + list-style-type: circle; +} + +ul.lesser, li.lesser { + list-style-type: circle; + margin-left: 0.5em; +} + ul li { margin-bottom: 0.75em; } @@ -86,11 +103,20 @@ list-style-type: lower-alpha; } +h4, h5, h6 li { + list-style-type: none; + margin-left: -0.5em +} + span.emphasised { color: #008080; font-weight: bold; } +span.lessEmphasised { + font-weight: bold; +} + .paragraphImage { display: block; margin-left: auto; @@ -186,7 +212,42 @@

    9. Finish work reminder dialog
    10. Settings dialog
    11. +

    12. Behaviour settings
    13. +
        +
      • Breaks
      • +
          +
        • Break duration:
          A duration for a single break.
          The time is visible on the duration bar in the break dialog.
        • +
        • Break interval:
          A duration for a work period before a break.
          The time is visible on the break bar in the main window.
          When the time is passed the break request dialog pops up.
        • +
        • Include breaks:
          if turned on breaks duration is included in the total work time spent on work.
        • +
        +
      • Cycles
      • + If turned on the breaks are working in cycles. Each cycle is composed from several smaller breaks and a single longer break at the end of the cycle. The concept is similar to the pomodoro technique 🍅.

        The smaller breaks duration is taken from the break duration value, while the longer break duration is set separately.
        +
          +
        • Cycle break duration:
          A duration of a longer break (after the whole cycle is finished).
        • +
        • Cycle intervals:
          A number of work periods for a single cycle.
        • +
        +
      • General
      • + +
      +

    14. General settings
    15. +
        +
      • Auto start:
        If turned on time automatically starts counting when the application is run.
        The same can be achieved by manually clicking the start button in the main window.
      • +
      • System tray
        (not available on some platforms)
      • +
          +
        • Auto hide:
          If turned on the applications is hidden automatically after run.
        • +
        • Hide on close:
          If turned on the window close button only hides the application in a system tray.
        • +
        +
      +

    16. Appearance settings
    17. +
        +
      • Color:
        Allows to change a color theme for the application.
        A preview of the change is visible when a color is selected from the color box.

    18. About dialog
    19. From 86ae2cb46b54c1988160a24afed870ebbbc49b07 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:23:06 +0200 Subject: [PATCH 079/208] #10: Fix a missing header id for functions --- help/help.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/help.html b/help/help.html index 2aaf9f4..ccc9c4a 100644 --- a/help/help.html +++ b/help/help.html @@ -167,7 +167,7 @@

    20. Reason
    21. Of course you are not always able to take a break instantly. That is why Resto just reminds you gently about the need of rest and let you to decide what do you want to do. You can start your break right away, postpone it or even skip it if you are really busy.

      -

    22. Functions
    23. +

    24. Functions
      1. Main window (idle)
      2. From b4e6d49996327db3c804f1ac57f0b8456ed6278e Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:25:00 +0200 Subject: [PATCH 080/208] #10: Adds additional space after the last paragraph --- help/help.html | 1 + 1 file changed, 1 insertion(+) diff --git a/help/help.html b/help/help.html index ccc9c4a..ab4766f 100644 --- a/help/help.html +++ b/help/help.html @@ -22,6 +22,7 @@ body { width: 60%; margin: auto; + padding-bottom: 2em; font-family: 'josefin_sans-regular'; font-size: 16pt; From 6b6863b26013dfbe1f64976d651fe199b679b572 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 15:29:00 +0200 Subject: [PATCH 081/208] #10: Improvements for the epilogue section --- help/help.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/help/help.html b/help/help.html index ab4766f..84909a2 100644 --- a/help/help.html +++ b/help/help.html @@ -30,6 +30,9 @@ a { color: dimgray; } +a.emphasised { + color: #008080; +} h1, h2, h3 { font-family: 'josefin_sans-bolder'; @@ -264,7 +267,7 @@

      3. Update available dialog
      4. Epilogue
      5. -

        If you have any additional questions, notes or comments. You're welcomed to share them. Please take a look on the authors page, which you can find in the About dialog.

        +

        Any additional questions, notes or comments are welcomed. Please take a look on the author's page for contact details.

      From 69ac11612f7c34fc64b5c2ccf2111ef80f023ab5 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 21:40:53 +0200 Subject: [PATCH 082/208] #10: Adds missing settings dialog buttons description: apply / cancel --- help/help.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/help/help.html b/help/help.html index 84909a2..bdd0787 100644 --- a/help/help.html +++ b/help/help.html @@ -219,6 +219,9 @@

    25. Settings dialog
    26. Behaviour button: can be used to show behaviour settings.
    27. General button: can be used to show general settings.
    28. Appearance button: can be used to show appearance settings.
    29. +
      +
    30. Apply button: can be used to save introduced changes and close the dialog.
    31. +
    32. Cancel button: can be used to discard introduced changes and close the dialog.
    33. Behaviour settings
      • From fc27ce1a48ad4ca7732ad6106c16f127bab7d4ce Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 22:04:40 +0200 Subject: [PATCH 083/208] #10: Adds missing functionalities sections: About Dialog and Update Dialogs --- help/help.html | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/help/help.html b/help/help.html index bdd0787..f2797a9 100644 --- a/help/help.html +++ b/help/help.html @@ -258,13 +258,20 @@

      • Appearance settings

    34. About dialog
    35. +

      The dialog contains information about: the application version, author and author's page, all resources used in the application.

        -
      • TODO: TODO.
      • +
      • Ok button: can be used to close the dialog.
      • +
      • Check update button: can be used to determine if there is a new verion of the application available.
        Navigates to one of update dialogs.
      -

    36. Update available dialog
    37. - +

    38. Update dialogs
    39. + +

      The update available dialog can be opened manually using the check update button from the about dialog but it is also opened automatically after run if a new version is available.

        -
      • TODO: TODO.
      • +
      • Update button: can be used to start the application update process right away.
      • +
      • Postpone button: can be used to postpone by a week showing of the update available dialog.
      • +
      • Skip button: can be used to skip the application update for the latest version. If newer version is released the update available dialog shows up again.
      • +
        +
      • Ok button: can be used to close the popup for opened if the application is up-to-date.
    From c0e8d9eaddf7a28d65b1ba61624a0476f3c38889 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 22:05:23 +0200 Subject: [PATCH 084/208] #10: Adds github link into the epilogue --- help/help.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/help/help.html b/help/help.html index f2797a9..714be0b 100644 --- a/help/help.html +++ b/help/help.html @@ -127,6 +127,10 @@ margin-right: auto; } +.inlineImage { + height: 1.2em; +} + #titleImage { margin-left: 3em; } @@ -277,6 +281,7 @@

  • Update dialogs
  • Epilogue
  • +

    Source code is available on the GitHub

    Any additional questions, notes or comments are welcomed. Please take a look on the author's page for contact details.

    From 2c900f44364cadcae2410499d86b9982f88cb273 Mon Sep 17 00:00:00 2001 From: Justyna-JustCode Date: Fri, 28 May 2021 22:11:43 +0200 Subject: [PATCH 085/208] #10: Remove the old help documents --- help.odt | Bin 1435516 -> 0 bytes help.pdf | Bin 475850 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 help.odt delete mode 100644 help.pdf diff --git a/help.odt b/help.odt deleted file mode 100644 index e4e9f9ea427d113ffa5e178ea449ef62327293b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435516 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⁣KPG7JQvcvxPC#~JwyBcElYg%|E5DFM?v z38xPn!SDUSC$V+&wx*x3!iie}=zM5>-QM@0|931!`X6(8x45l@Dmo1Aq-CW#S3Zqe41 zL&NXrB0K{V(qbFOm{G4SX@M9V6ruu;#`qQ=Al&0d3Sq9LBB&rk#)!r90E?zpFd{M! z@NF#qMT*wJWS5>>bdRS|JEWSN#1Tv=qF%!0?qgrll3NO@Uv9*~f4(*@CLhLzr#sr?O@nozozv%a`Yh{i;5Smdh)4ohGx7r85aZ=|p;~TM+3$S!?@l zl}5_QFARQeQ?$nDHlV2ERQtKjtnb1V*z>}ZPQ5`yl2;l*#&{K&NUvtKFo*yqB4bds z+kUl%0SuTON>76*DS1u9gy_a7NwTvQg{KLaD29nBCs%yiGg_^1QtX=AfH*)BH}uym zloXXcx6!RIwwHBnOp6|)+BV~!w1VKlz?CadRbgxUbJq(*P^h?W&$alukKTpf|ASBB z*f*ZR#yfz~7QFZ+Nb>JSTV9*_jVrKnfN|n$jMank&*#3+7;Rz9zm*WCfcdu);&j03 zAqKywQnJT>JP4fs?>b=fy9x7e)z4cm7wwtvGU6<~JQe0*0>y%p&pw6YYfrswNN(6k znBNV=InDeW11IletREIH=<%mx0xGLd4*vb81Sz z2K^nX_$Fu66rx^etp#--V30+2KklXLv=6?iOnOq~)$mptkDLMG zj9oQh&J;s)+^qXdPCy?L;idmNTYy?LY%;X6@P<%001BWNklXp!*M;3zE@i(dF9bSOp!k# zt>s~sNdI3QnfBV5$_{+sHx=^7*Wz*^K-pXQ1gbyazKV= z(D#S;0V3qx@Ey})y!OKoA$G};SQro;DlLL3)0A>D4L9YZi-z(Q#o=YfT7u3|=G8^i zLW@5o&A}#*$eh10;mR~y0J;emfNpbNRS^54*VRbm-X!%GH&vgRT8@&V(||@Nf~&fn zU^0$Ta$P-fzhyVI9EV9?7t!=fhPQG>hY`&p*y6eUEJ4V@UG z*yluNLT|jt^2=yXmK5tL1o2Gx%c`YV3r<*quc9agk7=Yl#ABFR7Y z84M2>jsukzz<@@WtEVMMB-{IxVg1Zy3Uo}{k!GQzIiab&;4DGQf>pB}>yi?G9GEJO z9n8%#plfih?GzgqjG-|vqi>|zlNK1fC9+i7y%wg!<>rLxg>~4CvJ-YYiv;(U)&ixh z4CI!U7+24+*O*gdy5WMVs3*eM7McVyX7N++yc1C1hkopb@%~?Z2X6T+#dh=G>?Npb z{FufRB-- z!sOx68uCKFa5ZXJNr>2Yf0S*0_y^Zn`O2UyZ&xVare$#v0i6>M6wx5$V=ncB_IQ2- zU)mt8h$D%kO2Q9vN5o4(qA*d89qK`?aA1N?XIlbHG4_rQk5j>$kxdC45L;ZsE)&hg zgM<`ik>E#|uNS+y=&o^j(Ba9&S~3Mp0_qIWB~*7tu@s0jw*kbGK?N$7f&y2>QeOD3 zZJYz*2YpeHd}89@Z3>fsj|G!T6c^kS=iE{P+)t(#UMPfL&}dE}%yQtluS~`;vQ7`Xp^s6yb)TN>P)ujF za%L*p=Q~egwJe!rVCyE*V{TT^u2?x^^Z6IB?p)lMzx55D`jk7sOnCl}ya0dkig)1F zXDGH?=x+pqtqMHwR>k{%O>q9Uk1R^Lc(+}UI@vnGv%el?<^DGV_q=w)<8OOBp7~|Z zz`gh0i&wnn6?o6@{~7vqK)>ey|IZ{x-~+#{IDh>C&;8sl!smSUXXDx{*FaTq!wsJb zX2$dX(+}ePzxGbt^y!4{y1#+Ha|g!Vz~z1o&Msd;>)i!+RC`3N48RcVj^>=H zuBYbj;z#TN=Y&wRo*{5(t8|oH8m|miL1RmT*vE7LsgLiPNmZvf1VX35a5)a@k!;Ts zKBrUNX$hjWvW`VzFS9di1J+g->k!#PIQPd z9J^vDUMM>Uq7K;h))d0tMYt~~Qry)KI5hh$wX`*~&^H+7$YZYH>PnH3 z_J&LwaG}GTBN1rKtqx-mU+MpEn?kWVh8RUh;4yqhXO^0U zdm+<{CGiP{c*=&RR~3*sGjI zR&cg3n$MV2guTG|nIab7HO0Jkx>U(jYY9b-I7P$nsYqZU*M*~AsAQZHv$I*3@hu24 z#6@F*){qk-B1xK)>NJGjaR6;X4+kr9d&>+LTvVB+U#urX>+WfVmGqC(e4ur`~x7m^=RC3!abn{`@;|`C}CQ2K<#fLA|OQ+uyIa z?@xh?cmG!unQH&c`+rSw{tn>mA;!P_%X;o~02l8C#@jbM;h|5)*L}@bs^p8c$6;mYMpxp%*G=y>W= z?gTO62Y&SVc<;}>6W2V-|4#brU$__V2KKjZc=9u!j9YKLHJgArq(JE!9luR8rbO{v zXg*33nWHtqkOw2dL@Kt<7>iK8%xi_j#HIrCDv>;WA<6VgIPQw`2hMThbq6SIn7epH z5hu=!T>353ECnotPQVm}@@8WamVBYHcva?{ULlGbIz6KhY8~qA7Vn{oF^(AfF+EP? z2YG8;(s&1SgWMR;VfL1)T2bj3F~TJ8e&HgG2xyJ?9@Ux5%1{_O+`_)U-g5*mj?}+&g-x5kYDEf%#gWpo|Q6|)V!0d4C}%?Tc%XF<-H$?F-0 zJJr>Ng@)sZ%?OX2cMw~zXD=uu5*%4KR)^n}rX`0oVxaL7DdgFcONb~*5Ko%LVtJg5 z!LaSQYA%ABG9hEPkYjFcsS&7lHwqtWmk2`ZzA^Sf3Nhs%vhO*p7T!^c9}F#oEL7OG z>51UA8!oY!h6TfI4{45;%2AvSE>IcXQxlXniz@QtB=)n@6}gRvSt>l?g}6b6U|byQ zy$=kcy6}gK(HfA0F$ME@f!+*iz#)Y3@45N&XR}_-i4HT{KO>epPK|M3!W~b306>;B;e|cPE>GlafHakzVAj|f&;?OfqDLy1E>%PdUr>A z`?a`y|1~&VI-GERv*2CZ%joizu<03|^312;(?9KR<8M9sQD6XlJK(dP{+YP;+H3LZ z-+VRR@y>TxEqv9_QC#3t@c62?uy>2_nCouCr+@a}#*?4)B;0cI&2B}q0=M@A&Zy%l zpL{2_?SNPQ>MQZKcfA$7RZ+jb?ZwGaJQ$!eNN7Bxj)O zj!SLFB=d8$*1+mSb+yZ)b@ns}-?6Y&zL4R`37$uokPk|BV=m79GE;HVw|A9u4m48i zbKv}e2a*i0ehGjZq;W3aZJ*_=I4;#AVqX_Lm8P|SNN|EK1Qs`NI=t2{u%hF~<=NPz zx*2HdBTE_9HSTUwz1%kl5vFn~FF8_dJwuV3iz3i~)@|(Omz8+M-!K8pQrLN94e@5U zu^Hg!NR@Eg0k>4CYAEhl7w?jbCfsvFO>-QDw!p>J6tkgN4H6A=(OYbo-<^sxe8e^j zOGgZD3;foVpBp#q7rT$-OBj?RU1Fm`Boa>Qf@v);a*HQqaNEFbVjlNAFnA&UL_&Ow zT}o(aiBI6HLQ@x&+MVGp?-_uqf+LrII2UtPA=yh6>ouj=HgBC96Z`KuyBnD$l`wjq}*E3_hUSr;m0r!V~noSju6K1Ao#n;XchZwV&}9H z7vM2l84!$A_nBT}W+#z6R@4qO#>}b({O&DC86Ii0+8R7z-m?9I7bqnj3gHh~r#Hs{ z_d<{*-6p;f4XFCe!!f?kuneik22r5>oRu5UYs0Wb=c}1sJ%>WMf&J%$6K6Q0xKQd$ zfg$;7G^>kQzo6gE$BN8!l5-h|kBZ=uMLeL3V%fSmi(E27j1pyl@qd9Y4iynssJ{q%PO8J{$dNA!)+50}dOn6hv}i(8?L$LGOoY=dfa-;&3N2nAB&Iw*vH@@x8IIiZn+KDTt36L9Tsl# z@YRlcu7`ESz4sjPM|@f&AjBS7RdIH<;r81f0=m7#dd(+I(=WVKbdO;jy=S9ZAiBjr zS;ubKqQ)a#1ZeC~1^+#6X9s-rLv9DaskEPSX51C6ZUVpy6r?~*p&0woo^>`5!xXjm z0O1ZOu^30FK}^9Y+@VXcs>siTTDL+?A8Z7wcDrlP?!B{u3@91r5aO`pMrjWS&21bK z_UAiT0Fn!@2+9+cmrw5SG?UiR>X#)YoHi`g0%*0{{p!ls(QF#NLp6SGjT*LJwtwPxc++FeDlq?`KFt2^Nly+y6dmQ zO*h_zYp-1KojDtgg(^bLVz!Xa4_s5h++085oh@_$k6RHG=`oQN5KK(7dudvjE|Og&isSqr?VS;gP6Zmo5-MHBbRH~Hz2?WWSf-iyD_%2OSq)K zaZHTfaM(J=kQ`TJww;!`PFJ5$j@MiqGDlXvCi~YFr|)J_qx;xc+r66VhcTTRuUCpP z5kvQ3|2&^o@B5gL!-h-SmP%g1bQLBNgdpy5Bj4E=iKzKLT9e(HqN#{)B2MOZTnGj8 zrRC^&66IM4m)J-5Fu0a=1|6~ zt1JZa;YfP}mxLho)BItWlCx^o!=&C?Oqh_6b%h~mVGaD$i!Usikv zPaZ4S@c#FI0DthtH{zaq?!mR!UW+e#?sM^(pYa*E?z$`3TC>i9D6!GrVQMN&MRsxl>s9oYV4^mz z^aF}jjN7dOq!0(8&I#HsrQf)A^A0v?Ca$7HQ95`)ZD$+5|0sO(u2|2$)l~ z9jO;E2j5?_v7DI#WZh2kJ!jaj{IiIgi5p|zCv;A1-KkFt$TSP~j|jsKg0`Hv7SHZf0!9I4ekPWYxK1ks>WVm8g0eaZ!s~N>e#4JG;JZ z$))7pa5y{j(HAXVqu39%1xF^er&%f-^FS?GZK%a6Q{k6nNjA_0)=F6A=H0l7v-00U zu5av5dpL+24wo)L9=I@d=XM6-{lr@sQ0g*RM|0^9a9nV4GZ1;FHr-d>s$-63K&Sf> zTRscq54ku+hv+IMRFH3|f>^~pfOEH)n5}j6&AK0Q2I{)cvT^zXQV33DDlA(bIEkra z6Y!8VNjZw8HE=bu{QNSZWmg@YN2UoZC^wvp_2M%}jfbaqO>DsERVY?O87p>(3u9$M z5}Dr6#zm%?B_m)&~>0V{8L(%7^`@gWgD zoc(+iv#tARP_b|aPXHbtxaV%1pPxfjanp@A;?6ssjN3ozmMlWp;m|ZDc<aN}ny^ zY)N8~X)BG9K5EWAWLyL?HB(gBnXf?M-ooe~-K?#$3SOVths>#5)+InOEmTB{a(q-; zx{K;sbc<69vf#ywf^ytU8Kq{E8=XrS!HHmx5~QH2OJ=N(X@mY0&5oZbnMD{AgSd-Y zE5JywZWC5Q8DuWQzjtP{)l3Dp?sfQ>As8x>irm>XI0 z%+izPOhs;>sg;!%el<}aw|Mp!lV6q|{E9d@#3kNXQXM35X|W6BRx}Yxypt)TVsLQJ;K=E38T#>Z7Ju~TT?_;CtJ@&n){*fUg;-fEj1dx?+<4rdTs+<>iaYBojb zaEPltyq69e&i5S`yI_lPnk>|j0KDc-P3w|O;IpQpS3^n3&AY;SnW=e@tc47sEmV#O z0~YTJYzIsk8ANWR4m-^l5pXKdv15#Zw)G6(%+hHr!kmn0sSLsBp2alZCc4;)zN!|45XM;xKrNmr6&1yI6SgCYwdzQcoJ4@2 zVTz!4Q#sBl(8FfmV^+Uz=1mb-RN5Z9MUnr=IbNjReH8C?t}LVB=%8fU{&A~(O_?SR z>)lfr{7|)S%?XZ{sV8JuIun|?TP7`dE^VDnVN(z6(!ykrQZ@C3`-*b-%R5r_iB+tRj zuww5j*YzW1RqmWr7mZoMg|ToUa{*KoV^|}Z)%RU1*rB>4c(Y+3iP$;MF(JeE&puwX zbH{OC9;l6+as(hgxV8jBGh&usL>1~Clb=QS$mFRqu|}!v%Lq4+fGs$aS?07!TRZrw ztE@D6PDSEMDCa}pu>3AnXIdAiSp-}>gJEeR)QCO6@7Xl@K3QA~!B>%B_-b0JT?`G1 z%@t;nzB6t;$C8vg3|C@>XhiCOABZF>^9MO^QDzI#r zOgOXViHM6VW=2e%Fj!%uNn#rhh)%Ra!`ap`FE0G|D7tp!8zpy8%CImYsL}=L+ z3@-pwgHY6~gK8bE+4mJflgvbvHGW0?J2F@Tvw~>}8;)doFMP&svU($@D4+vlPK$0@ zF4>T%&0$e7rku3VmCCeH{>iYPGX4oFIqnNXP;@)nffE2>AL7J*-0fM85q3sq+3%}w z-EBg)m$SmacTenuB`+}IfQ!*^bQ+d|GK)3p9F zMf1q0*4ha!F#+QVGB8ha*+P60#K0pT{xE#ebG`r%d+0~w19#tpKYr7nV&8|K|BUIG zjV7Eeh_gh(g$v@;H3M^)8a?6d%#~8^f!FG4Wh|s4N)1JgHm6L>g^aT)E@l~E8ekp3 zxPZpiAHUp)%V_PA@XD>mB@wB<2WZsQ{WSu^44N6s@bV!PtZ5pzcx<< z%4yZKarzPxPTbtjNfs2{yIYBz>ZJjDFk1~gk*E21GnyX*a%}z{_xxFc0WHp}C6N!w z!}^dNU@Uuej@(_?rQ{dPhD`OIV`TM@BFaVRFNmrHdlR8BQ$A6#~>`C zV`MeXY*jSY8NQEW;vx=qX|s|HGcRj(DLiGjlzSNrb6uF>suJGS#x2Q^N{sD{WXEf+~EgI^RJX|J-dtQj@zfa7gQ){}P z_x>D-jnd!(7{F!Pq@ccm=dAp~u|xZ2g%uI#(CX)l7Yl&w6T&5tRtGG!MxFrTm8x=8 zq*+ig_Tv%6(?^RqF^gN!Yb(xeYsTE1GrO_o69RRACd79x+|V{JPW-S+$r>tYq&4VS8Ob9llF8c2@NBcT0q3Z{evee;YS z1Q(dnt0?|`wZ@o=ROwkB|C7boYNK~(}D+x7kunACJ}+| zk#G_gnx2I$mOXfO%-S#^rhZh|=f)AF+i`a3T72ebJ_9%2coSaoQ$K~Df5k81;g5J2 z9{P}v#+7R>=SaS_?#~3J@;m*o#Gd@2=$#<4W6a%(?Iq~AlGg3#YOP^Rg)}QlR0{`} zo=7Oh(CqdaGd3?M=d@y!*b4(tUQV*?j?^zTQ?U9J%=d3t66Pc3(F#emXNLq7`Eysr zVdRR38yZVuB^&&`<>q<=2cu|&Igh+FX9NgDkh1^2Rj0$O$>9bQa3!m;f(0zQ7h#;1 zyxzjL!J7+DolT z9hggSY;)>~k8~Kz_%p&z{jeR5$TA#xtgYEa61$6WT8eXGG^=W@dV}CN29D>zrAuen z&MpIL76$>F=MRe%dBuStX!r!uiZ&WPwqr+LDL26BF}mCQojl*qCXZWwf6XsoD5G_& z(k(X0o*QGFSQo`Tl#B%KKK@a^jCw5Phh2QcAhmANtSSanmg9tWPBU{v5rv{MtQ;+u z{0`=Jub}!^P9`}BJ$!XrD#~O|&=e#_(8T~VLDXE(>og)u?OanGs43bpLz0PjbWG1L zjB&pemE5+pG=%U;RWYVm@fKJ-RoiETXvGU1WB!`>f~nN535MDW1<=T<v3n<6yvl2p001BWNkl3Sja=22 zYkGC*u;EFc^htQgZMWf%-t;EC?QQQsW5y#N{)p@*Xh^CGGcGJfys`iG@MnAVrte@U zSf&-tmWkzYhXGUHP0SR#-)Ul{hRCLsn{D`)ll_ z7n+8g%ORZaAg3MnK}ylA-uWcDO4TmLIfo}HaE)C2cQ9eASg#C_I+{r{^mV2{s`Wrhs*#d$A{|y`wQOeY`p+=EXU-v#s8CmArhW z7XWr3`=t;mB#T0teH^N;?j`ZKEp>DDLUf)|pzjzD8l9(JeD#S!P;D}WWKKXW6(fi~ z67N~xnIlO#TVp)r_K(6tANtW|;c{R?1OS5x z`}D8tz;TH9S|Lt(e-A}7k%XwFKqRvz5v!mzEril~C0dp#a(pB^LNIb6t-Fr<%9ZQv z=^w+aW$f>?|0Gd`U z1?|FR-;vnRS~G$|&YVLAEl?-Gs7|1D_af5Ccq2MWausM+D1u4?NEov3qdYZ0bvOS_ z+DQEG2HDPyE6*@i|v z_m0JjyzbmY%d=V1d`dx+9cG?R!PZ4b5Nz;S&4#Dk@`I0KBukY96B>fJ{4MAfb#PHA zE~7IEe;XS-J38nTaI_O}c12X#*EXf2_{0HzZrEruPNgWIITK;b4#VErksMPfh~yW$ zrDoa~cm_zsd9vho2-Qk`3DFVHQ9RtmJ1f&o=-cK10o(J6R_LoySdfIPbrJ=NX~?qf z3Gq@yUd7+36=)m}a;h%OUoXIEw2bSS!(WP20|+xbLtd)as>PAh7Djx7Epm$S>1 zg^4(!4ic~MFxH-buP0sbM5mfE_JQZ7&P|BNK_TOM|Ah8Mi`ER z$ErT6jbf2qo<7nKSWC@MrEAoJKq8dAE7S>lG=oSp!gN{ID4ybT><^129 z+ZDv|I1ztTJ-BCpWwu-RFDO|qWgKpa>=6~?4#q4xJI<2w!>i@^Kq6hCaiwqvV=}!` zTuagNH@1AJZH%k7ixJ5Yxh(VLc)^((&=spkIw==%G3BT-44Ey(H#W|w3sH3W8M&+q z<9Gq+mOo33q6Czn?#M&r$QSf6M%qGp%TXgaw~)ycY0Rj7hHJQ!E4qx?bTOtk?hfcL z%w1Fp@f@VN*aZ?eks`SFDY^vTd!*;iDL^Yop;9j>Ur1V&TRsXcpI?1uq~+D5utaD< z6u6m}4bHrjP`t(SAKhl8OG8r#!Y$J5$tzGgQSh$J(?nrK{$N~;s%{DLVj;%fAv6n{ zfLH4>N4|%VU8!PhQ7jpJxodZ!m4x&iWQsZ8&rR|1aE_1dU^ety&)6%O6Qq=sCiTvJ z&H-o#Z#@xrHr%ztn3FtX$T<>C{9trz$ak?WUS`7d#F()0l$W@?in0)6;whU-;K(`k zkvOp?hu31Q!dzZzQA(dN<;uWzdu;)E0IhcyxVgenE1;SX-qE-a!WXRNXC5;J`)Meb znbiXTnUB_}w}f>1ze`SV1egP8-Qg4_K#Mg37DQTtC{kH1 zrxY5|lc4qw?Epz2V^$TkMCjO#KwVvC2@c`g5cj;q5<0M3ie{BvvMbk6UtJ!ivKfR= zh(cAkr2eYT`mh_Pp_x6iO~#Hn6&*cefRa$LfNjmAV!J0=DgpxsSJX|GV$`#$i8vuy zs z8bIW`xi_&|+P>^Fk%{HDi-8L(T=7S=&_X!BFY#STBq_jmJ2Gd!5PA8>2vtV00#WL~ zOk9s>JAatd$Cy|x&SdudENHQ^5R&N6{&l%;w&T!YW0Tm`gikXSZ4;lQu-Jm0PKc6F@-*n8z-d zi{YQ!nJEB|F>-cFehcpHZjyf~zuFwbnYASkWQeC+ECOWr0%izl3?2y%E_W}XR4{YV zr8SE~nZs=#t_z6xGx3ZUX{nM75CO4~KYDNIt%N$EyiPSU!??Fv0;=XIC{ety7gpif zi{Ast;pD!P)9sHMLmdv7$~1$Wau0o`F|hgHUmhpEqVJ@RGlJ7n&dV_@!ofj9o%+i`y4!z!jAVp|cL_9b-a>(Jx&Fal>%m9%1Q}L~>7RUO0bX!iN+} zSBX)c?Yp>j!$xrj&@y{Y#5jQVLM&`ms>Jl>yQTDbjopp&1&6i~wZ~dvE@RpVksaCX zLb7ku1cjajgwhS zG6^L?0`8;ZI#})3(UZqo5b{|Sdb8qkoS#GXkyH+b6r-1nu+$IrjK>HqFjP@AuW)Pd z$~BWg_yCUlas@?netFcF&0!pyeYZJjK< zImj)&n@Za~Z+6*+)e3I!p_9oNxhTX6<~#w-t2otDSIDBd{IjMI&qZe|Vl<=RGiMxD z#ixb+B`?}#5=idPizyXQcZZIVrbHb(AjAFd{(Zz$W83UpYMXWG5i953&M^kYeyqz~ zPe;14u!bQI(g8AncGyfVnh&{R&fO)jhH_$6@Ya**MnOpsLqARb0m)l;Awb{x%Xr>* zzZGBk-QR|%Tvx_lZAPPj&#px(>n^0eR#`gPKJiLXh5O5eC#Bbo*dbj0~c=X7iELvL|3)WDA>`iJ2`l znAvehJ{oq)y^@WFD1unsk0qWHm@tg#3R5!qJ%~ZuCI5QrbO)^kxDvSg?==EkMV8FP zR#0kJF^VW!#9&1i!)B2P!c@j(ErNuE6$iozB@|$n{5P+r?Pm}SQIHJu#wOr#c(SQ8 zjXpDHq|ygQ&JW#Y0lehI67ou1$WlTW&BYnb{d|NmrjKOJFf0)pLnX!qqp)3SUem@V zRvA+kE~Z=Ylv6Zgi~f!-R+v#D!Iu3vEN*Jb>fMZKNb_+V?2?+AJVB-+17+vq9RkOt zPBsn=e`?a2rWL-nZrROWsm%mu0aRCkwr0@eVi9`KwNH$6Ic(f(#&nuAN-N-cq0@Dw#E!3hE4G)*||lrSV`Y zRQ7BLrosUZW+!1+gsUqyg9t#&>Vfp=X*MQ|YMVhqNNFk3N5U*X9n&WfibdE)rMIvm zqQp(SK*%G6IVTFCK-S%!FE`v%b1|G3n=wWWe|1d0db1`=MI7%p?0s*SjAZ2)Pss?j zI75hN=h367)_?K4@ugLU9dFMkPs<+t92_L{H4 zozJ?>|NH<3FsY>pmdO;0)BPY!=1YlCS5?K`Z+sn`;`Qc}U%@M(q4rwR( zYc7?8z|TA(vZrcHTv^+fG!5Q*vhP}BjD0sbzbI52wr<&OB8qX`?FA03SD57`{9D## zv5%dji%&mbctN?LdAvy!716DUnnk6Ng$K@}Lp)JLP2RpgFGh)DW_tYeK=EGd4qzl2dUr zfr~RuqjPTl+f7EJPZdbQUmE~sww(r0qa-K&Q}32(CI&8_Bh;RK!DQJ%Fm<|sfln^# zn53|KvDjWB%)u!@h+QB#5ygrVu@P|=Fg-0C)Hbi4ZS|l|K?;3`5nK?C z1SR-VY8f_MMsc<9<4|3q#%uxFXR`2MYTfpeOb!#D<#na*Dq{oxa{}!9hlqx3tS;!S zRh}lVq^6nj`s|Lqpc(@iktT~8(xQf(4av#qIfiA8NMoxIp&PSXIqZhgY>hV*=Tzxz`_neu)74y z=i2-Bkw>7x6--#LE(8--GWACJjjq*Qf>u4R4AJHS;QN0MKlw9%hzIn&c=d~a74J|^ zqojRUV^JUZgBMCKs)|rO<@es-{ULnk|M-95i6eLl85bj`IFLgXl?Ly`ta+=R2?o0C zU~>SM2QjV=p$TYp7_rqycuw9R=mH99sh}d~mqtt!f}81k9dceFx4uN_L`69<9jRs2 z8z*%HdErX=%a~L3CgMUEnfW=98yrKlGxwP)Huc|ec)h3^>&)Kc*d<3?lv0jdL;02% zKMj1~G}EFbgpWaX;|{N-pdj4;4z^028#9I6Ff< zF&NWBX$@{By2NhDLa*_78=W&j2Hcu^1bbezfdhoh98bq1mE+*BX^`)9bF^A&WOArP zA`#siDEstEofp4fc!JIMHfN}Lt@w(S$`CbxG?_q+ydaB_`5aQ=xvlI)Yf^e9mFTdG zIAHGVPHf+&FG7UkzUKaQ$ubOhwNE@-ju!5u(Nd&nsVE8M_Bf$A#YIYzmJl1CZ{W>>qL~Un4w;q_I4$j0=77i! zmEDnrzMNN^M93H?fckwO*!?+(X+&DyD8LrT9dv8XGF5fxh?E}2rx+GyOdy&V`-NSE zsW=t)KyH}Aj^v!lE>;;HG3IArYajUnG!>|%;-?5Bi&>jmUPj^jNFXz%yWPO0&2IJg z{rZpNyipps& zm(?+R7is^Jsm`r*sduW?79apS?SxAit1D;~1-=$3UkhaB-Y@(|Ia9}iQDXM0&2_;M z)e{5`lQMcCutZj60(khR>?P>E7co6WCG`=<%c~R~Fv=ZGRHRGW<{bnlqp;Lgt9Qtd zO%8b@p*hecB7IF+lS`oKHOs|aUbAyv@ajjPJN z+sjX!7ae&xZo-7q4_T?(2fJj(T=i6Cpy{hXArHgN&<8q-)nq^ss7Au3@xOa z;IE3WanvUkZXuyEk!MtuCqAS?RVD2Or#_4&ELvsB jwZB5L{+!wX(%mifRrA&pk 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

    (R;uG=Ig*)(f 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 z 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%0A=$7awQd)?S?ar7v>&o?R#;MH+{k$(O!#0=@FS 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