diff options
| author | Silarn <jrim@rimpo.org> | 2019-01-18 01:56:16 -0600 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2019-01-18 01:56:16 -0600 |
| commit | 077a050e5954cc21ce40c45dd51973d636b3779b (patch) | |
| tree | 9e9ceea5e54acf65f560250e1aa842a60bb34b66 /src/forcedloaddialog.cpp | |
| parent | e35cdd6c89ea27dfb8f3ea1f918192514617a64d (diff) | |
| parent | 0d04ba18737385395d6ebcdfe49fb31bcb539038 (diff) | |
Merge remote-tracking branch 'origin/Develop' into archive_conflicts_2
Diffstat (limited to 'src/forcedloaddialog.cpp')
| -rw-r--r-- | src/forcedloaddialog.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/forcedloaddialog.cpp b/src/forcedloaddialog.cpp new file mode 100644 index 00000000..ab0bd583 --- /dev/null +++ b/src/forcedloaddialog.cpp @@ -0,0 +1,77 @@ +#include "forcedloaddialog.h" +#include "ui_forcedloaddialog.h" + +#include "forcedloaddialogwidget.h" + +#include <QComboBox> +#include <QLabel> + +using namespace MOBase; + +ForcedLoadDialog::ForcedLoadDialog(const IPluginGame *game, QWidget *parent) : + QDialog(parent), + ui(new Ui::ForcedLoadDialog), + m_GamePlugin(game) +{ + ui->setupUi(this); +} + +ForcedLoadDialog::~ForcedLoadDialog() +{ + delete ui; +} + +void ForcedLoadDialog::setValues(QList<MOBase::ExecutableForcedLoadSetting> &values) +{ + ui->tableWidget->clearContents(); + + for (int i = 0; i < values.count(); i++) { + ForcedLoadDialogWidget *item = new ForcedLoadDialogWidget(m_GamePlugin, this); + item->setEnabled(values[i].enabled()); + item->setProcess(values[i].process()); + item->setLibraryPath(values[i].library()); + item->setForced(values[i].forced()); + + ui->tableWidget->insertRow(i); + ui->tableWidget->setCellWidget(i, 0, item); + } + + ui->tableWidget->resizeRowsToContents(); +} + +QList<MOBase::ExecutableForcedLoadSetting> ForcedLoadDialog::values() +{ + QList<MOBase::ExecutableForcedLoadSetting> results; + for (int row = 0; row < ui->tableWidget->rowCount(); row++) { + auto widget = (ForcedLoadDialogWidget*)ui->tableWidget->cellWidget(row, 0); + results.append( + ExecutableForcedLoadSetting( + widget->getProcess(), + widget->getLibraryPath() + ).withEnabled(widget->getEnabled()) + .withForced(widget->getForced()) + ); + } + return results; +} + + +void ForcedLoadDialog::on_addRowButton_clicked() +{ + int row = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(row); + ForcedLoadDialogWidget *item = new ForcedLoadDialogWidget(m_GamePlugin, this); + ui->tableWidget->setCellWidget(row, 0, item); + ui->tableWidget->resizeRowsToContents(); +} + +void ForcedLoadDialog::on_deleteRowButton_clicked() +{ + for (auto rowIndex: ui->tableWidget->selectionModel()->selectedRows()) { + int row = rowIndex.row(); + auto widget = (ForcedLoadDialogWidget*)ui->tableWidget->cellWidget(row, 0); + if (!widget->getForced()){ + ui->tableWidget->removeRow(row); + } + } +} |
