[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