aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov <ykaradzhov@vmware.com>2019-03-13 17:07:15 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-03-22 15:14:11 -0400
commit0e513b60e9c048d2777f9c5eb0f11f35e8b5ce05 (patch)
tree67bbe696fb6175fee91f8f661470b6446051dd8e
parentf053ff6ae15343d3d8950f4ef66f7221b6170514 (diff)
downloadtrace-cmd-0e513b60e9c048d2777f9c5eb0f11f35e8b5ce05.tar.gz
kernel-shark: Add dialog for user-defined plugins to the Tools menu
The dialog allows the user to find and load the plugin's library (.so file). Link: http://lore.kernel.org/linux-trace-devel/20190313150717.21345-3-ykaradzhov@vmware.com Reviewed-by: Slavomir Kaslev <kaslevs@vmware.com> Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel-shark/src/KsMainWindow.cpp22
-rw-r--r--kernel-shark/src/KsMainWindow.hpp4
2 files changed, 26 insertions, 0 deletions
diff --git a/kernel-shark/src/KsMainWindow.cpp b/kernel-shark/src/KsMainWindow.cpp
index 362b9556..6428d4d3 100644
--- a/kernel-shark/src/KsMainWindow.cpp
+++ b/kernel-shark/src/KsMainWindow.cpp
@@ -59,6 +59,7 @@ KsMainWindow::KsMainWindow(QWidget *parent)
_cpuSelectAction("CPUs", this),
_taskSelectAction("Tasks", this),
_pluginsAction("Plugins", this),
+ _addPluginsAction("Add plugins", this),
_captureAction("Record", this),
_colorAction(this),
_colSlider(this),
@@ -233,6 +234,11 @@ void KsMainWindow::_createActions()
connect(&_pluginsAction, &QAction::triggered,
this, &KsMainWindow::_pluginSelect);
+ _addPluginsAction.setStatusTip("Add plugins");
+
+ connect(&_addPluginsAction, &QAction::triggered,
+ this, &KsMainWindow::_pluginAdd);
+
_captureAction.setIcon(QIcon::fromTheme("media-record"));
_captureAction.setShortcut(tr("Ctrl+R"));
_captureAction.setStatusTip("Capture trace data");
@@ -336,6 +342,7 @@ void KsMainWindow::_createMenus()
/* Tools menu */
tools = menuBar()->addMenu("Tools");
tools->addAction(&_pluginsAction);
+ tools->addAction(&_addPluginsAction);
tools->addAction(&_captureAction);
tools->addSeparator();
tools->addAction(&_colorAction);
@@ -796,6 +803,21 @@ void KsMainWindow::_pluginSelect()
dialog->show();
}
+void KsMainWindow::_pluginAdd()
+{
+ QStringList fileNames;
+
+ fileNames =
+ QFileDialog::getOpenFileNames(this, "Add KernelShark plugins",
+ KS_DIR,
+ "KernelShark Plugins (*.so);;");
+
+ if (fileNames.isEmpty())
+ return;
+
+ _plugins.addPlugins(fileNames);
+}
+
void KsMainWindow::_record()
{
#ifndef DO_AS_ROOT
diff --git a/kernel-shark/src/KsMainWindow.hpp b/kernel-shark/src/KsMainWindow.hpp
index 969b6031..1e6d619f 100644
--- a/kernel-shark/src/KsMainWindow.hpp
+++ b/kernel-shark/src/KsMainWindow.hpp
@@ -132,6 +132,8 @@ private:
// Tools menu.
QAction _pluginsAction;
+ QAction _addPluginsAction;
+
QAction _captureAction;
QWidgetAction _colorAction;
@@ -185,6 +187,8 @@ private:
void _pluginSelect();
+ void _pluginAdd();
+
void _record();
void _setColorPhase(int);