14 Commits

74 changed files with 1171 additions and 246 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "Boxing Timer"
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 1.0 PROJECT_NUMBER = 0.1a
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a
@ -51,7 +51,7 @@ PROJECT_BRIEF =
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory. # the logo to the output directory.
PROJECT_LOGO = PROJECT_LOGO = /home/penguyman/Progetti/harbour-boxing-timer/icons/256x256/harbour-boxing-timer.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is # into which the generated documentation will be written. If a relative path is
@ -238,7 +238,7 @@ TAB_SIZE = 4
# "Side Effects:". You can put \n's in the value part of an alias to insert # "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines. # newlines.
ALIASES = "accessors=\par Accessors:\n" ALIASES = "accessors=\par Accessors:\n"
# This tag can be used to specify a number of word-keyword mappings (TCL only). # This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class" # A mapping has the form "name=value". For example adding "class=itcl::class"

View File

@ -6,6 +6,15 @@ Maintainers
----------- -----------
- Claudio Maradonna (claudio@unitoo.pw) - Claudio Maradonna (claudio@unitoo.pw)
Designers
---------
- Stefano Amandonico (info@grafixprint.it)
Externals
---------
A grateful thanks to [jgibbon/slumber](https://github.com/jgibbon/slumber) for SleepBlank.qml to help fix ScreenBlanking issue.
License License
------- -------
Licensed under GPLv3 (see COPYING). Licensed under GPLv3 (see COPYING).
Logo is licensed under CC BY-NC-SA 4.0

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -69,6 +70,7 @@ $(function() {
<div class="contents"> <div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="boxingsettings_8h_source.html">boxingsettings.h</a>&quot;</code><br /> <div class="textblock"><code>#include &quot;<a class="el" href="boxingsettings_8h_source.html">boxingsettings.h</a>&quot;</code><br />
<code>#include &lt;QString&gt;</code><br /> <code>#include &lt;QString&gt;</code><br />
<code>#include &lt;QVariant&gt;</code><br />
</div></div><!-- contents --> </div></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -72,6 +73,7 @@ $(function() {
<div class="textblock"><code>#include &lt;QString&gt;</code><br /> <div class="textblock"><code>#include &lt;QString&gt;</code><br />
<code>#include &lt;QStringList&gt;</code><br /> <code>#include &lt;QStringList&gt;</code><br />
<code>#include &lt;QSettings&gt;</code><br /> <code>#include &lt;QSettings&gt;</code><br />
<code>#include &lt;QList&gt;</code><br />
</div> </div>
<p><a href="boxingsettings_8h_source.html">Go to the source code of this file.</a></p> <p><a href="boxingsettings_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls"> <table class="memberdecls">

File diff suppressed because one or more lines are too long

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -70,6 +71,7 @@ $(function() {
<div class="textblock"><code>#include &lt;QObject&gt;</code><br /> <div class="textblock"><code>#include &lt;QObject&gt;</code><br />
<code>#include &lt;QTime&gt;</code><br /> <code>#include &lt;QTime&gt;</code><br />
<code>#include &lt;QSettings&gt;</code><br /> <code>#include &lt;QSettings&gt;</code><br />
<code>#include &lt;QSound&gt;</code><br />
<code>#include &quot;<a class="el" href="boxingtimer_8h_source.html">boxingtimer.h</a>&quot;</code><br /> <code>#include &quot;<a class="el" href="boxingtimer_8h_source.html">boxingtimer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="boxingsettings_8h_source.html">boxingsettings.h</a>&quot;</code><br /> <code>#include &quot;<a class="el" href="boxingsettings_8h_source.html">boxingsettings.h</a>&quot;</code><br />
</div></div><!-- contents --> </div></div><!-- contents -->

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

File diff suppressed because one or more lines are too long

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -69,6 +70,8 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a62af206ef42670b751e0cec59c206896">BoxingSettings</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a62af206ef42670b751e0cec59c206896">BoxingSettings</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#a6dc7071565573dbd59d3eb94613b2433">BoxingSettings</a>(const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#a6dc7071565573dbd59d3eb94613b2433">BoxingSettings</a>(const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a6475be7b9b7eacc3b4a9ca853311b5a9">deletePreset</a>(const QString &amp;name)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a6475be7b9b7eacc3b4a9ca853311b5a9">deletePreset</a>(const QString &amp;name)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24">getInnerTimer</a>(const int &amp;index)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#abdabae9cd200706c2d207ada15b1c04c">getInnerTimers</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">getPreset</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">getPreset</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#ac0641004a9f244dcce8056c722685065">getPresetName</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#ac0641004a9f244dcce8056c722685065">getPresetName</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72">getRestMilliseconds</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72">getRestMilliseconds</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@ -76,7 +79,7 @@ $(function() {
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#ae57079ed791d793bfb310712063b1dab">getRounds</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#ae57079ed791d793bfb310712063b1dab">getRounds</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a811dbd6c80f86ad219bbb9166571a2e9">presetChanged</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">signal</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a811dbd6c80f86ad219bbb9166571a2e9">presetChanged</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#a507b3038f2851cff0d17fffc027019de">presetsList</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#a507b3038f2851cff0d17fffc027019de">presetsList</a>()</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a24906b544896052c08f0b93ded92823b">savePreset</a>(const QString &amp;name, const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#a8402eca09f44d4b3773ac1fd12e8dcda">savePreset</a>(const QString &amp;name, const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds, const QList&lt; int &gt; &amp;innerTimers)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b">setPreset</a>(const QString &amp;preset)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b">setPreset</a>(const QString &amp;preset)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#ad7c283d2b4ebe1333c1680a0fd19cb0c">setRestMilliseconds</a>(const int &amp;restMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="class_boxing_settings.html#ad7c283d2b4ebe1333c1680a0fd19cb0c">setRestMilliseconds</a>(const int &amp;restMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_boxing_settings.html#aaa691ab3a2fa5d1812975207b7e9f9ed">setRoundMilliseconds</a>(const int &amp;roundMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="class_boxing_settings.html#aaa691ab3a2fa5d1812975207b7e9f9ed">setRoundMilliseconds</a>(const int &amp;roundMilliseconds)</td><td class="entry"><a class="el" href="class_boxing_settings.html">BoxingSettings</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -90,12 +91,15 @@ Signals</h2></td></tr>
Public Member Functions</h2></td></tr> Public Member Functions</h2></td></tr>
<tr class="memitem:a507b3038f2851cff0d17fffc027019de"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a507b3038f2851cff0d17fffc027019de">presetsList</a> ()</td></tr> <tr class="memitem:a507b3038f2851cff0d17fffc027019de"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a507b3038f2851cff0d17fffc027019de">presetsList</a> ()</td></tr>
<tr class="separator:a507b3038f2851cff0d17fffc027019de"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a507b3038f2851cff0d17fffc027019de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24906b544896052c08f0b93ded92823b"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a24906b544896052c08f0b93ded92823b">savePreset</a> (const QString &amp;name, const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds)</td></tr> <tr class="memitem:a8402eca09f44d4b3773ac1fd12e8dcda"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a8402eca09f44d4b3773ac1fd12e8dcda">savePreset</a> (const QString &amp;name, const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds, const QList&lt; int &gt; &amp;innerTimers)</td></tr>
<tr class="memdesc:a24906b544896052c08f0b93ded92823b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save or override settings about specific preset. <a href="#a24906b544896052c08f0b93ded92823b">More...</a><br /></td></tr> <tr class="memdesc:a8402eca09f44d4b3773ac1fd12e8dcda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save or override settings about specific preset. <a href="#a8402eca09f44d4b3773ac1fd12e8dcda">More...</a><br /></td></tr>
<tr class="separator:a24906b544896052c08f0b93ded92823b"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a8402eca09f44d4b3773ac1fd12e8dcda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6475be7b9b7eacc3b4a9ca853311b5a9"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a6475be7b9b7eacc3b4a9ca853311b5a9">deletePreset</a> (const QString &amp;name)</td></tr> <tr class="memitem:a6475be7b9b7eacc3b4a9ca853311b5a9"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a6475be7b9b7eacc3b4a9ca853311b5a9">deletePreset</a> (const QString &amp;name)</td></tr>
<tr class="memdesc:a6475be7b9b7eacc3b4a9ca853311b5a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a specified preset. <a href="#a6475be7b9b7eacc3b4a9ca853311b5a9">More...</a><br /></td></tr> <tr class="memdesc:a6475be7b9b7eacc3b4a9ca853311b5a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a specified preset. <a href="#a6475be7b9b7eacc3b4a9ca853311b5a9">More...</a><br /></td></tr>
<tr class="separator:a6475be7b9b7eacc3b4a9ca853311b5a9"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a6475be7b9b7eacc3b4a9ca853311b5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ddc31fa4c9bea682674cb938d2d9e24"><td class="memItemLeft" align="right" valign="top">Q_INVOKABLE int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24">getInnerTimer</a> (const int &amp;index)</td></tr>
<tr class="memdesc:a7ddc31fa4c9bea682674cb938d2d9e24"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24" title="getInnerTimer(const int &amp;index) ">getInnerTimer(const int &amp;index)</a> <a href="#a7ddc31fa4c9bea682674cb938d2d9e24">More...</a><br /></td></tr>
<tr class="separator:a7ddc31fa4c9bea682674cb938d2d9e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62af206ef42670b751e0cec59c206896"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a62af206ef42670b751e0cec59c206896">BoxingSettings</a> ()</td></tr> <tr class="memitem:a62af206ef42670b751e0cec59c206896"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a62af206ef42670b751e0cec59c206896">BoxingSettings</a> ()</td></tr>
<tr class="separator:a62af206ef42670b751e0cec59c206896"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a62af206ef42670b751e0cec59c206896"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dc7071565573dbd59d3eb94613b2433"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a6dc7071565573dbd59d3eb94613b2433">BoxingSettings</a> (const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds)</td></tr> <tr class="memitem:a6dc7071565573dbd59d3eb94613b2433"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a6dc7071565573dbd59d3eb94613b2433">BoxingSettings</a> (const int &amp;rounds, const int &amp;roundMilliseconds, const int &amp;restMilliseconds)</td></tr>
@ -106,6 +110,9 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a2b9ff4ab1dbd14f5e8f37b88677e73f4"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a2b9ff4ab1dbd14f5e8f37b88677e73f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84fd6052ef19488b015638c68fa2be72"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72">getRestMilliseconds</a> ()</td></tr> <tr class="memitem:a84fd6052ef19488b015638c68fa2be72"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72">getRestMilliseconds</a> ()</td></tr>
<tr class="separator:a84fd6052ef19488b015638c68fa2be72"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a84fd6052ef19488b015638c68fa2be72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdabae9cd200706c2d207ada15b1c04c"><td class="memItemLeft" align="right" valign="top">QList&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#abdabae9cd200706c2d207ada15b1c04c">getInnerTimers</a> ()</td></tr>
<tr class="memdesc:abdabae9cd200706c2d207ada15b1c04c"><td class="mdescLeft">&#160;</td><td class="mdescRight">gerInnerTimers() <a href="#abdabae9cd200706c2d207ada15b1c04c">More...</a><br /></td></tr>
<tr class="separator:abdabae9cd200706c2d207ada15b1c04c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d03c793ed7ad6e97894e21b1f85105b"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">getPreset</a> ()</td></tr> <tr class="memitem:a2d03c793ed7ad6e97894e21b1f85105b"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">getPreset</a> ()</td></tr>
<tr class="separator:a2d03c793ed7ad6e97894e21b1f85105b"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a2d03c793ed7ad6e97894e21b1f85105b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0641004a9f244dcce8056c722685065"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#ac0641004a9f244dcce8056c722685065">getPresetName</a> ()</td></tr> <tr class="memitem:ac0641004a9f244dcce8056c722685065"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_boxing_settings.html#ac0641004a9f244dcce8056c722685065">getPresetName</a> ()</td></tr>
@ -204,6 +211,55 @@ Public Member Functions</h2></td></tr>
</dl> </dl>
<dl class="section author"><dt>Author</dt><dd>Claudio Maradonna <a href="#" onclick="location.href='mai'+'lto:'+'cla'+'ud'+'io@'+'un'+'ito'+'o.'+'pw'; return false;">claud<span style="display: none;">.nosp@m.</span>io@u<span style="display: none;">.nosp@m.</span>nitoo<span style="display: none;">.nosp@m.</span>.pw</a> </dd></dl> <dl class="section author"><dt>Author</dt><dd>Claudio Maradonna <a href="#" onclick="location.href='mai'+'lto:'+'cla'+'ud'+'io@'+'un'+'ito'+'o.'+'pw'; return false;">claud<span style="display: none;">.nosp@m.</span>io@u<span style="display: none;">.nosp@m.</span>nitoo<span style="display: none;">.nosp@m.</span>.pw</a> </dd></dl>
</div>
</div>
<a id="a7ddc31fa4c9bea682674cb938d2d9e24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ddc31fa4c9bea682674cb938d2d9e24">&#9670;&nbsp;</a></span>getInnerTimer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int BoxingSettings::getInnerTimer </td>
<td>(</td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24" title="getInnerTimer(const int &amp;index) ">getInnerTimer(const int &amp;index)</a> </p>
<dl class="section return"><dt>Returns</dt><dd>the specific timer in milliseconds </dd></dl>
</div>
</div>
<a id="abdabae9cd200706c2d207ada15b1c04c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdabae9cd200706c2d207ada15b1c04c">&#9670;&nbsp;</a></span>getInnerTimers()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">QList&lt;int&gt; BoxingSettings::getInnerTimers </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>gerInnerTimers() </p>
<dl class="section return"><dt>Returns</dt><dd>the list of inner timers </dd></dl>
</div> </div>
</div> </div>
<a id="a2d03c793ed7ad6e97894e21b1f85105b"></a> <a id="a2d03c793ed7ad6e97894e21b1f85105b"></a>
@ -380,8 +436,8 @@ Public Member Functions</h2></td></tr>
</div> </div>
</div> </div>
<a id="a24906b544896052c08f0b93ded92823b"></a> <a id="a8402eca09f44d4b3773ac1fd12e8dcda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24906b544896052c08f0b93ded92823b">&#9670;&nbsp;</a></span>savePreset()</h2> <h2 class="memtitle"><span class="permalink"><a href="#a8402eca09f44d4b3773ac1fd12e8dcda">&#9670;&nbsp;</a></span>savePreset()</h2>
<div class="memitem"> <div class="memitem">
<div class="memproto"> <div class="memproto">
@ -408,7 +464,13 @@ Public Member Functions</h2></td></tr>
<td class="paramkey"></td> <td class="paramkey"></td>
<td></td> <td></td>
<td class="paramtype">const int &amp;&#160;</td> <td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>restMilliseconds</em>&#160;</td> <td class="paramname"><em>restMilliseconds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const QList&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>innerTimers</em>&#160;</td>
</tr> </tr>
<tr> <tr>
<td></td> <td></td>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -89,6 +90,12 @@ $(function() {
<h3><a id="index_g"></a>- g -</h3><ul> <h3><a id="index_g"></a>- g -</h3><ul>
<li>getInnerTimer()
: <a class="el" href="class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24">BoxingSettings</a>
</li>
<li>getInnerTimers()
: <a class="el" href="class_boxing_settings.html#abdabae9cd200706c2d207ada15b1c04c">BoxingSettings</a>
</li>
<li>getPreset() <li>getPreset()
: <a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">BoxingSettings</a> : <a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">BoxingSettings</a>
, <a class="el" href="class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959">BoxingTimer</a> , <a class="el" href="class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959">BoxingTimer</a>
@ -150,7 +157,7 @@ $(function() {
<h3><a id="index_s"></a>- s -</h3><ul> <h3><a id="index_s"></a>- s -</h3><ul>
<li>savePreset() <li>savePreset()
: <a class="el" href="class_boxing_settings.html#a24906b544896052c08f0b93ded92823b">BoxingSettings</a> : <a class="el" href="class_boxing_settings.html#a8402eca09f44d4b3773ac1fd12e8dcda">BoxingSettings</a>
</li> </li>
<li>setPreset() <li>setPreset()
: <a class="el" href="class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b">BoxingSettings</a> : <a class="el" href="class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b">BoxingSettings</a>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -89,6 +90,12 @@ $(function() {
<h3><a id="index_g"></a>- g -</h3><ul> <h3><a id="index_g"></a>- g -</h3><ul>
<li>getInnerTimer()
: <a class="el" href="class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24">BoxingSettings</a>
</li>
<li>getInnerTimers()
: <a class="el" href="class_boxing_settings.html#abdabae9cd200706c2d207ada15b1c04c">BoxingSettings</a>
</li>
<li>getPreset() <li>getPreset()
: <a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">BoxingSettings</a> : <a class="el" href="class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b">BoxingSettings</a>
, <a class="el" href="class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959">BoxingTimer</a> , <a class="el" href="class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959">BoxingTimer</a>
@ -150,7 +157,7 @@ $(function() {
<h3><a id="index_s"></a>- s -</h3><ul> <h3><a id="index_s"></a>- s -</h3><ul>
<li>savePreset() <li>savePreset()
: <a class="el" href="class_boxing_settings.html#a24906b544896052c08f0b93ded92823b">BoxingSettings</a> : <a class="el" href="class_boxing_settings.html#a8402eca09f44d4b3773ac1fd12e8dcda">BoxingSettings</a>
</li> </li>
<li>setPreset() <li>setPreset()
: <a class="el" href="class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b">BoxingSettings</a> : <a class="el" href="class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b">BoxingSettings</a>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>
@ -70,6 +71,7 @@ $(function() {
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="textblock"><code>#include &lt;QtQuick&gt;</code><br /> <div class="textblock"><code>#include &lt;QtQuick&gt;</code><br />
<code>#include &lt;QList&gt;</code><br />
<code>#include &lt;sailfishapp.h&gt;</code><br /> <code>#include &lt;sailfishapp.h&gt;</code><br />
<code>#include &quot;<a class="el" href="boxingtimer_8h_source.html">boxingtimer.h</a>&quot;</code><br /> <code>#include &quot;<a class="el" href="boxingtimer_8h_source.html">boxingtimer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="boxingsettings_8h_source.html">boxingsettings.h</a>&quot;</code><br /> <code>#include &quot;<a class="el" href="boxingsettings_8h_source.html">boxingsettings.h</a>&quot;</code><br />

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -20,9 +20,10 @@
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 56px;"> <tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="harbour-boxing-timer.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Boxing Timer <div id="projectname">Boxing Timer
&#160;<span id="projectnumber">1.0</span> &#160;<span id="projectnumber">0.1a</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -1,5 +1,7 @@
var searchData= var searchData=
[ [
['getinnertimer',['getInnerTimer',['../class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24',1,'BoxingSettings']]],
['getinnertimers',['getInnerTimers',['../class_boxing_settings.html#abdabae9cd200706c2d207ada15b1c04c',1,'BoxingSettings']]],
['getpreset',['getPreset',['../class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b',1,'BoxingSettings::getPreset()'],['../class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959',1,'BoxingTimer::getPreset()']]], ['getpreset',['getPreset',['../class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b',1,'BoxingSettings::getPreset()'],['../class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959',1,'BoxingTimer::getPreset()']]],
['getpresetname',['getPresetName',['../class_boxing_settings.html#ac0641004a9f244dcce8056c722685065',1,'BoxingSettings']]], ['getpresetname',['getPresetName',['../class_boxing_settings.html#ac0641004a9f244dcce8056c722685065',1,'BoxingSettings']]],
['getrestmilliseconds',['getRestMilliseconds',['../class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72',1,'BoxingSettings']]], ['getrestmilliseconds',['getRestMilliseconds',['../class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72',1,'BoxingSettings']]],

View File

@ -1,6 +1,6 @@
var searchData= var searchData=
[ [
['savepreset',['savePreset',['../class_boxing_settings.html#a24906b544896052c08f0b93ded92823b',1,'BoxingSettings']]], ['savepreset',['savePreset',['../class_boxing_settings.html#a8402eca09f44d4b3773ac1fd12e8dcda',1,'BoxingSettings']]],
['setpreset',['setPreset',['../class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b',1,'BoxingSettings']]], ['setpreset',['setPreset',['../class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b',1,'BoxingSettings']]],
['setrestmilliseconds',['setRestMilliseconds',['../class_boxing_settings.html#ad7c283d2b4ebe1333c1680a0fd19cb0c',1,'BoxingSettings']]], ['setrestmilliseconds',['setRestMilliseconds',['../class_boxing_settings.html#ad7c283d2b4ebe1333c1680a0fd19cb0c',1,'BoxingSettings']]],
['setroundmilliseconds',['setRoundMilliseconds',['../class_boxing_settings.html#aaa691ab3a2fa5d1812975207b7e9f9ed',1,'BoxingSettings']]], ['setroundmilliseconds',['setRoundMilliseconds',['../class_boxing_settings.html#aaa691ab3a2fa5d1812975207b7e9f9ed',1,'BoxingSettings']]],
@ -9,5 +9,5 @@ var searchData=
['start',['start',['../class_boxing_timer.html#a64ae1d3a8bfe52b225658bf4121dcdfa',1,'BoxingTimer::start(const int &amp;milliseconds)'],['../class_boxing_timer.html#af2a4f0a0658b3685b2e0bcd965dca558aa6122a65eaa676f700ae68d393054a37',1,'BoxingTimer::Start()']]], ['start',['start',['../class_boxing_timer.html#a64ae1d3a8bfe52b225658bf4121dcdfa',1,'BoxingTimer::start(const int &amp;milliseconds)'],['../class_boxing_timer.html#af2a4f0a0658b3685b2e0bcd965dca558aa6122a65eaa676f700ae68d393054a37',1,'BoxingTimer::Start()']]],
['status',['Status',['../class_boxing_timer.html#af2a4f0a0658b3685b2e0bcd965dca558',1,'BoxingTimer']]], ['status',['Status',['../class_boxing_timer.html#af2a4f0a0658b3685b2e0bcd965dca558',1,'BoxingTimer']]],
['statuschanged',['statusChanged',['../class_boxing_timer.html#ab3d16c454a2fac620bb84721c105485a',1,'BoxingTimer']]], ['statuschanged',['statusChanged',['../class_boxing_timer.html#ab3d16c454a2fac620bb84721c105485a',1,'BoxingTimer']]],
['stop',['Stop',['../class_boxing_timer.html#af2a4f0a0658b3685b2e0bcd965dca558a11a755d598c0c417f9a36758c3da7481',1,'BoxingTimer::Stop()'],['../class_boxing_timer.html#aa294afc288608f91eb00d1680db67738',1,'BoxingTimer::stop()']]] ['stop',['stop',['../class_boxing_timer.html#aa294afc288608f91eb00d1680db67738',1,'BoxingTimer::stop()'],['../class_boxing_timer.html#af2a4f0a0658b3685b2e0bcd965dca558a11a755d598c0c417f9a36758c3da7481',1,'BoxingTimer::Stop()']]]
]; ];

View File

@ -1,5 +1,7 @@
var searchData= var searchData=
[ [
['getinnertimer',['getInnerTimer',['../class_boxing_settings.html#a7ddc31fa4c9bea682674cb938d2d9e24',1,'BoxingSettings']]],
['getinnertimers',['getInnerTimers',['../class_boxing_settings.html#abdabae9cd200706c2d207ada15b1c04c',1,'BoxingSettings']]],
['getpreset',['getPreset',['../class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b',1,'BoxingSettings::getPreset()'],['../class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959',1,'BoxingTimer::getPreset()']]], ['getpreset',['getPreset',['../class_boxing_settings.html#a2d03c793ed7ad6e97894e21b1f85105b',1,'BoxingSettings::getPreset()'],['../class_boxing_timer.html#aae9b18b16d38e1dd98a33ff0d0bed959',1,'BoxingTimer::getPreset()']]],
['getpresetname',['getPresetName',['../class_boxing_settings.html#ac0641004a9f244dcce8056c722685065',1,'BoxingSettings']]], ['getpresetname',['getPresetName',['../class_boxing_settings.html#ac0641004a9f244dcce8056c722685065',1,'BoxingSettings']]],
['getrestmilliseconds',['getRestMilliseconds',['../class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72',1,'BoxingSettings']]], ['getrestmilliseconds',['getRestMilliseconds',['../class_boxing_settings.html#a84fd6052ef19488b015638c68fa2be72',1,'BoxingSettings']]],

View File

@ -1,6 +1,6 @@
var searchData= var searchData=
[ [
['savepreset',['savePreset',['../class_boxing_settings.html#a24906b544896052c08f0b93ded92823b',1,'BoxingSettings']]], ['savepreset',['savePreset',['../class_boxing_settings.html#a8402eca09f44d4b3773ac1fd12e8dcda',1,'BoxingSettings']]],
['setpreset',['setPreset',['../class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b',1,'BoxingSettings']]], ['setpreset',['setPreset',['../class_boxing_settings.html#a71e6d017856266fa95b07ed0030ed05b',1,'BoxingSettings']]],
['setrestmilliseconds',['setRestMilliseconds',['../class_boxing_settings.html#ad7c283d2b4ebe1333c1680a0fd19cb0c',1,'BoxingSettings']]], ['setrestmilliseconds',['setRestMilliseconds',['../class_boxing_settings.html#ad7c283d2b4ebe1333c1680a0fd19cb0c',1,'BoxingSettings']]],
['setroundmilliseconds',['setRoundMilliseconds',['../class_boxing_settings.html#aaa691ab3a2fa5d1812975207b7e9f9ed',1,'BoxingSettings']]], ['setroundmilliseconds',['setRoundMilliseconds',['../class_boxing_settings.html#aaa691ab3a2fa5d1812975207b7e9f9ed',1,'BoxingSettings']]],

View File

@ -2,3 +2,4 @@
\label{boxingsettings_8cpp}\index{src/boxingsettings.\+cpp@{src/boxingsettings.\+cpp}} \label{boxingsettings_8cpp}\index{src/boxingsettings.\+cpp@{src/boxingsettings.\+cpp}}
{\ttfamily \#include \char`\"{}boxingsettings.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}boxingsettings.\+h\char`\"{}}\newline
{\ttfamily \#include $<$Q\+String$>$}\newline {\ttfamily \#include $<$Q\+String$>$}\newline
{\ttfamily \#include $<$Q\+Variant$>$}\newline

View File

@ -3,6 +3,7 @@
{\ttfamily \#include $<$Q\+String$>$}\newline {\ttfamily \#include $<$Q\+String$>$}\newline
{\ttfamily \#include $<$Q\+String\+List$>$}\newline {\ttfamily \#include $<$Q\+String\+List$>$}\newline
{\ttfamily \#include $<$Q\+Settings$>$}\newline {\ttfamily \#include $<$Q\+Settings$>$}\newline
{\ttfamily \#include $<$Q\+List$>$}\newline
\subsection*{Classes} \subsection*{Classes}
\begin{DoxyCompactItemize} \begin{DoxyCompactItemize}
\item \item

View File

@ -3,5 +3,6 @@
{\ttfamily \#include $<$Q\+Object$>$}\newline {\ttfamily \#include $<$Q\+Object$>$}\newline
{\ttfamily \#include $<$Q\+Time$>$}\newline {\ttfamily \#include $<$Q\+Time$>$}\newline
{\ttfamily \#include $<$Q\+Settings$>$}\newline {\ttfamily \#include $<$Q\+Settings$>$}\newline
{\ttfamily \#include $<$Q\+Sound$>$}\newline
{\ttfamily \#include \char`\"{}boxingtimer.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}boxingtimer.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}boxingsettings.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}boxingsettings.\+h\char`\"{}}\newline

View File

@ -25,10 +25,12 @@ void \hyperlink{class_boxing_settings_a811dbd6c80f86ad219bbb9166571a2e9}{preset\
\item \item
Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE const Q\+String\+List \hyperlink{class_boxing_settings_a507b3038f2851cff0d17fffc027019de}{presets\+List} () Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE const Q\+String\+List \hyperlink{class_boxing_settings_a507b3038f2851cff0d17fffc027019de}{presets\+List} ()
\item \item
Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE void \hyperlink{class_boxing_settings_a24906b544896052c08f0b93ded92823b}{save\+Preset} (const Q\+String \&name, const int \&rounds, const int \&round\+Milliseconds, const int \&rest\+Milliseconds) Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE void \hyperlink{class_boxing_settings_a8402eca09f44d4b3773ac1fd12e8dcda}{save\+Preset} (const Q\+String \&name, const int \&rounds, const int \&round\+Milliseconds, const int \&rest\+Milliseconds, const Q\+List$<$ int $>$ \&inner\+Timers)
\begin{DoxyCompactList}\small\item\em Save or override settings about specific preset. \end{DoxyCompactList}\item \begin{DoxyCompactList}\small\item\em Save or override settings about specific preset. \end{DoxyCompactList}\item
Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE void \hyperlink{class_boxing_settings_a6475be7b9b7eacc3b4a9ca853311b5a9}{delete\+Preset} (const Q\+String \&name) Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE void \hyperlink{class_boxing_settings_a6475be7b9b7eacc3b4a9ca853311b5a9}{delete\+Preset} (const Q\+String \&name)
\begin{DoxyCompactList}\small\item\em Delete a specified preset. \end{DoxyCompactList}\item \begin{DoxyCompactList}\small\item\em Delete a specified preset. \end{DoxyCompactList}\item
Q\+\_\+\+I\+N\+V\+O\+K\+A\+B\+LE int \hyperlink{class_boxing_settings_a7ddc31fa4c9bea682674cb938d2d9e24}{get\+Inner\+Timer} (const int \&index)
\begin{DoxyCompactList}\small\item\em \hyperlink{class_boxing_settings_a7ddc31fa4c9bea682674cb938d2d9e24}{get\+Inner\+Timer(const int \&index)} \end{DoxyCompactList}\item
\hyperlink{class_boxing_settings_a62af206ef42670b751e0cec59c206896}{Boxing\+Settings} () \hyperlink{class_boxing_settings_a62af206ef42670b751e0cec59c206896}{Boxing\+Settings} ()
\item \item
\hyperlink{class_boxing_settings_a6dc7071565573dbd59d3eb94613b2433}{Boxing\+Settings} (const int \&rounds, const int \&round\+Milliseconds, const int \&rest\+Milliseconds) \hyperlink{class_boxing_settings_a6dc7071565573dbd59d3eb94613b2433}{Boxing\+Settings} (const int \&rounds, const int \&round\+Milliseconds, const int \&rest\+Milliseconds)
@ -39,6 +41,8 @@ int \hyperlink{class_boxing_settings_a2b9ff4ab1dbd14f5e8f37b88677e73f4}{get\+Rou
\item \item
int \hyperlink{class_boxing_settings_a84fd6052ef19488b015638c68fa2be72}{get\+Rest\+Milliseconds} () int \hyperlink{class_boxing_settings_a84fd6052ef19488b015638c68fa2be72}{get\+Rest\+Milliseconds} ()
\item \item
Q\+List$<$ int $>$ \hyperlink{class_boxing_settings_abdabae9cd200706c2d207ada15b1c04c}{get\+Inner\+Timers} ()
\begin{DoxyCompactList}\small\item\em ger\+Inner\+Timers() \end{DoxyCompactList}\item
Q\+String \hyperlink{class_boxing_settings_a2d03c793ed7ad6e97894e21b1f85105b}{get\+Preset} () Q\+String \hyperlink{class_boxing_settings_a2d03c793ed7ad6e97894e21b1f85105b}{get\+Preset} ()
\item \item
Q\+String \hyperlink{class_boxing_settings_ac0641004a9f244dcce8056c722685065}{get\+Preset\+Name} () Q\+String \hyperlink{class_boxing_settings_ac0641004a9f244dcce8056c722685065}{get\+Preset\+Name} ()
@ -92,6 +96,32 @@ Delete a specified preset.
\begin{DoxyAuthor}{Author} \begin{DoxyAuthor}{Author}
Claudio Maradonna \href{mailto:claudio@unitoo.pw}{\tt claudio@unitoo.\+pw} Claudio Maradonna \href{mailto:claudio@unitoo.pw}{\tt claudio@unitoo.\+pw}
\end{DoxyAuthor} \end{DoxyAuthor}
\mbox{\Hypertarget{class_boxing_settings_a7ddc31fa4c9bea682674cb938d2d9e24}\label{class_boxing_settings_a7ddc31fa4c9bea682674cb938d2d9e24}}
\index{Boxing\+Settings@{Boxing\+Settings}!get\+Inner\+Timer@{get\+Inner\+Timer}}
\index{get\+Inner\+Timer@{get\+Inner\+Timer}!Boxing\+Settings@{Boxing\+Settings}}
\subsubsection{\texorpdfstring{get\+Inner\+Timer()}{getInnerTimer()}}
{\footnotesize\ttfamily int Boxing\+Settings\+::get\+Inner\+Timer (\begin{DoxyParamCaption}\item[{const int \&}]{index }\end{DoxyParamCaption})}
\hyperlink{class_boxing_settings_a7ddc31fa4c9bea682674cb938d2d9e24}{get\+Inner\+Timer(const int \&index)}
\begin{DoxyReturn}{Returns}
the specific timer in milliseconds
\end{DoxyReturn}
\mbox{\Hypertarget{class_boxing_settings_abdabae9cd200706c2d207ada15b1c04c}\label{class_boxing_settings_abdabae9cd200706c2d207ada15b1c04c}}
\index{Boxing\+Settings@{Boxing\+Settings}!get\+Inner\+Timers@{get\+Inner\+Timers}}
\index{get\+Inner\+Timers@{get\+Inner\+Timers}!Boxing\+Settings@{Boxing\+Settings}}
\subsubsection{\texorpdfstring{get\+Inner\+Timers()}{getInnerTimers()}}
{\footnotesize\ttfamily Q\+List$<$int$>$ Boxing\+Settings\+::get\+Inner\+Timers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
ger\+Inner\+Timers()
\begin{DoxyReturn}{Returns}
the list of inner timers
\end{DoxyReturn}
\mbox{\Hypertarget{class_boxing_settings_a2d03c793ed7ad6e97894e21b1f85105b}\label{class_boxing_settings_a2d03c793ed7ad6e97894e21b1f85105b}} \mbox{\Hypertarget{class_boxing_settings_a2d03c793ed7ad6e97894e21b1f85105b}\label{class_boxing_settings_a2d03c793ed7ad6e97894e21b1f85105b}}
\index{Boxing\+Settings@{Boxing\+Settings}!get\+Preset@{get\+Preset}} \index{Boxing\+Settings@{Boxing\+Settings}!get\+Preset@{get\+Preset}}
\index{get\+Preset@{get\+Preset}!Boxing\+Settings@{Boxing\+Settings}} \index{get\+Preset@{get\+Preset}!Boxing\+Settings@{Boxing\+Settings}}
@ -155,11 +185,11 @@ Claudio Maradonna \href{mailto:claudio@unitoo.pw}{\tt claudio@unitoo.\+pw}
\begin{DoxyReturn}{Returns} \begin{DoxyReturn}{Returns}
a list with available (probably saved) presets a list with available (probably saved) presets
\end{DoxyReturn} \end{DoxyReturn}
\mbox{\Hypertarget{class_boxing_settings_a24906b544896052c08f0b93ded92823b}\label{class_boxing_settings_a24906b544896052c08f0b93ded92823b}} \mbox{\Hypertarget{class_boxing_settings_a8402eca09f44d4b3773ac1fd12e8dcda}\label{class_boxing_settings_a8402eca09f44d4b3773ac1fd12e8dcda}}
\index{Boxing\+Settings@{Boxing\+Settings}!save\+Preset@{save\+Preset}} \index{Boxing\+Settings@{Boxing\+Settings}!save\+Preset@{save\+Preset}}
\index{save\+Preset@{save\+Preset}!Boxing\+Settings@{Boxing\+Settings}} \index{save\+Preset@{save\+Preset}!Boxing\+Settings@{Boxing\+Settings}}
\subsubsection{\texorpdfstring{save\+Preset()}{savePreset()}} \subsubsection{\texorpdfstring{save\+Preset()}{savePreset()}}
{\footnotesize\ttfamily void Boxing\+Settings\+::save\+Preset (\begin{DoxyParamCaption}\item[{const Q\+String \&}]{name, }\item[{const int \&}]{rounds, }\item[{const int \&}]{round\+Milliseconds, }\item[{const int \&}]{rest\+Milliseconds }\end{DoxyParamCaption})} {\footnotesize\ttfamily void Boxing\+Settings\+::save\+Preset (\begin{DoxyParamCaption}\item[{const Q\+String \&}]{name, }\item[{const int \&}]{rounds, }\item[{const int \&}]{round\+Milliseconds, }\item[{const int \&}]{rest\+Milliseconds, }\item[{const Q\+List$<$ int $>$ \&}]{inner\+Timers }\end{DoxyParamCaption})}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,6 +1,7 @@
\hypertarget{harbour-boxing-timer_8cpp}{}\section{src/harbour-\/boxing-\/timer.cpp File Reference} \hypertarget{harbour-boxing-timer_8cpp}{}\section{src/harbour-\/boxing-\/timer.cpp File Reference}
\label{harbour-boxing-timer_8cpp}\index{src/harbour-\/boxing-\/timer.\+cpp@{src/harbour-\/boxing-\/timer.\+cpp}} \label{harbour-boxing-timer_8cpp}\index{src/harbour-\/boxing-\/timer.\+cpp@{src/harbour-\/boxing-\/timer.\+cpp}}
{\ttfamily \#include $<$Qt\+Quick$>$}\newline {\ttfamily \#include $<$Qt\+Quick$>$}\newline
{\ttfamily \#include $<$Q\+List$>$}\newline
{\ttfamily \#include $<$sailfishapp.\+h$>$}\newline {\ttfamily \#include $<$sailfishapp.\+h$>$}\newline
{\ttfamily \#include \char`\"{}boxingtimer.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}boxingtimer.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}boxingsettings.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}boxingsettings.\+h\char`\"{}}\newline

View File

@ -125,7 +125,7 @@
\begin{titlepage} \begin{titlepage}
\vspace*{7cm} \vspace*{7cm}
\begin{center}% \begin{center}%
{\Large Boxing Timer \\[1ex]\large 1.\+0 }\\ {\Large Boxing Timer \\[1ex]\large 0.\+1a }\\
\vspace*{1cm} \vspace*{1cm}
{\large Generated by Doxygen 1.8.13}\\ {\large Generated by Doxygen 1.8.13}\\
\end{center} \end{center}

View File

@ -4,8 +4,14 @@ DEFINES += APP_VERSION=\\\"$$VERSION\\\"
DEFINES += APP_RELEASE=\\\"$$RELEASE\\\" DEFINES += APP_RELEASE=\\\"$$RELEASE\\\"
CONFIG += sailfishapp CONFIG += sailfishapp
CONFIG += sailfishapp_i18n
QT += multimedia QT += core qml multimedia dbus
QMAKE_TARGET_COMPANY = Unitoo
QMAKE_TARGET_PRODUCT = Boxing Timer
QMAKE_TARGET_DESCRIPTION = A customizable timer for fighting sports like boxe
QMAKE_TARGET_COPYRIGHT = Copyright © 2017-2019 Claudio Maradonna <claudio[at]unitoo[dot]name>
SOURCES += src/harbour-boxing-timer.cpp \ SOURCES += src/harbour-boxing-timer.cpp \
src/boxingtimer.cpp \ src/boxingtimer.cpp \
@ -15,22 +21,13 @@ OTHER_FILES += qml/harbour-boxing-timer.qml \
qml/cover/CoverPage.qml \ qml/cover/CoverPage.qml \
rpm/harbour-boxing-timer.spec \ rpm/harbour-boxing-timer.spec \
rpm/harbour-boxing-timer.yaml \ rpm/harbour-boxing-timer.yaml \
translations/*.ts \ harbour-boxing-timer.desktop \
harbour-boxing-timer.desktop translations/*.ts
SAILFISHAPP_ICONS = 86x86 108x108 128x128 256x256 SAILFISHAPP_ICONS += 86x86 108x108 128x128 172x172 256x256
# to disable building translations every time, comment out the
# following CONFIG line
# CONFIG += sailfishapp_i18n
# German translation is enabled as an example. If you aren't
# planning to localize your app, remember to comment out the
# following TRANSLATIONS line. And also do not forget to
# modify the localized app name in the the .desktop file.
# TRANSLATIONS += translations/harbour-boxing-timer-de.ts
DISTFILES += \ DISTFILES += \
qml/ScreenBlank.qml \
qml/pages/TimerPage.qml \ qml/pages/TimerPage.qml \
qml/pages/SettingsPage.qml \ qml/pages/SettingsPage.qml \
qml/pages/js/converter.js \ qml/pages/js/converter.js \
@ -39,7 +36,12 @@ DISTFILES += \
COPYING \ COPYING \
rpm/harbour-boxing-timer.changes \ rpm/harbour-boxing-timer.changes \
qml/pages/js/helpers.js \ qml/pages/js/helpers.js \
README.md README.md \
icons/86x86/harbour-boxing-timer.png \
icons/108x108/harbour-boxing-timer.png \
icons/128x128/harbour-boxing-timer.png \
icons/172x172/harbour-boxing-timer.png \
icons/256x256/harbour-boxing-timer.png
HEADERS += \ HEADERS += \
src/boxingtimer.h \ src/boxingtimer.h \
@ -47,3 +49,15 @@ HEADERS += \
RESOURCES += \ RESOURCES += \
harbour-boxing-timer.qrc harbour-boxing-timer.qrc
TRANSLATIONS += \
translations/harbour-boxing-timer-en_US.ts \
translations/harbour-boxing-timer-it_IT.ts
translations.name = Translations
translations.input = TRANSLATIONS
translations.output = $$_PRO_FILE_PWD_/translations/${QMAKE_FILE_BASE}.qm
translations.commands = $$[QT_INSTALL_BINS]/lrelease ${QMAKE_FILE_IN}
translations.CONFIG = no_link
QMAKE_EXTRA_COMPILERS += translations
PRE_TARGETDEPS += compiler_translations_make_all

View File

@ -3,5 +3,10 @@
<file>resources/play.wav</file> <file>resources/play.wav</file>
<file>resources/rest.wav</file> <file>resources/rest.wav</file>
<file>resources/stop.wav</file> <file>resources/stop.wav</file>
<file>resources/inner.wav</file>
</qresource>
<qresource prefix="/">
<file>translations/harbour-boxing-timer-en_US.qm</file>
<file>translations/harbour-boxing-timer-it_IT.qm</file>
</qresource> </qresource>
</RCC> </RCC>

BIN
icons/108x108/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 14 KiB

BIN
icons/128x128/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
icons/256x256/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 43 KiB

BIN
icons/86x86/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

41
qml/ScreenBlank.qml Normal file
View File

@ -0,0 +1,41 @@
import QtQuick 2.0
import Nemo.DBus 2.0
Item {
property bool enabled: false
function request(){
var method = "req_display"+(enabled?"":"_cancel")+"_blanking_pause";
console.log('screen blank:', enabled, method);
dbif.call(method, [])
}
onEnabledChanged: {
request();
}
DBusInterface {
id: dbif
service: "com.nokia.mce"
path: "/com/nokia/mce/request"
iface: "com.nokia.mce.request"
bus: DBusInterface.SystemBus
}
Timer { //request seems to time out after a while:
running: parent.enabled
interval: 15000 //minimum setting for blank display is 15s
repeat: true
onTriggered: {
if(parent.enabled) {
parent.request()
}
}
}
Component.onDestruction: {
if(enabled){
enabled=false
}
}
}

View File

@ -48,7 +48,9 @@ CoverBackground {
font.pixelSize: Theme.fontSizeHuge font.pixelSize: Theme.fontSizeHuge
text: boxingTimer.remainingTimeToString text: boxingTimer.remainingTimeToString
color: boxingTimer.status === BoxingTimer.Rest ? Theme.secondaryColor : Theme.primaryColor color: boxingTimer.status === BoxingTimer.Rest ?
Theme.secondaryColor :
Theme.primaryColor
} }
Item { width: 25; height: 25 } Item { width: 25; height: 25 }

View File

@ -31,9 +31,14 @@
import QtQuick 2.0 import QtQuick 2.0
import Sailfish.Silica 1.0 import Sailfish.Silica 1.0
import Pw.Unitoo.Backend 1.0 import Pw.Unitoo.Backend 1.0
import "pages" import "pages"
ApplicationWindow { ApplicationWindow {
ScreenBlank {
enabled: boxingTimer.isActive
}
BoxingTimer { BoxingTimer {
id: boxingTimer id: boxingTimer
} }

View File

@ -5,10 +5,14 @@ Page {
id: aboutPage id: aboutPage
SilicaFlickable { SilicaFlickable {
id: aboutFlickable
anchors.fill: parent anchors.fill: parent
contentHeight: column.height contentHeight: column.height
VerticalScrollDecorator { flickable: aboutFlickable }
Column { Column {
id: column id: column
@ -34,13 +38,14 @@ Page {
\"Boxing Timer\" is a customizable timer for fighting sports like boxe. \"Boxing Timer\" is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds. You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them. You can save, load and delete your settings giving a name to them.
") ")
} }
SectionHeader { text: qsTr("Developers") } SectionHeader { text: qsTr("Developers and sources") }
Label { LinkedLabel {
anchors { anchors {
left: parent.left left: parent.left
right: parent.right right: parent.right
@ -51,16 +56,24 @@ You can save, load and delete your settings giving a name to them.
wrapMode: Text.Wrap wrapMode: Text.Wrap
color: Theme.primaryColor
linkColor: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
text: qsTr(" plainText: qsTr("
Copyright (C) 2017 Claudio Maradonna Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
") ")
textFormat: Text.RichText
} }
Repeater { Repeater {
model: ListModel { model: ListModel {
ListElement { label: "Email" ; value: "claudio@unitoo.pw" } ListElement { label: "Email" ; value: "claudio@unitoo.pw" }
ListElement { label: "Github"; value: "UnitooTeam" }
ListElement { label: "Diaspora" ; value: "claudiounitoo@framasphere.org" } ListElement { label: "Diaspora" ; value: "claudiounitoo@framasphere.org" }
ListElement { label: "Mastodon" ; value: "@unitoo" } ListElement { label: "Mastodon" ; value: "@unitoo" }
ListElement { label: "XMPP" ; value: "unitoo@fysh.in" } ListElement { label: "XMPP" ; value: "unitoo@fysh.in" }
@ -81,6 +94,8 @@ Unitoo Team, Italy
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
color: Theme.secondaryColor color: Theme.secondaryColor
textFormat: Text.RichText
} }
Label { Label {
@ -94,8 +109,8 @@ Unitoo Team, Italy
} }
} }
SectionHeader { text: qsTr("License") } SectionHeader { text: qsTr("Artists") }
Label { LinkedLabel {
anchors { anchors {
left: parent.left left: parent.left
right: parent.right right: parent.right
@ -106,21 +121,56 @@ Unitoo Team, Italy
wrapMode: Text.Wrap wrapMode: Text.Wrap
color: Theme.primaryColor
linkColor: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall
plainText: qsTr("
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
")
textFormat: Text.RichText
}
SectionHeader { text: qsTr("License") }
LinkedLabel {
anchors {
left: parent.left
right: parent.right
leftMargin: Theme.paddingLarge
rightMargin: Theme.paddingLarge
}
wrapMode: Text.Wrap
color: Theme.primaryColor
linkColor: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
text: qsTr(" text: qsTr("
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.<br><br>
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.<br><br>
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <a href=\"http://www.gnu.org/licenses\">http://www.gnu.org/licenses</a>.<br><br><br>
All artworks are licensed under a <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International</a>
") ")
textFormat: Text.RichText
} }
} }
} }

View File

@ -25,11 +25,27 @@ Page {
width: parent.width; height: parent.height width: parent.width; height: parent.height
model: listModel VerticalScrollDecorator { flickable: presetsList }
model: listModel
delegate: ListItem { delegate: ListItem {
id: listItem
width: parent.width width: parent.width
ListView.onRemove: animateRemoval(listItem)
function remove() {
remorseAction(qsTr("Deleting"), function() {
settings.deletePreset(presetsList.model.get(index).name)
if (settings.presetsList().length < 1) {
pageStack.popAttached()
} else {
presetsList.model.remove(index)
}
})
}
onClicked: { onClicked: {
settings.preset = presetsList.model.get(index).name settings.preset = presetsList.model.get(index).name
@ -40,20 +56,16 @@ Page {
MenuItem { MenuItem {
text: qsTr("Delete") text: qsTr("Delete")
onClicked: { onClicked: remove()
settings.deletePreset(presetsList.model.get(index).name)
if (settings.presetsList().length < 1) {
pageStack.popAttached()
}
}
} }
} }
Label { Label {
text: name text: name
color: highlighted ? Theme.highlightColor : Theme.primaryColor color: highlighted ?
Theme.highlightColor :
Theme.primaryColor
anchors { anchors {
left: parent.left left: parent.left

View File

@ -47,13 +47,18 @@ Page {
property int mRoundMs: settings.roundsMs property int mRoundMs: settings.roundsMs
property int mRestMs: settings.restMs property int mRestMs: settings.restMs
property var mListOfInnerTimers: settings.innerTimers
onStatusChanged: { onStatusChanged: {
if (status === PageStatus.Active) { if (status === PageStatus.Active) {
Helper.pushPresetListPage(); Helper.pushPresetListPage()
Helper.generateSlidersForInnerTimers()
} }
} }
SilicaFlickable { SilicaFlickable {
id: flickable
anchors.fill: parent anchors.fill: parent
PullDownMenu { PullDownMenu {
@ -65,7 +70,8 @@ Page {
presetName.text, presetName.text,
roundsSlider.value, roundsSlider.value,
roundsTimeSlider.value, roundsTimeSlider.value,
Converter.sToMs(restSlider.value) Converter.sToMs(restSlider.value),
Helper.getListOfInnerTimers()
) )
boxingTimer.loadPreset(presetName.text) boxingTimer.loadPreset(presetName.text)
@ -75,8 +81,24 @@ Page {
} }
} }
PushUpMenu {
MenuItem {
text: qsTr("Add inner time")
onClicked: Helper.addSliderForInnerTime()
}
MenuItem {
text: qsTr("Remove last inner time")
onClicked: Helper.removeLastSliderFromInnerTimers()
visible: mListOfInnerTimers.length
}
}
contentHeight: settingsColumn.height contentHeight: settingsColumn.height
VerticalScrollDecorator { flickable: flickable }
Column { Column {
id: settingsColumn id: settingsColumn
@ -101,7 +123,9 @@ Page {
width: parent.width width: parent.width
minimumValue: Converter.sToMs(30); maximumValue: Converter.sToMs(300); stepSize: Converter.sToMs(10) minimumValue: Converter.sToMs(30)
maximumValue: Converter.sToMs(300)
stepSize: Converter.sToMs(10)
value: mRoundMs value: mRoundMs
valueText: Converter.msToTime(value) valueText: Converter.msToTime(value)
@ -134,6 +158,12 @@ Page {
label: qsTr("Total rounds") label: qsTr("Total rounds")
} }
SectionHeader {
text: qsTr("Inner timers")
visible: mListOfInnerTimers.length
}
} }
} }
} }

View File

@ -31,6 +31,7 @@
import QtQuick 2.0 import QtQuick 2.0
import Sailfish.Silica 1.0 import Sailfish.Silica 1.0
import Pw.Unitoo.Backend 1.0 import Pw.Unitoo.Backend 1.0
import "js/helpers.js" as Helper import "js/helpers.js" as Helper
Page { Page {
@ -44,7 +45,11 @@ Page {
PullDownMenu { PullDownMenu {
MenuItem { MenuItem {
text: qsTr("About") text: qsTr("About")
onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml")) onClicked: {
boxingTimer.status = BoxingTimer.Pause
pageStack.push(Qt.resolvedUrl("AboutPage.qml"))
}
} }
MenuItem { MenuItem {
@ -85,7 +90,9 @@ Page {
font.pixelSize: Theme.fontSizeHuge * 3.3 font.pixelSize: Theme.fontSizeHuge * 3.3
text: boxingTimer.remainingTimeToString text: boxingTimer.remainingTimeToString
color: boxingTimer.status == BoxingTimer.Rest ? Theme.secondaryColor : Theme.primaryColor color: boxingTimer.status == BoxingTimer.Rest ?
Theme.secondaryColor :
Theme.primaryColor
} }
Button { Button {

View File

@ -11,3 +11,96 @@ function playPauseTimer() {
boxingTimer.restore() boxingTimer.restore()
} }
} }
function addSliderForInnerTime() {
var newArray = settingsPage.mListOfInnerTimers
newArray.push(5)
settingsPage.mListOfInnerTimers = newArray
generateSlidersForInnerTimers()
}
function removeLastSliderFromInnerTimers() {
var newArray = settingsPage.mListOfInnerTimers
newArray.pop()
settingsPage.mListOfInnerTimers = newArray
generateSlidersForInnerTimers()
}
function getListOfInnerTimers() {
var list = []
var timers = settingsPage.mListOfInnerTimers.length
for (var i = 0; i < timers; i++) {
list.push(settingsPage.mListOfInnerTimers[i])
}
return list;
}
function updateValueInnerTimer(i, value) {
var newArray = settingsPage.mListOfInnerTimers
newArray[i] = value
settingsPage.mListOfInnerTimers = newArray
}
function generateSlidersForInnerTimers() {
for (var i = 0; i < settingsColumn.children.length; i++) {
if (settingsColumn.children[i].objectName === 'innerSlider') {
settingsColumn.children[i].destroy()
}
}
var value = 5
var remainingTimeForInner = settingsPage.mRoundMs
var numberOfInnerTimers = settingsPage.mListOfInnerTimers.length
var newArray = []
for (i = 0; i < numberOfInnerTimers; i++) {
value = settingsPage.mListOfInnerTimers[i]
if (value === undefined) {
value = 5
}
remainingTimeForInner -= value
var enabled = "true"
if ((i + 1) < numberOfInnerTimers) {
enabled = "false"
}
var newSlider = Qt.createQmlObject(
"import QtQuick 2.2;" +
"import Sailfish.Silica 1.0;" +
"import 'converter.js' as Converter;" +
"import 'helpers.js' as Helper;" +
"Slider {" +
"objectName: 'innerSlider';" +
"enabled: "+ enabled +"; "+
"width: parent.width;" +
"minimumValue: Converter.sToMs(5);" +
"maximumValue: "+ remainingTimeForInner +";" +
"stepSize: Converter.sToMs(5);" +
"value: "+ parseInt(value) +";" +
"valueText: Converter.msToTime(value);" +
"label: qsTr('"+ (i + 1) +"° inner time');" +
"onValueChanged: Helper.updateValueInnerTimer("+ i +", value);" +
"}",
settingsColumn,
"dynamicInnerTimerSlider"
);
newArray.push(value);
}
settingsPage.mListOfInnerTimers = newArray;
}

BIN
resources/inner.wav Normal file

Binary file not shown.

View File

@ -8,5 +8,27 @@
# * date Author's Name <author's email> version-release # * date Author's Name <author's email> version-release
# - Summary of changes # - Summary of changes
* Thu Jul 17 2017 Claudio Maradonna <claudio@unitoo.pw> 0.1a * Thu Aug 28 2019 Claudio Maradonna <claudio@unitoo.pw> 1.3.0-1
- Update for Sailfish X (Tested on Xperia XA2 Plus)
- Adding translations (actually only it_IT - Italian)
* Fri Sep 08 2017 Claudio Maradonna <claudio@unitoo.pw> 1.2.3-4
- Fixed bug when saving multiple inner timers
- Fixed bug when change presets and rounds done > 0
- Fixed changes file
* Thu Sep 07 2017 Claudio Maradonna <claudio@unitoo.pw> 1.2.1-3
- Fixed bug with inner timer adjust and new inner timer
- Fixed link bug in about page
* Wed Sep 06 2017 Claudio Maradonna <claudio@unitoo.pw> 1.1-1
- Fixed bug with preset's deleting
- Fixed license in about page (cutted by html tag)
* Wed Aug 30 2017 Claudio Maradonna <claudio@unitoo.pw> 1.0-1
- Now you can add inner timers for rounds
- New icon
- Various bug fixes
* Thu Aug 24 2017 Claudio Maradonna <claudio@unitoo.pw> 0.1a-1
- Initial release - Initial release

View File

@ -13,11 +13,11 @@ Name: harbour-boxing-timer
%{!?qtc_make:%define qtc_make make} %{!?qtc_make:%define qtc_make make}
%{?qtc_builddir:%define _builddir %qtc_builddir} %{?qtc_builddir:%define _builddir %qtc_builddir}
Summary: Boxing timer Summary: Boxing timer
Version: 0.1a Version: 1.3.0
Release: 1 Release: 1
Group: Applications/Multimedia Group: Applications/Utilities
License: GPLv3 License: GPLv3
URL: http://example.org/ URL: https://github.com/UnitooTeam/harbour-boxing-timer
Source0: %{name}-%{version}.tar.bz2 Source0: %{name}-%{version}.tar.bz2
Source100: harbour-boxing-timer.yaml Source100: harbour-boxing-timer.yaml
Requires: sailfishsilica-qt5 >= 0.10.9 Requires: sailfishsilica-qt5 >= 0.10.9
@ -66,6 +66,10 @@ desktop-file-install --delete-original \
%{_bindir} %{_bindir}
%{_datadir}/%{name} %{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop %{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/86x86/apps/%{name}.png
%{_datadir}/icons/hicolor/108x108/apps/%{name}.png
%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
%{_datadir}/icons/hicolor/172x172/apps/%{name}.png
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
# >> files # >> files
# << files # << files

View File

@ -1,11 +1,11 @@
Name: harbour-boxing-timer Name: harbour-boxing-timer
Summary: Boxing timer Summary: Boxing timer
Version: 0.1a Version: 1.3.0
Release: 1 Release: 1
# The contents of the Group field should be one of the groups listed here: # The contents of the Group field should be one of the groups listed here:
# http://gitorious.org/meego-developer-tools/spectacle/blobs/master/data/GROUPS # http://gitorious.org/meego-developer-tools/spectacle/blobs/master/data/GROUPS
Group: Applications/Multimedia Group: Applications/Utilities
URL: http://example.org/ URL: https://github.com/UnitooTeam/harbour-boxing-timer
License: GPLv3 License: GPLv3
# This must be generated before uploading a package to a remote build service. # This must be generated before uploading a package to a remote build service.
# Usually this line does not need to be modified. # Usually this line does not need to be modified.
@ -39,7 +39,11 @@ Files:
- '%{_bindir}' - '%{_bindir}'
- '%{_datadir}/%{name}' - '%{_datadir}/%{name}'
- '%{_datadir}/applications/%{name}.desktop' - '%{_datadir}/applications/%{name}.desktop'
- '%{_datadir}/icons/hicolor/*/apps/%{name}.png' - '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png'
- '%{_datadir}/icons/hicolor/108x108/apps/%{name}.png'
- '%{_datadir}/icons/hicolor/128x128/apps/%{name}.png'
- '%{_datadir}/icons/hicolor/172x172/apps/%{name}.png'
- '%{_datadir}/icons/hicolor/256x256/apps/%{name}.png'
# For more information about yaml and what's supported in Sailfish OS # For more information about yaml and what's supported in Sailfish OS
# build system, please see https://wiki.merproject.org/wiki/Spectacle # build system, please see https://wiki.merproject.org/wiki/Spectacle

View File

@ -1,6 +1,7 @@
#include "boxingsettings.h" #include "boxingsettings.h"
#include <QString> #include <QString>
#include <QVariant>
BoxingSettings::BoxingSettings() : BoxingSettings::BoxingSettings() :
mRounds(DefaultRounds), mRounds(DefaultRounds),
@ -46,17 +47,21 @@ void BoxingSettings::loadPreset() {
this->mRounds = DefaultRounds; this->mRounds = DefaultRounds;
this->mRoundMilliseconds = DefaultRoundMilliseconds; this->mRoundMilliseconds = DefaultRoundMilliseconds;
this->mRestMilliseconds = DefaultRestMilliseconds; this->mRestMilliseconds = DefaultRestMilliseconds;
this->mInnerTimers.clear();
} else { } else {
this->beginGroup(this->mPreset); this->beginGroup(this->mPreset);
this->mPresetName = this->value("name").toString(); this->mPresetName = this->value("name").toString();
this->mRounds = this->value("rounds").toInt(); this->mRounds = this->value("rounds").toInt();
this->mRoundMilliseconds = this->value("roundmilliseconds").toInt(); this->mRoundMilliseconds = this->value("roundmilliseconds").toInt();
this->mRestMilliseconds = this->value("restmilliseconds").toInt(); this->mRestMilliseconds = this->value("restmilliseconds").toInt();
this->mInnerTimers = this->value("innerTimers").value<QList<int>>();
this->endGroup(); this->endGroup();
} }
} }
void BoxingSettings::savePreset(const QString &name, const int &rounds, const int &roundMilliseconds, const int &restMilliseconds) { void BoxingSettings::savePreset(const QString &name, const int &rounds, const int &roundMilliseconds, const int &restMilliseconds, const QList<int> &innerTimers) {
QString strippedName = this->convertRichNameToGroup(name); QString strippedName = this->convertRichNameToGroup(name);
this->beginGroup(strippedName); this->beginGroup(strippedName);
@ -64,6 +69,7 @@ void BoxingSettings::savePreset(const QString &name, const int &rounds, const in
this->setValue("rounds", rounds); this->setValue("rounds", rounds);
this->setValue("roundmilliseconds", roundMilliseconds); this->setValue("roundmilliseconds", roundMilliseconds);
this->setValue("restmilliseconds", restMilliseconds); this->setValue("restmilliseconds", restMilliseconds);
this->setValue("innerTimers", QVariant::fromValue(innerTimers));
this->endGroup(); this->endGroup();
this->setPreset(strippedName); this->setPreset(strippedName);
@ -90,3 +96,7 @@ const QStringList BoxingSettings::presetsList() {
return presets; return presets;
} }
int BoxingSettings::getInnerTimer(const int &index) {
return this->mInnerTimers.value(index);
}

View File

@ -4,6 +4,7 @@
#include <QString> #include <QString>
#include <QStringList> #include <QStringList>
#include <QSettings> #include <QSettings>
#include <QList>
#ifdef QT_DEBUG #ifdef QT_DEBUG
#include <QDebug> #include <QDebug>
@ -25,6 +26,7 @@ class BoxingSettings : public QSettings {
Q_PROPERTY(int rounds READ getRounds WRITE setRounds NOTIFY presetChanged) Q_PROPERTY(int rounds READ getRounds WRITE setRounds NOTIFY presetChanged)
Q_PROPERTY(int roundsMs READ getRoundMilliseconds WRITE setRoundMilliseconds NOTIFY presetChanged) Q_PROPERTY(int roundsMs READ getRoundMilliseconds WRITE setRoundMilliseconds NOTIFY presetChanged)
Q_PROPERTY(int restMs READ getRestMilliseconds WRITE setRestMilliseconds NOTIFY presetChanged) Q_PROPERTY(int restMs READ getRestMilliseconds WRITE setRestMilliseconds NOTIFY presetChanged)
Q_PROPERTY(QList<int> innerTimers READ getInnerTimers NOTIFY presetChanged)
/** @endcond */ /** @endcond */
/** /**
@ -78,7 +80,7 @@ class BoxingSettings : public QSettings {
* *
* @brief Save or override settings about specific preset * @brief Save or override settings about specific preset
*/ */
Q_INVOKABLE void savePreset(const QString &name, const int &rounds, const int &roundMilliseconds, const int &restMilliseconds); Q_INVOKABLE void savePreset(const QString &name, const int &rounds, const int &roundMilliseconds, const int &restMilliseconds, const QList<int> &innerTimers);
/** /**
* @addtogroup QML * @addtogroup QML
@ -91,6 +93,13 @@ class BoxingSettings : public QSettings {
*/ */
Q_INVOKABLE void deletePreset(const QString &name); Q_INVOKABLE void deletePreset(const QString &name);
/**
* @brief getInnerTimer(const int &index)
*
* @return the specific timer in milliseconds
*/
Q_INVOKABLE int getInnerTimer(const int &index);
BoxingSettings(); BoxingSettings();
BoxingSettings(const int &rounds, const int &roundMilliseconds, const int &restMilliseconds); BoxingSettings(const int &rounds, const int &roundMilliseconds, const int &restMilliseconds);
@ -115,6 +124,13 @@ class BoxingSettings : public QSettings {
*/ */
inline int getRestMilliseconds() { return this->mRestMilliseconds; } inline int getRestMilliseconds() { return this->mRestMilliseconds; }
/**
* @brief gerInnerTimers()
*
* @return the list of inner timers
*/
inline QList<int> getInnerTimers() { return this->mInnerTimers; }
/** /**
* @fn QString getPreset() * @fn QString getPreset()
* *
@ -166,6 +182,8 @@ class BoxingSettings : public QSettings {
int mRoundMilliseconds; int mRoundMilliseconds;
int mRestMilliseconds; int mRestMilliseconds;
QList<int> mInnerTimers;
QString mPreset; QString mPreset;
QString mPresetName; QString mPresetName;

View File

@ -8,16 +8,20 @@
BoxingTimer::BoxingTimer() : BoxingTimer::BoxingTimer() :
mRound(0), mRound(0),
mInnerRemainingMilliseconds(0),
mStatus(Status::Stop), mStatus(Status::Stop),
mOldStatus(Status::Default) { mOldStatus(Status::Default) {
this->setTimerType(Qt::VeryCoarseTimer); this->setTimerType(Qt::VeryCoarseTimer);
this->settings = new BoxingSettings(); this->settings = new BoxingSettings();
this->mRemainingMilliseconds = settings->getRoundMilliseconds(); this->mRemainingMilliseconds = this->settings->getRoundMilliseconds();
this->setInnerTimers();
this->playBell = new QSound(":/audio/resources/play.wav"); this->playBell = new QSound(":/audio/resources/play.wav");
this->restBell = new QSound(":/audio/resources/rest.wav"); this->restBell = new QSound(":/audio/resources/rest.wav");
this->stopBell = new QSound(":/audio/resources/stop.wav"); this->stopBell = new QSound(":/audio/resources/stop.wav");
this->innerBell = new QSound(":/audio/resources/inner.wav");
QObject::connect(this, SIGNAL(statusChanged()), this, SLOT(applyStatus())); QObject::connect(this, SIGNAL(statusChanged()), this, SLOT(applyStatus()));
QObject::connect(this, SIGNAL(timeout()), this, SLOT(updateRemainingMilliseconds())); QObject::connect(this, SIGNAL(timeout()), this, SLOT(updateRemainingMilliseconds()));
@ -68,8 +72,10 @@ void BoxingTimer::applyStatus() {
case Status::Reset: case Status::Reset:
if (this->mOldStatus == Status::Start) { if (this->mOldStatus == Status::Start) {
this->setRemainingMilliseconds(this->settings->getRoundMilliseconds()); this->setRemainingMilliseconds(this->settings->getRoundMilliseconds());
this->setInnerTimers();
} else if (this->mOldStatus == Status::Rest) { } else if (this->mOldStatus == Status::Rest) {
this->setRemainingMilliseconds(this->settings->getRestMilliseconds()); this->setRemainingMilliseconds(this->settings->getRestMilliseconds());
this->setInnerTimers();
} }
if (this->isActive()) { if (this->isActive()) {
@ -109,11 +115,41 @@ void BoxingTimer::updateRemainingMilliseconds() {
this->mStatus = Status::Start; this->mStatus = Status::Start;
this->setRemainingMilliseconds(this->settings->getRoundMilliseconds()); this->setRemainingMilliseconds(this->settings->getRoundMilliseconds());
this->setInnerTimers();
this->nextRound(); this->nextRound();
} }
this->songsBell(); this->songsBell();
} }
this->updateInnerRemainingMilliseconds();
}
void BoxingTimer::updateInnerRemainingMilliseconds() {
if (this->mInnerTime >= 0 && this->mStatus == Status::Start) {
this->mInnerRemainingMilliseconds -= 1000;
if (this->mInnerRemainingMilliseconds <= 0) {
if (++this->mInnerTime >= this->mNumberOfInnerTimers) {
this->mInnerTime = 0;
}
this->mInnerRemainingMilliseconds = this->settings->getInnerTimer(this->mInnerTime);
this->innerBell->play();
}
}
}
void BoxingTimer::setInnerTimers() {
this->mNumberOfInnerTimers = this->settings->getInnerTimers().size();
this->mInnerTime = -1;
if (this->mNumberOfInnerTimers > 0) {
this->mInnerTime = 0;
this->mInnerRemainingMilliseconds = this->settings->getInnerTimer(this->mInnerTime);
}
} }
const QString BoxingTimer::remainingTimeToString() { const QString BoxingTimer::remainingTimeToString() {
@ -153,9 +189,12 @@ const QString BoxingTimer::roundsToString() {
void BoxingTimer::loadPreset(const QString &preset) { void BoxingTimer::loadPreset(const QString &preset) {
this->settings->setPreset(preset); this->settings->setPreset(preset);
this->mRound = 0;
this->mRemainingMilliseconds = settings->getRoundMilliseconds(); this->mRemainingMilliseconds = settings->getRoundMilliseconds();
this->mStatus = Status::Stop; this->mStatus = Status::Stop;
this->setInnerTimers();
emit presetChanged(); emit presetChanged();
emit roundsToStringChanged(); emit roundsToStringChanged();
emit remainingTimeToStringChanged(); emit remainingTimeToStringChanged();

View File

@ -155,13 +155,23 @@ class BoxingTimer : public QTimer {
int mRoundsMilliseconds; int mRoundsMilliseconds;
int mRemainingMilliseconds; int mRemainingMilliseconds;
int mInnerTime;
int mNumberOfInnerTimers;
int mInnerRemainingMilliseconds;
void setRemainingMilliseconds(const int &milliseconds); void setRemainingMilliseconds(const int &milliseconds);
void setRound(const int &round); void setRound(const int &round);
QSound *playBell; QSound *playBell;
QSound *restBell; QSound *restBell;
QSound *stopBell; QSound *stopBell;
QSound *innerBell;
/**
* @fn void songsBell()
*
* @brief Play the bell if status changes
*/
void songsBell(); void songsBell();
Status mStatus; Status mStatus;
@ -176,6 +186,20 @@ class BoxingTimer : public QTimer {
*/ */
void nextRound(); void nextRound();
/**
* @fn void updateInnerRemainingMilliseconds()
*
* @brief Update remaining milliseconds of inner timer
*/
void updateInnerRemainingMilliseconds();
/**
* @fn void setInnerTimers()
*
* @brief Setup inner timers from settings
*/
void setInnerTimers();
signals: signals:
void remainingTimeToStringChanged(); void remainingTimeToStringChanged();
void roundsToStringChanged(); void roundsToStringChanged();

View File

@ -28,7 +28,10 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <QtGlobal>
#include <QGuiApplication>
#include <QtQuick> #include <QtQuick>
#include <QList>
#include <sailfishapp.h> #include <sailfishapp.h>
@ -37,17 +40,27 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
// SailfishApp::main() will display "qml/template.qml", if you need more QGuiApplication::setApplicationDisplayName("Boxing Timer");
// control over initialization, you can use: QCoreApplication::setApplicationName("harbour-boxing-timer");
// QCoreApplication::setOrganizationName("Unitoo");
// - SailfishApp::application(int, char *[]) to get the QGuiApplication * QCoreApplication::setOrganizationDomain("unitoo.it");
// - SailfishApp::createView() to get a new QQuickView * instance
// - SailfishApp::pathTo(QString) to get a QUrl to a resource file QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
//
// To display the view, call "show()" (will show fullscreen on device). QString lc = QLocale().name();
QTranslator tr;
if (tr.load("harbour-boxing-timer-" + lc, ":/translations"))
app->installTranslator(&tr);
qRegisterMetaTypeStreamOperators<QList<int>>("QList<int>");
qmlRegisterType<BoxingTimer>("Pw.Unitoo.Backend", 1, 0, "BoxingTimer"); qmlRegisterType<BoxingTimer>("Pw.Unitoo.Backend", 1, 0, "BoxingTimer");
qmlRegisterType<BoxingSettings>("Pw.Unitoo.Backend", 1, 0, "BoxingSettings"); qmlRegisterType<BoxingSettings>("Pw.Unitoo.Backend", 1, 0, "BoxingSettings");
return SailfishApp::main(argc, argv); QScopedPointer<QQuickView> viewer(SailfishApp::createView());
QObject::connect(viewer->engine(), SIGNAL(quit()), app.data(), SLOT(quit()));
viewer->setSource(SailfishApp::pathTo("qml/harbour-boxing-timer.qml"));
viewer->show();
return app->exec();
} }

View File

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>CoverPage</name>
<message>
<source>My Cover</source>
<translation>Mein Cover</translation>
</message>
</context>
<context>
<name>PresetList</name>
<message>
<source>Saved presets</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>
<source>Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Round&apos;s settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preset name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duration</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rest</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Total rounds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TimerPage</name>
<message>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Stop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Round</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Boxing timer</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en" sourcelanguage="en">
<context>
<name>AboutPage</name>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</source>
<translation>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</translation>
</message>
<message>
<source>Developers and sources</source>
<translation>Developers and sources</translation>
</message>
<message>
<source>Artists</source>
<translation>Artists</translation>
</message>
<message>
<source>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</source>
<translation>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</translation>
</message>
<message>
<source>License</source>
<translation>License</translation>
</message>
<message>
<source>
This program 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 3 of the License, or
(at your option) any later version.&lt;br&gt;&lt;br&gt;
This program 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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</source>
<translation>
This program 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 3 of the License, or
(at your option) any later version.&lt;br&gt;&lt;br&gt;
This program 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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</translation>
</message>
<message>
<source>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</source>
<translation>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</translation>
</message>
</context>
<context>
<name>PresetList</name>
<message>
<source>Saved presets</source>
<translation>Saved presets</translation>
</message>
<message>
<source>Deleting</source>
<translation>Deleting</translation>
</message>
<message>
<source>Delete</source>
<translation>Delete</translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>
<source>Save</source>
<translation>Save</translation>
</message>
<message>
<source>Add inner time</source>
<translation>Add inner time</translation>
</message>
<message>
<source>Remove last inner time</source>
<translation>Remove last inner time</translation>
</message>
<message>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<source>Round&apos;s settings</source>
<translation>Round&apos;s settings</translation>
</message>
<message>
<source>Preset name</source>
<translation>Preset name</translation>
</message>
<message>
<source>Duration</source>
<translation>Duration</translation>
</message>
<message>
<source>Rest</source>
<translation>Rest</translation>
</message>
<message>
<source>Total rounds</source>
<translation>Total rounds</translation>
</message>
<message>
<source>Inner timers</source>
<translation>Inner timers</translation>
</message>
</context>
<context>
<name>TimerPage</name>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<source>Reset</source>
<translation>Reset</translation>
</message>
<message>
<source>Boxing timer</source>
<translation>Boxing timer</translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT" sourcelanguage="en">
<context>
<name>AboutPage</name>
<message>
<source>About</source>
<translation>Chi siamo</translation>
</message>
<message>
<source>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</source>
<translation>
&quot;Boxing Timer&quot; è un timer personalizzabile per gli sport da combattimento come la boxe.
Puoi personalizzare la durata, il riposo e il numero di round. Se imposti 0 round, il timer va in loop e conta il numero di round effettuati.
Puoi creare anche dei round intermedi.
Puoi salvare, caricare e cancellare le tue impostazioni impostando un nome a esse.
</translation>
</message>
<message>
<source>Developers and sources</source>
<translation>Sviluppatori e sorgenti</translation>
</message>
<message>
<source>Artists</source>
<translation>Artisti</translation>
</message>
<message>
<source>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</source>
<translation>
Stefano Amandonico
GrafixPrint, Italia
info@grafixprint.it
http://www.grafixprint.it
</translation>
</message>
<message>
<source>License</source>
<translation>Licenza</translation>
</message>
<message>
<source>
This program 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 3 of the License, or
(at your option) any later version.&lt;br&gt;&lt;br&gt;
This program 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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</source>
<translation>
This program 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 3 of the License, or
(at your option) any later version.&lt;br&gt;&lt;br&gt;
This program 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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</translation>
</message>
<message>
<source>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</source>
<translation>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italia
Sorgenti: https://gitlab.com/unitoo/harbour-boxing-timer
</translation>
</message>
</context>
<context>
<name>PresetList</name>
<message>
<source>Saved presets</source>
<translation>Presets salvati</translation>
</message>
<message>
<source>Deleting</source>
<translation>Sto eliminando</translation>
</message>
<message>
<source>Delete</source>
<translation>Elimina</translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>
<source>Save</source>
<translation>Salva</translation>
</message>
<message>
<source>Add inner time</source>
<translation>Aggiungi tempo intermedio</translation>
</message>
<message>
<source>Remove last inner time</source>
<translation>Rimuovi ultimo tempo intermedio</translation>
</message>
<message>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<source>Round&apos;s settings</source>
<translation>Impostazioni del round</translation>
</message>
<message>
<source>Preset name</source>
<translation>Nome del preset</translation>
</message>
<message>
<source>Duration</source>
<translation>Durata</translation>
</message>
<message>
<source>Rest</source>
<translation>Riposo</translation>
</message>
<message>
<source>Total rounds</source>
<translation>Totale round</translation>
</message>
<message>
<source>Inner timers</source>
<translation>Tempi intermedi</translation>
</message>
</context>
<context>
<name>TimerPage</name>
<message>
<source>About</source>
<translation>Chi siamo</translation>
</message>
<message>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<source>Reset</source>
<translation>Resetta</translation>
</message>
<message>
<source>Boxing timer</source>
<translation>Boxing timer</translation>
</message>
</context>
</TS>

View File

@ -2,85 +2,177 @@
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1"> <TS version="2.1">
<context> <context>
<name>CoverPage</name> <name>AboutPage</name>
<message> <message>
<source>My Cover</source> <location filename="../qml/pages/AboutPage.qml" line="23"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="37"/>
<source>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="47"/>
<source>Developers and sources</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="63"/>
<source>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="112"/>
<source>Artists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="128"/>
<source>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="139"/>
<source>License</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="155"/>
<source>
This program 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 3 of the License, or
(at your option) any later version.&lt;br&gt;&lt;br&gt;
This program 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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>PresetList</name> <name>PresetList</name>
<message> <message>
<location filename="../qml/pages/PresetList.qml" line="17"/>
<source>Saved presets</source> <source>Saved presets</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../qml/pages/PresetList.qml" line="38"/>
<source>Deleting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/PresetList.qml" line="57"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>SettingsPage</name> <name>SettingsPage</name>
<message> <message>
<location filename="../qml/pages/SettingsPage.qml" line="66"/>
<source>Save</source> <source>Save</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Delete</source> <location filename="../qml/pages/SettingsPage.qml" line="86"/>
<source>Add inner time</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/SettingsPage.qml" line="91"/>
<source>Remove last inner time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="108"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="110"/>
<source>Round&apos;s settings</source> <source>Round&apos;s settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/SettingsPage.qml" line="117"/>
<source>Preset name</source> <source>Preset name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/SettingsPage.qml" line="133"/>
<source>Duration</source> <source>Duration</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/SettingsPage.qml" line="146"/>
<source>Rest</source> <source>Rest</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/SettingsPage.qml" line="159"/>
<source>Total rounds</source> <source>Total rounds</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Settings</source> <location filename="../qml/pages/SettingsPage.qml" line="163"/>
<source>Inner timers</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>TimerPage</name> <name>TimerPage</name>
<message> <message>
<source>Settings</source> <location filename="../qml/pages/TimerPage.qml" line="47"/>
<translation type="unfinished"></translation>
</message>
<message>
<source>Stop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Round</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About</source> <source>About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Pause</source> <location filename="../qml/pages/TimerPage.qml" line="56"/>
<source>Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/pages/TimerPage.qml" line="67"/>
<source>Stop</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/TimerPage.qml" line="71"/>
<source>Reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/TimerPage.qml" line="84"/>
<source>Boxing timer</source> <source>Boxing timer</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>