View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002105 | Scribus | User Interface | public | 2005-06-20 19:37 | 2005-06-24 18:44 |
Reporter | cbradney | Assigned To | cbradney | ||
Priority | high | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | P4 2.66Ghz laptop | OS | Gentoo Linux | OS Version | Up to date |
Product Version | 1.2.2cvs | ||||
Fixed in Version | 1.2.2cvs | ||||
Summary | 0002105: Deleting selected objects does not always delete all from the outline palette | ||||
Description | #0 0x081d9926 in Page::SelectItemNr (this=0x882f8f8, nr=0, draw=true) at page.cpp:6329 0000001 0x0839c545 in ScribusApp::SelectFromOutl (this=0x8432d60, Page=0, Item=0) at scribus.cpp:6558 0000002 0x0836eda3 in ScribusApp::qt_invoke (this=0x8432d60, _id=218, _o=0xbfffe1e0) at scribus.moc:990 0000003 0xb79a56ed in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 0000004 0x083056c0 in Tree::SelectElement (this=0x864e108, t0=0, t1=0) at tree.moc:202 0000005 0x08308957 in Tree::slotSelect (this=0x864e108, ite=0x8ac7ef8) at tree.cpp:367 0000006 0x08305a24 in Tree::qt_invoke (this=0x864e108, _id=59, _o=0xbfffe300) at tree.moc:223 0000007 0xb79a56ed in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 0000008 0xb7cd61b8 in QListView::selectionChanged () from /usr/qt/3/lib/libqt-mt.so.3 0000009 0xb7a84f9b in QListView::setCurrentItem () from /usr/qt/3/lib/libqt-mt.so.3 0000010 0xb7a80ef4 in QListView::contentsMousePressEventEx () from /usr/qt/3/lib/libqt-mt.so.3 0000011 0xb7a80b24 in QListView::contentsMousePressEvent () from /usr/qt/3/lib/libqt-mt.so.3 0000012 0xb7ab054c in QScrollView::viewportMousePressEvent () from /usr/qt/3/lib/libqt-mt.so.3 0000013 0xb7aaff12 in QScrollView::eventFilter () from /usr/qt/3/lib/libqt-mt.so.3 0000014 0xb7a80654 in QListView::eventFilter () from /usr/qt/3/lib/libqt-mt.so.3 0000015 0xb79a317f in QObject::activate_filters () from /usr/qt/3/lib/libqt-mt.so.3 0000016 0xb79a30db in QObject::event () from /usr/qt/3/lib/libqt-mt.so.3 0000017 0xb79d91f7 in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3 0000018 0xb794da10 in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 0000019 0xb794ced7 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 0000020 0xb78e56d4 in QETWidget::translateMouseEvent () from /usr/qt/3/lib/libqt-mt.so.3 0000021 0xb78e3390 in QApplication::x11ProcessEvent () from /usr/qt/3/lib/libqt-mt.so.3 0000022 0xb78f9e19 in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3 0000023 0xb795ef04 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3 0000024 0xb795edc6 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3 0000025 0xb794dc1b in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3 0000026 0x083b50d3 in mainGui (argc=1, argv=0xbffff154) at main.cpp:220 0000027 0x083b49e8 in main (argc=1, argv=0xbffff154) at main.cpp:126 | ||||
Steps To Reproduce | Method 1: Make a new document. Insert a text frame. Run the attached markers.py. Select all frame items created. Hit delete to nuke them. Open outline palette. Go to page 1, there should be an item left there. Select it. Sig11. Method 2: Create a new, blank doc Create any object (eg a line) Create another object (eg a line) Group the two objects you created Deselect the group Select the group Delete the group Open outline palette. Go to page 1, there should be an item left there. Select it. Sig11. Note that the ORDER of selection when grouping the objects is important. Which object in the group you click on when re-selecting the group to delete it seems to be important too. I haven't isolated the exact relationship yet. I have been able to confirm that: Create A Create B Deselect then select B (or keep selected after creation) Select A Group selection Deselect all Click on A Press delete key will trigger the bug. If you click on B to delete the group, the bug doesn't seem to be triggered. UPDATE: You don't need groups to reproduce the bug either. It's selection order. Create A Create B Deselect all Select A Select B Press delete key triggers the bug, but: Create A Create B Deselect all Select B Select A Press delete key does not. | ||||
Tags | No tags attached. | ||||
Patch | |||||
child of | 0003812 | acknowledged | Metabug: Grouped objects |
2005-06-20 19:37
|
|
|
Doesnt happen in 1.2.1, and tree.cpp has not changed in any way in relation to this. |
|
page.cpp in 1.2.1 from line 8737: if (delItems.at(0)->isBookmark) emit DelBM(SelItem.at(0)); if (anz == 1) doku->UnData.Item = Items.take(delItems.at(0)->ItemNr); else { b = Items.take(delItems.at(0)->ItemNr); delete b; } emit DelObj(PageNr, delItems.at(0)->ItemNr); delItems.removeFirst(); |
|
page.cpp in 1.2.2cvs from line 8787: if (b->isBookmark) emit DelBM(b); emit DelObj(PageNr, b->ItemNr); if (anz == 1) doku->UnData.Item = Items.take(b->ItemNr); else Items.remove(b); delItems.removeFirst(); |
|
The issue relates to the remove(b) vs the older code. The older code works but doesnt remove the items from the canvas, but they arent in the doc anymore. |
|
CR/FS.. feel free to fix, either of you. :) |
|
The script here is a reliable way to reproduce the problem, but is not the cause of the problem. To reproduce manually: Create a new, blank doc Draw a line Draw another line Group the lines Delete the group Note that one line is still shown in the outline palette. Select it. *splat*. |
|
Reminder sent to: fschmid Franz, I've managed to narrow this down to a specific reproducable fault in the core code and provide simple steps to reproduce it, including what to change in the steps to make it stop happening. I'll go digging for the cause this evening or tomorrow; it looks like it should be in the handling of deleting multiple selections. I figured you might be be able to tell where it is easily based on this updated info, so I thought it worth asking you about it. Ideas? |
|
Reproducing it like above with two grouped lines still ends up in the following: keyPressEvent in scribus.cpp, case Key_Delete: , then into page::DeleteItem(), which still results in the remove(b) code that I have pasted being run at line 8793. |
|
Not yet convinced the delete code is wrong, the crash ends up being caused by pointers to deleted items in tree.cpp AFAICT. |
Date Modified | Username | Field | Change |
---|---|---|---|
2005-06-20 19:37 | cbradney | New Issue | |
2005-06-20 19:37 | cbradney | File Added: markers.py | |
2005-06-20 19:37 | cbradney | Reported by | => rapsure |
2005-06-20 19:37 | cbradney | Reported where | => IRC |
2005-06-20 19:38 | cbradney | Severity | minor => crash |
2005-06-20 21:20 | cbradney | Note Added: 0005078 | |
2005-06-20 21:21 | cbradney | Note Edited: 0005078 | |
2005-06-20 21:56 | cbradney | Note Added: 0005079 | |
2005-06-20 21:58 | cbradney | Note Added: 0005080 | |
2005-06-20 22:02 | cbradney | Note Added: 0005081 | |
2005-06-20 22:02 | cbradney | Assigned To | fschmid => ringerc |
2005-06-20 22:03 | cbradney | Note Added: 0005082 | |
2005-06-23 18:07 | cbradney | Priority | normal => high |
2005-06-24 06:26 |
|
Note Added: 0005108 | |
2005-06-24 06:27 |
|
Note Edited: 0005108 | |
2005-06-24 06:48 |
|
Steps to Reproduce Updated | |
2005-06-24 06:54 |
|
Steps to Reproduce Updated | |
2005-06-24 06:57 |
|
Note Added: 0005109 | |
2005-06-24 08:16 | cbradney | Note Added: 0005111 | |
2005-06-24 11:58 | cbradney | Note Added: 0005113 | |
2005-06-24 13:22 | cbradney | Assigned To | ringerc => cbradney |
2005-06-24 13:26 | cbradney | Status | assigned => resolved |
2005-06-24 13:26 | cbradney | Fixed in Version | => 1.2.2cvs |
2005-06-24 13:26 | cbradney | Resolution | open => fixed |
2005-06-24 18:34 | cbradney | Category | - => User Interface |
2005-06-24 18:44 | cbradney | Status | resolved => closed |
2006-01-29 20:57 |
|
Relationship added | parent of 0003095 |
2006-01-29 22:18 |
|
Relationship deleted | parent of 0003095 |
2006-05-13 17:15 | christoph_s | Relationship added | child of 0003812 |