Krita Source Code Documentation
Loading...
Searching...
No Matches
dlg_layersplit.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2014 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "dlg_layersplit.h"
8
9#include <klocalizedstring.h>
10
12#include <kis_debug.h>
13
14#include <KisViewManager.h>
15#include <kis_image.h>
16#include <kis_paint_device.h>
17
18#include "kis_slider_spin_box.h"
19#include <QCheckBox>
20#include <QSpinBox>
21
22#include <kis_config.h>
23#include <KisDialogStateSaver.h>
24
26 : KoDialog()
27{
28 m_page = new WdgLayerSplit(this);
29
30 setCaption(i18n("Split Layer"));
33
34 m_page->intFuzziness->setRange(0, 200);
35 m_page->intFuzziness->setSingleStep(1);
36
38 m_page->paletteChooser->setPopupWidget(m_colorSetChooser);
39 connect(m_colorSetChooser, SIGNAL(sigPaletteSelected(KoColorSetSP)), this, SLOT(slotSetPalette(KoColorSetSP)));
40
41 QMap<QString, QVariant> defaults;
42 defaults[ m_page->intFuzziness->objectName() ] = QVariant::fromValue<int>(20);
43 defaults[ m_page->chkCreateGroupLayer->objectName() ] = QVariant::fromValue<bool>(true);
44 defaults[ m_page->chkSeparateGroupLayers->objectName() ] = QVariant::fromValue<bool>(false);
45 defaults[ m_page->chkAlphaLock->objectName() ] = QVariant::fromValue<bool>(true);
46 defaults[ m_page->chkHideOriginal->objectName() ] = QVariant::fromValue<bool>(false);
47 defaults[ m_page->chkSortLayers->objectName() ] = QVariant::fromValue<bool>(true);
48 defaults[ m_page->chkDisregardOpacity->objectName() ] = QVariant::fromValue<bool>(true);
49
50 KisDialogStateSaver::restoreState(m_page, "krita/layer_split", defaults);
51
52 connect(m_page->cmbMode, SIGNAL(currentIndexChanged(int)), this, SLOT(slotChangeMode(int)));
53
54 KisConfig cfg(true);
55 QString paletteName = cfg.readEntry<QString>("layersplit/paletteName", "Default"); // resource names are not translatable by design
57 KoColorSetSP pal = pserver->resource("", "", paletteName);
58 m_modeToMask = m_page->cmbMode->currentIndex();
60
61 if (pal) {
62 m_palette = pal;
63 m_page->paletteChooser->setText(pal->name());
64 QIcon icon(QPixmap::fromImage(pal->image()));
65 m_page->paletteChooser->setIcon(icon);
66 }
67
68
69 connect(this, SIGNAL(applyClicked()), this, SLOT(slotApplyClicked()));
70
72}
73
77
79{
80
81 KisDialogStateSaver::saveState(m_page, "krita/layer_split");
82
83 KisConfig cfg(false);
84 if (m_palette) {
85 cfg.writeEntry("layersplit/paletteName", m_palette->name());
86 }
87
88 accept();
89}
90
92{
93 return m_page->chkCreateGroupLayer->isChecked();
94}
95
97{
98 return m_page->chkSeparateGroupLayers->isChecked();
99}
100
102{
103 return m_page->chkAlphaLock->isChecked();
104}
105
107{
108 return m_page->chkHideOriginal->isChecked();
109}
110
112{
113 return m_page->chkSortLayers->isChecked();
114}
115
117{
118 return m_page->chkDisregardOpacity->isChecked();
119}
120
122{
123 return m_page->intFuzziness->value();
124
125}
126
128{
129 return m_palette;
130}
131
133{
134 if (pal) {
135 m_palette = pal;
136 m_page->paletteChooser->setText(pal->name());
137 QIcon icon(QPixmap::fromImage(pal->image()));
138 m_page->paletteChooser->setIcon(icon);
139 }
140}
141
143 m_modeToMask = idx;
144 if( m_modeToMask){
145 m_page->chkCreateGroupLayer->hide();
146 m_page->chkSeparateGroupLayers->hide();
147 m_page->chkAlphaLock->hide();
148 m_page->chkHideOriginal->hide();
149 }
150 else{
151 m_page->chkCreateGroupLayer->show();
152 m_page->chkSeparateGroupLayers->show();
153 m_page->chkAlphaLock->show();
154 m_page->chkHideOriginal->show();
155 }
156}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
int fuzziness() const
KoColorSetSP m_palette
bool lockAlpha() const
KoColorSetSP palette() const
bool sortLayers() const
~DlgLayerSplit() override
WdgLayerSplit * m_page
void slotChangeMode(int)
bool disregardOpacity() const
bool createSeparateGroups() const
bool hideOriginal() const
KisPaletteChooser * m_colorSetChooser
void slotSetPalette(KoColorSetSP pal)
bool createBaseGroup() const
void writeEntry(const QString &name, const T &value)
Definition kis_config.h:779
T readEntry(const QString &name, const T &defaultValue=T())
Definition kis_config.h:789
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
void applyClicked()
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
@ Apply
Show Apply button.
Definition KoDialog.h:128
@ Cancel
Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected)
Definition KoDialog.h:130
KRITAWIDGETUTILS_EXPORT void restoreState(QWidget *parent, const QString &dialogName, const QMap< QString, QVariant > &defaults=QMap< QString, QVariant >())
restoreState restores the state of the dialog
KRITAWIDGETUTILS_EXPORT void saveState(QWidget *parent, const QString &dialogName)
saveState saves the state for the specified widgets
static KoResourceServerProvider * instance()
KoResourceServer< KoColorSet > * paletteServer