Add a switch in the context menu to disable and enable dependency drawing
This commit is contained in:
@@ -72,16 +72,16 @@ void Phase::draw(QPainter *painter, const QwtScaleMap &xMap,
|
||||
drawingProperties.drawText, getPhaseSymbol(), painter, xMap, yMap);
|
||||
|
||||
if (getGranularity() == Granularity::Bankwise) {
|
||||
bool drawAllDependencies = false;
|
||||
bool drawDependencies = true;
|
||||
|
||||
bool drawDependencyText = true;
|
||||
if (drawAllDependencies || (highlight && drawDependencies)) {
|
||||
drawPhaseDependencies(span.Begin(), span.End(), line->getYVal(),
|
||||
drawingProperties, drawDependencyText, painter, xMap, yMap);
|
||||
DependencyOption drawDependenciesOption = drawingProperties.drawDependenciesOption;
|
||||
if (drawDependenciesOption == DependencyOption::All ||
|
||||
(drawDependenciesOption == DependencyOption::Selected && highlight))
|
||||
{
|
||||
drawPhaseDependencies(span.Begin(), span.End(), line->getYVal(), drawingProperties,
|
||||
drawDependencyText, painter, xMap, yMap);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,6 +135,8 @@ void Phase::drawPhaseDependencies(traceTime begin, traceTime end, double y, cons
|
||||
{
|
||||
QPen pen;
|
||||
pen.setWidth(2);
|
||||
|
||||
painter->save();
|
||||
painter->setPen(pen);
|
||||
painter->setRenderHint(QPainter::Antialiasing);
|
||||
|
||||
@@ -164,8 +166,8 @@ void Phase::drawPhaseDependencies(traceTime begin, traceTime end, double y, cons
|
||||
QPoint invisibleDepsPoint(static_cast<int>(xMap.transform(begin + (end + offset - begin)/2)), static_cast<int>(yVal + 0.1*symbolHeight));
|
||||
drawText(painter, QString(std::to_string(invisibleDeps).c_str()), invisibleDepsPoint, TextPositioning::centerCenter);
|
||||
}
|
||||
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
QColor Phase::getColor(const TraceDrawingProperties &drawingProperties) const
|
||||
|
||||
@@ -40,11 +40,10 @@
|
||||
#include "util/traceplotlinecache.h"
|
||||
#include "traceselector.h"
|
||||
|
||||
TraceDrawingProperties::TraceDrawingProperties(bool drawText, bool drawBorder,
|
||||
ColorGrouping colorGrouping) :
|
||||
drawText(drawText),
|
||||
drawBorder(drawBorder),
|
||||
colorGrouping(colorGrouping)
|
||||
TraceDrawingProperties::TraceDrawingProperties(bool drawText, bool drawBorder, DependencyOption drawDependenciesOption,
|
||||
ColorGrouping colorGrouping)
|
||||
: drawText(drawText), drawBorder(drawBorder), drawDependenciesOption(drawDependenciesOption),
|
||||
colorGrouping(colorGrouping)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -58,6 +58,13 @@ class TracePlotLineCache;
|
||||
|
||||
using TracePlotLineVector = std::vector<std::shared_ptr<TracePlotLine>>;
|
||||
|
||||
enum class DependencyOption
|
||||
{
|
||||
Disabled,
|
||||
Selected,
|
||||
All
|
||||
};
|
||||
|
||||
class TraceDrawingProperties : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -65,6 +72,7 @@ class TraceDrawingProperties : public QObject
|
||||
public:
|
||||
bool drawText;
|
||||
bool drawBorder;
|
||||
DependencyOption drawDependenciesOption;
|
||||
ColorGrouping colorGrouping;
|
||||
|
||||
unsigned int numberOfRanks;
|
||||
@@ -74,8 +82,8 @@ public:
|
||||
unsigned int groupsPerRank;
|
||||
unsigned int banksPerGroup;
|
||||
|
||||
TraceDrawingProperties(bool drawText = true,
|
||||
bool drawBorder = true,
|
||||
TraceDrawingProperties(bool drawText = true, bool drawBorder = true,
|
||||
DependencyOption drawDependenciesOption = DependencyOption::Disabled,
|
||||
ColorGrouping colorGrouping = ColorGrouping::PhaseType);
|
||||
~TraceDrawingProperties();
|
||||
|
||||
|
||||
@@ -162,6 +162,40 @@ void TracePlot::setUpActions()
|
||||
SLOT(on_toggleCollapsedState()));
|
||||
toggleCollapsedState->setShortcut(Qt::CTRL + Qt::Key_X);
|
||||
|
||||
disabledDependencies = new QAction("Disabled", this);
|
||||
selectedDependencies = new QAction("Selected transactions", this);
|
||||
allDependencies = new QAction("All transactions", this);
|
||||
|
||||
disabledDependencies->setCheckable(true);
|
||||
selectedDependencies->setCheckable(true);
|
||||
allDependencies->setCheckable(true);
|
||||
|
||||
disabledDependencies->setChecked(true);
|
||||
|
||||
QObject::connect(disabledDependencies, &QAction::triggered, this,
|
||||
[&]()
|
||||
{
|
||||
drawingProperties.drawDependenciesOption = DependencyOption::Disabled;
|
||||
replot();
|
||||
});
|
||||
QObject::connect(selectedDependencies, &QAction::triggered, this,
|
||||
[&]()
|
||||
{
|
||||
drawingProperties.drawDependenciesOption = DependencyOption::Selected;
|
||||
replot();
|
||||
});
|
||||
QObject::connect(allDependencies, &QAction::triggered, this,
|
||||
[&]()
|
||||
{
|
||||
drawingProperties.drawDependenciesOption = DependencyOption::All;
|
||||
replot();
|
||||
});
|
||||
|
||||
QActionGroup *dependenciesGroup = new QActionGroup(this);
|
||||
dependenciesGroup->addAction(disabledDependencies);
|
||||
dependenciesGroup->addAction(selectedDependencies);
|
||||
dependenciesGroup->addAction(allDependencies);
|
||||
|
||||
setUpContextMenu();
|
||||
}
|
||||
|
||||
@@ -174,6 +208,10 @@ void TracePlot::setUpContextMenu()
|
||||
colorGroupingSubMenu->addActions({setColorGroupingPhase, setColorGroupingTransaction, setColorGroupingThread});
|
||||
contextMenu->addMenu(colorGroupingSubMenu);
|
||||
|
||||
QMenu *dependenciesSubMenu = new QMenu("Show dependencies", contextMenu);
|
||||
dependenciesSubMenu->addActions({disabledDependencies, selectedDependencies, allDependencies});
|
||||
contextMenu->addMenu(dependenciesSubMenu);
|
||||
|
||||
QMenu *goToSubMenu = new QMenu("Go to", contextMenu);
|
||||
goToSubMenu->addActions({goToPhase, goToTransaction, goToTime});
|
||||
contextMenu->addMenu(goToSubMenu);
|
||||
|
||||
@@ -180,6 +180,9 @@ private:
|
||||
QAction *setColorGroupingTransaction;
|
||||
QAction *setColorGroupingThread;
|
||||
QAction *exportToPdf;
|
||||
QAction *disabledDependencies;
|
||||
QAction *selectedDependencies;
|
||||
QAction *allDependencies;
|
||||
ToggleCollapsedAction *toggleCollapsedState;
|
||||
|
||||
TracePlotMouseLabel *mouseLabel;
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
#include "traceplotitem.h"
|
||||
#include "util/engineeringScaleDraw.h"
|
||||
|
||||
TraceScroller::TraceScroller(QWidget *parent):
|
||||
QwtPlot(parent), isInitialized(false), drawingProperties(false, false,
|
||||
ColorGrouping::PhaseType)
|
||||
TraceScroller::TraceScroller(QWidget *parent)
|
||||
: QwtPlot(parent), isInitialized(false),
|
||||
drawingProperties(false, false, DependencyOption::Disabled, ColorGrouping::PhaseType)
|
||||
{
|
||||
setAxisScaleDraw(xBottom, new EngineeringScaleDraw);
|
||||
canvas()->setCursor(Qt::ArrowCursor);
|
||||
|
||||
Reference in New Issue
Block a user