1 /**************************************************************************
4 Copyright (C) 2010-2011 Heli Hyvättinen
6 This file is part of KitchenAlert.
8 Kitchen Alert is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 **************************************************************************/
35 #include <QModelIndex>
37 #include "alertsound.h"
39 /*! The timer class of KitchenAlert'
41 @author Heli Hyvättinen
45 The timer class of KitchenAlert.
49 class Timer : public QObject
53 explicit Timer(QObject *parent = 0);
55 /*! Returns the original time in seconds
56 When the alert restarts, it is set to this time.
58 int getOriginalTimeInSeconds();
60 /*! Sets the original time in seconds */
61 void setOriginalTimeInSeconds(int seconds);
63 /*! Returns the time remaining before the alert in seconds */
64 int getRemainingTimeInSeconds();
66 /*! Returns the alert text */
67 QString getAlertText();
69 /*! Sets the alert text */
70 void setAlertText(QString text);
72 /*! Returns whether the timer is alerting */
75 /*! Saves the timer to a file
76 @param filename The file to which to save.
78 bool save(QString filename);
80 /*! Loads a timer from a file
81 @param filename The file from which to load.
83 bool load(QString filename);
85 /*! Returns wheter the alert is running or not.
86 Alerting timers are considered running. */
91 /*! Emitted when the remaining time in the timer has changed */
92 void remainingTimeChanged();
94 /*! Emitted when the timer alerts */
95 void alert(QModelIndex indexOfAlerter);
98 /*! The internal QTimer is connected to this slot */
101 /*! Start the timer */
108 Currently sets the timer to alert again in two minutes.
112 /*! Switches to use the default sound (and saves it to settings */
113 void enableDefaultSound();
115 /*! Changes the sound file used and saves it to settings */
116 void changeAlertSound(QString filename);
122 int _originalTime; //seconds!
123 int _remainingTime; //seconds!
128 QString filenameWithPath_; /*! Name (with full path) of the file where the timer was loaded from. Empty if timer not loaded from file. */
130 QModelIndex whereAmI();
132 AlertSound alertSound_;