@@ -50,11 +50,14 @@ KsQuickContextMenu::KsQuickContextMenu(KsDataStore *data, size_t row,
: KsQuickMarkerMenu(dm, parent),
_data(data),
_row(row),
+ _graphSyncCBox(nullptr),
+ _listSyncCBox(nullptr),
_hideTaskAction(this),
_showTaskAction(this),
_hideEventAction(this),
_showEventAction(this),
_hideCPUAction(this),
+ _showCPUAction(this),
_addCPUPlotAction(this),
_addTaskPlotAction(this),
_removeCPUPlotAction(this),
@@ -85,6 +88,32 @@ KsQuickContextMenu::KsQuickContextMenu(KsDataStore *data, size_t row,
parentName = parent->metaObject()->className();
addSection("Pointer menu");
+
+ if (parentName == "KsTraceViewer") {
+ _graphSyncCBox =
+ KsUtils::addCheckBoxToMenu(this, "Apply filters to Graph");
+
+ connect(_graphSyncCBox, &QCheckBox::stateChanged,
+ &KsUtils::graphFilterSync);
+
+ bool state(false);
+ KsUtils::graphFilterSync(state);
+ _graphSyncCBox->setChecked(state);
+ }
+
+ if (parentName == "KsTraceGraph" &&
+ (graphs = dynamic_cast<KsTraceGraph *>(parent))) {
+ _listSyncCBox =
+ KsUtils::addCheckBoxToMenu(this, "Apply filters to Graph");
+
+ connect(_listSyncCBox, &QCheckBox::stateChanged,
+ &KsUtils::listFilterSync);
+
+ bool state(false);
+ KsUtils::listFilterSync(state);
+ _listSyncCBox->setChecked(state);
+ }
+
descr = "Hide task [";
descr += taskName;
descr += "-";
@@ -113,6 +142,9 @@ KsQuickContextMenu::KsQuickContextMenu(KsDataStore *data, size_t row,
lamAddAction(&_hideCPUAction, &KsQuickContextMenu::_hideCPU);
if (parentName == "KsTraceViewer") {
+ descr = QString("Show CPU [%1] only").arg(cpu);
+ lamAddAction(&_showCPUAction, &KsQuickContextMenu::_showCPU);
+
descr = "Add [";
descr += taskName;
descr += "-";
@@ -198,6 +230,13 @@ void KsQuickContextMenu::_showEvent()
_data->applyPosEventFilter(QVector<int>(1, eventId));
}
+void KsQuickContextMenu::_showCPU()
+{
+ int cpu = _data->rows()[_row]->cpu;
+
+ _data->applyPosCPUFilter(QVector<int>(1, cpu));
+}
+
void KsQuickContextMenu::_hideCPU()
{
kshark_context *kshark_ctx(nullptr);
@@ -71,6 +71,8 @@ private:
void _showEvent();
+ void _showCPU();
+
void _hideCPU();
void _addCPUPlot();
@@ -87,11 +89,13 @@ private:
size_t _row;
+ QCheckBox *_graphSyncCBox, *_listSyncCBox;
+
QAction _hideTaskAction, _showTaskAction;
QAction _hideEventAction, _showEventAction;
- QAction _hideCPUAction;
+ QAction _hideCPUAction, _showCPUAction;
QAction _addCPUPlotAction;
In this patch the KsQuickContextMenu gets upgraded according to the user feedback received from Steven. First of all a "Show CPU X only" action is added to the version of the menu that gets opened from the Table widget. In addition to this "Apply filter to XX" check-boxes are added in order to control the visibility of the filtered data. Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com> --- kernel-shark-qt/src/KsQuickContextMenu.cpp | 39 ++++++++++++++++++++++ kernel-shark-qt/src/KsQuickContextMenu.hpp | 6 +++- 2 files changed, 44 insertions(+), 1 deletion(-)