diff --git a/src/ui/ExportDialog.cpp b/src/ui/ExportDialog.cpp index f756fda..2a0bd05 100644 --- a/src/ui/ExportDialog.cpp +++ b/src/ui/ExportDialog.cpp @@ -52,10 +52,33 @@ PieExportDialog::PieExportDialog(const PieCaps &caps, QWidget* parent) "Note that you do not have to deselect directives that are not present in current model. " "E.g. normal map will not be exported unless it was assigned and is allowed.")); - auto model = new PieContentModel(m_caps, ui->tvExportCaps); + model = new PieContentModel(m_caps, ui->tvExportCaps); ui->tvExportCaps->setModel(model); ui->tvExportCaps->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); ui->tvExportCaps->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch); + + connect(ui->pushButton_deselect_all, SIGNAL(clicked()), this, SLOT(actionDeselectAll())); + connect(ui->pushButton_select_all, SIGNAL(clicked()), this, SLOT(actionSelectAll())); +} + +void PieExportDialog::changeSelectAll(bool selected) +{ + if (!model) { return; } + int rowCount = model->rowCount(); + for (int row = 0; row < rowCount; ++row) + { + model->setData(model->index(row, 1), selected, Qt::CheckStateRole); + } +} + +void PieExportDialog::actionDeselectAll() +{ + changeSelectAll(false); +} + +void PieExportDialog::actionSelectAll() +{ + changeSelectAll(true); } PieContentModel::PieContentModel(PieCaps &caps, QObject *parent): QAbstractTableModel(parent), diff --git a/src/ui/ExportDialog.h b/src/ui/ExportDialog.h index 74b6210..c503cc7 100644 --- a/src/ui/ExportDialog.h +++ b/src/ui/ExportDialog.h @@ -68,8 +68,17 @@ class PieExportDialog : public ExportDialog PieExportDialog(const PieCaps& caps, QWidget* parent = nullptr); const PieCaps& getCaps() const {return m_caps;} + +private: + void changeSelectAll(bool selected); + +private slots: + void actionDeselectAll(); + void actionSelectAll(); + private: PieCaps m_caps; + PieContentModel *model; }; #endif // EXPORTDIALOG_HPP diff --git a/src/ui/ExportDialog.ui b/src/ui/ExportDialog.ui index 76571c8..8fd0368 100644 --- a/src/ui/ExportDialog.ui +++ b/src/ui/ExportDialog.ui @@ -27,6 +27,33 @@ + + + + 15 + + + 50 + + + 50 + + + + + Deselect All + + + + + + + Select All + + + + +