From 29aee8e80c7c2e4c23aa228fefe519be968f6df0 Mon Sep 17 00:00:00 2001 From: plc-user <74435298+plc-user@users.noreply.github.com> Date: Mon, 10 Feb 2025 18:33:49 +0100 Subject: [PATCH] copy-and-paste: set paste-position to meaningful values --- sources/editor/elementview.cpp | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/sources/editor/elementview.cpp b/sources/editor/elementview.cpp index 373639614..9b2bb20b4 100644 --- a/sources/editor/elementview.cpp +++ b/sources/editor/elementview.cpp @@ -336,29 +336,20 @@ ElementContent ElementView::pasteWithOffset(const QDomDocument &xml_document) { QRectF pasted_content_bounding_rect = m_scene -> boundingRectFromXml(xml_document); if (pasted_content_bounding_rect.isEmpty()) return(content_pasted); + // ok ... there is something to do for us! + int initialOffsetX = 10 + (qRound((pasted_content_bounding_rect.width())/10) * 10); + // paste copied parts with offset // copier/coller avec decalage - QRectF final_pasted_content_bounding_rect; - ++ offset_paste_count_; - if (!offset_paste_count_) { - // the pasted content was cut - start_top_left_corner_ = pasted_content_bounding_rect.topLeft(); - final_pasted_content_bounding_rect = pasted_content_bounding_rect; - } - else { - // the pasted content was copied - if (offset_paste_count_ == 1) { - start_top_left_corner_ = pasted_content_bounding_rect.topLeft(); - } else { - pasted_content_bounding_rect.moveTopLeft(start_top_left_corner_); - } + QRectF final_pasted_content_bounding_rect; + QPointF offset(initialOffsetX, 0); + ++ offset_paste_count_; // == 0 when selection was cut to clipboard + // place pasted parts right from copied selection or already pasted parts + offset.setX(initialOffsetX * offset_paste_count_); + offset.setY(0); + final_pasted_content_bounding_rect = pasted_content_bounding_rect.translated(offset); - // on applique le decalage qui convient - final_pasted_content_bounding_rect = applyMovement( - pasted_content_bounding_rect, - QETElementEditor::pasteOffset() - ); - } + start_top_left_corner_ = pasted_content_bounding_rect.topLeft(); QPointF old_start_top_left_corner = start_top_left_corner_; start_top_left_corner_ = final_pasted_content_bounding_rect.topLeft(); m_scene -> fromXml(xml_document, start_top_left_corner_, false, &content_pasted);