
commit f51382526e73fd1b34208d2077d0fbc058283865 Author: Tomás Touceda <chiiph@torproject.org> Date: Sat Jul 21 15:50:07 2012 -0300 Provide icon capabilities for plugins menus --- changes/pluginEngineImprovements | 1 + src/vidalia/plugin/PluginWrapper.cpp | 15 ++++++++++++++- src/vidalia/plugin/PluginWrapper.h | 2 ++ 3 files changed, 17 insertions(+), 1 deletions(-) diff --git a/changes/pluginEngineImprovements b/changes/pluginEngineImprovements index a242f84..552792a 100644 --- a/changes/pluginEngineImprovements +++ b/changes/pluginEngineImprovements @@ -1,3 +1,4 @@ Internal cleanups and improvements: o VidaliaTab prototype for plugins has been migrated to a full QWidget derived object and an automatically generated extension. + o Provide a way to add icons to a plugin's menu item. diff --git a/src/vidalia/plugin/PluginWrapper.cpp b/src/vidalia/plugin/PluginWrapper.cpp index 15634b5..a2c16ea 100644 --- a/src/vidalia/plugin/PluginWrapper.cpp +++ b/src/vidalia/plugin/PluginWrapper.cpp @@ -107,6 +107,10 @@ PluginWrapper::processInfo(const QString &path) } } else if(e.tagName() == "namespace") { _nspace = e.text(); + } else if(e.tagName() == "icon") { + _icon = e.text(); + if(not _icon.startsWith(":")) + _icon = QFileInfo(path).absoluteDir().canonicalPath() + "/" + _icon; } } n = n.nextSibling(); @@ -215,10 +219,19 @@ PluginWrapper::files() const return _files; } +QString +PluginWrapper::icon() const +{ + return _icon; +} + QAction * PluginWrapper::menuAction() { - _action = new QAction(_name, this); + if (not _icon.isEmpty()) + _action = new QAction(QIcon(_icon), _name, this); + else + _action = new QAction(_name, this); if(hasGUI()) { connect(_action, SIGNAL(triggered()), this, SLOT(emitPluginTab())); diff --git a/src/vidalia/plugin/PluginWrapper.h b/src/vidalia/plugin/PluginWrapper.h index 288c62f..c59ffd2 100644 --- a/src/vidalia/plugin/PluginWrapper.h +++ b/src/vidalia/plugin/PluginWrapper.h @@ -36,6 +36,7 @@ class PluginWrapper : public QObject { QString date() const; QString author() const; QString nspace() const; + QString icon() const; QStringList files() const; QAction *menuAction(); @@ -60,6 +61,7 @@ class PluginWrapper : public QObject { bool _persistent, _gui; QStringList _files; QString _nspace; + QString _icon; QAction *_action; };