Adding now adds an empty string to list and starts edit for that string.
authorMikko Keinänen <mikko.keinanen@gmail.com>
Tue, 7 Dec 2010 22:23:49 +0000 (00:23 +0200)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Tue, 7 Dec 2010 22:23:49 +0000 (00:23 +0200)
Emits signal after editing is done.

src/widgets/stringlistwidget.cpp
src/widgets/stringlistwidget.h

index 3bd3c3a..e3b7a86 100644 (file)
@@ -30,8 +30,8 @@ StringListWidget::StringListWidget(QWidget *parent, bool sort, int sortIndex) :
 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);
@@ -49,20 +49,16 @@ void StringListWidget::connectSignals()
 {
     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()
 {
-    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
@@ -101,3 +97,8 @@ void StringListWidget::clear()
 {
     stringList->clear();
 }
+
+void StringListWidget::itemUpdated(QListWidgetItem *)
+{
+    emit stringListUpdated();
+}
index 794c75f..934fd8f 100644 (file)
@@ -23,6 +23,7 @@
 #include <QWidget>
 
 class QListWidget;
+class QListWidgetItem;
 class QPushButton;
 
 class StringListWidget : public QWidget
@@ -43,6 +44,7 @@ protected:
 private slots:
     void addClicked();
     void removeClicked();
+    void itemUpdated(QListWidgetItem *);
 
 private:
     void initUi();