| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #include <QFileDialog>
- #include "ui_BrowseModal.h"
- #include "browseModal.h"
- using namespace craftlab::fakeraid;
- BrowseModal::BrowseModal(bool _cancellable, const std::vector<std::string>& previous): cancellable(_cancellable), ui(std::make_unique<Ui_BrowseModal>())
- {
- ui->setupUi(this);
- if (!cancellable)
- {
- setWindowFlags(windowFlags() & ~Qt::WindowCloseButtonHint);
- ui->buttonBox->setStandardButtons(QDialogButtonBox::StandardButton::Open);
- }
- else
- {
- ui->buttonBox->setStandardButtons(QDialogButtonBox::StandardButton::Open | QDialogButtonBox::StandardButton::Cancel);
- connect(ui->buttonBox, &QDialogButtonBox::rejected, this, [this]() { rejected = true; });
- }
- connect(ui->pushButton, &QPushButton::clicked, this, [this]() { BrowseForInput(*ui->lineEdit); });
- connect(ui->pushButton_2, &QPushButton::clicked, this, [this]() { BrowseForInput(*ui->lineEdit_2); });
- if (previous.size() > 0)
- ui->lineEdit->setText(previous[0].c_str());
- if (previous.size() > 1)
- ui->lineEdit_2->setText(previous[1].c_str());
- setModal(this);
- }
- BrowseModal::~BrowseModal()
- {}
- void BrowseModal::reject()
- {
- if (cancellable)
- QDialog::reject();
- }
- void BrowseModal::BrowseForInput(QLineEdit& input)
- {
- QString path = QFileDialog::getExistingDirectory(this, "FakeRaid", input.text());
- if (!path.isNull())
- input.setText(path);
- }
- std::vector<std::string> BrowseModal::Display(bool cancellable, const std::vector<std::string>& previous)
- {
- BrowseModal dialog(cancellable, previous);
- dialog.exec();
- if (dialog.rejected)
- return std::vector<std::string> {};
- std::vector<std::string> result;
- result.push_back(dialog.ui->lineEdit->text().toStdString());
- result.push_back(dialog.ui->lineEdit_2->text().toStdString());
- return result;
- }
|