summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-08-14 15:47:38 (GMT)
committerSwift Review <review@swift.im>2014-09-18 06:10:56 (GMT)
commitd33e0a18e51ce35b967398a7b6d22a26082de0e9 (patch)
treec404fdc3cc6663d5e0da305f2029eb4dc79114d1
parent5bb5e4eb3024dfba3ae2b5041b90472ee478aebe (diff)
downloadswift-contrib-d33e0a18e51ce35b967398a7b6d22a26082de0e9.zip
swift-contrib-d33e0a18e51ce35b967398a7b6d22a26082de0e9.tar.bz2
Fix memory leak of mucRecentsMenu_ in QtChatListWindow.
Verified with clang's ASAN on linux. Change-Id: I12cb3f1e672adf35aec8eee9dece3e669af5c2cc License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
-rw-r--r--Swift/QtUI/ChatList/QtChatListWindow.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/Swift/QtUI/ChatList/QtChatListWindow.cpp b/Swift/QtUI/ChatList/QtChatListWindow.cpp
index 210124b..8e75f34 100644
--- a/Swift/QtUI/ChatList/QtChatListWindow.cpp
+++ b/Swift/QtUI/ChatList/QtChatListWindow.cpp
@@ -26,70 +26,71 @@
#include <Swift/QtUI/QtAddBookmarkWindow.h>
#include <Swift/QtUI/QtEditBookmarkWindow.h>
#include <Swift/QtUI/QtUISettingConstants.h>
namespace Swift {
QtChatListWindow::QtChatListWindow(UIEventStream *uiEventStream, SettingsProvider* settings, QWidget* parent) : QTreeView(parent) {
eventStream_ = uiEventStream;
settings_ = settings;
bookmarksEnabled_ = false;
model_ = new ChatListModel();
setModel(model_);
delegate_ = new ChatListDelegate(settings_->getSetting(QtUISettingConstants::COMPACT_ROSTER));
setItemDelegate(delegate_);
setHeaderHidden(true);
#ifdef SWIFT_PLATFORM_MACOSX
setAlternatingRowColors(true);
#endif
expandAll();
setAnimated(true);
setIndentation(0);
setDragEnabled(true);
setRootIsDecorated(true);
setupContextMenus();
connect(this, SIGNAL(activated(const QModelIndex&)), this, SLOT(handleItemActivated(const QModelIndex&)));
connect(this, SIGNAL(clicked(const QModelIndex&)), this, SLOT(handleClicked(const QModelIndex&)));
settings_->onSettingChanged.connect(boost::bind(&QtChatListWindow::handleSettingChanged, this, _1));
}
QtChatListWindow::~QtChatListWindow() {
settings_->onSettingChanged.disconnect(boost::bind(&QtChatListWindow::handleSettingChanged, this, _1));
delete model_;
delete delegate_;
delete mucMenu_;
+ delete mucRecentsMenu_;
delete emptyMenu_;
}
void QtChatListWindow::handleSettingChanged(const std::string& setting) {
if (setting == QtUISettingConstants::COMPACT_ROSTER.getKey()) {
delegate_->setCompact(settings_->getSetting(QtUISettingConstants::COMPACT_ROSTER));
repaint();
}
}
void QtChatListWindow::handleClearRecentsRequested() {
onClearRecentsRequested();
}
void QtChatListWindow::setBookmarksEnabled(bool enabled) {
bookmarksEnabled_ = enabled;
}
void QtChatListWindow::handleClicked(const QModelIndex& index) {
ChatListGroupItem* item = dynamic_cast<ChatListGroupItem*>(static_cast<ChatListItem*>(index.internalPointer()));
if (item) {
setExpanded(index, !isExpanded(index));
}
}
void QtChatListWindow::setupContextMenus() {
mucMenu_ = new QMenu();
mucMenu_->addAction(tr("Add New Bookmark"), this, SLOT(handleAddBookmark()));
mucMenu_->addAction(tr("Edit Bookmark"), this, SLOT(handleEditBookmark()));
mucMenu_->addAction(tr("Remove Bookmark"), this, SLOT(handleRemoveBookmark()));
mucRecentsMenu_ = new QMenu();
mucRecentsMenu_->addAction(tr("Add to Bookmarks"), this, SLOT(handleAddBookmarkFromRecents()));
mucRecentsMenu_->addAction(tr("Clear recents"), this, SLOT(handleClearRecentsRequested()));
emptyMenu_ = new QMenu();
emptyMenu_->addAction(tr("Add New Bookmark"), this, SLOT(handleAddBookmark()));