14.5: one View › Snap for all snapping

This commit is contained in:
ZacharyZhang-NY committed 2026-10-11 04:24:36 -04:00
1 parent dea7346a7c
commit 1289a6c790
14 files changed
+33 -43

No files matched your search

+4 -4
View File
@@ -154,7 +154,7 @@ SnapGuides EditorSession::transformSnapTargets(const QSet<QUuid> &moving) const
// `draft` nudged onto a nearby edge or middle, within `tolerance`.
LayerTransform EditorSession::snappedMove(const LayerTransform &draft, const QSet<QUuid> &moving, double tolerance)
{
if (!m_snappingEnabled) {
if (!snappingEnabled()) {
snapGuides = {};
return draft;
}
@@ -172,7 +172,7 @@ LayerTransform EditorSession::snappedMove(const LayerTransform &draft, const QSe
QPointF EditorSession::snappedResizePoint(QPointF point, const TransformDrag &drag, bool proportional, const QSet<QUuid> &moving,
double tolerance, const std::function<LayerTransform(QPointF)> &update)
{
if (!m_snappingEnabled || drag.mode.kind != TransformDrag::Kind::resize || drag.original.radians() != 0) {
if (!snappingEnabled() || drag.mode.kind != TransformDrag::Kind::resize || drag.original.radians() != 0) {
snapGuides = {};
return point;
}
@@ -228,7 +228,7 @@ SnapGuides EditorSession::cropSnapTargets() const
QPointF EditorSession::snappedPoint(QPointF point, double tolerance)
{
if (!m_snappingEnabled) {
if (!snappingEnabled()) {
snapGuides = {};
return point;
}
@@ -248,7 +248,7 @@ QPointF EditorSession::snappedPoint(QPointF point, double tolerance)
QSizeF EditorSession::snappedSelectionOffset(QSizeF offset, double tolerance, bool horizontal, bool vertical)
{
if (!m_snappingEnabled || !m_selectionMoveOrigin) {
if (!snappingEnabled() || !m_selectionMoveOrigin) {
snapGuides = {};
return offset;
}
-8
View File
@@ -368,14 +368,6 @@ void EditorSession::setShowsPixelGrid(bool shows)
notify();
}
void EditorSession::setSnappingEnabled(bool enabled)
{
m_snappingEnabled = enabled;
if (!enabled)
snapGuides = {};
notify();
}
void EditorSession::setCropRect(std::optional<QRectF> rect)
{
if (std::exchange(m_cropRect, rect) != rect)
+2 -4
View File
@@ -243,9 +243,8 @@ public:
// The View menu's grid, shown from 800%.
bool showsPixelGrid() const { return m_showsPixelGrid; }
void setShowsPixelGrid(bool shows);
// View > Snap: moves and crops line up with edges.
bool snappingEnabled() const { return m_snappingEnabled; }
void setSnappingEnabled(bool enabled);
// Swift's alias of View › Snap: moves, crops, drawing.
bool snappingEnabled() const { return m_snapEnabled; }
// The Eyedropper's ring: the sampled colour over the original.
bool showsSampleRing() const { return m_showsSampleRing; }
void setShowsSampleRing(bool shows);
@@ -345,7 +344,6 @@ private:
std::optional<QUuid> m_renamingLayerID;
std::optional<QString> m_projectPath;
bool m_showsPixelGrid = ToolDefaults::boolean(QStringLiteral("pixelGrid"), true);
bool m_snappingEnabled = true;
// The layout grid starts off; guides show; rulers hide.
bool m_showsGrid = ToolDefaults::boolean(QStringLiteral("grid"), false);
LayoutGrid m_layoutGrid = LayoutGrid::stored();
+2
View File
@@ -220,6 +220,8 @@ void EditorSession::setSnapEnabled(bool enabled)
{
m_snapEnabled = enabled;
ToolDefaults::set(enabled, QStringLiteral("snap"));
if (!enabled)
snapGuides = {};
notify();
}