diff options
author | Eike Ziller <[email protected]> | 2019-10-28 11:43:06 +0100 |
---|---|---|
committer | Eike Ziller <[email protected]> | 2019-10-28 11:43:06 +0100 |
commit | a546e3a9cc70ab16528320f3ff484722736ed628 (patch) | |
tree | 7546397e89edc0c018edcd433549aa852e0c4a42 /src/plugins/debugger/breakhandler.cpp | |
parent | fea693d9f9434c6396373fa9d97ac92893ad08c5 (diff) | |
parent | 189ab38641d093ef1a987a985c3bbbe757118360 (diff) |
Merge remote-tracking branch 'origin/4.10' into 4.11
Conflicts:
src/libs/utils/fancymainwindow.cpp
src/plugins/projectexplorer/msvctoolchain.cpp
Change-Id: I7aaeeb4f96c95fefd4944c083c1ddf9a19cd81d6
Diffstat (limited to 'src/plugins/debugger/breakhandler.cpp')
-rw-r--r-- | src/plugins/debugger/breakhandler.cpp | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index 0958c233067..90dd8f3c86e 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -169,31 +169,24 @@ public: // running, as this can be triggered by moving the breakpoint to // the next line that generated code. - m_gbp->m_params.lineNumber = lineNumber; - m_gbp->updateMarker(); - m_gbp->update(); + m_gbp->updateLineNumber(lineNumber); } void updateFileName(const FilePath &fileName) final { TextMark::updateFileName(fileName); QTC_ASSERT(m_gbp, return); - m_gbp->m_params.fileName = fileName.toString(); - m_gbp->update(); + m_gbp->updateFileName(fileName); } bool isDraggable() const final { return true; } void dragToLine(int line) final { + TextMark::move(line); QTC_ASSERT(m_gbp, return); QTC_ASSERT(BreakpointManager::globalBreakpoints().contains(m_gbp), return); - BreakpointParameters params = m_gbp->m_params; - params.lineNumber = line; - GlobalBreakpoint gbp = m_gbp; - m_gbp = GlobalBreakpoint(); - gbp->deleteBreakpoint(); - m_gbp = BreakpointManager::createBreakpoint(params); + m_gbp->updateLineNumber(line); } bool isClickable() const final { return true; } @@ -2273,6 +2266,23 @@ void GlobalBreakpointItem::removeBreakpointFromModel() theBreakpointManager->destroyItem(this); } +void GlobalBreakpointItem::updateLineNumber(int lineNumber) +{ + if (m_params.lineNumber == lineNumber) + return; + m_params.lineNumber = lineNumber; + update(); +} + +void GlobalBreakpointItem::updateFileName(const FilePath &fileName) +{ + const QString &file = fileName.toString(); + if (m_params.fileName == file) + return; + m_params.fileName = file; + update(); +} + QString GlobalBreakpointItem::markerFileName() const { // Some heuristics to find a "good" file name. @@ -2308,11 +2318,14 @@ void GlobalBreakpointItem::updateMarker() const FilePath file = FilePath::fromString(m_params.fileName); const int line = m_params.lineNumber; - if (m_marker && (file != m_marker->fileName() || line != m_marker->lineNumber())) - destroyMarker(); - - if (!m_marker && !file.isEmpty() && line > 0) + if (m_marker) { + if (file != m_marker->fileName()) + m_marker->updateFileName(file); + if (line != m_marker->lineNumber()) + m_marker->move(line); + } else if (!file.isEmpty() && line > 0) { m_marker = new GlobalBreakpointMarker(this, file, line); + } if (m_marker) m_marker->setToolTip(toolTip()); |