Emits signal after editing is done.
void StringListWidget::initUi()
{
stringList = new QListWidget(this);
void StringListWidget::initUi()
{
stringList = new QListWidget(this);
- btnAdd = new QPushButton(tr("&Add"), this);
- btnRemove = new QPushButton(tr("&Remove"), this);
+ btnAdd = new QPushButton(tr("&+"), this);
+ btnRemove = new QPushButton(tr("&-"), this);
QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(btnAdd);
QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(btnAdd);
{
connect(btnAdd, SIGNAL(clicked()), this, SLOT(addClicked()));
connect(btnRemove, SIGNAL(clicked()), this, SLOT(removeClicked()));
{
connect(btnAdd, SIGNAL(clicked()), this, SLOT(addClicked()));
connect(btnRemove, SIGNAL(clicked()), this, SLOT(removeClicked()));
+ connect(stringList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemUpdated(QListWidgetItem *)));
}
void StringListWidget::addClicked()
{
}
void StringListWidget::addClicked()
{
- QString input = QInputDialog::getText(this, tr("Add"), tr("Add new item"));
- input = input.trimmed();
- if (input.isEmpty()) return;
- if (!confirmInput(input)) {
- QMessageBox::information(this, tr("Input failed!"), ("Input was not accepted."));
- return;
- }
- stringList->addItem(input);
- stringList->sortItems();
- emit stringListUpdated();
+ QListWidgetItem *item = new QListWidgetItem;
+ item->setText("");
+ item->setFlags(item->flags() | Qt::ItemIsEditable);
+ stringList->insertItem(0, item);
+ stringList->editItem(item);
}
bool StringListWidget::confirmInput(const QString &) const
}
bool StringListWidget::confirmInput(const QString &) const
+
+void StringListWidget::itemUpdated(QListWidgetItem *)
+{
+ emit stringListUpdated();
+}
#include <QWidget>
class QListWidget;
#include <QWidget>
class QListWidget;
class QPushButton;
class StringListWidget : public QWidget
class QPushButton;
class StringListWidget : public QWidget
private slots:
void addClicked();
void removeClicked();
private slots:
void addClicked();
void removeClicked();
+ void itemUpdated(QListWidgetItem *);