README
[n9profile] / calendarprofilesdialog.cpp
1 #include "calendarprofilesdialog.h"
2 #include "ui_calendarprofilesdialog.h"
3 #include <QtGui/QStandardItemModel>
4 #include <QtGui/QItemSelectionModel>
5 #include <QtCore/QModelIndex>
6 #include <QtCore/QSettings>
7 #include <QtCore/QDebug> //Debug pro informace
8 #include "calendarsetprofiledialog.h"
9 /** Constructor.
10 Setup ui and set window title
11 */
12 CalendarProfilesDialog::CalendarProfilesDialog(QWidget *parent) :
13         QDialog(parent),
14         ui(new Ui::CalendarProfilesDialog)
15 {
16     ui->setupUi(this);
17     setWindowTitle(tr("Edit profiles and calendars"));
18 }
19
20 /** SetViews.
21 Set view models, behavior, mode and triggerrs
22 \param model_of_profiles model of profiles
23 \param selModel_profiles selection model for profiles
24 \param model_of_calendars model of calendars
25 \param selModel_calendars selection model for calendars
26 */
27 void CalendarProfilesDialog::SetViews(QStandardItemModel *model_of_profiles ,
28                                       QItemSelectionModel *selModel_profiles,
29                                       QStandardItemModel *model_of_calendars ,
30                                       QItemSelectionModel *selModel_calendars)
31 {
32     ui->Profile_tableView->setModel(model_of_profiles);
33     ui->Profile_tableView->setSelectionModel(selModel_profiles);
34     ui->Profile_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
35     ui->Profile_tableView->setSelectionMode(QAbstractItemView::SingleSelection);
36     ui->Profile_tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
37     //ui->tableView_2->resizeColumnsToContents();
38     ui->Profile_tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
39
40     ui->CalendartableView->setModel(model_of_calendars);
41     ui->CalendartableView->setSelectionModel(selModel_calendars);
42     ui->CalendartableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
43     ui->CalendartableView->setSelectionBehavior(QAbstractItemView::SelectRows);
44     ui->CalendartableView->setSelectionMode(QAbstractItemView::SingleSelection);
45     ui->CalendartableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
46 }
47
48 /** SetSettings.
49 Set settings pointer
50 \param sett pointer to settings class
51 */
52 void CalendarProfilesDialog::SetSettings(QSettings *sett)
53 {
54     settings = sett;
55 }
56
57 /** Destructor.
58 Destructor delete ui
59 */
60 CalendarProfilesDialog::~CalendarProfilesDialog()
61 {
62     delete ui;
63 }
64
65 /** changeEvent.
66 changeEvent
67 \param e event
68 */
69 void CalendarProfilesDialog::changeEvent(QEvent *e)
70 {
71     QDialog::changeEvent(e);
72     switch (e->type()) {
73     case QEvent::LanguageChange:
74         ui->retranslateUi(this);
75         break;
76     default:
77         break;
78     }
79 }
80
81 /** on_CalendartableView_clicked.
82 Slot for click on CalendartableView
83 \param index index not used
84 */
85 void CalendarProfilesDialog::on_CalendartableView_clicked(QModelIndex index)
86 {
87     Q_UNUSED(index)
88
89     QItemSelectionModel *selModel_calendars = ui->CalendartableView->selectionModel();
90     if(!selModel_calendars->hasSelection()) return; // nothing selected return
91     QModelIndexList list_of_calendar = selModel_calendars->selectedIndexes();
92     //qDebug() << "size of list" << list_of_calendar.count();
93     int i = 0;
94     if(list_of_calendar.at(0).data(Qt::CheckStateRole).toInt() == 2){
95         i = 2;
96     }
97     //qDebug() << " print i " << i;
98     //qDebug() << " =========================================================================== ";
99     settings->beginGroup("CalendarProfileClassCalendars");
100     settings->setValue(list_of_calendar.at(0).data().toString(), QVariant(i) );
101     settings->endGroup();
102     //qDebug() << "emit zmÄ›ny";
103     emit s_change_calendars();
104     selModel_calendars->clearSelection();
105 }
106
107 /** on_Profile_tableView_clicked.
108 Slot for click on Profile_tableView
109 \param index index not used
110 */
111 void CalendarProfilesDialog::on_Profile_tableView_clicked(QModelIndex index)
112 {
113     Q_UNUSED(index)
114
115     QItemSelectionModel *selModel_profiles = ui->Profile_tableView->selectionModel();
116     if(!selModel_profiles->hasSelection()) return;
117     QModelIndexList list_of_profil = selModel_profiles->selectedIndexes();
118     QStandardItemModel *model_of_profiles = (QStandardItemModel *) ui->Profile_tableView->model();
119     CalendarSetProfileDialog dialog(this);
120     dialog.SetDialog(list_of_profil.at(0).data().toString(),list_of_profil.at(1).data().toString(),list_of_profil.at(2).data().toInt());
121     int result = dialog.exec();
122     if(result)
123     {
124         settings->beginGroup("CalendarProfileClass");
125         settings->setValue(QString("%1%2").arg(list_of_profil.at(0).data().toString(),"words"), QVariant(dialog.GetText()));
126         settings->setValue(QString("%1%2").arg(list_of_profil.at(0).data().toString(),"priority"), QVariant(dialog.GetPriority()));
127         settings->endGroup();
128
129         model_of_profiles->setData(list_of_profil.at(1),QVariant(dialog.GetText()),Qt::DisplayRole);
130         model_of_profiles->setData(list_of_profil.at(2),QVariant(dialog.GetPriority()),Qt::DisplayRole);
131         emit s_change_calendars();
132     }
133     selModel_profiles->clearSelection();
134 }