Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_dlg_adj_layer_props.cc
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8#include <klocalizedstring.h>
9
10#include <QLabel>
11#include <QVBoxLayout>
12#include <QHBoxLayout>
13
14#include <QLineEdit>
15
16#include "kis_config_widget.h"
17#include "kis_transaction.h"
18#include "filter/kis_filter.h"
21#include "kis_layer.h"
23#include "kis_paint_device.h"
24#include "kis_paint_layer.h"
25#include "kis_group_layer.h"
28
31 KisPaintDeviceSP paintDevice,
32 KisViewManager *view,
33 KisFilterConfigurationSP configuration,
34 const QString & layerName,
35 const QString & caption,
36 QWidget *parent,
37 const char *name)
38 : KoDialog(parent)
39 , m_node(node)
40 , m_paintDevice(paintDevice)
41 , m_currentConfigWidget(0)
42 , m_currentFilter(0)
43 , m_currentConfiguration(0)
44 , m_nodeFilterInterface(nfi)
45{
48
49 setObjectName(name);
50
51 m_currentConfiguration = configuration->clone();
54 }
55
56 setCaption(caption);
57 QWidget * page = new QWidget(this);
58 page->setObjectName("page widget");
59 QHBoxLayout * layout = new QHBoxLayout(page);
60 layout->setContentsMargins(0, 0, 0, 0);
61 setMainWidget(page);
62
63 QVBoxLayout *v1 = new QVBoxLayout();
64 layout->addLayout(v1);
65 QHBoxLayout *hl = new QHBoxLayout();
66 v1->addLayout(hl);
67
68 QLabel * lblName = new QLabel(i18n("Layer name:"), page);
69 lblName->setObjectName("lblName");
70 hl->addWidget(lblName, 0);
71
72 m_layerName = new QLineEdit(page);
73 m_layerName->setObjectName("m_layerName");
74 m_layerName->setText(layerName);
75 m_layerName->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
76 hl->addWidget(m_layerName, 10);
77 connect(m_layerName, SIGNAL(textChanged(QString)), this, SLOT(slotNameChanged(QString)));
78
79 if (m_currentFilter) {
81
85 }
86 }
87
88 if (m_currentFilter == 0 || m_currentConfigWidget == 0) {
89 QLabel * labelNoConfigWidget = new QLabel(i18n("No configuration options are available for this filter"), page);
90 v1->addWidget(labelNoConfigWidget);
91 }
92 else {
93 v1->addWidget(m_currentConfigWidget);
94 connect(m_currentConfigWidget, SIGNAL(sigConfigurationUpdated()), SLOT(slotConfigChanged()));
95 }
96
97 enableButtonOk(!m_layerName->text().isEmpty());
98
99}
100
101void KisDlgAdjLayerProps::slotNameChanged(const QString & text)
102{
103 enableButtonOk(!text.isEmpty());
104}
105
116
118{
119 return m_layerName->text();
120}
121
123{
124 enableButtonOk(true);
126 if (config) {
127 m_nodeFilterInterface->setFilter(config->cloneWithResourcesSnapshot());
128 }
129 m_node->setDirty();
130}
131
132
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
virtual void setView(KisViewManager *view)
virtual KisPropertiesConfigurationSP configuration() const =0
virtual void setConfiguration(const KisPropertiesConfigurationSP config)=0
KisDlgAdjLayerProps(KisNodeSP node, KisNodeFilterInterface *nfi, KisPaintDeviceSP paintDevice, KisViewManager *view, KisFilterConfigurationSP configuration, const QString &layerName, const QString &caption, QWidget *parent=0, const char *name=0)
void slotNameChanged(const QString &)
KisNodeFilterInterface * m_nodeFilterInterface
KisConfigWidget * m_currentConfigWidget
KisFilterConfigurationSP m_currentConfiguration
KisFilterConfigurationSP filterConfiguration() const
static KisFilterRegistry * instance()
static KisResourcesInterfaceSP instance()
virtual void setFilter(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true)
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
void enableButtonOk(bool state)
Definition KoDialog.cpp:615
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:354
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:498
void setButtons(ButtonCodes buttonMask)
Definition KoDialog.cpp:195
void setDefaultButton(ButtonCode id)
Definition KoDialog.cpp:302
@ Ok
Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted)
Definition KoDialog.h:127
@ Cancel
Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected)
Definition KoDialog.h:130
T get(const QString &id) const
virtual KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const
virtual KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const
virtual void setDirty()
Definition kis_node.cpp:577