Логин или эл. почта:
фиксите сами. у меня не воспроизводится
Если ошибка в Кедах то и писать надо в кеды.
[19:35:07] Topic for #oxygen
Oxygen! Breathe some air! :: oxygen-project.org (out of date) :: To request new icons go to tinyurl.com/33qfzs :: See tinyurl.com/3y8j9l for style/windeco issues
[19:35:07] *** Topic for #oxygen set by ruphy at 2009-02-23 14:21:34
[19:35:34] why references to TransitionWidget is not removed from parent widget when its removed by oxygen theme. findChildren is still able to find and use them. this cause crash when we are accessing deleted widget
[19:39:27] hei hello!
[19:40:34] <bart_> hello
[19:44:09] bart_: Are you can answered me?
[19:45:20] *** rion_ekb has joined the room
[19:49:45] dritz:that might well be a bug
[19:50:38] oh you mean its deleted; but it is still in the widgets child heararchy?
[19:50:44] then its a Qt bug
[19:50:59] drizt: ^^^^^^^^^^^^
[19:51:07] (sorry I misspelled the first tile)
[19:51:17] But I might be able to add a workaroud
[19:51:35] " its deleted; but it is still in the widgets child heararchy"
[19:51:58] Qt is supposed to take care of removing widgets from parent list of children when they are destroyed
[19:52:38] *** Sho_ has left the room (Remote host closed the connection (~EHS1@kde/hein))
[19:52:39] drizt: what kde version is that?
[19:53:33] hugo: rpm -qa | grep kde
[19:55:37] mmm. I can't fix in 4.4. There will be no new release.
[19:55:44] But I can fix in trunk and 4.5
[19:55:52] and at some point you'll have to update :)
[19:56:22] hugo: ok big thank!
[19:56:25] well in fact maybe I can also fix in 4.4 in case you want to take the sources and compile manually
[19:56:35] *** Sho_ has joined the room
[19:58:10] <rion_ekb> drizt is one of developers of Psi+ he just tries to fix one of bug report. but since its not bug of Psi+ itself… you know…
[19:58:24] I don't use KDE but i develop Psi+. Recently we find that bug.
[19:58:40] <rion_ekb> =)
[19:58:58] eheh clear enough
[19:59:26] its actually a nasty bug.
[19:59:44] I might have well be bitten by it myself before without realizing.
[19:59:59] How did you figure the dangling pointer is a TransitionWidget?
[20:03:14] QList<QWidget *> list = findChildren<QWidget *>();
qDebug() << list;
for(int i = 0; i < list.size(); i++)
qDebug() << list[i];
[20:06:14] mmm. ok. But if the widget is already deleted, qDebug() << list[i] should already crash, no?
[20:07:05] no. it crushed in loop. on two iteration
[20:08:30] Oh. So you run the loop a first time and everything works,
[20:08:38] first it QLabel and second it Oxygen::TransitionWidget
[20:08:42] and you run it a second time and the second time it crashes?
[20:09:37] i start loop only one time.
[20:10:05] <rion_ekb> parent widget has to children. one of them deleted TransitionWidget
[20:10:11] <rion_ekb> drizt: right?
[20:10:15] <rion_ekb> 2
[20:10:26] yes. TransitionWidget is a child of QLabel.
[20:10:35] So if you delete QLabel, it deletes TransitionWidget
[20:10:45] and then it crashes when you deletes it again.
[20:10:57] Problem with findChildren is that its recursive.
[20:11:07] *** neverendingo_ has joined the room
[20:11:26] <rion_ekb> oh the root of evil is found =)
[20:11:30] so you basically cannot use the code above. Its asking for trouble (if I remember right)
[20:11:32] *** neverendingo has left the room (Ping timeout: 245 seconds (~neverendi@kde/www/imalchow))
[20:11:59] you can use QObject::children
[20:12:03] (which is not recursive)
[20:12:07] check on the type
[20:12:10] and delete.
Rion не прав был в том что так грубо разговаривал. Но прав ли elemc в том что написал неверную причину падение, толком не разобравшись, особенно с учетом его немалого стажа как программиста?