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 if (input.isEmpty()) return;
58 stringList->addItem(input);
59 stringList->sortItems();
60 emit stringListUpdated();
63 void StringListWidget::removeClicked()
65 qDebug() << "StringListWidget::removeClicked";
66 int row = stringList->currentRow();
67 if (row >= 0 && row < stringList->count())
69 stringList->takeItem(row);
71 emit stringListUpdated();
74 QStringList StringListWidget::getItems()
77 for(int i = 0; i < stringList->count(); ++i)
78 l << stringList->item(i)->text();
82 void StringListWidget::setItems(QStringList list)
85 foreach(QString s, list)
86 stringList->addItem(s);