Debugger: Mark currently hit breakpoint in breakpoint view

Fixes: QTCREATORBUG-6999
Change-Id: I2b080de0096d1e2bc5b348666adcf4797589fe15
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-01-06 11:52:37 +01:00
parent 41982acec3
commit 111cc934fd
5 changed files with 55 additions and 7 deletions

View File

@@ -39,13 +39,14 @@ namespace Utils { class ItemViewEvent; }
namespace Debugger {
namespace Internal {
class BreakpointItem;
class BreakpointMarker;
class BreakHandler;
class BreakpointItem;
class BreakpointManager;
class BreakpointMarker;
class DebuggerCommand;
class DebuggerEngine;
class BreakpointManager;
class GlobalBreakpointMarker;
class Location;
class SubBreakpointItem : public QObject, public Utils::TypedTreeItem<Utils::TreeItem, BreakpointItem>
{
@@ -122,7 +123,7 @@ public:
QVariant data(int column, int role) const final;
QIcon icon() const;
QIcon icon(bool withLocationMarker = false) const;
void setMarkerFileAndLine(const Utils::FilePath &fileName, int lineNumber);
bool needsChange() const;
@@ -197,6 +198,8 @@ public:
const GlobalBreakpoint globalBreakpoint() const;
void gotoState(BreakpointState target, BreakpointState assumedCurrent);
void setNeedsLocationMarker(bool needsLocationMarker);
private:
void destroyMarker();
void updateMarker();
@@ -209,6 +212,7 @@ private:
BreakpointMarker *m_marker = nullptr;
QString m_responseId; //!< Breakpoint number or id assigned by or used in the debugger backend.
QString m_displayName;
bool m_needsLocationMarker = false;
};
using Breakpoint = QPointer<BreakpointItem>;
@@ -261,6 +265,9 @@ public:
void updateDisassemblerMarker(const Breakpoint &bp);
void removeDisassemblerMarker(const Breakpoint &bp);
void setLocation(const Location &loc);
void resetLocation();
private:
Breakpoint findBreakpointByIndex(const QModelIndex &index) const;
Breakpoints findBreakpointsByIndex(const QList<QModelIndex> &list) const;