Auto status change to "Under Review"
@@ -19,6 +19,7 class SqpRange; | |||
|
19 | 19 | class Variable; |
|
20 | 20 | class VisualizationWidget; |
|
21 | 21 | class VisualizationZoneWidget; |
|
22 | class VisualizationSelectionZoneItem; | |
|
22 | 23 | |
|
23 | 24 | namespace Ui { |
|
24 | 25 | class VisualizationGraphWidget; |
@@ -56,11 +57,13 public: | |||
|
56 | 57 | SqpRange graphRange() const noexcept; |
|
57 | 58 | void setGraphRange(const SqpRange &range); |
|
58 | 59 | |
|
60 | // Zones | |
|
59 | 61 | /// Returns the ranges of all the selection zones on the graph |
|
60 | 62 | QVector<SqpRange> selectionZoneRanges() const; |
|
61 | ||
|
62 | 63 | /// Adds new selection zones in the graph |
|
63 | 64 | void addSelectionZones(const QVector<SqpRange> &ranges); |
|
65 | /// Removes the specified selection zone | |
|
66 | void removeSelectionZone(VisualizationSelectionZoneItem *selectionZone); | |
|
64 | 67 | |
|
65 | 68 | /// Undo the last zoom done with a zoom box |
|
66 | 69 | void undoZoom(); |
@@ -5,12 +5,16 | |||
|
5 | 5 | #include <Data/SqpRange.h> |
|
6 | 6 | #include <Visualization/qcustomplot.h> |
|
7 | 7 | |
|
8 | class VisualizationGraphWidget; | |
|
9 | ||
|
8 | 10 | class VisualizationSelectionZoneItem : public QCPItemRect { |
|
9 | 11 | |
|
10 | 12 | public: |
|
11 | 13 | VisualizationSelectionZoneItem(QCustomPlot *plot); |
|
12 | 14 | virtual ~VisualizationSelectionZoneItem(); |
|
13 | 15 | |
|
16 | VisualizationGraphWidget *parentGraphWidget() const noexcept; | |
|
17 | ||
|
14 | 18 | void setName(const QString &name); |
|
15 | 19 | QString name() const; |
|
16 | 20 |
@@ -1,4 +1,6 | |||
|
1 | 1 | #include "Visualization/VisualizationActionManager.h" |
|
2 | #include "Visualization/VisualizationGraphWidget.h" | |
|
3 | #include "Visualization/VisualizationSelectionZoneItem.h" | |
|
2 | 4 | |
|
3 | 5 | #include <Actions/ActionsGuiController.h> |
|
4 | 6 | #include <SqpApplication.h> |
@@ -8,7 +10,13 VisualizationActionManager::VisualizationActionManager() {} | |||
|
8 | 10 | void VisualizationActionManager::installSelectionZoneActions() |
|
9 | 11 | { |
|
10 | 12 | auto &actionController = sqpApp->actionsGuiController(); |
|
11 |
actionController.addSectionZoneAction("Remove Selected Zone(s)", [](auto &zone) { |
|
|
12 | actionController.addSectionZoneAction("Align Left", [](auto &zone) {}); | |
|
13 | actionController.addSectionZoneAction("Align Right", [](auto &zone) {}); | |
|
13 | actionController.addSectionZoneAction("Remove Selected Zone(s)", [](auto &zones) { | |
|
14 | for (auto selectionZone : zones) { | |
|
15 | if (auto graph = selectionZone->parentGraphWidget()) { | |
|
16 | graph->removeSelectionZone(selectionZone); | |
|
17 | } | |
|
18 | } | |
|
19 | }); | |
|
20 | actionController.addSectionZoneAction("Align Left", [](auto &zones) {}); | |
|
21 | actionController.addSectionZoneAction("Align Right", [](auto &zones) {}); | |
|
14 | 22 | } |
@@ -378,6 +378,14 void VisualizationGraphWidget::addSelectionZones(const QVector<SqpRange> &ranges | |||
|
378 | 378 | plot().replot(QCustomPlot::rpQueuedReplot); |
|
379 | 379 | } |
|
380 | 380 | |
|
381 | void VisualizationGraphWidget::removeSelectionZone(VisualizationSelectionZoneItem *selectionZone) | |
|
382 | { | |
|
383 | impl->m_SelectionZones.removeAll(selectionZone); | |
|
384 | plot().removeItem(selectionZone); | |
|
385 | plot().replot(QCustomPlot::rpQueuedReplot); | |
|
386 | parentVisualizationWidget()->selectionZoneManager().setSelected(selectionZone, false); | |
|
387 | } | |
|
388 | ||
|
381 | 389 | void VisualizationGraphWidget::undoZoom() |
|
382 | 390 | { |
|
383 | 391 | auto zoom = impl->m_ZoomStack.pop(); |
@@ -1,4 +1,5 | |||
|
1 | 1 | #include "Visualization/VisualizationSelectionZoneItem.h" |
|
2 | #include "Visualization/VisualizationGraphWidget.h" | |
|
2 | 3 | |
|
3 | 4 | const QString &DEFAULT_COLOR = QStringLiteral("#E79D41"); |
|
4 | 5 | |
@@ -98,6 +99,16 VisualizationSelectionZoneItem::~VisualizationSelectionZoneItem() | |||
|
98 | 99 | impl->m_Plot->removeItem(impl->m_LeftLine); |
|
99 | 100 | } |
|
100 | 101 | |
|
102 | VisualizationGraphWidget *VisualizationSelectionZoneItem::parentGraphWidget() const noexcept | |
|
103 | { | |
|
104 | auto parent = impl->m_Plot->parentWidget(); | |
|
105 | while (parent != nullptr && !qobject_cast<VisualizationGraphWidget *>(parent)) { | |
|
106 | parent = parent->parentWidget(); | |
|
107 | } | |
|
108 | ||
|
109 | return qobject_cast<VisualizationGraphWidget *>(parent); | |
|
110 | } | |
|
111 | ||
|
101 | 112 | void VisualizationSelectionZoneItem::setName(const QString &name) |
|
102 | 113 | { |
|
103 | 114 | if (name.isEmpty() && impl->m_NameLabelItem) { |
General Comments 4
Status change > Approved
Status change > Approved
You need to be logged in to leave comments.
Login now