Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 11 additions & 28 deletions mods/custom-notebook-templates/src/eraser_menu.cc
Original file line number Diff line number Diff line change
Expand Up @@ -349,11 +349,10 @@ void afterActiveTool(
widgetObject,
desiredPolicy,
hardware ? "hardware-eraser" : "tool-activation");
bool const deferred = queueActiveEraserReplay(
queueActiveEraserReplay(
state,
widgetObject,
stateDependencies);
bool uiUpdated = false;
QObject* const controller = state.liveSizeController.data();
if (hardware && engineUpdated && controller
&& firmware.setBrushSizeIndexOriginal
Expand All @@ -365,24 +364,12 @@ void afterActiveTool(
// BrushButtons but emits no toolSelected signal, so this cannot
// recurse into setToolTheme or mutate the engine a second time.
firmware.setBrushSizeIndexOriginal(controller, configuredIndex);
uiUpdated = true;
}
trace(QLatin1String("eraser-state: activation synchronized source=")
+ (hardware ? QLatin1String("hardware")
: QLatin1String("hooked"))
+ QLatin1String(" tool=") + QString::number(tool)
+ QLatin1String(" policy=") + QString::number(desiredPolicy)
+ QLatin1String(" index=")
+ QString::number(configuredIndex)
+ QLatin1String(" engine=")
+ (engineUpdated ? QLatin1String("applied")
: QLatin1String("unavailable"))
+ QLatin1String(" popup=")
+ (uiUpdated ? QLatin1String("updated")
: QLatin1String("unchanged"))
+ QLatin1String(" deferred=")
+ (deferred ? QLatin1String("queued")
: QLatin1String("coalesced-or-unavailable")));
if (!engineUpdated) {
trace(QLatin1String(
"eraser-state: immediate activation replay unavailable policy=")
+ QString::number(desiredPolicy));
}
} catch (...) {
trace("eraser-state: activation synchronization threw; last successful state preserved");
}
Expand Down Expand Up @@ -422,17 +409,14 @@ bool queueActiveEraserReplay(
object,
policy,
"tool-activation-deferred");
trace(QLatin1String(
"eraser-state: deferred replay policy=")
+ QString::number(policy)
+ QLatin1String(" result=")
+ (applied ? QLatin1String("applied")
: QLatin1String("unavailable")));
if (!applied) {
trace(QLatin1String(
"eraser-state: deferred replay unavailable policy=")
+ QString::number(policy));
}
} catch (...) {
trace("eraser-state: deferred replay threw; stock state preserved");
}
} else {
trace("eraser-state: deferred replay skipped; active tool is not eraser");
}
}
// Retain the coalescing guard through the complete replay so
Expand All @@ -444,7 +428,6 @@ bool queueActiveEraserReplay(
guardedTimer->deleteLater();
});
timer->start(0);
trace("eraser-state: deferred replay queued");
return true;
} catch (...) {
widget->setProperty(pendingProperty, false);
Expand Down
73 changes: 17 additions & 56 deletions mods/custom-notebook-templates/src/layers_eraser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -875,7 +875,6 @@ static bool applyConfigurationToExactEraser(
}

try {
float const beforeRadius = firmwareApi(dependencies).eraserRadius(tool);
int const beforePolicy = firmwareApi(dependencies).eraserPolicy ? firmwareApi(dependencies).eraserPolicy(tool) : -1;
std::string const beforeLayer = restrictedToolLayer(dependencies, tool);
firmwareApi(dependencies).eraserSetRadius(tool, desiredRadius);
Expand All @@ -892,54 +891,21 @@ static bool applyConfigurationToExactEraser(
: beforePolicy == afterPolicy;
bool const layerPreserved = beforeLayer == afterLayer;
bool const radiusApplied = difference < 0.001f;
if (applyPolicy) {
trace(QLatin1String("eraser-state: apply reason=")
+ QLatin1String(reason)
+ QLatin1String(" source=") + QLatin1String(source)
+ QLatin1String(" class=") + QLatin1String(eraserClass)
+ QLatin1String(" before-policy=")
+ QString::number(beforePolicy)
+ QLatin1String(" requested-policy=")
+ QString::number(desiredPolicy)
+ QLatin1String(" after-policy=")
+ QString::number(afterPolicy)
+ QLatin1String(" before-radius=")
+ QString::number(beforeRadius, 'f', 3)
+ QLatin1String(" requested-radius=")
+ QString::number(desiredRadius, 'f', 3)
+ QLatin1String(" after-radius=")
+ QString::number(afterRadius, 'f', 3)
+ QLatin1String(" before-layer=")
+ QString::fromUtf8(
beforeLayer.data(), static_cast<int>(beforeLayer.size()))
+ QLatin1String(" after-layer=")
+ QString::fromUtf8(
afterLayer.data(), static_cast<int>(afterLayer.size()))
+ QLatin1String(" verified=")
+ (policyVerified && radiusApplied && layerPreserved
? QLatin1String("yes") : QLatin1String("no")));
if (!layerPreserved)
trace("eraser-state: setters changed restricted layer unexpectedly");
} else {
trace(QLatin1String("eraser-size: apply reason=")
if (!radiusApplied || !policyVerified || !layerPreserved) {
trace(QLatin1String(applyPolicy ? "eraser-state" : "eraser-size")
+ QLatin1String(": verification failed reason=")
+ QLatin1String(reason)
+ QLatin1String(" source=") + QLatin1String(source)
+ QLatin1String(" class=") + QLatin1String(eraserClass)
+ QLatin1String(" before=")
+ QString::number(beforeRadius, 'f', 3)
+ QLatin1String(" requested=")
+ QString::number(desiredRadius, 'f', 3)
+ QLatin1String(" after=")
+ QString::number(afterRadius, 'f', 3)
+ QLatin1String(" policy=") + QString::number(afterPolicy)
+ QLatin1String(" radius=")
+ (radiusApplied ? QLatin1String("ok")
: QLatin1String("mismatch"))
+ QLatin1String(" policy=")
+ (policyVerified ? QLatin1String("ok")
: QLatin1String("mismatch"))
+ QLatin1String(" layer=")
+ QString::fromUtf8(
afterLayer.data(), static_cast<int>(afterLayer.size()))
+ QLatin1String(" policy-layer-preserved=")
+ (policyVerified && layerPreserved
? QLatin1String("yes") : QLatin1String("no")));
if (!policyVerified || !layerPreserved)
trace("eraser-size: setter changed policy/layer unexpectedly");
+ (layerPreserved ? QLatin1String("preserved")
: QLatin1String("changed")));
}
return radiusApplied && policyVerified && layerPreserved;
} catch (...) {
Expand Down Expand Up @@ -1131,20 +1097,15 @@ static bool applyConfiguredEraserConfigurationForWidgetImpl(
}

trace(QLatin1String(applyPolicy ? "eraser-state" : "eraser-size")
+ QLatin1String(": fanout reason=")
+ QLatin1String(": replay reason=")
+ QLatin1String(reason)
+ (applyPolicy
? QLatin1String(" policy=") + QString::number(desiredPolicy)
: QString())
+ QLatin1String(" index=") + QString::number(index)
+ QLatin1String(" ratio=")
+ QString::number(firmwarePins(dependencies).eraserSizeRatios[index], 'f', 2)
+ QLatin1String(" line-gap=")
+ QString::number(lineGap, 'f', 3)
+ QLatin1String(" radius=")
+ QString::number(radius, 'f', 3)
+ QLatin1String(" exact=") + QString::number(exactCount)
+ QLatin1String(" applied=") + QString::number(appliedCount));
+ QLatin1String(" radius=") + QString::number(radius, 'f', 3)
+ QLatin1String(" tools=") + QString::number(appliedCount)
+ QLatin1Char('/') + QString::number(exactCount));
return exactCount > 0 && appliedCount == exactCount;
} catch (...) {
trace(QLatin1String(applyPolicy ? "eraser-state" : "eraser-size")
Expand Down Expand Up @@ -1242,7 +1203,7 @@ static bool armLayerAwareDrawingEraser(
"layers: diagram eraser custom-layer core-only hook unavailable"));
return false;
}
layerState(dependencies).diagramEraserObserverTraceBudget = 60;
layerState(dependencies).diagramEraserObserverTraceBudget = 6;
}
if (currentVptr == stockVptr)
*reinterpret_cast<void**>(tool) = layerVptr;
Expand Down Expand Up @@ -1398,7 +1359,7 @@ static bool armLayerAwareDrawingErasersImpl(
}

if (armedCount > 0)
layerState(dependencies).eraserTraceBudget = 8;
layerState(dependencies).eraserTraceBudget = 2;
bool const diagramRoutingReady = diagramEraserCount == 0
|| diagramPenRestrictedCount > 0;
trace(QLatin1String("layers: eraser adapters backends=")
Expand Down
Loading