From 3cb91a14276a25b428eb2c37b4a1fc64902f3ae1 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Mon, 11 Oct 2010 10:53:20 +0200
Subject: [PATCH] debugger: Fix state of breakpoint marker when disabling it
 using the breakpoint view

There was not updated cached state within the marker object.

Reviewed-by: Friedemann Kleint

Task: QTCREATORBUG-2544
---
 src/plugins/debugger/breakhandler.cpp |  1 +
 src/plugins/debugger/breakpoint.cpp   | 13 +++++--------
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp
index 39ee4cf1d5d..3a68ad24ca3 100644
--- a/src/plugins/debugger/breakhandler.cpp
+++ b/src/plugins/debugger/breakhandler.cpp
@@ -584,6 +584,7 @@ void BreakHandler::toggleBreakpointEnabled(BreakpointData *data)
         m_enabled.removeAll(data);
         m_disabled.append(data);
     }
+    data->removeMarker(); // Force icon update.
     data->updateMarker();
     emit layoutChanged();
     m_engine->attemptBreakpointSynchronization();
diff --git a/src/plugins/debugger/breakpoint.cpp b/src/plugins/debugger/breakpoint.cpp
index 90b52cb1130..11175b010c7 100644
--- a/src/plugins/debugger/breakpoint.cpp
+++ b/src/plugins/debugger/breakpoint.cpp
@@ -74,7 +74,6 @@ public:
     {
         m_data = data;
         m_pending = true;
-        m_enabled = true;
         //qDebug() << "CREATE MARKER " << fileName << lineNumber;
     }
 
@@ -87,19 +86,18 @@ public:
     QIcon icon() const
     {
         const BreakHandler *handler = m_data->handler();
+        if (!m_data->enabled)
+            return handler->disabledBreakpointIcon();
         if (!handler->isActive())
             return handler->emptyIcon();
-        if (!m_enabled)
-            return handler->disabledBreakpointIcon();
         return m_pending ? handler->pendingBreakPointIcon() : handler->breakpointIcon();
     }
 
-    void setPending(bool pending, bool enabled)
+    void setPending(bool pending)
     {
-        if (pending == m_pending && enabled == m_enabled)
+        if (pending == m_pending)
             return;
         m_pending = pending;
-        m_enabled = enabled;
         updateMarker();
     }
 
@@ -149,7 +147,6 @@ public:
 private:
     BreakpointData *m_data;
     bool m_pending;
-    bool m_enabled;
 };
 
 
@@ -243,7 +240,7 @@ void BreakpointData::updateMarker()
         marker = new BreakpointMarker(this, m_markerFileName, m_markerLineNumber);
 
     if (marker)
-        marker->setPending(pending, enabled);
+        marker->setPending(pending);
 }
 
 void BreakpointData::setMarkerFileName(const QString &fileName)
-- 
GitLab