2 // Copyright 2010 Mikko Keinänen
4 // This file is part of EmuFront.
7 // EmuFront is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2 as published by
9 // the Free Software Foundation and appearing in the file gpl.txt included in the
10 // packaging of this file.
12 // EmuFront is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License
18 // along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
20 #include "stringlistwidget.h"
23 StringListWidget::StringListWidget(QWidget *parent, bool sort, int sortIndex) :
24 QWidget(parent), sort(sort), sortIndex(sortIndex)
30 void StringListWidget::initUi()
32 stringList = new QListWidget(this);
33 btnAdd = new QPushButton(tr("&+"), this);
34 btnRemove = new QPushButton(tr("&-"), this);
36 QVBoxLayout *rightLayout = new QVBoxLayout;
37 rightLayout->addWidget(btnAdd);
38 rightLayout->addWidget(btnRemove);
39 rightLayout->addStretch();
41 QHBoxLayout *mainLayout = new QHBoxLayout;
42 mainLayout->addWidget(stringList);
43 mainLayout->addLayout(rightLayout);
45 setLayout(mainLayout);
48 void StringListWidget::connectSignals()
50 connect(btnAdd, SIGNAL(clicked()), this, SLOT(addClicked()));
51 connect(btnRemove, SIGNAL(clicked()), this, SLOT(removeClicked()));
52 connect(stringList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemUpdated(QListWidgetItem *)));
55 void StringListWidget::addClicked()
57 QListWidgetItem *item = new QListWidgetItem;
59 item->setFlags(item->flags() | Qt::ItemIsEditable);
60 stringList->insertItem(0, item);
61 stringList->editItem(item);
64 bool StringListWidget::confirmInput(const QString &) const
69 void StringListWidget::removeClicked()
71 qDebug() << "StringListWidget::removeClicked";
72 int row = stringList->currentRow();
73 if (row >= 0 && row < stringList->count())
75 stringList->takeItem(row);
77 emit stringListUpdated();
80 QStringList StringListWidget::getItems()
83 for(int i = 0; i < stringList->count(); ++i)
84 if (!stringList->item(i)->text().trimmed().isEmpty())
85 l << stringList->item(i)->text();
89 void StringListWidget::setItems(QStringList list)
92 foreach(QString s, list)
93 if (!s.trimmed().isEmpty()) stringList->addItem(s);
96 void StringListWidget::clear()
101 void StringListWidget::itemUpdated(QListWidgetItem *)
103 emit stringListUpdated();