Accelerator problems in KDevelop-2.1.3+Qt3+KDE-3
Jens Zurheide
jens.zurheide at gmx.de
Sun Aug 4 17:17:02 UTC 2002
Hi,
I am currently trying to hunt down an accelerator key problem of
KDevelop-2.1.3 (cvs) that I believe has its root in the libraries (qt
and/or kde-3) because it is only present in the version for KDE-3.1 (maybe
KDE-3 but disk space is limited) but not in the version for KDE-2.
Now my first question: does anybody see the problem that the "Repeat
search"-key (default: F3) does not work in KDE-3.1 but works fine in
KDE-2.x? The funny thing is that "Repeat backward search" (default:
Shift+F3) works for both setups.
My current setup: enhanced SuSE 7.3 (upgraded to XFree-4.2, QT (QT-copy,
3.0.6 beta), KDE-3.1cvs).
One possible reason I have found is a strange/unsafe conversion in
kernel/qaccelcpp:488 where
488 QWidget* w = (QWidget*) parent();
489 while ( w && !w->testWFlags( WSubWindow ) )
gdb reports
(gdb) whatis this => type = QAccel *
(gdb) print *(QAccel *)this => displays somewhere 'objname = 0x48be063c
"KActionCollection-KAccel"'
and
(gdb) whatis this->parent() ) => type = QObject *
which is correct but
(gdb) print this->parent()->className() => "KActionCollection"
Maybe there should be a test like parent()->inherits( "QWidget" ) before
performing the cast or a dynamic_cast<QWidget *>( parent() ) (which of
course needs the handling of the resulting NULL-pointer).
For the record: valgrind reports "Invalid read of size 4" in
kernel/qwidget.h:674 (I hope, this is not the intended behaviour ;) ).
Even after looking some time at the kdelibs sources for the accelerators I
don't know from where QAccel gets a parent of type KActionCollection.
Who can help me solving this problem or should I just switch to Gideon? But
if the problem is really inside the libraries it would be good to fix it
there...
Best regards,
Jens
PS: If you need a backtrace, just let me know
More information about the KDevelop-devel
mailing list