From daeb83cd21dfee2a44a7f0fa3dedc17380b030b9 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Thu, 4 Dec 2008 10:20:18 +0100
Subject: [PATCH] use radio buttons instead of checkboxes to mark entries in
 sessions menu

just put the actions into an action group
---
 src/plugins/projectexplorer/projectexplorer.cpp | 9 ++++++---
 src/plugins/projectexplorer/projectexplorer.h   | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index f9149786bea..7a971739ce8 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -1783,22 +1783,25 @@ void ProjectExplorerPlugin::openWithMenuTriggered(QAction *action)
 void ProjectExplorerPlugin::updateSessionMenu()
 {
     m_sessionMenu->clear();
+    QActionGroup *ag = new QActionGroup(m_sessionMenu);
+    connect(ag, SIGNAL(triggered(QAction *)), this, SLOT(setSession(QAction *)));
     const QString &activeSession = m_session->activeSession();
     foreach (const QString &session, m_session->sessions()) {
-        QAction *act = m_sessionMenu->addAction(session, this, SLOT(setSession()));
+        QAction *act = ag->addAction(session);
         act->setCheckable(true);
         if (session == activeSession)
             act->setChecked(true);
     }
+    m_sessionMenu->addActions(ag->actions());
     m_sessionMenu->addSeparator();
     m_sessionMenu->addAction(m_sessionManagerAction);
 
     m_sessionMenu->setEnabled(true);
 }
 
-void ProjectExplorerPlugin::setSession()
+void ProjectExplorerPlugin::setSession(QAction *action)
 {
-    QString session = static_cast<QAction *>(sender())->text();
+    QString session = action->text();
     if (session != m_session->activeSession())
         m_session->loadSession(session);
 }
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index 97eb684bb49..9cce2c87f54 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -151,7 +151,7 @@ private slots:
     void populateOpenWithMenu();
     void openWithMenuTriggered(QAction *action);
     void updateSessionMenu();
-    void setSession();
+    void setSession(QAction *action);
 
     void restoreSession();
     void loadSession(const QString &session);
-- 
GitLab