summaryrefslogtreecommitdiffstats
path: root/scribus/canvasmode_create.cpp
diff options
context:
space:
mode:
authorjghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>2012-03-06 21:36:48 +0000
committerjghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>2012-03-06 21:36:48 +0000
commitd539daa3461f8f8c7bc15ef7422b6ece65c60a27 (patch)
treed6100a68ea67a897418180eb446ea9386b213120 /scribus/canvasmode_create.cpp
parentaab0967bb981583c227e7ef53a3c45f0d65c0692 (diff)
downloadscribus-d539daa3461f8f8c7bc15ef7422b6ece65c60a27.tar.gz
scribus-d539daa3461f8f8c7bc15ef7422b6ece65c60a27.tar.xz
scribus-d539daa3461f8f8c7bc15ef7422b6ece65c60a27.zip
#10618: crash on ungrouping table
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17359 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/canvasmode_create.cpp')
-rw-r--r--scribus/canvasmode_create.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/scribus/canvasmode_create.cpp b/scribus/canvasmode_create.cpp
index db5aa05..3c1ddc7 100644
--- a/scribus/canvasmode_create.cpp
+++ b/scribus/canvasmode_create.cpp
@@ -464,11 +464,25 @@ void CreateMode::selectPage(QMouseEvent *m)
void CreateMode::SetupDrawNoResize(int nr)
{
PageItem* currItem = m_doc->Items->at(nr);
- // currItem->setFont(Doc->toolSettings.defFont);
- // currItem->setFontSize(Doc->toolSettings.defSize);
m_doc->m_Selection->delaySignalsOn();
m_doc->m_Selection->clear();
m_doc->m_Selection->addItem(currItem);
+ // #10618 : Select table items if needed otherwise
+ // a crash will be triggered if user tries to ungroup
+ if (currItem->Groups.count() > 0)
+ {
+ for (int i = 0; i < m_doc->Items->count(); ++i)
+ {
+ PageItem* item = m_doc->Items->at(i);
+ if (item->Groups.count() == 0)
+ continue;
+ if (item->Groups.top() != currItem->Groups.top())
+ continue;
+ if (item->ItemNr != currItem->ItemNr)
+ m_doc->m_Selection->addItem(item, true);
+ item->isSingleSel = false;
+ }
+ }
m_doc->m_Selection->delaySignalsOff();
// emit DocChanged();
currItem->Sizing = false /*currItem->asLine() ? false : true*/;