Fixed searchclients to handle new Google URLs correctly; added GUI
[movie-schedule] / src / control / actioncontroller.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 ACTIONCONTROLLER_H
19 #define ACTIONCONTROLLER_H
20
21 #include "data/cinemakey.h"
22 #include "data/moviekey.h"
23 #include "data/scheduleentrykey.h"
24
25 #include <QObject>
26
27 class CinemaSchedule;
28
29 class ActionController : public QObject
30 {
31     Q_OBJECT
32 public:
33     explicit ActionController(const CinemaSchedule *cinema_schedule);
34
35 public:
36     Q_SLOT void AddToCalendar(ScheduleEntryKey);
37     Q_SLOT void CallTheaterByPhone(CinemaKey);
38     Q_SLOT void FindRouteToTheater(CinemaKey);
39     Q_SLOT void SearchTheaterInWeb(CinemaKey);
40     Q_SLOT void SearchMovieInWeb(MovieKey);
41     Q_SLOT void ContactAuthor();
42
43 private:
44     QString TrimPhoneNumber(const QString &phone_number);
45     void SearchInWeb(const QString &key);
46     void ShowError(const QString &);
47
48 private:
49     const CinemaSchedule *_cinema_schedule;
50 };
51
52 #endif // ACTIONCONTROLLER_H