Initial commit (software version 0.2.0)
[movie-schedule] / src / ui / contextdialog.h
1 // Copyright 2010 Jochen Becher
2 //
3 // This file is part of MovieSchedule.
4 //
5 // MovieSchedule is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // MovieSchedule is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with MovieSchedule.  If not, see <http://www.gnu.org/licenses/>.
17
18 #ifndef CONTEXTDIALOG_H
19 #define CONTEXTDIALOG_H
20
21 #include "data/cinemakey.h"
22 #include "data/moviekey.h"
23 #include "data/scheduleentrykey.h"
24
25 #include <QDialog>
26
27 class CinemaSchedule;
28
29 namespace Ui {
30     class ContextDialog;
31 }
32
33 class ContextDialog : public QDialog
34 {
35     Q_OBJECT
36
37 public:
38     explicit ContextDialog(CinemaSchedule *cinema_schedule, QWidget *parent = 0);
39     ~ContextDialog();
40
41 public:
42     Q_SIGNAL void AddToCalendar(ScheduleEntryKey);
43     Q_SIGNAL void CallTheaterByPhone(CinemaKey);
44     Q_SIGNAL void FindRouteToTheater(CinemaKey);
45     Q_SIGNAL void SearchMovieInWeb(MovieKey);
46     Q_SIGNAL void SearchTheaterInWeb(CinemaKey);
47
48 public:
49     Q_SLOT void Show(ScheduleEntryKey schedule_entry_key);
50
51 protected:
52     void changeEvent(QEvent *e);
53
54 private:
55     void removeAllWidgets();
56     void addWidget(QWidget *);
57
58     Q_SLOT void AddToCalendar();
59     Q_SLOT void CallTheaterByPhone();
60     Q_SLOT void FindRouteToTheater();
61     Q_SLOT void SearchMovieInWeb();
62     Q_SLOT void SearchTheaterInWeb();
63
64 private:
65     Ui::ContextDialog *ui;
66     CinemaSchedule *_cinema_schedule;
67     ScheduleEntryKey _schedule_entry_key;
68     int _next_row;
69     int _next_column;
70 };
71
72 #endif // CONTEXTDIALOG_H