Summary: | program crashes when closeing a tab | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Radek Kiczko <samael> |
Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aacid, neoneurone, sibskull, umbrello-devel |
Priority: | NOR | ||
Version: | 1.4 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Radek Kiczko
2005-04-03 23:11:52 UTC
Umbrello crases... 1.4, 1.4.1 and 1.5 from 2005-04-22 (CVS) Flash video screen captures with vnc2swf. http://documents.dhs.net.ru/Umbrello_crashes.htm OS: FreeBSD 5.4-RC2 X.Org 6.8.2 KDE 3.4.0 It doesn't crash for me. Could you try again with "Settings"->"Configure Umbrello"-> "use tabbed diagrams" disabled? (Remember to exit and restart Umbrello after that else the change doesn't take effect) Thanks. Oliver Kellogg wrote: [bugs.kde.org quoted mail] Ok! Look here - http://documents.dhs.net.ru/umbrello.htm (Flash video screen captures with vnc2swf, umbrello.swf - 4.6 MB) CVS commit by okellogg: {set,get}Name(): Revert the change of umlview.h:1.66 and umlview.cpp:1.198, it spoiled non-latin1 diagram names. Thanks to Andre Woebbeking <Woebbeking_AT_onlinehome.de> for spotting the problem. CCBUG:103170 M +2 -2 umlview.cpp 1.217 M +5 -0 umlview.h 1.77 --- kdesdk/umbrello/umbrello/umlview.h #1.76:1.77 @@ -996,4 +996,9 @@ protected: /** + * The name of the diagram. + */ + QString m_Name; + + /** * The documentation of the diagram. */ --- kdesdk/umbrello/umbrello/umlview.cpp #1.216:1.217 @@ -215,9 +215,9 @@ UMLView::~UMLView() { QString UMLView::getName() const { - return QString( QObject::name() ); + return m_Name; } void UMLView::setName(const QString &name) { - QObject::setName( name.latin1() ); + m_Name = name; } I have updated umbrello from CVS. Non-latin1 names of diagrams now are displayed normally. But it doesn't solve a problem with crash umbrello if enabled "use tabbed diagrams". :-( http://documents.dhs.net.ru/umbrello-2.htm (umbrello.swf - 1.7 MB) Undo doesn't crash for me, could you list the steps needed to make it crash from a new file? The sequence of actions isn't important... Step by step look at http://documents.dhs.net.ru/Umbrello_crashes.htm and http://documents.dhs.net.ru/umbrello-2.htm I'm afraid I don't have flash. Undo does work for me without crashing. Have you tried with current development version from subversion? In the "Use tabbed diagrams" config, press the small red "x" at the right of the diagram tab bar. Crashes every time for me. The backtrace is slightly different for me though: [KCrash handler] #4 0x4065dfb6 in KToolBarButton::slotClicked() () from /opt/kde3/lib/libkdeui.so.4 #5 0x4065e9b9 in KToolBarButton::qt_invoke(int, QUObject*) () from /opt/kde3/lib/libkdeui.so.4 #6 0x40ce0b46 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #7 0x40ce09e7 in QObject::activate_signal(int) () from /usr/lib/qt3/lib/libqt-mt.so.3 #8 0x410337cc in QButton::clicked() () from /usr/lib/qt3/lib/libqt-mt.so.3 #9 0x40d75676 in QButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #10 0x4065cf33 in KToolBarButton::mouseReleaseEvent(QMouseEvent*) () from /opt/kde3/lib/libkdeui.so.4 #11 0x40d17bce in QWidget::event(QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #12 0x40c81f5f in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #13 0x40c81313 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #14 0x408429d2 in KApplication::notify(QObject*, QEvent*) () from /opt/kde3/lib/libkdecore.so.4 #15 0x40c11c58 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #16 0x40c0feab in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3 #17 0x40c26f9d in QEventLoop::processEvents(unsigned) () from /usr/lib/qt3/lib/libqt-mt.so.3 #18 0x40c94683 in QEventLoop::enterLoop() () from /usr/lib/qt3/lib/libqt-mt.so.3 #19 0x40c94576 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 #20 0x40c8217f in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 #21 0x0816dcff in main (argc=1, argv=0xbffff304) at main.cpp:95 #22 0x414b68ae in __libc_start_main () from /lib/libc.so.6 Yes, I can see that. *** Bug 105464 has been marked as a duplicate of this bug. *** *** Bug 105807 has been marked as a duplicate of this bug. *** Hi, when I click in the top left icon (close tab) umbrello crashes, I fix this problem: in uml.cpp KToolBar *m_buttonContainer = new KToolBar(m_tabWidget); KAction *m_closeDiagramButton = new KAction(m_buttonContainer); m_closeDiagramButton->plug(m_bar); ... connect(m_closeDiagramButton, SIGNAL(activated()), SLOT(slotDeleteDiagram())); ... m_tabWidget->setCornerWidget( m_buttonContainer, TopRight ); I'm not quite sure how to integrate that change (for example, what is m_bar ?) If you could attach a diff against uml.cpp from svn main trunk that would help a lot. sorry, is my error: m_bar is m_buttonContainer, but I have a best solution
don't use KToolBarButton, use QToolButton instead
diff:
437c437
< KToolBarButton* m_closeDiagramButton = new KToolBarButton("tab_remove", 0, m_tabWidget);
---
> QToolButton* m_closeDiagramButton = new QToolButton(m_tabWidget);
SVN commit 422845 by okellogg: Use QToolButton instead of KToolBarButton for m_closeDiagramButton. Thanks to David Cuadrado <krawek_AT_gmail.com> for the fix. BUG:103170 M +1 -1 ChangeLog M +8 -3 umbrello/uml.cpp M +8 -3 umbrello/uml.h --- trunk/KDE/kdesdk/umbrello/ChangeLog #422844:422845 @@ -10,7 +10,7 @@ Version 1.4.2 (maintenance release) * Bugs fixed from http://bugs.kde.org : -106632 106673 +103170 106632 106673 Version 1.4.1 (maintenance release) --- trunk/KDE/kdesdk/umbrello/umbrello/uml.cpp #422844:422845 @@ -22,6 +22,7 @@ #include <qwidgetstack.h> #include <qslider.h> #include <qregexp.h> +#include <qtoolbutton.h> // kde includes #include <kaction.h> @@ -407,6 +408,9 @@ m_mainDock = createDockWidget("maindock", 0L, 0L, "main dock"); #if KDE_IS_VERSION(3,1,90) + m_newSessionButton = NULL; + m_diagramMenu = NULL; + m_closeDiagramButton = NULL; if (m_optionState.generalState.tabdiagrams) { m_viewStack = NULL; m_tabWidget = new KTabWidget(m_mainDock, "tab_widget"); @@ -415,11 +419,11 @@ m_tabWidget->setAutomaticResizeTabs( true ); #endif - KToolBarButton* m_newSessionButton = new KToolBarButton("tab_new", 0, m_tabWidget); + m_newSessionButton = new KToolBarButton("tab_new", 0, m_tabWidget); m_newSessionButton->setIconSet( SmallIcon( "tab_new" ) ); m_newSessionButton->adjustSize(); m_newSessionButton->setAutoRaise(true); - KPopupMenu* m_diagramMenu = new KPopupMenu(m_newSessionButton); + m_diagramMenu = new KPopupMenu(m_newSessionButton); m_diagramMenu->insertItem(Umbrello::iconSet(Uml::dt_Class), i18n("Class Diagram..."), this, SLOT(slotClassDiagram()) ); m_diagramMenu->insertItem(Umbrello::iconSet(Uml::dt_Sequence), i18n("Sequence Diagram..."), this, SLOT(slotSequenceDiagram()) ); @@ -434,7 +438,8 @@ //FIXME why doesn't this work? //m_newSessionButton->setPopup(newDiagram->popupMenu()); - KToolBarButton* m_closeDiagramButton = new KToolBarButton("tab_remove", 0, m_tabWidget); + //m_closeDiagramButton = new KToolBarButton("tab_remove", 0, m_tabWidget); + m_closeDiagramButton = new QToolButton(m_tabWidget); m_closeDiagramButton->setIconSet( SmallIcon("tab_remove") ); m_closeDiagramButton->adjustSize(); --- trunk/KDE/kdesdk/umbrello/umbrello/uml.h #422844:422845 @@ -54,11 +54,14 @@ class KToggleAction; class KDockWidget; class KTabWidget; +class KToolBarButton; +class KPopupMenu; // Qt forward declarations class QWidgetStack; class QMenuData; class QClipboard; +class QToolButton; class RefactoringAssistant; @@ -880,11 +883,13 @@ KAction* changeTabRight; KAction* moveTabLeft; KAction* moveTabRight; -//Remove these once we stop supporting KDE 3.1 -// #if !KDE_IS_VERSION(3,1,90) +#if KDE_IS_VERSION(3,1,90) + KToolBarButton* m_newSessionButton; + KPopupMenu* m_diagramMenu; + QToolButton* m_closeDiagramButton; +#endif KToggleAction* viewToolBar; KToggleAction* viewStatusBar; -// #endif WorkToolBar* toolsbar; QTimer* m_clipTimer; QTimer* m_copyTimer; Hi guys, sorry to be late, but this was a bug in kdelibs 3.4.0 that i fixed for kde 3.4.1, not sure if needs to be fixed on umbrello too. More info at http://websvn.kde.org/trunk/KDE/kdelibs/kdeui/ktoolbarbutton.cpp Revision 401674 |