/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #include #include #include #include #include #include "listeditor.h" #include "listmodel.h" ListEditor::ListEditor(ListModel *model, QWidget *parent) : QWidget(parent), mModel(model){ mItems = new QComboBox; mItems->setModel(mModel); mEdit = new QLineEdit; mAdd = new QPushButton(tr("Add")); connect(mAdd, SIGNAL(clicked()), this, SLOT(addItem())); mRemove = new QPushButton(tr("Remove")); connect(mRemove, SIGNAL(clicked()), this, SLOT(removeItem())); mRename = new QPushButton(tr("Rename")); connect(mRename, SIGNAL(clicked()), this, SLOT(renameItem())); QHBoxLayout *buttonLayout = new QHBoxLayout; buttonLayout->addWidget(mAdd); buttonLayout->addWidget(mRemove); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(mItems); mainLayout->addWidget(mEdit); mainLayout->addLayout(buttonLayout); connect(mItems, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(itemChanged(const QString &))); setLayout(mainLayout); } void ListEditor::addItem(){ if(mEdit->text().isEmpty()){ return; } QString newItem = mEdit->text().toLower().trimmed(); QModelIndex idx = mModel->index(newItem); if(idx == QModelIndex()){ mModel->addItem(newItem); } } void ListEditor::removeItem(){ mModel->removeItem(mItems->currentText()); } void ListEditor::renameItem(){ QString oldName = mItems->currentText(); QString newName = mEdit->text(); if(!newName.isEmpty()){ mModel->renameItem(oldName, newName); } } void ListEditor::itemChanged(const QString &name){ mEdit->setText(name); }