[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 71391] New: KMdiMainFrm resize problem and crash
From: Ravikiran Rajagopal <ravi () kde ! org>
Date: 2003-12-28 20:52:00
[Download RAW message or body]
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
http://bugs.kde.org/show_bug.cgi?id=71391
Summary: KMdiMainFrm resize problem and crash
Product: kdelibs
Version: unspecified
Platform: Compiled Sources
OS/Version: Linux
Status: NEW
Severity: crash
Priority: NOR
Component: kmdi
AssignedTo: kwrite-devel@kde.org
ReportedBy: ravi@kde.org
Version: (using KDE Devel)
Installed from: Compiled sources
Compiler: gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1) Stock Fedora \
Core 1
OS: Linux
In the following program, when there is only one KDockWidget, the associated \
QListView spans the whole child window. However, when there are multiple \
KDockWidgets, the associated KDockTabGroup does not span the whole child window. Try \
compiling with #if 0 and #if 1 and notice the difference when you run the resulting \
executables. I think the problem may be in line 1126 of kdockwidget.cpp, but I am not \
sure: newDock->setGeometry(geom);
The second issue is that the program crashes on exit. There are several messages on \
console about QApplication finding an unexpected null receiver whenever we switch \
tabs. I think there is a dangling pointer in kmdi.
This might be related to 67270 but I highly doubt it. Here is the test program:
#include <kaboutdata.h>
#include <kapplication.h>
#include <kcmdlineargs.h>
#include <kdockwidget.h>
#include <kiconloader.h>
#include <kmdimainfrm.h>
#include <qlistview.h>
int main( int argc, char **argv )
{
KAboutData aboutData("test", 0, "0.0" );
aboutData.addAuthor("Random Guy" );
KCmdLineArgs::init(argc,argv,&aboutData);
KApplication a;
KMdiMainFrm h( 0, "hbox", KMdi::ChildframeMode );
// Add the dockwidget as a window.
KDockWidget *w1 = h.createDockWidget( "First Widget", UserIcon( "go" ), 0, "A1", \
"A2" ); QListView *l = new QListView;
w1->setWidget( l );
h.addWindow( h.createWrapper( w1, "L", "L" ) );
#if 1
// Second dockwidget.
KDockWidget *w2 = h.createDockWidget( "Second Widget", UserIcon( "go" ), 0, "A1", \
"A2" ); l = new QListView;
w2->setWidget( l );
w2->manualDock( w1, KDockWidget::DockCenter );
#endif
a.setMainWidget( &h );
h.show();
return a.exec();
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic