<?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>KCModuleProxy</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"> </div> <h1>KCModuleProxy Class Reference</h1> <code>from PyKDE4.kutils import *</code> <p> Inherits: QWidget → QObject<br /> <h2>Detailed Description</h2> <p>Encapsulates a KCModule for embedding. </p> <p> KCModuleProxy is a wrapper for KCModule intended for cases where modules are to be displayed. It ensures layout is consistent and in general takes care of the details needed for making a module available in an interface. A KCModuleProxy can be treated as a QWidget, without worrying about the details specific for modules such as library loading. KCModuleProxy is not a sub class of KCModule but its API closely resembles KCModule's.\n Usually, an instance is created by passing one of the constructors a KService.Ptr, KCModuleInfo or simply the name of the module and then added to the layout as any other widget. When the user has changed the module, changed(bool) as well as changed(KCModuleProxy *) is emitted. KCModuleProxy does not take care of prompting for saving - if the object is deleted while changes is not saved the changes will be lost. changed() returns true if changes are unsaved. KCModuleProxy does not take care of authorization of KCModules. KCModuleProxy implements lazy loading, meaning the library will not be loaded or any other initialization done before its show() function is called. This means modules will only be loaded when they are actually needed as well as it is possible to load many KCModuleProxy without any speed penalty. </p> <p> KCModuleProxy should be used in all cases where modules are embedded in order to promote code efficiency and usability consistency. </p> <p> <dl class="author" compact><dt><b>Author:</b></dt><dd> Frans Englich <frans.englich@telia.com> </dd></dl> <dl class="author" compact><dt><b>Author:</b></dt><dd> Matthias Kretz <kretz@kde.org> </dd></dl> </p> <table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Signals</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#changed">changed</a> (bool state)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#changed">changed</a> (<a href="../kutils/KCModuleProxy.html">KCModuleProxy</a> mod)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#childClosed">childClosed</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#quickHelpChanged">quickHelpChanged</a> ()</td></tr> <tr><td colspan="2"><br><h2>Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KCModuleProxy">__init__</a> (self, <a href="../kutils/KCModuleInfo.html">KCModuleInfo</a> info, QWidget parent=0, QStringList args=QStringList())</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KCModuleProxy">__init__</a> (self, QString serviceName, QWidget parent=0, QStringList args=QStringList())</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KCModuleProxy">__init__</a> (self, KSharedPtr<KService> service, QWidget parent=0, QStringList args=QStringList())</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdecore/KAboutData.html">KAboutData</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aboutData">aboutData</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdeui/KCModule.html">KCModule.Buttons</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#buttons">buttons</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#changed">changed</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdecore/KComponentData.html">KComponentData</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#componentData">componentData</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="#dbusPath">dbusPath</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="#dbusService">dbusService</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#defaults">defaults</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#deleteClient">deleteClient</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#load">load</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QSize </td><td class="memItemRight" valign="bottom"><a class="el" href="#minimumSizeHint">minimumSizeHint</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kutils/KCModuleInfo.html">KCModuleInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#moduleInfo">moduleInfo</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="#quickHelp">quickHelp</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdeui/KCModule.html">KCModule</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#realModule">realModule</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="#rootOnlyMessage">rootOnlyMessage</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#save">save</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#showEvent">showEvent</a> (self, QShowEvent a0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#useRootOnlyMessage">useRootOnlyMessage</a> (self)</td></tr> </table> <hr><h2>Signal Documentation</h2><a class="anchor" name="changed"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> changed</td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>state</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>This is emitted in the same situations as in the one above. Practical when several KCModuleProxys are loaded. </p><dl compact><dt><b>Signal syntax:</b></dt><dd><code>QObject.connect(source, SIGNAL("changed(bool)"), target_slot)</code></dd></dl></div></div><a class="anchor" name="changed"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> changed</td> <td>(</td> <td class="paramtype"><a href="../kutils/KCModuleProxy.html">KCModuleProxy</a> </td> <td class="paramname"><em>mod</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>This is emitted in the same situations as in the one above. Practical when several KCModuleProxys are loaded. </p><dl compact><dt><b>Signal syntax:</b></dt><dd><code>QObject.connect(source, SIGNAL("changed(KCModuleProxy*)"), target_slot)</code></dd></dl></div></div><a class="anchor" name="childClosed"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> childClosed</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">)</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>When a module running with root privileges and exits, returns to normal mode, the childClosed() signal is emitted. </p><dl compact><dt><b>Signal syntax:</b></dt><dd><code>QObject.connect(source, SIGNAL("childClosed()"), target_slot)</code></dd></dl></div></div><a class="anchor" name="quickHelpChanged"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> quickHelpChanged</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">)</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><dl compact><dt><b>Signal syntax:</b></dt><dd><code>QObject.connect(source, SIGNAL("quickHelpChanged()"), target_slot)</code></dd></dl></div></div><hr><h2>Method Documentation</h2><a class="anchor" name="KCModuleProxy"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../kutils/KCModuleInfo.html">KCModuleInfo</a> </td> <td class="paramname"><em>info</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QWidget </td> <td class="paramname"><em>parent=0</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QStringList </td> <td class="paramname"><em>args=QStringList()</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Constructs a KCModuleProxy from a KCModuleInfo class. </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>info</em> </td><td> The KCModuleInfo to construct the module from. <tr><td></td><td valign="top"><em>parent</em> </td><td> the parent QWidget. <tr><td></td><td valign="top"><em>args</em> </td><td> This is used in the implementation and is internal. Use the default. </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="KCModuleProxy"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>serviceName</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QWidget </td> <td class="paramname"><em>parent=0</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QStringList </td> <td class="paramname"><em>args=QStringList()</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Constructs a KCModuleProxy from a module's service name, which is equivalent to the desktop file for the kcm without the ".desktop" part. Otherwise equal to the one above. </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>serviceName</em> </td><td> The module's service name to construct from. <tr><td></td><td valign="top"><em>parent</em> </td><td> the parent QWidget. <tr><td></td><td valign="top"><em>args</em> </td><td> This is used in the implementation and is internal. Use the default. </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="KCModuleProxy"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">KSharedPtr<KService> </td> <td class="paramname"><em>service</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QWidget </td> <td class="paramname"><em>parent=0</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QStringList </td> <td class="paramname"><em>args=QStringList()</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Constructs a KCModuleProxy from KService. Otherwise equal to the one above. </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>service</em> </td><td> The KService to construct from. <tr><td></td><td valign="top"><em>parent</em> </td><td> the parent QWidget. <tr><td></td><td valign="top"><em>args</em> </td><td> This is used in the implementation and is internal. Use the default. </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="aboutData"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../kdecore/KAboutData.html">KAboutData</a> aboutData</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> the module's aboutData() </dd></dl> </p></div></div><a class="anchor" name="buttons"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../kdeui/KCModule.html">KCModule.Buttons</a> buttons</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> what buttons the module needs </dd></dl> </p></div></div><a class="anchor" name="changed"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool changed</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>This is emitted in the same situations as in the one above. Practical when several KCModuleProxys are loaded. </p></div></div><a class="anchor" name="componentData"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../kdecore/KComponentData.html">KComponentData</a> componentData</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the embedded KCModule's KComponentData. <dl class="return" compact><dt><b>Returns:</b></dt><dd> The module's KComponentData. </dd></dl> <dl class="deprecated" compact><dt><b>Deprecated:</b></dt><dd> </dd></dl> </p></div></div><a class="anchor" name="dbusPath"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QString dbusPath</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the DBUS Path </p></div></div><a class="anchor" name="dbusService"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QString dbusService</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the DBUS Service name </p></div></div><a class="anchor" name="defaults"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> defaults</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Calling it will cause the contained module to load its default values. </p></div></div><a class="anchor" name="deleteClient"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> deleteClient</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Calling this, results in deleting the contained module, and unregistering from DCOP. A similar result is achieved by deleting the KCModuleProxy itself. </p></div></div><a class="anchor" name="load"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> load</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Calling it will cause the contained module to run its load() routine. </p></div></div><a class="anchor" name="minimumSizeHint"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QSize minimumSizeHint</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the recommended minimum size for the widget </p></div></div><a class="anchor" name="moduleInfo"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../kutils/KCModuleInfo.html">KCModuleInfo</a> moduleInfo</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> a KCModuleInfo for the encapsulated module </dd></dl> </p></div></div><a class="anchor" name="quickHelp"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QString quickHelp</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> the module's quickHelp(); </dd></dl> </p></div></div><a class="anchor" name="realModule"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../kdeui/KCModule.html">KCModule</a> realModule</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Access to the actual module. However, if the module is running in root mode, see rootMode(), this function returns a NULL pointer, since the module is in another process. It may also return NULL if anything goes wrong. </p> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> the encapsulated module. </dd></dl> </p></div></div><a class="anchor" name="rootOnlyMessage"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QString rootOnlyMessage</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> The module's custom root message, if it has one </dd></dl> <dl class="deprecated" compact><dt><b>Deprecated:</b></dt><dd> </dd></dl> </p></div></div><a class="anchor" name="save"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> save</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Calling it will cause the contained module to run its save() routine. </p> <p> If the module was not modified, it will not be asked to save. </p></div></div><a class="anchor" name="showEvent"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> showEvent</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QShowEvent </td> <td class="paramname"><em>a0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Reimplemented for internal purposes. Makes sure the encapsulated module is loaded before the show event is taken care of. </p></div></div><a class="anchor" name="useRootOnlyMessage"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool useRootOnlyMessage</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> If the module is a root module. </dd></dl> <dl class="deprecated" compact><dt><b>Deprecated:</b></dt><dd> </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="mailto:simon@simonzone.com">Simon Edwards</a>.<br /> KDE<sup>®</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>®</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>