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("&Add"), this);
34 btnRemove = new QPushButton(tr("&Remove"), 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()));
54 void StringListWidget::addClicked()
56 QString input = QInputDialog::getText(this, tr("Add"), tr("Add new item"));
57 input = input.trimmed();
58 if (input.isEmpty()) return;
59 if (!confirmInput(input)) {
60 QMessageBox::information(this, tr("Input failed!"), ("Input was not accepted."));
63 stringList->addItem(input);
64 stringList->sortItems();
65 emit stringListUpdated();
68 bool StringListWidget::confirmInput(const QString &) const
73 void StringListWidget::removeClicked()
75 qDebug() << "StringListWidget::removeClicked";
76 int row = stringList->currentRow();
77 if (row >= 0 && row < stringList->count())
79 stringList->takeItem(row);
81 emit stringListUpdated();
84 QStringList StringListWidget::getItems()
87 for(int i = 0; i < stringList->count(); ++i)
88 if (!stringList->item(i)->text().trimmed().isEmpty())
89 l << stringList->item(i)->text();
93 void StringListWidget::setItems(QStringList list)
96 foreach(QString s, list)
97 if (!s.trimmed().isEmpty()) stringList->addItem(s);
100 void StringListWidget::clear()