10 #include "PerspectiveManager.h"
11 #include "ui_PerspectiveManager.h"
14 #include <QAbstractItemModel>
15 #include <QMessageBox>
17 #include <core/util/ComposerSettings.h>
18 using namespace composer::core::util;
23 PerspectiveManager::PerspectiveManager(QWidget *parent):
25 ui(new Ui::PerpectiveManager())
29 this->behavior = PERSPEC_SAVE;
31 connect (ui->deleteButton, SIGNAL(clicked()),
32 this, SLOT(deleteSelectedPerspective()));
34 connect ( ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,
int)),
35 this, SLOT(itemChanged(QTreeWidgetItem*,
int)));
38 defaultPerspective = settings.value(
"default_perspective").
49 this->behavior = behavior;
52 void PerspectiveManager::updateContent()
55 settings.beginGroup(
"pluginslayout");
56 QStringList keys = settings.allKeys();
59 ui->treeWidget->clear();
62 QTreeWidgetItem *item;
64 internalChange =
true;
65 if(behavior == PERSPEC_SAVE)
67 for(i = 0; i < keys.size(); i++)
69 item =
new QTreeWidgetItem(ui->treeWidget);
70 if(keys.at(i) == defaultPerspective)
71 item->setCheckState(0, Qt::Checked);
73 item->setCheckState(0, Qt::Unchecked);
75 item->setText(1, keys.at(i));
76 item->setFlags(item->flags() | Qt::ItemIsEditable);
79 item =
new QTreeWidgetItem(ui->treeWidget);
80 item->setFlags(item->flags() | Qt::ItemIsEditable);
81 item->setCheckState(0, Qt::Unchecked);
82 item->setText(1,
"New perspective...");
83 ui->treeWidget->setCurrentItem(item, 1,
84 QItemSelectionModel::SelectCurrent);
86 ui->treeWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed |
87 QAbstractItemView::DoubleClicked);
89 this->setWindowTitle(tr(
"Saving a perspective"));
90 ui->deleteButton->setVisible(
false);
94 for(i = 0; i < keys.size(); i++)
96 item =
new QTreeWidgetItem(ui->treeWidget);
97 if(keys.at(i) == defaultPerspective)
98 item->setCheckState(0, Qt::Checked);
100 item->setCheckState(0, Qt::Unchecked);
102 item->setText(1, keys.at(i));
103 item->setFlags(item->flags());
106 this->setWindowTitle(tr(
"Reloading a perspective"));
107 ui->deleteButton->setVisible(
true);
109 internalChange =
false;
114 QDialog::showEvent(evt);
120 QList<QTreeWidgetItem*> items = ui->treeWidget->selectedItems();
123 selectedName = items.at(0)->text(1);
130 void PerspectiveManager::itemChanged(QTreeWidgetItem *item,
int col)
132 if(internalChange)
return;
134 internalChange =
true;
137 for(
int i = 0; i < ui->treeWidget->topLevelItemCount(); i++)
138 ui->treeWidget->topLevelItem(i)->setCheckState(0, Qt::Unchecked);
140 item->setCheckState(0, Qt::Checked);
141 this->defaultPerspective = item->text(1);
145 if(item->checkState(0) == Qt::Checked)
146 this->defaultPerspective = item->text(1);
148 if(item->text(1) ==
"")
149 item->setText(1,
"empty");
151 internalChange =
false;
161 return defaultPerspective;
167 settings.beginGroup(
"pluginslayout");
169 settings.remove(name);
173 void PerspectiveManager::deleteSelectedPerspective()
175 QList<QTreeWidgetItem*> items = ui->treeWidget->selectedItems();
176 selectedName = items.at(0)->text(1);
178 QMessageBox::StandardButton ret;
179 ret = QMessageBox::warning(
this, tr(
"Deleting perspective"),
180 tr(
"Are you sure you want to delete the.\n"
181 "\"%1\" perspective ?").arg(selectedName),
182 QMessageBox::Yes | QMessageBox::No);
184 if (ret == QMessageBox::Yes)
189 else if (ret == QMessageBox::Cancel)