View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0012459 | Scribus | Undo/Redo | public | 2014-07-01 13:50 | 2015-03-03 15:49 |
| Reporter | FirasH | Assigned To | cbradney | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | x86_64 | OS | openSUSE | OS Version | 13.1 |
| Product Version | 1.5.0svn | ||||
| Target Version | 1.5.0 | Fixed in Version | 1.4.6.svn | ||
| Summary | 0012459: Undo/Redo does not restore the correct position using Flip Horizontal/Vertical | ||||
| Description | Undo/Redo does not restore the correct position using Flip Horizontal/Vertical. | ||||
| Steps To Reproduce | 0) Create a new document 1) Insert 2 items (example: Text Frames with some text) Do not create the items with the same size or position. 2) Select the 2 items and Properties > X,Y,Z > Flip Horizontal/Vertical 3) Undo step 2 The text is flipped back, but not the position of the 2 Text Frames. Undo/Redo does not restore the previous position. The position can be restored pressing again on Flip Horizontal/Vertical. | ||||
| Additional Information | Issue present on: Scribus 1.4.5.svn (19295) Scribus 1.5.0.svn (19302) Screencast: https://www.dropbox.com/s/pegmfdpia81ao7c/12459.mp4 | ||||
| Tags | No tags attached. | ||||
| Attached Files | patch.diff (1,942 bytes)
diff --git a/scribus/pageitem_textframe.cpp b/scribus/pageitem_textframe.cpp
index 6c8046c..2fe371a 100644
--- a/scribus/pageitem_textframe.cpp
+++ b/scribus/pageitem_textframe.cpp
@@ -4831,7 +4831,7 @@ void PageItem_TextFrame::deleteSelectedTextFromFrame(/*bool findNotes*/)
//delete text
for (int i=start; i <= stop; ++i)
{
- Mark* mark = i < itemText.length() && itemText.hasMark(i)? itemText.mark(i) : NULL;
+ Mark* mark = (i < itemText.length() && itemText.hasMark(i))? itemText.mark(i) : NULL;
const CharStyle& curParent = itemText.charStyle(i);
if (i==stop || !curParent.equiv(lastParent) || (mark!=NULL && mark->isType(MARKNoteFrameType)))
{
@@ -4927,7 +4927,7 @@ void PageItem_TextFrame::deleteSelectedTextFromFrame(/*bool findNotes*/)
}
}
else //remove marks without undo
- marksNum =removeMarksFromText(false);
+ marksNum = removeMarksFromText(false);
itemText.setCursorPosition( start );
//for sure text is still selected
itemText.select(start, stop - start - marksNum);
diff --git a/scribus/scribusdoc.cpp b/scribus/scribusdoc.cpp
index 0043dec..8bb933c 100644
--- a/scribus/scribusdoc.cpp
+++ b/scribus/scribusdoc.cpp
@@ -11131,7 +11131,10 @@ void ScribusDoc::itemSelection_FlipH()
{
PageItem* currItem=m_Selection->itemAt(a);
currItem->getBoundingRect(&ix, &iy, &iw, &ih);
+
+ // Twice the length to center it in the current selection
double dx = ((gw / 2.0) - ((ix - gx) + (iw - ix) / 2.0)) * 2.0;
+
if (currItem->rotation() != 0.0)
{
double ix2, iy2, iw2, ih2;
@@ -11145,7 +11148,7 @@ void ScribusDoc::itemSelection_FlipH()
currItem->flipImageH();
if (currItem->itemType() != PageItem::Line)
MirrorPolyH(currItem);
- currItem->moveBy(dx, 0, true);
+ currItem->moveBy(dx, 0, false);
currItem->GrStartX = currItem->width() - currItem->GrStartX;
currItem->GrEndX = currItem->width() - currItem->GrEndX;
if (currItem->isArc())
| ||||
| Patch | No | ||||
| child of | 0012500 | acknowledged | Metabug: Undo/Redo (1.5.x.svn) |
|
|
Confirmed 1.5svn r19342 |
|
|
I added a patch but I am not confortable anymore with scribus codebase so please tell me if I do something wrong. |
|
|
Thanks! Fixed in 1.4.6.svn (19893) and 1.5.0.svn (19896). |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2014-07-01 13:50 | FirasH | New Issue | |
| 2014-07-09 01:15 | FirasH | Relationship added | child of 0012500 |
| 2014-07-16 23:38 | Kunda | Note Added: 0032793 | |
| 2014-07-16 23:38 | Kunda | Status | new => confirmed |
| 2014-07-16 23:38 | Kunda | Target Version | => 1.5.1 |
| 2015-03-01 21:50 | Chelen | File Added: patch.diff | |
| 2015-03-01 21:50 | Chelen | Note Added: 0034629 | |
| 2015-03-02 18:50 | cbradney | Status | confirmed => resolved |
| 2015-03-02 18:50 | cbradney | Fixed in Version | => 1.5.0svn |
| 2015-03-02 18:50 | cbradney | Resolution | open => fixed |
| 2015-03-02 18:50 | cbradney | Assigned To | => cbradney |
| 2015-03-02 18:52 | cbradney | Patch | => No |
| 2015-03-02 18:52 | cbradney | Target Version | 1.5.1 => 1.5.0 |
| 2015-03-02 18:54 | cbradney | Fixed in Version | 1.5.0svn => 1.4.6.svn |
| 2015-03-03 15:49 | FirasH | Note Added: 0034633 | |
| 2015-03-03 15:49 | FirasH | Status | resolved => closed |