Bug 70627

Summary: deleteToolWindow method not implemented in mainwindow.cpp
Product: [Applications] kdevelop Reporter: Mike Perik <michaelperik>
Component: generalAssignee: KDevelop Developers <kdevelop-devel>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Mike Perik 2003-12-16 18:40:03 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc version 2.96 20000731 (Red Hat Linux 7.3 
OS:          Linux

I'm attempting to compile the KDE_3_2_0_BETA_2 source.

The KMdiMainFrm class declares the functions

   virtual void deleteToolWindow( QWidget* pWnd);
   virtual void deleteToolWindow( KMdiToolViewAccessor *accessor);

and the MainWindow class inherits the KMdiMainFrm class but does not implement them even though it is called in the removeView(QWidget *view) method.
Comment 1 Jens Dagerbo 2003-12-16 22:28:27 UTC
Hmm.. is this a compile error you are reporting? If so, don't do it at b.k.o, do it on the mailinglist and please provide the error output.

(If you are trying to compile the KDevelop3 beta2 sources on KDE-3.1/3.0 I think there was some problems, since fixed in CVS.)
Comment 2 Mike Perik 2003-12-16 23:13:25 UTC
I'm building against the KDE_3_2_0_BETA_2 tree both of kdevelop and basic kde installation.  It still doesn't seem like a compiler bug to be calling a method that is virtual but not implemented.
Comment 3 Mike Perik 2003-12-16 23:14:49 UTC
Forgot the compile error:

Making all in profiles
make[1]: Entering directory `/home/mrp/kde3.1/source/kdevelop/src/profiles'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/mrp/kde3.1/source/kdevelop/src/profiles'
make[1]: Entering directory `/home/mrp/kde3.1/source/kdevelop/src'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../lib/interfaces -I../lib/util -I../lib -I../lib/qextmdi -I../lib/structure -I/home/mrp/kde/include -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  -D_REENTRANT  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -MT mainwindow.o -MD -MP -MF ".deps/mainwindow.Tpo" \
  -c -o mainwindow.o `test -f 'mainwindow.cpp' || echo './'`mainwindow.cpp; \
then mv -f ".deps/mainwindow.Tpo" ".deps/mainwindow.Po"; \
else rm -f ".deps/mainwindow.Tpo"; exit 1; \
fi
mainwindow.cpp:208:2: warning: #warning this crashes in ideal mode, looks like there are dangling pointers on opening another project
mainwindow.cpp: In method `void MainWindow::embedSelectView (QWidget *,
const QString &, const QString &)':
mainwindow.cpp:488: warning: unused variable `KMdiToolViewAccessor *tmp
'
mainwindow.cpp: In method `void MainWindow::embedSelectViewRight
(QWidget *, const QString &, const QString &)':
mainwindow.cpp:520: warning: unused variable `KMdiToolViewAccessor *tmp
'
mainwindow.cpp: In method `void MainWindow::embedOutputView (QWidget *,
const QString &, const QString &)':
mainwindow.cpp:536: warning: unused variable `KMdiToolViewAccessor *tmp
'
mainwindow.cpp: In method `void MainWindow::removeView (QWidget *)':
mainwindow.cpp:605: `deleteToolWindow' undeclared (first use this
function)
mainwindow.cpp:605: (Each undeclared identifier is reported only once
for each function it appears in.)
make[1]: *** [mainwindow.o] Error 1
make[1]: Leaving directory `/home/mrp/kde3.1/source/kdevelop/src'
make: *** [all-recursive] Error 1
Comment 4 Jens Dagerbo 2003-12-16 23:36:14 UTC
Well.. I never meant to suggest that it was a "compiler bug" (but seeing how you're using "2.96" I can see how you must have run into that suggestion before..).

It is not an error not to reimplement a virtual method if the existing method is sufficient, and it sure isn't the cause for the compile error.

Actually, I have a hard time seeing how the compiler manages NOT to know of a method declared in the base class. Perhaps this is a compiler bug after all...

In either case, there is nothing we can do to retroactively fix the tagged sources, which is part of why it makes very little sense to report compile errors to the bug system. They should go to the mailinglist.

My only other suggestion is for you to try CVS HEAD instead of the beta tag, since you appear to be using CVS anyway. Good luck.

Closing.