1 #include "telenumdialog.h"
2 #include "telephonenumnewruledialog.h"
3 #include "ui_telenumdialog.h"
5 #include <QtCore/QSettings>
6 #include <QtCore/QDebug> //Debug pro informace
7 #include <QtGui/QItemSelectionModel>
8 #include <QtGui/QStandardItemModel>
10 #include <QtGui/QMessageBox>
11 TeleNumDialog::TeleNumDialog(QWidget *parent) :
13 ui(new Ui::TeleNumDialog)
18 TeleNumDialog::~TeleNumDialog()
23 void TeleNumDialog::changeEvent(QEvent *e)
25 QDialog::changeEvent(e);
27 case QEvent::LanguageChange:
28 ui->retranslateUi(this);
36 Set view models, behavior, mode and triggerrs
37 \param model_of_Telnum model of profiles
38 \param selModel_Telnum selection model for profiles
40 void TeleNumDialog::SetViews(QStandardItemModel *model_of_Telnum ,
41 QItemSelectionModel *selModel_Telnum)
43 ui->tableView->setModel(model_of_Telnum);
44 ui->tableView->setSelectionModel(selModel_Telnum);
45 ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
46 ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
47 ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
48 //ui->tableView_2->resizeColumnsToContents();
49 ui->tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
50 //labels << tr("Name") << tr("Wifi name") << tr("Profile");
55 \param list_of_profiles_nf names of profiles
57 void TeleNumDialog::SetProfilenames(QStringList list_of_profiles_nf)
59 list_of_profiles = list_of_profiles_nf;
63 Create new rule for location or wifi
65 void TeleNumDialog::createNewRule()
68 QStandardItemModel *model;
69 QList<QStandardItem *> listitems;
71 TelePhoneNumNewRuleDialog dialog(this);
72 model = (QStandardItemModel *) ui->tableView->model();//model je ted id loc
74 dialog.SetNameOfLabel("", QString(tr("New telephone rule")));
76 dialog.SetProfilenames(list_of_profiles); //dam tomu seznan pro výběr
77 dialog.SetModel(model);
78 int result = dialog.exec();
81 //qDebug() << __FILE__ << ":" << __LINE__ << " " << __FUNCTION__ << "Nove providloooooooooo";
82 //nove jmeno pro pravidlo
83 listitems.append(new QStandardItem(dialog.GetNameOfRule()));//jmeno pravidla
84 listitems.append(new QStandardItem(dialog.GetTelNum()));//tel cislo
85 listitems.append(new QStandardItem(dialog.GetNameProfile()));//jmeno profilu
86 model->appendRow(listitems);
87 // emit s_change_model();//vyslu zmenu
88 //labels << tr("Name") << tr("Wifi name") << tr("Profile");davam tam id lokace prvna
92 /** on_pushButton_clicked()
95 void TeleNumDialog::on_pushButton_clicked()
100 /** on_tableView_clicked()
101 Slot for click on table
103 void TeleNumDialog::on_tableView_clicked(QModelIndex index)
106 //qDebug() << "In file:" << __FILE__ << ":" << "on line:" << __LINE__ << " in function:" << __FUNCTION__ << "kliknutu na idloc";
108 QItemSelectionModel *selModel = ui->tableView->selectionModel();
109 if(!selModel->hasSelection()) return;//no selection retirn
110 QModelIndexList list_of_selected = selModel->selectedIndexes(); //get selected
111 QStandardItemModel *model = (QStandardItemModel *) ui->tableView->model(); //model
112 int row = list_of_selected.at(0).row();//get row
115 msgBox.setIcon(QMessageBox::Information);
116 msgBox.setText(tr("Delete or modify number?"));
117 msgBox.setEscapeButton(QMessageBox::Cancel);
118 QPushButton *CancelButton = msgBox.addButton(QMessageBox::Cancel);
119 QPushButton *DeleteButton = msgBox.addButton(tr("Delete"), QMessageBox::ActionRole);
120 QPushButton *modifyButton = msgBox.addButton(tr("Modify"),QMessageBox::DestructiveRole);
122 msgBox.exec(); //delete or modifi
123 if (msgBox.clickedButton() == DeleteButton) {
125 //qDebug() << __FILE__ << ":" << __LINE__ << " " << __FUNCTION__ << "bude se mazat pravidlo";
126 model->removeRow(row);
127 selModel->clearSelection();
128 // emit s_change_model(); //vyslu zmenu
129 }else if (msgBox.clickedButton() == modifyButton) {
130 TelePhoneNumNewRuleDialog dialog(this); //modifi
131 //labels << tr("Name") << tr("Wifi name") << tr("Profile");davam tam id lokace prvna
132 dialog.SetNameOfLabel(list_of_selected.at(1).data().toString(), QString(tr("Change profile for number: ")));
133 dialog.SetProfilenames(list_of_profiles); //dam tomu seznan pro výběr
134 dialog.SetNameOfRule(list_of_selected.at(0).data().toString()); //dam tomu jmeno pravidla
135 dialog.SetTelNum(list_of_selected.at(1).data().toString());
136 int result = dialog.exec();
139 //nove jmeno pro pravidlo
140 model->item(list_of_selected.at(0).row(),list_of_selected.at(0).column())->setData(QVariant(dialog.GetNameOfRule()),Qt::DisplayRole);
142 model->item(list_of_selected.at(2).row(),list_of_selected.at(2).column())->setData(QVariant(dialog.GetNameProfile()),Qt::DisplayRole);
143 // emit s_change_model(); //vyslu zmenu
145 selModel->clearSelection();
146 }else if (msgBox.clickedButton() == CancelButton) {
147 selModel->clearSelection();