diff options
author | flow <thiagodonato300@gmail.com> | 2022-04-22 13:20:31 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-05-21 08:02:27 -0300 |
commit | 613f2fc4479dbfc3cf3149b0a2ceb0df1f26095f (patch) | |
tree | 80e60f195d491f817ba1ab125102383234e2f6c1 /launcher/ui/dialogs/ReviewMessageBox.cpp | |
parent | 9a0d6124f3f6ec6d68fb25aa7df6eb9e226bc201 (diff) | |
download | PrismLauncher-613f2fc4479dbfc3cf3149b0a2ceb0df1f26095f.tar.gz PrismLauncher-613f2fc4479dbfc3cf3149b0a2ceb0df1f26095f.tar.bz2 PrismLauncher-613f2fc4479dbfc3cf3149b0a2ceb0df1f26095f.zip |
feat: allow deselecting mods from the mod confirmation dialog
This adds a checkbox to each mod on the dialog that shows up when
confirming the mods to download, so you can deselect some of those if
you want to.
Diffstat (limited to 'launcher/ui/dialogs/ReviewMessageBox.cpp')
-rw-r--r-- | launcher/ui/dialogs/ReviewMessageBox.cpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/launcher/ui/dialogs/ReviewMessageBox.cpp b/launcher/ui/dialogs/ReviewMessageBox.cpp index 2bfd02e0..c92234a4 100644 --- a/launcher/ui/dialogs/ReviewMessageBox.cpp +++ b/launcher/ui/dialogs/ReviewMessageBox.cpp @@ -5,6 +5,9 @@ ReviewMessageBox::ReviewMessageBox(QWidget* parent, QString const& title, QStrin : QDialog(parent), ui(new Ui::ReviewMessageBox) { ui->setupUi(this); + + connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &ReviewMessageBox::accept); + connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &ReviewMessageBox::reject); } ReviewMessageBox::~ReviewMessageBox() @@ -17,15 +20,33 @@ auto ReviewMessageBox::create(QWidget* parent, QString&& title, QString&& icon) return new ReviewMessageBox(parent, title, icon); } -void ReviewMessageBox::appendMod(const QString& name, const QString& filename) +void ReviewMessageBox::appendMod(ModInformation&& info) { auto itemTop = new QTreeWidgetItem(ui->modTreeWidget); - itemTop->setText(0, name); + itemTop->setCheckState(0, Qt::CheckState::Checked); + itemTop->setText(0, info.name); auto filenameItem = new QTreeWidgetItem(itemTop); - filenameItem->setText(0, tr("Filename: %1").arg(filename)); + filenameItem->setText(0, tr("Filename: %1").arg(info.filename)); itemTop->insertChildren(0, { filenameItem }); ui->modTreeWidget->addTopLevelItem(itemTop); } + +auto ReviewMessageBox::deselectedMods() -> QStringList +{ + QStringList list; + + auto* item = ui->modTreeWidget->topLevelItem(0); + + for (int i = 0; item != nullptr; ++i) { + if (item->checkState(0) == Qt::CheckState::Unchecked) { + list.append(item->text(0)); + } + + item = ui->modTreeWidget->topLevelItem(i); + } + + return list; +} |