Ready to be packaged
[kitchenalert] / src / kitchenalertmainwindow.h
1 /**************************************************************************
2         KitchenAlert
3
4         Copyright (C) 2010  Heli Hyvättinen
5
6         This file is part of KitchenAlert.
7
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.
12
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.
17
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/>.
20
21 **************************************************************************/
22
23
24
25 #ifndef KITCHENALERTMAINWINDOW_H
26 #define KITCHENALERTMAINWINDOW_H
27
28 #include <QMainWindow>
29 #include "timer.h"
30 #include "currentalertstablemodel.h"
31 #include <QItemSelection>
32 #include "alertsound.h"
33
34
35 namespace Ui {
36     class KitchenAlertMainWindow;
37 }
38
39
40 /*! The main window class of KitchenAlert'
41
42   @author Heli Hyvättinen
43   @date 2010-06-26
44   @version 0.09
45
46 Operates the UI.
47
48 */
49
50 class KitchenAlertMainWindow : public QMainWindow
51 {
52     Q_OBJECT 
53
54
55
56
57 public:
58     explicit KitchenAlertMainWindow(QWidget *parent = 0);
59     ~KitchenAlertMainWindow();
60
61
62 public slots:
63     void newTimerSequence();
64     void openSelectSoundDialog();
65     void openAbout();
66
67
68     void alert(QModelIndex indexOfAlerted);
69     void timerSelected(QItemSelection selected,QItemSelection deselected);
70     void snooze();
71     void restart();
72     void stop();
73
74
75 protected:
76     void changeEvent(QEvent *e);
77     bool event(QEvent *event);
78
79     void disableSelectionDependentButtons();
80
81 private:
82
83     Ui::KitchenAlertMainWindow *ui;
84
85     QList <Timer *> currentTimers_;
86
87     CurrentAlertsTableModel model_;
88
89     QModelIndex selectedRow();
90
91     AlertSound alertSound_;
92
93
94 };
95
96 #endif // KITCHENALERTMAINWINDOW_H