N9profile
[n9profile] / calendatprofile.h
1 /** \file calendatprofile.h
2   \brief   contain class setting profile based on calendar
3   \author Jakub Šplíchal <jakub.bzouk@gmail.com>
4  */
5 #ifndef CALENDATPROFILE_H
6 #define CALENDATPROFILE_H
7
8 #include <QWidget>
9 #include <CCalendar.h>
10 #include <CMulticalendar.h>
11 #include <CTodo.h>
12 #include <CBdayEvent.h>
13 #include <CEvent.h>
14
15 class CCalendar;
16 class CComponent;
17 class QStandardItemModel;
18 class QModelIndex;
19 class QItemSelectionModel;
20 class QIcon;
21 class Event;
22 class Calendar;
23 class CMulticalendar;
24 class QStringList;
25 class QSettings;
26 class QTime;
27
28 /** \class CalendarProfile
29   \brief class for setting calendar profile
30   class set profile based o rules
31  */
32 class CalendarProfile : public QWidget
33 {
34     Q_OBJECT
35 public:
36     explicit CalendarProfile(QWidget *parent = 0, QSettings *sett = 0);
37     ~CalendarProfile();
38     void Init();
39     void ShowDialog();
40
41 signals:
42     void s_calendar_profile(QString profile);
43
44 public slots:
45     void setProfiles(QStringList  list_of_profiles_n);
46
47 private:
48     QSettings * settings;
49     CMulticalendar* multiCalendar;
50     void loadCalendarsAndEvents();
51     QVector<Calendar *> vector_of_calendars;
52     QIcon createIcon(CalendarColour col);
53     Calendar * findCalendar(int Id);
54
55     int wordsCount(QStringList words, QString text);
56     QString evaluateEvent( QVector<Event *> vector_ev);
57     int getProfilePriority(QString name_of_profile);
58     void SetProfile();
59
60     QString eventCurrently;
61     QString profile_Currently;
62
63     void createModels();
64     void setCalendarModel();
65
66     QStandardItemModel *model_of_calendars;
67     QItemSelectionModel *selModel_calendars;
68     QStandardItemModel *model_of_profiles;
69     QItemSelectionModel* selModel_profiles;
70
71     QTimer *timer;
72
73 private slots:
74     void event_start(Event * ev);
75     void event_stop(Event* ev);
76     void TimerTimeout();
77     void ChangeInCalendarsCheck();
78     void calendarTrack(QString);
79 };
80
81 #endif // CALENDATPROFILE_H