Sophie

Sophie

distrib > Mageia > 4 > i586 > by-pkgid > 41640b7d04ef5b5040e7668305a5ba3d > files > 1027

python-kde4-doc-4.11.4-1.mga4.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
  <title>KTextEditor.Plugin</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <link rel="stylesheet" type="text/css" href="../common/doxygen.css" />
  <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="../common/kde.css" />
</head>
<body>
<div id="container">
<div id="header">
  <div id="header_top">
    <div>
      <div>
        <img alt ="" src="../common/top-kde.jpg"/>
        KDE 4.9 PyKDE API Reference
      </div>
    </div>
  </div>
  <div id="header_bottom">
    <div id="location">
      <ul>
        <li>KDE's Python API</li>
      </ul>
    </div>

    <div id="menu">
      <ul>
        <li><a href="../modules.html">Overview</a></li>
<li><a href="http://techbase.kde.org/Development/Languages/Python">PyKDE Home</a></li>
<li><a href="http://kde.org/family/">Sitemap</a></li>
<li><a href="http://kde.org/contact/">Contact Us</a></li>
</ul>
    </div>
  </div>
</div>

<div id="body_wrapper">
<div id="body">
<div id="right">
<div class="content">
<div id="main">
<div class="clearer">&nbsp;</div>

<h1>Plugin Class Reference</h1>
<code>from PyKDE4.ktexteditor import *</code>
<p>
Inherits: QObject<br />

Namespace: <a href="../ktexteditor/KTextEditor.html">KTextEditor</a><br />
<h2>Detailed Description</h2>

<p>KTextEditor Plugin interface.
</p>
<p>
Topics:
- plugin_intro
- plugin_config
- plugin_sessions
- plugin_arch
</p>
<p>
<b>Introduction </b>
</p>
<p>
The Plugin class provides methods to create loadable plugins for all
KTextEditor implementations. A plugin can handle several documents and
views. For every document the plugin should handle addDocument() is called
and for every view addView().
</p>
<p>
<b>Configuration Management </b>
</p>
<p>
To do: write docu about config pages (new with kpluginmanager)
To do: write docu about save/load settings (related to config page)
</p>
<p>
<b>Session Management </b>
</p>
<p>
As an extension a Plugin can implement the SessionConfigInterface. This
interface provides functions to read and write session related settings.
If you have session dependent data additionally derive your Plugin from
this interface and implement the session related functions, for example:
<pre class="fragment">
 class MyPlugin : public KTextEditor.Plugin,
                  public KTextEditor.SessionConfigInterface
 {
   Q_OBJECT
   Q_INTERFACES(KTextEditor.SessionConfigInterface)

   // ...
   virtual void readSessionConfig (const KConfigGroup&amp; config);
   virtual void writeSessionConfig (KConfigGroup&amp; config);
 };
</pre>
</p>
<p>
<b>Plugin Architecture </b>
</p>
<p>
After the plugin is loaded the editor implementation should call
addDocument() and addView() for all documents and views the plugin should
handle. If your plugin has a GUI it is common to add an extra class, like:
<pre class="fragment">
 class PluginView : public QObject, public KXMLGUIClient
 {
     Q_OBJECT
 public:
     // Constructor and other methods
     PluginView( KTextEditor.View* view )
       : QObject( view ), KXMLGUIClient( view ), m_view( view )
     { ... }
     // ...
 private:
     KTextEditor.View* m_view;
 };
</pre>
Your KTextEditor.Plugin derived class then will create a new PluginView
for every View, i.e. for every call of addView().
</p>
<p>
The method removeView() will be called whenever a View is removed/closed.
If you have a PluginView for every view this is the place to remove it.
</p>
<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd> KTextEditor.Editor, KTextEditor.Document, KTextEditor.View,
KTextEditor.SessionConfigInterface
</dd></dl> 
<dl class="author" compact><dt><b>Author:</b></dt><dd> Christoph Cullmann &lt;cullmann@kde.org&gt; </dd></dl>
</p>
<table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Methods</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#Plugin">__init__</a> (self, QObject parent)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#addDocument">addDocument</a> (self, <a href="../ktexteditor/KTextEditor.Document.html">KTextEditor.Document</a> document)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#addView">addView</a> (self, <a href="../ktexteditor/KTextEditor.View.html">KTextEditor.View</a> view)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#removeDocument">removeDocument</a> (self, <a href="../ktexteditor/KTextEditor.Document.html">KTextEditor.Document</a> document)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#removeView">removeView</a> (self, <a href="../ktexteditor/KTextEditor.View.html">KTextEditor.View</a> view)</td></tr>
</table>
<hr><h2>Method Documentation</h2><a class="anchor" name="Plugin"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname">__init__</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype">QObject&nbsp;</td>
<td class="paramname"><em>parent</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Constructor.
</p>
<p>
Create a new plugin.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>parent</em>&nbsp;</td><td> parent object
</td></tr>
</table></dl>
<p>
</p></div></div><a class="anchor" name="addDocument"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> addDocument</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../ktexteditor/KTextEditor.Document.html">KTextEditor.Document</a>&nbsp;</td>
<td class="paramname"><em>document</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Add a new <b>document</b> to the plugin.
This method is called whenever the plugin should handle another
<b>document.</b>
</p>
<p>
For every call of addDocument() will finally follow a call of
removeDocument(), i.e. the number of calls are identic.
</p>
<p>
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>document</em>&nbsp;</td><td> new document to handle
</td></tr> </table></dl>
<p> <dl class="see" compact><dt><b>See also:</b></dt><dd> removeDocument(), addView()
</dd></dl>
</p></div></div><a class="anchor" name="addView"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> addView</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../ktexteditor/KTextEditor.View.html">KTextEditor.View</a>&nbsp;</td>
<td class="paramname"><em>view</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>This method is called whenever the plugin should add its GUI to
<b>view.</b>
The process for the Editor can be roughly described as follows:
- add documents the plugin should handle via addDocument()
- for every document doc call addView() for every view for
doc.
</p>
<p>
For every call of addView() will finally follow a call of
removeView(), i.e. the number of calls are identic.
</p>
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd> As addView() is called for every view in which the plugin's
GUI should be visible you must not add the GUI by
iterating over all Document.views() yourself neither use the
signal Document.viewCreated().
</dd></dl> </p>
<p>
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>view</em>&nbsp;</td><td> view to hang the gui in
</td></tr> </table></dl>
<p> <dl class="see" compact><dt><b>See also:</b></dt><dd> removeView(), addDocument()
</dd></dl>
</p></div></div><a class="anchor" name="removeDocument"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> removeDocument</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../ktexteditor/KTextEditor.Document.html">KTextEditor.Document</a>&nbsp;</td>
<td class="paramname"><em>document</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Remove the <b>document</b> from the plugin.
This method is called whenever the plugin should stop handling
the <b>document.</b>
</p>
<p>
For every call of addDocument() will finally follow a call of
removeDocument(), i.e. the number of calls are identic.
</p>
<p>
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>document</em>&nbsp;</td><td> document to hang the gui out from
</td></tr> </table></dl>
<p> <dl class="see" compact><dt><b>See also:</b></dt><dd> addDocument(), removeView()
</dd></dl>
</p></div></div><a class="anchor" name="removeView"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> removeView</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../ktexteditor/KTextEditor.View.html">KTextEditor.View</a>&nbsp;</td>
<td class="paramname"><em>view</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>This method is called whenever the plugin should remove its GUI from
<b>view.</b>
</p>
<p>
For every call of addView() will finally follow a call of
removeView(), i.e. the number of calls are identic.
</p>
<p>
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>view</em>&nbsp;</td><td> view to hang the gui out from
</td></tr> </table></dl>
<p> <dl class="see" compact><dt><b>See also:</b></dt><dd> addView(), removeDocument()
</dd></dl>
</p></div></div>
</div>
</div>
</div>

<div id="left">

<div class="menu_box">
<div class="nav_list">
<ul>
<li><a href="../allclasses.html">Full Index</a></li>
</ul>
</div>

<a name="cp-menu" /><div class="menutitle"><div>
  <h2 id="cp-menu-project">Modules</h2>
</div></div>
<div class="nav_list">
<ul><li><a href="../akonadi/index.html">akonadi</a></li>
<li><a href="../dnssd/index.html">dnssd</a></li>
<li><a href="../kdecore/index.html">kdecore</a></li>
<li><a href="../kdeui/index.html">kdeui</a></li>
<li><a href="../khtml/index.html">khtml</a></li>
<li><a href="../kio/index.html">kio</a></li>
<li><a href="../knewstuff/index.html">knewstuff</a></li>
<li><a href="../kparts/index.html">kparts</a></li>
<li><a href="../kutils/index.html">kutils</a></li>
<li><a href="../nepomuk/index.html">nepomuk</a></li>
<li><a href="../phonon/index.html">phonon</a></li>
<li><a href="../plasma/index.html">plasma</a></li>
<li><a href="../polkitqt/index.html">polkitqt</a></li>
<li><a href="../solid/index.html">solid</a></li>
<li><a href="../soprano/index.html">soprano</a></li>
</ul></div></div>

</div>

</div>
  <div class="clearer"/>
</div>

<div id="end_body"></div>
</div>
<div id="footer"><div id="footer_text">
This documentation is maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;simon&#64;simonzone&#46;com">Simon Edwards</a>.<br />
        KDE<sup>&#174;</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>&#174;</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
        <a href="http://www.kde.org/contact/impressum.php">Legal</a>
    </div></div>
</body>
</html>