diff options
Diffstat (limited to 'sigmodr/widgets/StoreUI.cpp')
| -rw-r--r-- | sigmodr/widgets/StoreUI.cpp | 56 |
1 files changed, 35 insertions, 21 deletions
diff --git a/sigmodr/widgets/StoreUI.cpp b/sigmodr/widgets/StoreUI.cpp index 4b598179..f03a3b03 100644 --- a/sigmodr/widgets/StoreUI.cpp +++ b/sigmodr/widgets/StoreUI.cpp @@ -23,51 +23,65 @@ #include <sigmod/Sigmod.h> #include <sigmod/Store.h> +// KDE includes +#include <KActionSelector> +#include <KLineEdit> + // Qt includes +#include <QtCore/QFile> #include <QtGui/QListWidgetItem> +#include <QtUiTools/QUiLoader> Sigmodr::Widgets::StoreUI::StoreUI(Sigmod::Store* store, QWidget* parent) : ObjectUI(parent) { - setupUi(this); setObjects(store, new Sigmod::Store(*store)); } -Sigmodr::Widgets::StoreUI::~StoreUI() +void Sigmodr::Widgets::StoreUI::initGui() { + QFile file(":/gui/store.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_name = formWidget->findChild<KLineEdit*>("varName"); + ui_items = formWidget->findChild<KActionSelector*>("varItems"); + connect(ui_name, SIGNAL(textChanged(QString)), this, SLOT(nameChanged(QString))); + connect(ui_items, SIGNAL(added(QListWidgetItem*)), this, SLOT(itemAdded(QListWidgetItem*))); + connect(ui_items, SIGNAL(removed(QListWidgetItem*)), this, SLOT(itemRemoved(QListWidgetItem*))); } void Sigmodr::Widgets::StoreUI::refreshGui() { - const bool blockedItems = varItems->blockSignals(true); - varItems->availableListWidget()->clear(); - varItems->selectedListWidget()->clear(); + const bool blockedItems = ui_items->blockSignals(true); + ui_items->availableListWidget()->clear(); + ui_items->selectedListWidget()->clear(); for (int i = 0; i < sigmod()->itemCount(); ++i) { const Sigmod::Item* item = sigmod()->item(i); - QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), varItems->availableListWidget()); + QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), ui_items->availableListWidget()); widgetItem->setData(Qt::UserRole, item->id()); } - varItems->blockSignals(blockedItems); - varItems->setButtonsEnabled(); + ui_items->blockSignals(blockedItems); + ui_items->setButtonsEnabled(); } void Sigmodr::Widgets::StoreUI::setGui() { - varName->setText(qobject_cast<Sigmod::Store*>(modified())->name()); - for (int i = 0; i < varItems->availableListWidget()->count(); ++i) + ui_name->setText(qobject_cast<Sigmod::Store*>(modified())->name()); + for (int i = 0; i < ui_items->availableListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varItems->availableListWidget()->item(i); + QListWidgetItem* widgetItem = ui_items->availableListWidget()->item(i); if (qobject_cast<Sigmod::Store*>(modified())->item(widgetItem->data(Qt::UserRole).toInt())) - varItems->selectedListWidget()->addItem(varItems->availableListWidget()->takeItem(i--)); + ui_items->selectedListWidget()->addItem(ui_items->availableListWidget()->takeItem(i--)); } - for (int i = 0; i < varItems->selectedListWidget()->count(); ++i) + for (int i = 0; i < ui_items->selectedListWidget()->count(); ++i) { - QListWidgetItem* widgetItem = varItems->selectedListWidget()->item(i); + QListWidgetItem* widgetItem = ui_items->selectedListWidget()->item(i); if (!qobject_cast<Sigmod::Store*>(modified())->item(widgetItem->data(Qt::UserRole).toInt())) - varItems->availableListWidget()->addItem(varItems->selectedListWidget()->takeItem(i--)); + ui_items->availableListWidget()->addItem(ui_items->selectedListWidget()->takeItem(i--)); } - varItems->setButtonsEnabled(); + ui_items->setButtonsEnabled(); } void Sigmodr::Widgets::StoreUI::apply() @@ -83,20 +97,20 @@ void Sigmodr::Widgets::StoreUI::discard() emit(changed(false)); } -void Sigmodr::Widgets::StoreUI::on_varName_textChanged(const QString& name) +void Sigmodr::Widgets::StoreUI::nameChanged(const QString& name) { - const int cursor = varName->cursorPosition(); + const int cursor = ui_name->cursorPosition(); qobject_cast<Sigmod::Store*>(modified())->setName(name); - varName->setCursorPosition(cursor); + ui_name->setCursorPosition(cursor); } -void Sigmodr::Widgets::StoreUI::on_varItems_added(QListWidgetItem* item) +void Sigmodr::Widgets::StoreUI::itemAdded(QListWidgetItem* item) { qobject_cast<Sigmod::Store*>(modified())->setItem(item->data(Qt::UserRole).toInt(), true); setGui(); } -void Sigmodr::Widgets::StoreUI::on_varItems_removed(QListWidgetItem* item) +void Sigmodr::Widgets::StoreUI::itemRemoved(QListWidgetItem* item) { qobject_cast<Sigmod::Store*>(modified())->setItem(item->data(Qt::UserRole).toInt(), false); setGui(); |
