[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kate] kate/plugins/pate/src: Support help text for Actions.
From: Shaheed Haque <srhaque () theiet ! org>
Date: 2012-12-01 0:48:14
Message-ID: 20121201004814.D7780A6091 () git ! kde ! org
[Download RAW message or body]
Git commit fdc79dcd50d2de2e2d0dcf148b6f24efde1c5dac by Shaheed Haque.
Committed on 01/12/2012 at 01:46.
Pushed by shaheed into branch 'master'.
Support help text for Actions.
M +33 -46 kate/plugins/pate/src/info.ui
M +5 -3 kate/plugins/pate/src/kate/__init__.py
M +4 -0 kate/plugins/pate/src/plugin.cpp
http://commits.kde.org/kate/fdc79dcd50d2de2e2d0dcf148b6f24efde1c5dac
diff --git a/kate/plugins/pate/src/info.ui b/kate/plugins/pate/src/info.ui
index 4a0bc2b..bb67c7e 100644
--- a/kate/plugins/pate/src/info.ui
+++ b/kate/plugins/pate/src/info.ui
@@ -7,36 +7,15 @@
<x>0</x>
<y>0</y>
<width>486</width>
- <height>337</height>
+ <height>391</height>
</rect>
</property>
- <layout class="QFormLayout" name="formLayout_2">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::ExpandingFieldsGrow</enum>
- </property>
- <item row="0" column="0">
- <widget class="QLabel" name="labelTopics">
- <property name="text">
- <string>Module:</string>
- </property>
- <property name="buddy">
- <cstring>topics</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="KComboBox" name="topics"/>
- </item>
+ <layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="0" colspan="2">
<widget class="KTabWidget" name="tabs">
<property name="currentIndex">
<number>0</number>
</property>
- <widget class="QWebView" name="help">
- <attribute name="title">
- <string>Reference</string>
- </attribute>
- </widget>
<widget class="QWidget" name="tab2">
<attribute name="title">
<string>Actions</string>
@@ -44,13 +23,6 @@
<layout class="QVBoxLayout" name="tab2lo">
<item>
<layout class="QGridLayout" name="tab2_1lo">
- <item row="6" column="3">
- <widget class="KLineEdit" name="menu">
- <property name="whatsThis">
- <string>The menu under which to place this item such as 'tools' or \
'settings', or None.</string>
- </property>
- </widget>
- </item>
<item row="6" column="1">
<widget class="KIconButton" name="actionIcon">
<property name="minimumSize">
@@ -77,6 +49,13 @@
</property>
</widget>
</item>
+ <item row="6" column="3">
+ <widget class="KLineEdit" name="menu">
+ <property name="whatsThis">
+ <string>The menu under which to place this item such as 'tools' or \
'settings', or None.</string> + </property>
+ </widget>
+ </item>
<item row="1" column="1">
<widget class="KLineEdit" name="text">
<property name="whatsThis">
@@ -121,17 +100,27 @@
</property>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="labelActions">
+ <item row="7" column="0">
+ <widget class="QLabel" name="labelTopics">
<property name="text">
- <string>Action:</string>
+ <string>Description:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
- <cstring>configPages</cstring>
+ <cstring>topics</cstring>
</property>
</widget>
</item>
- <item row="0" column="1" colspan="3">
+ <item row="7" column="1" colspan="3">
+ <widget class="QTextEdit" name="description">
+ <property name="textInteractionFlags">
+ <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="4">
<widget class="KComboBox" name="actions"/>
</item>
</layout>
@@ -218,17 +207,7 @@
</property>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="labelConfigPages">
- <property name="text">
- <string>Page:</string>
- </property>
- <property name="buddy">
- <cstring>configPages</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1" colspan="3">
+ <item row="0" column="0" colspan="4">
<widget class="KComboBox" name="configPages"/>
</item>
</layout>
@@ -248,8 +227,16 @@
</item>
</layout>
</widget>
+ <widget class="QWebView" name="help">
+ <attribute name="title">
+ <string>Programmer's Reference</string>
+ </attribute>
+ </widget>
</widget>
</item>
+ <item row="0" column="0" colspan="2">
+ <widget class="KComboBox" name="topics"/>
+ </item>
</layout>
</widget>
<customwidgets>
diff --git a/kate/plugins/pate/src/kate/__init__.py \
b/kate/plugins/pate/src/kate/__init__.py index 1d52851..44d107a 100644
--- a/kate/plugins/pate/src/kate/__init__.py
+++ b/kate/plugins/pate/src/kate/__init__.py
@@ -172,7 +172,7 @@ def _moduleActionDecompile(action):
else:
menu = None
- if (action.shortcut().toString()) > 0:
+ if len(action.shortcut().toString()) > 0:
shortcut = action.shortcut().toString().encode('utf8')
else:
shortcut = None
@@ -181,10 +181,10 @@ def _moduleActionDecompile(action):
def moduleGetActions(module):
"""Return a list of each module function decorated with @action.
- The returned object is [ { function, ( text, icon, shortcut, menu ) }... ].
+ The returned object is [ { function, ( text, icon, shortcut, menu), help }... ].
"""
functionsList = [o for o in getmembers(module) if isinstance(o[1], \
kate.catchAllHandler)]
- actionsList = [(n, _moduleActionDecompile(o.__dict__['action'])) for (n, o) in \
functionsList if 'action' in o.__dict__] + actionsList = [(n, \
_moduleActionDecompile(o.__dict__['action']), getattr(getattr(module,n).f,"__doc__")) \
for (n, o) in functionsList if 'action' in o.__dict__] return actionsList
def moduleGetConfigPages(module):
@@ -295,6 +295,8 @@ def action(text, icon=None, shortcut=None, menu=None):
string such as 'tools' or 'settings', or None to not
place it in any menu.
+ The docstring for your action will be used to provide "help" text.
+
NOTE: Kate may need to be restarted for this decorator to take effect, or
to remove all traces of the plugin on removal.
'''
diff --git a/kate/plugins/pate/src/plugin.cpp b/kate/plugins/pate/src/plugin.cpp
index 6ea608a..a3554a6 100644
--- a/kate/plugins/pate/src/plugin.cpp
+++ b/kate/plugins/pate/src/plugin.cpp
@@ -266,6 +266,8 @@ Pate::ConfigPage::ConfigPage(QWidget *parent, Plugin *plugin) :
m_info.setupUi(infoWidget);
m_manager.tabWidget->addTab(infoWidget, i18n("Modules"));
connect(m_info.topics, SIGNAL(currentIndexChanged(int)), \
SLOT(infoTopicChanged(int))); + connect(m_info.actions, \
SIGNAL(currentIndexChanged(int)), SLOT(infoPluginActionsChanged(int))); + \
connect(m_info.configPages, SIGNAL(currentIndexChanged(int)), \
SLOT(infoPluginConfigPagesChanged(int))); reloadPage(true);
Pate::Engine *engine=Pate::Engine::self();
@@ -396,6 +398,7 @@ void Pate::ConfigPage::infoPluginActionsChanged(int actionIndex)
PyObject *icon = PyTuple_GetItem(action, 1);
PyObject *shortcut = PyTuple_GetItem(action, 2);
PyObject *menu = PyTuple_GetItem(action, 3);
+ PyObject *__doc__ = PyTuple_GetItem(tuple, 2);
// Add a topic for this plugin, using stacked page 0.
// TODO: Proper handling of Unicode
@@ -415,6 +418,7 @@ void Pate::ConfigPage::infoPluginActionsChanged(int actionIndex)
m_info.actionIcon->setText(Python::unicode(icon));
m_info.shortcut->setText(Python::unicode(shortcut));
m_info.menu->setText(Python::unicode(menu));
+ m_info.description->setText(Python::unicode(__doc__));
}
void Pate::ConfigPage::infoPluginConfigPagesChanged(int pageIndex)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic