aboutsummaryrefslogtreecommitdiff
path: root/libs/installer_bundle/src/multiarchivedialog.cpp
blob: 03774f654c85f8a343999cd662e883414d13d375 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "multiarchivedialog.h"
#include "ui_multiarchivedialog.h"

using namespace MOBase;

MultiArchiveDialog::MultiArchiveDialog(
    std::vector<std::shared_ptr<const MOBase::FileTreeEntry>> entries, QWidget* parent)
    : QDialog(parent), ui(new Ui::MultiArchiveDialog), m_Manual(false),
      m_SelectedEntry(nullptr)
{
  ui->setupUi(this);

  auto layout = ui->middleLayout;
  for (auto& entry : entries) {
    QPushButton* button = new QPushButton(entry->name(), this);
    button->setStyleSheet("text-align: left; padding: 10px; font-weight: bold;");
    layout->addWidget(button);

    connect(button, &QPushButton::clicked, [this, entry]() {
      m_SelectedEntry = entry;
      this->accept();
    });
  }
}

MultiArchiveDialog::~MultiArchiveDialog()
{
  delete ui;
}

void MultiArchiveDialog::on_cancelBtn_clicked()
{
  this->reject();
}

void MultiArchiveDialog::on_manualBtn_clicked()
{
  m_Manual = true;
  this->reject();
}