Changeset View
Changeset View
Standalone View
Standalone View
plugins/dockers/palettedocker/palettedocker_dock.cpp
Show First 20 Lines • Show All 70 Lines • ▼ Show 20 Line(s) | 65 | PaletteDockerDock::PaletteDockerDock( ) | |||
---|---|---|---|---|---|
71 | , m_resourceProvider(Q_NULLPTR) | 71 | , m_resourceProvider(Q_NULLPTR) | ||
72 | , m_rServer(KoResourceServerProvider::instance()->paletteServer()) | 72 | , m_rServer(KoResourceServerProvider::instance()->paletteServer()) | ||
73 | , m_activeDocument(Q_NULLPTR) | 73 | , m_activeDocument(Q_NULLPTR) | ||
74 | , m_paletteEditor(new KisPaletteEditor) | 74 | , m_paletteEditor(new KisPaletteEditor) | ||
75 | , m_actAdd(new QAction(KisIconUtils::loadIcon("list-add"), i18n("Add a color"))) | 75 | , m_actAdd(new QAction(KisIconUtils::loadIcon("list-add"), i18n("Add a color"))) | ||
76 | , m_actRemove(new QAction(KisIconUtils::loadIcon("edit-delete"), i18n("Delete color"))) | 76 | , m_actRemove(new QAction(KisIconUtils::loadIcon("edit-delete"), i18n("Delete color"))) | ||
77 | , m_actModify(new QAction(KisIconUtils::loadIcon("edit-rename"), i18n("Modify this spot"))) | 77 | , m_actModify(new QAction(KisIconUtils::loadIcon("edit-rename"), i18n("Modify this spot"))) | ||
78 | , m_actEditPalette(new QAction(KisIconUtils::loadIcon("groupLayer"), i18n("Edit this palette"))) | 78 | , m_actEditPalette(new QAction(KisIconUtils::loadIcon("groupLayer"), i18n("Edit this palette"))) | ||
79 | , m_colorSelfUpdate(false) | ||||
79 | { | 80 | { | ||
80 | QWidget *mainWidget = new QWidget(this); | 81 | QWidget *mainWidget = new QWidget(this); | ||
81 | setWidget(mainWidget); | 82 | setWidget(mainWidget); | ||
82 | m_ui->setupUi(mainWidget); | 83 | m_ui->setupUi(mainWidget); | ||
83 | 84 | | |||
84 | m_ui->bnAdd->setDefaultAction(m_actAdd.data()); | 85 | m_ui->bnAdd->setDefaultAction(m_actAdd.data()); | ||
85 | m_ui->bnRemove->setDefaultAction(m_actRemove.data()); | 86 | m_ui->bnRemove->setDefaultAction(m_actRemove.data()); | ||
86 | m_ui->bnRename->setDefaultAction(m_actModify.data()); | 87 | m_ui->bnRename->setDefaultAction(m_actModify.data()); | ||
▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Line(s) | |||||
145 | { | 146 | { | ||
146 | m_view = kisview; | 147 | m_view = kisview; | ||
147 | m_resourceProvider = kisview->resourceProvider(); | 148 | m_resourceProvider = kisview->resourceProvider(); | ||
148 | connect(m_resourceProvider, SIGNAL(sigSavingWorkspace(KisWorkspaceResource*)), | 149 | connect(m_resourceProvider, SIGNAL(sigSavingWorkspace(KisWorkspaceResource*)), | ||
149 | SLOT(saveToWorkspace(KisWorkspaceResource*))); | 150 | SLOT(saveToWorkspace(KisWorkspaceResource*))); | ||
150 | connect(m_resourceProvider, SIGNAL(sigLoadingWorkspace(KisWorkspaceResource*)), | 151 | connect(m_resourceProvider, SIGNAL(sigLoadingWorkspace(KisWorkspaceResource*)), | ||
151 | SLOT(loadFromWorkspace(KisWorkspaceResource*))); | 152 | SLOT(loadFromWorkspace(KisWorkspaceResource*))); | ||
152 | connect(m_resourceProvider, SIGNAL(sigFGColorChanged(KoColor)), | 153 | connect(m_resourceProvider, SIGNAL(sigFGColorChanged(KoColor)), | ||
153 | m_ui->paletteView, SLOT(slotFGColorChanged(KoColor))); | 154 | this, SLOT(slotFGColorResourceChanged(KoColor))); | ||
154 | 155 | | |||
155 | kisview->nodeManager()->disconnect(m_model); | 156 | kisview->nodeManager()->disconnect(m_model); | ||
156 | } | 157 | } | ||
157 | 158 | | |||
158 | void PaletteDockerDock::slotContextMenu(const QModelIndex &) | 159 | void PaletteDockerDock::slotContextMenu(const QModelIndex &) | ||
159 | { | 160 | { | ||
160 | if (QApplication::mouseButtons() == Qt::RightButton) { | 161 | if (QApplication::mouseButtons() == Qt::RightButton) { | ||
161 | m_viewContextMenu.exec(QCursor::pos()); | 162 | m_viewContextMenu.exec(QCursor::pos()); | ||
▲ Show 20 Lines • Show All 133 Lines • ▼ Show 20 Line(s) | 292 | { | |||
295 | } | 296 | } | ||
296 | m_paletteEditor->removeEntry(index); | 297 | m_paletteEditor->removeEntry(index); | ||
297 | m_ui->bnRemove->setEnabled(false); | 298 | m_ui->bnRemove->setEnabled(false); | ||
298 | } | 299 | } | ||
299 | 300 | | |||
300 | void PaletteDockerDock::setFGColorByPalette(const KisSwatch &entry) | 301 | void PaletteDockerDock::setFGColorByPalette(const KisSwatch &entry) | ||
301 | { | 302 | { | ||
302 | if (m_resourceProvider) { | 303 | if (m_resourceProvider) { | ||
304 | m_colorSelfUpdate = true; | ||||
303 | m_resourceProvider->setFGColor(entry.color()); | 305 | m_resourceProvider->setFGColor(entry.color()); | ||
306 | m_colorSelfUpdate = false; | ||||
304 | } | 307 | } | ||
305 | } | 308 | } | ||
306 | 309 | | |||
307 | void PaletteDockerDock::saveToWorkspace(KisWorkspaceResource* workspace) | 310 | void PaletteDockerDock::saveToWorkspace(KisWorkspaceResource* workspace) | ||
308 | { | 311 | { | ||
309 | if (!m_currentColorSet.isNull()) { | 312 | if (!m_currentColorSet.isNull()) { | ||
310 | workspace->setProperty("palette", m_currentColorSet->name()); | 313 | workspace->setProperty("palette", m_currentColorSet->name()); | ||
311 | } | 314 | } | ||
312 | } | 315 | } | ||
313 | 316 | | |||
314 | void PaletteDockerDock::loadFromWorkspace(KisWorkspaceResource* workspace) | 317 | void PaletteDockerDock::loadFromWorkspace(KisWorkspaceResource* workspace) | ||
315 | { | 318 | { | ||
316 | if (workspace->hasProperty("palette")) { | 319 | if (workspace->hasProperty("palette")) { | ||
317 | KoResourceServer<KoColorSet>* rServer = KoResourceServerProvider::instance()->paletteServer(); | 320 | KoResourceServer<KoColorSet>* rServer = KoResourceServerProvider::instance()->paletteServer(); | ||
318 | KoColorSet* colorSet = rServer->resourceByName(workspace->getString("palette")); | 321 | KoColorSet* colorSet = rServer->resourceByName(workspace->getString("palette")); | ||
319 | if (colorSet) { | 322 | if (colorSet) { | ||
320 | slotSetColorSet(colorSet); | 323 | slotSetColorSet(colorSet); | ||
321 | } | 324 | } | ||
322 | } | 325 | } | ||
323 | } | 326 | } | ||
324 | 327 | | |||
328 | void PaletteDockerDock::slotFGColorResourceChanged(const KoColor &color) | ||||
329 | { | ||||
330 | if (!m_colorSelfUpdate) { | ||||
331 | m_ui->paletteView->slotFGColorResourceChanged(color); | ||||
332 | } | ||||
333 | } | ||||
334 | | ||||
325 | void PaletteDockerDock::slotPaletteIndexSelected(const QModelIndex &index) | 335 | void PaletteDockerDock::slotPaletteIndexSelected(const QModelIndex &index) | ||
326 | { | 336 | { | ||
327 | bool occupied = qvariant_cast<bool>(index.data(KisPaletteModel::CheckSlotRole)); | 337 | bool occupied = qvariant_cast<bool>(index.data(KisPaletteModel::CheckSlotRole)); | ||
328 | if (occupied) { | 338 | if (occupied) { | ||
329 | if (!qvariant_cast<bool>(index.data(KisPaletteModel::IsGroupNameRole))) { | 339 | if (!qvariant_cast<bool>(index.data(KisPaletteModel::IsGroupNameRole))) { | ||
330 | m_ui->bnRemove->setEnabled(true); | 340 | m_ui->bnRemove->setEnabled(true); | ||
331 | KisSwatch entry = m_model->getEntry(index); | 341 | KisSwatch entry = m_model->getEntry(index); | ||
332 | setFGColorByPalette(entry); | 342 | setFGColorByPalette(entry); | ||
Show All 29 Lines | 370 | { | |||
362 | if (!index.isValid()) { | 372 | if (!index.isValid()) { | ||
363 | return; | 373 | return; | ||
364 | } | 374 | } | ||
365 | m_paletteEditor->modifyEntry(index); | 375 | m_paletteEditor->modifyEntry(index); | ||
366 | } | 376 | } | ||
367 | 377 | | |||
368 | void PaletteDockerDock::slotNameListSelection(const KoColor &color) | 378 | void PaletteDockerDock::slotNameListSelection(const KoColor &color) | ||
369 | { | 379 | { | ||
380 | m_colorSelfUpdate = true; | ||||
370 | m_resourceProvider->setFGColor(color); | 381 | m_resourceProvider->setFGColor(color); | ||
382 | m_colorSelfUpdate = false; | ||||
371 | } | 383 | } |