SVN commit 970315 by zwabel: Don't leak QActions M +13 -12 classbrowser/classbrowserplugin.cpp M +3 -0 classbrowser/classbrowserplugin.h M +5 -4 contextbrowser/contextbrowser.cpp M +1 -0 contextbrowser/contextbrowser.h --- trunk/KDE/kdevplatform/plugins/classbrowser/classbrowserplugin.cpp #970314:970315 @@ -87,6 +87,13 @@ { core()->uiController()->addToolView(i18n("Classes"), m_factory); setXMLFile( "kdevclassbrowser.rc" ); + + m_findInBrowser = new QAction(i18n("Find in &Class Browser"), this); + connect(m_findInBrowser, SIGNAL(triggered(bool)), this, SLOT(findInClassBrowser())); + m_openDec = new QAction(i18n("Show &Declaration"), this); + connect(m_openDec, SIGNAL(triggered(bool)), this, SLOT(openDeclaration())); + m_openDef = new QAction(i18n("Show De&finition"), this); + connect(m_openDef, SIGNAL(triggered(bool)), this, SLOT(openDefinition())); } ClassBrowserPlugin::~ClassBrowserPlugin() @@ -118,22 +125,16 @@ { if(decl->inSymbolTable()) { if(!ClassTree::populatingClassBrowserContextMenu() && ICore::self()->projectController()->findProjectForUrl(decl->url().toUrl())) { - QAction* findInBrowser = new QAction(i18n("Find in &Class Browser"), this); - connect(findInBrowser, SIGNAL(triggered(bool)), this, SLOT(findInClassBrowser())); - findInBrowser->setData(QVariant::fromValue(DUChainBasePointer(decl))); - menuExt.addAction( KDevelop::ContextMenuExtension::ExtensionGroup, findInBrowser); + m_findInBrowser->setData(QVariant::fromValue(DUChainBasePointer(decl))); + menuExt.addAction( KDevelop::ContextMenuExtension::ExtensionGroup, m_findInBrowser); } - QAction* openDec = new QAction(i18n("Show &Declaration"), this); - connect(openDec, SIGNAL(triggered(bool)), this, SLOT(openDeclaration())); - openDec->setData(QVariant::fromValue(DUChainBasePointer(decl))); - menuExt.addAction( KDevelop::ContextMenuExtension::ExtensionGroup, openDec); + m_openDec->setData(QVariant::fromValue(DUChainBasePointer(decl))); + menuExt.addAction( KDevelop::ContextMenuExtension::ExtensionGroup, m_openDec); if(FunctionDefinition::definition(decl)) { - QAction* openDef = new QAction(i18n("Show De&finition"), this); - connect(openDef, SIGNAL(triggered(bool)), this, SLOT(openDefinition())); - openDef->setData(QVariant::fromValue(DUChainBasePointer(decl))); - menuExt.addAction( KDevelop::ContextMenuExtension::ExtensionGroup, openDef); + m_openDef->setData(QVariant::fromValue(DUChainBasePointer(decl))); + menuExt.addAction( KDevelop::ContextMenuExtension::ExtensionGroup, m_openDef); } } } --- trunk/KDE/kdevplatform/plugins/classbrowser/classbrowserplugin.h #970314:970315 @@ -56,6 +56,9 @@ private: class ClassBrowserFactory* m_factory; ClassTree* m_activeClassTree; + QAction* m_openDef; + QAction* m_openDec; + QAction* m_findInBrowser; }; #endif // CLASSBROWSERPLUGIN_H --- trunk/KDE/kdevplatform/plugins/contextbrowser/contextbrowser.cpp #970314:970315 @@ -145,6 +145,9 @@ nextUse->setText( i18n("&Next Use") ); nextUse->setShortcut( Qt::META | Qt::SHIFT | Qt::Key_Right ); connect(nextUse, SIGNAL(triggered(bool)), this, SLOT(nextUseShortcut())); + + m_findUses = new QAction(i18n("Find Uses"), this); + connect(m_findUses, SIGNAL(triggered(bool)), this, SLOT(findUses())); } ContextBrowserPlugin::~ContextBrowserPlugin() @@ -221,10 +224,8 @@ qRegisterMetaType("KDevelop::IndexedDeclaration"); - QAction* findUses = new QAction(i18n("Find Uses"), this); - connect(findUses, SIGNAL(triggered(bool)), this, SLOT(findUses())); - findUses->setData(QVariant::fromValue(codeContext->declaration())); - menuExt.addAction(KDevelop::ContextMenuExtension::ExtensionGroup, findUses); + m_findUses->setData(QVariant::fromValue(codeContext->declaration())); + menuExt.addAction(KDevelop::ContextMenuExtension::ExtensionGroup, m_findUses); return menuExt; } --- trunk/KDE/kdevplatform/plugins/contextbrowser/contextbrowser.h #970314:970315 @@ -143,6 +143,7 @@ ContextBrowserViewFactory* m_viewFactory; QPointer m_currentToolTip; IndexedDeclaration m_currentToolTipDeclaration; + QAction* m_findUses; }; DUContext* contextAt(const SimpleCursor& position, TopDUContext* topContext);