Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDlgPaletteEditor Class Reference

The KisDlgPaletteEditor class a dialog used by the palette docker to make modifications to a palette. it automatically uploads all changes into the resource server when the change is accepted. More...

#include <KisDlgPaletteEditor.h>

+ Inheritance diagram for KisDlgPaletteEditor:

Public Member Functions

void initialize (KisPaletteModel *)
 
 KisDlgPaletteEditor (KisPaletteEditor *editor, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
 
KoColorSetSP palette () const
 
 ~KisDlgPaletteEditor ()
 

Private Slots

void slotAddGroup ()
 
void slotColCountChanged (int)
 
void slotDelGroup ()
 
void slotGroupChosen (const QString &groupName)
 
void slotNameChanged ()
 
void slotRenGroup ()
 
void slotRowCountChanged (int)
 
void slotSetGlobal ()
 

Private Member Functions

QString oldNameFromNewName (const QString &newName) const
 

Private Attributes

QScopedPointer< QAction > m_actAddGroup
 
QScopedPointer< QAction > m_actDelGroup
 
QScopedPointer< QAction > m_actRenGroup
 
QSharedPointer< KoColorSetm_colorSet
 
QString m_currentGroupOriginalName
 
QPalette m_normalPalette
 
QPointer< KisPaletteEditorm_paletteEditor
 
QScopedPointer< Ui_WdgDlgPaletteEditor > m_ui
 
QPalette m_warnPalette
 

Detailed Description

The KisDlgPaletteEditor class a dialog used by the palette docker to make modifications to a palette. it automatically uploads all changes into the resource server when the change is accepted.

Definition at line 35 of file KisDlgPaletteEditor.h.

Constructor & Destructor Documentation

◆ KisDlgPaletteEditor()

KisDlgPaletteEditor::KisDlgPaletteEditor ( KisPaletteEditor * editor,
QWidget * parent = nullptr,
Qt::WindowFlags f = Qt::WindowFlags() )
explicit

Definition at line 33 of file KisDlgPaletteEditor.cpp.

34 : QDialog(parent, f)
35 , m_ui(new Ui_WdgDlgPaletteEditor)
36 , m_actAddGroup(new QAction(i18n("Add a swatch group")))
37 , m_actDelGroup(new QAction(i18nc("Group as Swatch Group in a Palette", "Remove selected group")))
38 , m_actRenGroup(new QAction(i18nc("Group as Swatch Group in a Palette", "Rename selected group")))
39 , m_paletteEditor(editor)
41{
42 setWindowTitle(i18n("Palette Editor"));
43
44 m_ui->setupUi(this);
45 m_ui->gbxPalette->setTitle(i18n("Palette options"));
46 m_ui->labelName->setText(i18n("Palette name:"));
47 m_ui->bnAddGroup->setDefaultAction(m_actAddGroup.data());
48
49 m_ui->gbxGroup->setTitle(i18n("Swatch Group options"));
50 m_ui->labelColCount->setText(i18n("Columns of swatches:"));
51 m_ui->labelRowCount->setText(i18n("Rows of swatches in group:"));
52 m_ui->bnDelGroup->setDefaultAction(m_actDelGroup.data());
53 m_ui->bnRenGroup->setDefaultAction(m_actRenGroup.data());
54
55 connect(m_actAddGroup.data(), SIGNAL(triggered(bool)), SLOT(slotAddGroup()));
56 connect(m_actDelGroup.data(), SIGNAL(triggered(bool)), SLOT(slotDelGroup()));
57 connect(m_actRenGroup.data(), SIGNAL(triggered(bool)), SLOT(slotRenGroup()));
58 connect(m_ui->spinBoxRow, SIGNAL(valueChanged(int)), SLOT(slotRowCountChanged(int)));
59 connect(m_ui->spinBoxCol, SIGNAL(valueChanged(int)), SLOT(slotColCountChanged(int)));
60 connect(m_ui->lineEditName, SIGNAL(editingFinished()), SLOT(slotNameChanged()));
61
62
63 m_ui->storageLocation->setModel(KisStorageModel::instance());
64 m_ui->storageLocation->setModelColumn(KisStorageModel::DisplayName);
65
66 // TODO: We have no concept of moving storages whatsoever, so for now, let's disable this combobox.
67 m_ui->storageLocation->setEnabled(false);
68 connect(m_ui->storageLocation, SIGNAL(currentIndexChanged(int)), SLOT(slotSetGlobal()));
69
70 m_warnPalette.setColor(QPalette::Text, Qt::red);
71
72 KGuiItem::assign(m_ui->buttonBox->button(QDialogButtonBox::Ok), KStandardGuiItem::ok());
73 KGuiItem::assign(m_ui->buttonBox->button(QDialogButtonBox::Cancel), KStandardGuiItem::cancel());
74}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QScopedPointer< Ui_WdgDlgPaletteEditor > m_ui
QScopedPointer< QAction > m_actRenGroup
QPointer< KisPaletteEditor > m_paletteEditor
QScopedPointer< QAction > m_actDelGroup
QScopedPointer< QAction > m_actAddGroup
static KisStorageModel * instance()
static const QString GLOBAL_GROUP_NAME
Definition KoColorSet.h:33

References connect(), KisStorageModel::DisplayName, KisStorageModel::instance(), m_actAddGroup, m_actDelGroup, m_actRenGroup, m_ui, m_warnPalette, slotAddGroup(), slotColCountChanged(), slotDelGroup(), slotNameChanged(), slotRenGroup(), slotRowCountChanged(), and slotSetGlobal().

◆ ~KisDlgPaletteEditor()

KisDlgPaletteEditor::~KisDlgPaletteEditor ( )

Definition at line 76 of file KisDlgPaletteEditor.cpp.

77{ }

Member Function Documentation

◆ initialize()

void KisDlgPaletteEditor::initialize ( KisPaletteModel * model)

Definition at line 79 of file KisDlgPaletteEditor.cpp.

80{
81 m_colorSet = model->colorSet();
82 if (m_colorSet.isNull()) {
83 return;
84 }
85
86 // don't let editor make changes when initializing
87 const QSignalBlocker blocker2(m_ui->lineEditName);
88 const QSignalBlocker blocker3(m_ui->spinBoxCol);
89 const QSignalBlocker blocker4(m_ui->spinBoxRow);
90 const QSignalBlocker blocker5(m_ui->storageLocation);
91 const QSignalBlocker blocker7(m_ui->cbxGroup);
92
93 m_ui->lineEditName->setText(m_colorSet->name());
94 m_ui->spinBoxCol->setValue(m_colorSet->columnCount());
95
96 m_ui->storageLocation->setCurrentIndex(m_ui->storageLocation->findData(m_colorSet->storageLocation(), Qt::UserRole + KisStorageModel::Location));
97
98 Q_FOREACH (const QString & groupName, m_colorSet->swatchGroupNames()) {
99 m_ui->cbxGroup->addItem(groupName);
100 }
101
102 connect(m_ui->cbxGroup, SIGNAL(currentTextChanged(QString)), SLOT(slotGroupChosen(QString)));
103 m_ui->cbxGroup->setCurrentText(KoColorSet::GLOBAL_GROUP_NAME);
104 m_ui->bnDelGroup->setEnabled(false);
105 m_ui->bnRenGroup->setEnabled(false);
106
107 m_ui->spinBoxRow->setValue(m_paletteEditor->rowCountOfGroup(KoColorSet::GLOBAL_GROUP_NAME));
108
109 m_ui->lineEditName->setEnabled(true);
110 m_ui->spinBoxCol->setEnabled(true);
111 m_ui->spinBoxRow->setEnabled(true);
112 m_ui->bnAddGroup->setEnabled(true);
113}
QSharedPointer< KoColorSet > m_colorSet
void slotGroupChosen(const QString &groupName)
KoColorSetSP colorSet() const

References KisPaletteModel::colorSet(), connect(), KoColorSet::GLOBAL_GROUP_NAME, KisStorageModel::Location, m_colorSet, m_paletteEditor, m_ui, and slotGroupChosen().

◆ oldNameFromNewName()

QString KisDlgPaletteEditor::oldNameFromNewName ( const QString & newName) const
private

◆ palette()

KoColorSetSP KisDlgPaletteEditor::palette ( ) const
inline

Definition at line 44 of file KisDlgPaletteEditor.h.

44{ return m_colorSet; }

◆ slotAddGroup

void KisDlgPaletteEditor::slotAddGroup ( )
privateslot

Definition at line 115 of file KisDlgPaletteEditor.cpp.

116{
117 QString newGroupName = m_paletteEditor->addGroup();
118 if (!newGroupName.isEmpty()) {
119 m_ui->cbxGroup->addItem(newGroupName);
120 m_ui->cbxGroup->setCurrentIndex(m_ui->cbxGroup->count() - 1);
121 };
122}

References m_paletteEditor, and m_ui.

◆ slotColCountChanged

void KisDlgPaletteEditor::slotColCountChanged ( int newCount)
privateslot

Definition at line 172 of file KisDlgPaletteEditor.cpp.

173{
174 m_paletteEditor->changeColumnCount(newCount);
175}

References m_paletteEditor.

◆ slotDelGroup

void KisDlgPaletteEditor::slotDelGroup ( )
privateslot

Definition at line 135 of file KisDlgPaletteEditor.cpp.

136{
137 int deletedIdx = m_ui->cbxGroup->currentIndex();
139 m_ui->cbxGroup->setCurrentIndex(0);
140 m_ui->cbxGroup->removeItem(deletedIdx);
141 }
142}

References m_currentGroupOriginalName, m_paletteEditor, and m_ui.

◆ slotGroupChosen

void KisDlgPaletteEditor::slotGroupChosen ( const QString & groupName)
privateslot

Definition at line 144 of file KisDlgPaletteEditor.cpp.

145{
146 if (groupName == KoColorSet::GLOBAL_GROUP_NAME) {
147 m_ui->bnDelGroup->setEnabled(false);
148 m_ui->bnRenGroup->setEnabled(false);
149 } else {
150 m_ui->bnDelGroup->setEnabled(true);
151 m_ui->bnRenGroup->setEnabled(true);
152 }
153 m_currentGroupOriginalName = m_paletteEditor->oldNameFromNewName(groupName);
154 m_ui->spinBoxRow->setValue(m_paletteEditor->rowCountOfGroup(m_currentGroupOriginalName));
155}

References KoColorSet::GLOBAL_GROUP_NAME, m_currentGroupOriginalName, m_paletteEditor, and m_ui.

◆ slotNameChanged

void KisDlgPaletteEditor::slotNameChanged ( )
privateslot

Definition at line 167 of file KisDlgPaletteEditor.cpp.

168{
169 m_paletteEditor->rename(qobject_cast<QLineEdit*>(sender())->text());
170}

References m_paletteEditor.

◆ slotRenGroup

void KisDlgPaletteEditor::slotRenGroup ( )
privateslot

Definition at line 124 of file KisDlgPaletteEditor.cpp.

125{
126 QString newName = m_paletteEditor->renameGroup(m_currentGroupOriginalName);
127 if (!newName.isEmpty()) {
128 int idx = m_ui->cbxGroup->currentIndex();
129 m_ui->cbxGroup->removeItem(idx);
130 m_ui->cbxGroup->insertItem(idx, newName);
131 m_ui->cbxGroup->setCurrentIndex(idx);
132 }
133}

References m_currentGroupOriginalName, m_paletteEditor, and m_ui.

◆ slotRowCountChanged

void KisDlgPaletteEditor::slotRowCountChanged ( int newCount)
privateslot

Definition at line 157 of file KisDlgPaletteEditor.cpp.

158{
159 m_paletteEditor->changeGroupRowCount(m_currentGroupOriginalName, newCount);
160}

References m_currentGroupOriginalName, and m_paletteEditor.

◆ slotSetGlobal

void KisDlgPaletteEditor::slotSetGlobal ( )
privateslot

Definition at line 162 of file KisDlgPaletteEditor.cpp.

163{
164 m_paletteEditor->setStorageLocation(m_ui->storageLocation->currentData(KisStorageModel::Location).toString());
165}

References KisStorageModel::Location, m_paletteEditor, and m_ui.

Member Data Documentation

◆ m_actAddGroup

QScopedPointer<QAction> KisDlgPaletteEditor::m_actAddGroup
private

Definition at line 64 of file KisDlgPaletteEditor.h.

◆ m_actDelGroup

QScopedPointer<QAction> KisDlgPaletteEditor::m_actDelGroup
private

Definition at line 65 of file KisDlgPaletteEditor.h.

◆ m_actRenGroup

QScopedPointer<QAction> KisDlgPaletteEditor::m_actRenGroup
private

Definition at line 66 of file KisDlgPaletteEditor.h.

◆ m_colorSet

QSharedPointer<KoColorSet> KisDlgPaletteEditor::m_colorSet
private

Definition at line 68 of file KisDlgPaletteEditor.h.

◆ m_currentGroupOriginalName

QString KisDlgPaletteEditor::m_currentGroupOriginalName
private

Definition at line 69 of file KisDlgPaletteEditor.h.

◆ m_normalPalette

QPalette KisDlgPaletteEditor::m_normalPalette
private

Definition at line 71 of file KisDlgPaletteEditor.h.

◆ m_paletteEditor

QPointer<KisPaletteEditor> KisDlgPaletteEditor::m_paletteEditor
private

Definition at line 67 of file KisDlgPaletteEditor.h.

◆ m_ui

QScopedPointer<Ui_WdgDlgPaletteEditor> KisDlgPaletteEditor::m_ui
private

Definition at line 63 of file KisDlgPaletteEditor.h.

◆ m_warnPalette

QPalette KisDlgPaletteEditor::m_warnPalette
private

Definition at line 72 of file KisDlgPaletteEditor.h.


The documentation for this class was generated from the following files: