1 /**************************************************************************
4 Copyright (C) 2010 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 **************************************************************************/
27 #ifndef CURRENTALERTSTABLEMODEL_H
28 #define CURRENTALERTSTABLEMODEL_H
30 #include <QAbstractTableModel>
31 #include <QMainWindow>
35 /*! Class that contains the model that holds the timers'
37 @author Heli Hyvättinen
41 Class that contains the model that holds the timers
46 class CurrentAlertsTableModel : public QAbstractTableModel
50 explicit CurrentAlertsTableModel(QObject *parent = 0);
53 Returns the number of rows in the model.
56 int rowCount(const QModelIndex &parent) const;
59 Returns the (fixed) number of columns in the model.
62 int columnCount(const QModelIndex &parent) const;
65 Returns the queried contents of the cell
68 QVariant data(const QModelIndex &index, int role) const;
71 Returns the queried header data.
72 As no headers are wanted, it always returns an empty QVariant.
75 QVariant headerData(int section, Qt::Orientation orientation, int role) const;
78 Returns the index in the model of the given timer
80 QModelIndex giveIndexForTimer(Timer * ptimer);
83 Returns whether the timer in the given position is currently alerting.
84 @param index Any cell from the row of the alert is good here.
86 bool isThisTimerAlerting(QModelIndex index);
93 Adds the timers to the model
94 @param timers List of timers to be added
95 @param startImmediately If true, the timers will be started after adding to the model.
97 void addTimers(QList <Timer *> timers, bool startImmediately = true);
100 Tells the view to refresh all information in the time column.
102 void refreshTimeColumn ();
105 Passes the start command to the timer in the given index.
106 @param index Any cell from the row of the alert is good here.
108 void startTimer(QModelIndex index);
111 Passes the snooze command to the timer in the given index.
112 @param index Any cell from the row of the alert is good here.
114 void snoozeTimer(QModelIndex index);
118 Passes the stop command to the timer in the given index.
119 @param index Any cell from the row of the alert is good here.
121 void stopTimer(QModelIndex index);
124 Sets whether the view should be kept up to date.
126 void setUpdateViewOnChanges(bool update);
129 QList <Timer * > currentTimers_; /*! Holds the timers */
131 static const int numberOfColumns_ = 3; /*! The fixed number of columns in the model */
132 static const int alertTextColumnNumber_ = 0; /*! Tells which column contains the alert text */
133 static const int timeRemainingColumnNumber_ = 1; /*! Tells which column contains the time remaining until alert */
134 static const int statusColumnNumber_ = 2; /*! Tells which column contains status information, such as that the timer is alerting */
138 bool updateViewOnChanges_; /*! Keeps track on whether the view should be kept up to date. */
142 #endif // CURRENTALERTSTABLEMODEL_H