Fix context menu not being restored properly
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 24 Nov 2013 18:55:00 +0000 (19:55 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 24 Nov 2013 18:55:00 +0000 (19:55 +0100)
When showing a context menu on a clickable, we used to hide existing
context menu item to avoid confusing the user. However, those actions
were never unhidden again. This resulted in the context menu not showing
most options ever again in subsequent invocations.

Instead of hiding the actions, we now just clear the menu.

src/qtui/chatitem.cpp

index cbbb54b..5726513 100644 (file)
@@ -805,9 +805,8 @@ void ContentsChatItem::addActionsToMenu(QMenu *menu, const QPointF &pos)
             break;
         case Clickable::Channel:
         {
             break;
         case Clickable::Channel:
         {
-            // Hide existing menu actions, they confuse us when right-clicking on a clickable
-            foreach(QAction *action, menu->actions())
-            action->setVisible(false);
+            // Remove existing menu actions, they confuse us when right-clicking on a clickable
+            menu->clear();
             QString name = data(ChatLineModel::DisplayRole).toString().mid(click.start(), click.length());
             GraphicalUi::contextMenuActionProvider()->addActions(menu, chatScene()->filter(), data(MessageModel::BufferIdRole).value<BufferId>(), name);
             break;
             QString name = data(ChatLineModel::DisplayRole).toString().mid(click.start(), click.length());
             GraphicalUi::contextMenuActionProvider()->addActions(menu, chatScene()->filter(), data(MessageModel::BufferIdRole).value<BufferId>(), name);
             break;