mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-09-30 23:04:13 +02:00
Add an adjustable background frame to the element editor
Discussion #604. Revives #643, closed on 2026-09-10 only to clear the
review backlog, ported onto current master.
The element editor shows an infinite grid, with nothing to judge how
big a symbol will look on a real folio. Affichage > "Afficher le cadre
de fond" draws a dashed blue rectangle centred on the element's origin
(the hotspot), sized by default to the drawing area of a default folio
(BorderProperties: columns x column width by rows x row height,
1020 x 640). Affichage > "Taille du cadre de fond..." sets another
size. Both persist in QSettings (elementeditor/background_frame_*).
The frame is drawn in ElementView::drawBackground(), so it is not part
of the scene: it is never written to the .elmt file and never in the
SVG export (scene render).
Changed from #643: resolved against master's new-style connects and
the hotspot visibility switch; the toggle gets the unused
document-print-frame theme icon (light and dark), without which it
showed as a text button in the icon toolbar; the size action is
registered with ShortcutManager like the toggle.
(cherry picked from commit a245411f9f)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -606,6 +606,19 @@ void ElementView::drawBackground(QPainter *p, const QRectF &r) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m_scene->backgroundFrameVisible()) {
|
||||
const QSizeF frame_size = m_scene->backgroundFrameSize();
|
||||
const QRectF frame_rect(-frame_size.width() / 2.0, -frame_size.height() / 2.0,
|
||||
frame_size.width(), frame_size.height());
|
||||
QPen frame_pen(Qt::blue);
|
||||
frame_pen.setCosmetic(true);
|
||||
frame_pen.setStyle(Qt::DashLine);
|
||||
p -> setPen(frame_pen);
|
||||
p -> setBrush(Qt::NoBrush);
|
||||
p -> drawRect(frame_rect);
|
||||
}
|
||||
|
||||
p -> restore();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user