| 14 | #include <QMessageBox> |
| 15 | |
| 16 | PresetRuleDialog::PresetRuleDialog(IAudioService* service, QWidget *parent) : |
| 17 | QDialog(parent), |
| 18 | ui(new Ui::PresetRuleDialog), |
| 19 | service(service), |
| 20 | deviceModel(new DeviceListModel(service, this)), |
| 21 | presetModel(PresetManager::instance().presetModel()), |
| 22 | ruleModel(new PresetRuleTableModel(this)), |
| 23 | ruleDelegate(new PresetRuleTableDelegate(this)), |
| 24 | addRuleFragment(new FragmentHost<PresetAddRuleFragment*>(new PresetAddRuleFragment(deviceModel, presetModel, ruleModel, this), |
| 25 | WAF::BottomSide, this)) |
| 26 | { |
| 27 | ui->setupUi(this); |
| 28 | |
| 29 | ruleDelegate->attachModels(deviceModel, presetModel, ruleModel); |
| 30 | ui->ruleTable->setItemDelegate(ruleDelegate); |
| 31 | ui->ruleTable->setModel(ruleModel); |
| 32 | ui->ruleTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); |
| 33 | ui->ruleTable->setEmptyViewEnabled(true); |
| 34 | ui->ruleTable->setEmptyViewTitle(tr("No rules defined")); |
| 35 | |
| 36 | ruleModel->load(); |
| 37 | deviceModel->load(service->outputDevices()); |
| 38 | presetModel->rescan(); |
| 39 | |
| 40 | ui->remove->setEnabled(false); |
| 41 | |
| 42 | connect(ui->ruleTable->selectionModel(), &QItemSelectionModel::selectionChanged, this, &PresetRuleDialog::onSelectionChanged); |
| 43 | |
| 44 | connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &PresetRuleDialog::reject); |
| 45 | connect(ui->buttonBox, &QDialogButtonBox::accepted, ruleModel, &PresetRuleTableModel::commit); |
| 46 | connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &PresetRuleDialog::accept); |
| 47 | |
| 48 | connect(ui->remove, &QPushButton::clicked, this, &PresetRuleDialog::onRemoveClicked); |
| 49 | connect(ui->add, &QPushButton::clicked, this, &PresetRuleDialog::onAddClicked); |
| 50 | connect(addRuleFragment->fragment(), &PresetAddRuleFragment::accepted, this, &PresetRuleDialog::onAddConfirmed); |
| 51 | } |
| 52 | |
| 53 | PresetRuleDialog::~PresetRuleDialog() |
| 54 | { |
nothing calls this directly
no test coverage detected