View Issue Details

IDProjectCategoryView StatusLast Update
0002105ScribusUser Interfacepublic2005-06-24 18:44
Reportercbradney Assigned Tocbradney  
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformP4 2.66Ghz laptopOSGentoo LinuxOS VersionUp to date
Product Version1.2.2cvs 
Fixed in Version1.2.2cvs 
Summary0002105: 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 ReproduceMethod 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.
TagsNo tags attached.
Patch

Relationships

child of 0003812 acknowledged Metabug: Grouped objects 

Activities

2005-06-20 19:37

 

markers.py (1,941 bytes)

cbradney

2005-06-20 21:20

administrator   ~0005078

Last edited: 2005-06-20 21:21

Doesnt happen in 1.2.1, and tree.cpp has not changed in any way in relation to this.

cbradney

2005-06-20 21:56

administrator   ~0005079

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();

cbradney

2005-06-20 21:58

administrator   ~0005080

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();

cbradney

2005-06-20 22:02

administrator   ~0005081

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.

cbradney

2005-06-20 22:03

administrator   ~0005082

CR/FS.. feel free to fix, either of you. :)

ringerc

2005-06-24 06:26

reporter   ~0005108

Last edited: 2005-06-24 06:27

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*.

ringerc

2005-06-24 06:57

reporter   ~0005109

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?

cbradney

2005-06-24 08:16

administrator   ~0005111

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.

cbradney

2005-06-24 11:58

administrator   ~0005113

Not yet convinced the delete code is wrong, the crash ends up being caused by pointers to deleted items in tree.cpp AFAICT.

Issue History

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 ringerc Note Added: 0005108
2005-06-24 06:27 ringerc Note Edited: 0005108
2005-06-24 06:48 ringerc Steps to Reproduce Updated
2005-06-24 06:54 ringerc Steps to Reproduce Updated
2005-06-24 06:57 ringerc 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 plinnell Relationship added parent of 0003095
2006-01-29 22:18 plinnell Relationship deleted parent of 0003095
2006-05-13 17:15 christoph_s Relationship added child of 0003812