Paste P218

Masterwork From Distant Lands
ActivePublic

Authored by dkazakov on May 12 2018, 12:59 PM.
diff --git a/libs/ui/KisViewManager.cpp b/libs/ui/KisViewManager.cpp
index 7db6d79..e42f0b0 100644
--- a/libs/ui/KisViewManager.cpp
+++ b/libs/ui/KisViewManager.cpp
@@ -338,6 +338,8 @@ KisViewManager::~KisViewManager()
void KisViewManager::initializeResourceManager(KoCanvasResourceManager *resourceManager)
{
+ ENTER_FUNCTION();
+
resourceManager->addDerivedResourceConverter(toQShared(new KisCompositeOpResourceConverter));
resourceManager->addDerivedResourceConverter(toQShared(new KisEffectiveCompositeOpResourceConverter));
resourceManager->addDerivedResourceConverter(toQShared(new KisOpacityResourceConverter));
@@ -433,7 +435,9 @@ void KisViewManager::setCurrentView(KisView *view)
preset = rserver->resources().first();
}
if (preset) {
- paintOpBox()->restoreResource(preset.data());
+ ENTER_FUNCTION() << "*** Resetting last preset" << ppVar(preset);
+ d->canvasResourceProvider.setPaintOpPreset(preset);
+ //paintOpBox()->restoreResource(preset.data());
}
const KoColorSpace *cs = KoColorSpaceRegistry::instance()->rgb8();
diff --git a/libs/ui/kis_paintop_box.cc b/libs/ui/kis_paintop_box.cc
index 2ead484..972fc4d 100644
--- a/libs/ui/kis_paintop_box.cc
+++ b/libs/ui/kis_paintop_box.cc
@@ -557,6 +557,9 @@ void KisPaintopBox::newOptionWidgets(const QList<QPointer<QWidget> > &optionWidg
void KisPaintopBox::resourceSelected(KoResource* resource)
{
+ ENTER_FUNCTION() << ppVar(resource);
+
+
m_presetsPopup->setCreatingBrushFromScratch(false); // show normal UI elements when we are not creating
KisPaintOpPreset* preset = dynamic_cast<KisPaintOpPreset*>(resource);
@@ -704,6 +707,8 @@ void KisPaintopBox::updateCompositeOp(QString compositeOpID)
KisNodeSP node = m_resourceProvider->currentNode();
+ ENTER_FUNCTION() << ppVar(node);
+
{
KisSignalsBlocker b1(m_cmbCompositeOp);
m_cmbCompositeOp->selectCompositeOp(KoID(compositeOpID));
@@ -838,21 +843,38 @@ void KisPaintopBox::slotCanvasResourceChanged(int key, const QVariant &value)
{
if (m_viewManager) {
sender()->blockSignals(true);
+
KisPaintOpPresetSP preset = m_viewManager->resourceProvider()->resourceManager()->resource(KisCanvasResourceProvider::CurrentPaintOpPreset).value<KisPaintOpPresetSP>();
- if (preset && m_resourceProvider->currentPreset()->name() != preset->name()) {
- QString compositeOp = preset->settings()->getString("CompositeOp");
- updateCompositeOp(compositeOp);
- resourceSelected(preset.data());
+ ENTER_FUNCTION() << ppVar(key) << ppVar(preset);
+
+ if (preset) {
+ ENTER_FUNCTION() << ppVar(preset->settings()->paintOpCompositeOp());
+ ENTER_FUNCTION() << ppVar(preset->settings()->effectivePaintOpCompositeOp());
+ ENTER_FUNCTION() << ppVar(preset->settings()->eraserMode());
}
- /**
- * Update currently selected preset in both the popup widgets
- */
- m_presetsChooserPopup->canvasResourceChanged(preset);
- m_presetsPopup->currentPresetChanged(preset);
+ if (key == KisCanvasResourceProvider::CurrentPaintOpPreset) {
+ KisPaintOpPresetSP preset = m_viewManager->resourceProvider()->resourceManager()->resource(KisCanvasResourceProvider::CurrentPaintOpPreset).value<KisPaintOpPresetSP>();
+
+ ENTER_FUNCTION() << "preset changed" << ppVar(preset);
+
+ if (preset) {
+ QString compositeOp = preset->settings()->getString("CompositeOp");
+ updateCompositeOp(compositeOp);
+ resourceSelected(preset.data());
+ }
+
+ /**
+ * Update currently selected preset in both the popup widgets
+ */
+ m_presetsChooserPopup->canvasResourceChanged(preset);
+ m_presetsPopup->currentPresetChanged(preset);
+ }
if (key == KisCanvasResourceProvider::CurrentCompositeOp) {
+ qDebug() << "composite op changed" << ppVar(m_resourceProvider->currentCompositeOp()) << ppVar(m_currCompositeOpID);
+
if (m_resourceProvider->currentCompositeOp() != m_currCompositeOpID) {
updateCompositeOp(m_resourceProvider->currentCompositeOp());
}
dkazakov edited the content of this paste. (Show Details)May 12 2018, 12:59 PM
dkazakov changed the title of this paste from untitled to Masterwork From Distant Lands.
dkazakov updated the paste's language from autodetect to autodetect.