File indexing completed on 2024-05-12 16:01:26
0001 /* 0002 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "kis_bookmarked_configurations_editor.h" 0008 #include "ui_wdgbookmarkedconfigurationseditor.h" 0009 0010 #include "kis_bookmarked_configurations_model.h" 0011 0012 struct KisBookmarkedConfigurationsEditor::Private { 0013 Ui_WdgBookmarkedConfigurationsEditor editorUi; 0014 KisBookmarkedConfigurationsModel* model; 0015 KisSerializableConfigurationSP currentConfig; 0016 }; 0017 0018 0019 KisBookmarkedConfigurationsEditor::KisBookmarkedConfigurationsEditor(QWidget* parent, KisBookmarkedConfigurationsModel* model, const KisSerializableConfigurationSP currentConfig) : QDialog(parent), d(new Private) 0020 { 0021 d->editorUi.setupUi(this); 0022 d->model = model; 0023 d->currentConfig = currentConfig; 0024 d->editorUi.listConfigurations->setModel(d->model); 0025 connect(d->editorUi.pushButtonClose, SIGNAL(pressed()), SLOT(accept())); 0026 0027 connect(d->editorUi.listConfigurations->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), 0028 this, SLOT(currentConfigChanged(QItemSelection,QItemSelection))); 0029 currentConfigChanged(d->editorUi.listConfigurations->selectionModel()->selection(), 0030 d->editorUi.listConfigurations->selectionModel()->selection()); 0031 0032 connect(d->editorUi.pushButtonDelete, SIGNAL(pressed()), SLOT(deleteConfiguration())); 0033 connect(d->editorUi.pushButtonBookmarkCurrent, SIGNAL(pressed()), SLOT(addCurrentConfiguration())); 0034 0035 if (!d->currentConfig) { 0036 d->editorUi.pushButtonBookmarkCurrent->setEnabled(false); 0037 } 0038 } 0039 0040 KisBookmarkedConfigurationsEditor::~KisBookmarkedConfigurationsEditor() 0041 { 0042 delete d; 0043 } 0044 0045 void KisBookmarkedConfigurationsEditor::currentConfigChanged(const QItemSelection& selected, const QItemSelection&) 0046 { 0047 if (d->model) { 0048 d->editorUi.pushButtonDelete->setEnabled(!(selected.indexes().isEmpty()) ? 0049 d->model->isIndexDeletable(selected.indexes().first()) : 0050 false); 0051 } 0052 } 0053 0054 void KisBookmarkedConfigurationsEditor::addCurrentConfiguration() 0055 { 0056 if (d->model) { 0057 d->model->newConfiguration(ki18n("New configuration %1"), d->currentConfig); 0058 } 0059 } 0060 0061 void KisBookmarkedConfigurationsEditor::deleteConfiguration() 0062 { 0063 if (d->model) { 0064 d->model->deleteIndex(d->editorUi.listConfigurations->currentIndex()); 0065 } 0066 } 0067