summaryrefslogtreecommitdiff
path: root/src/listdialog.cpp
diff options
context:
space:
mode:
authorLostDragonist <lost.dragonist@gmail.com>2018-12-20 14:33:08 -0600
committerGitHub <noreply@github.com>2018-12-20 14:33:08 -0600
commited67ac211306bee2067178ace1a0a7fbcd0bea1b (patch)
tree8fe31503ba20a436457c8c94d61f953b4aa067b4 /src/listdialog.cpp
parent2232bdfc779b8575c8374a723d4d02a2b41fb352 (diff)
parent9a33dc148054443cb0efd5916ff758fca5bc09e3 (diff)
Merge pull request #586 from ModOrganizer2/Develop
Release 2.1.6
Diffstat (limited to 'src/listdialog.cpp')
-rw-r--r--src/listdialog.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/listdialog.cpp b/src/listdialog.cpp
new file mode 100644
index 00000000..52bba80d
--- /dev/null
+++ b/src/listdialog.cpp
@@ -0,0 +1,74 @@
+/*
+This file is part of Mod Organizer.
+
+Mod Organizer is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Mod Organizer is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "listdialog.h"
+#include "ui_listdialog.h"
+
+ListDialog::ListDialog(QWidget *parent)
+ : QDialog(parent)
+ , ui(new Ui::ListDialog)
+ , m_Choices()
+{
+ ui->setupUi(this);
+ ui->filterEdit->setFocus();
+}
+
+ListDialog::~ListDialog()
+{
+ delete ui;
+}
+
+void ListDialog::setChoices(QStringList choices)
+{
+ m_Choices = choices;
+ ui->choiceList->clear();
+ ui->choiceList->addItems(m_Choices);
+}
+
+QString ListDialog::getChoice() const
+{
+ if (ui->choiceList->selectedItems().length()) {
+ return ui->choiceList->currentItem()->text();
+ } else {
+ return "";
+ }
+}
+
+void ListDialog::on_filterEdit_textChanged(QString filter)
+{
+ QStringList newChoices;
+ for (auto choice : m_Choices) {
+ if (choice.contains(filter, Qt::CaseInsensitive)){
+ newChoices << choice;
+ }
+ }
+ ui->choiceList->clear();
+ ui->choiceList->addItems(newChoices);
+
+ if (newChoices.length() == 1) {
+ QListWidgetItem *item = ui->choiceList->item(0);
+ ui->choiceList->setItemSelected(item, true);
+ ui->choiceList->setCurrentItem(item);
+ }
+
+ if (!filter.isEmpty()) {
+ ui->choiceList->setStyleSheet("QListWidget { border: 2px ridge #f00; }");
+ } else {
+ ui->choiceList->setStyleSheet("");
+ }
+}
+