Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > b77dda48f87d4eda8cc559e40c49a652 > files > 316

python-kde4-doc-4.4.5-0.2mdv2010.2.i586.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>KServiceTypeTrader</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.4 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>KServiceTypeTrader Class Reference</h1>
<code>from PyKDE4.kdecore import *</code>
<p>



<h2>Detailed Description</h2>

<p>KDE's trader interface (similar to the CORBA Trader), which provides a way
to query the KDE infrastructure for specific applications or components.
</p>
<p>
Basically, KServiceTypeTrader provides a way for an application to query
all KDE services (that is, applications, components, plugins) that match
a specific set of requirements. This allows to find specific services
at run-time without having to hard-code their names and/or paths.
</p>
<p>
For anything relating to mimetypes (type of files), ignore KServiceTypeTrader
and use KMimeTypeTrader instead.
</p>
<p>
Example
</p>
<p>
If you want to find all plugins for your application,
you would define a KMyApp/Plugin servicetype, and then you can query
the trader for it:
<pre class="fragment">
 KService.List offers =
     KServiceTypeTrader.self()-&gt;query("KMyApp/Plugin");
</pre>
</p>
<p>
You can add a constraint in the "trader query language". For instance:
<pre class="fragment">
 KServiceTypeTrader.self()-&gt;query("KMyApp/Plugin",
                                   "[X-KMyApp-InterfaceVersion] &gt; 15");
</pre>
</p>
<p>
Please note that when including property names containing arithmetic operators like - or +, then you have
to put brackets around the property name, in order to correctly separate arithmetic operations from
the name. So for example a constraint expression like
<pre class="fragment">
 X-KMyApp-InterfaceVersion &gt; 4 // wrong!
</pre>
needs to be written as
<pre class="fragment">
 [X-KMyApp-InterfaceVersion] &gt; 4
</pre>
otherwise it could also be interpreted as
Subtract the numeric value of the property "KMyApp" and "InterfaceVersion" from the
property "X" and make sure it is greater than 4.\n
Instead of the other meaning, make sure that the numeric value of "X-KMyApp-InterfaceVersion" is
greater than 4.
</p>
<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd> KMimeTypeTrader, KService
</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="#KServiceTypeTrader">__init__</a> (self)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#KServiceTypeTrader">__init__</a> (self, <a href="../kdecore/KServiceTypeTrader.html">KServiceTypeTrader</a> other)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#applyConstraints">applyConstraints</a> (self, <a href="../kdecore/KService.List.html">KService.List</a> lst, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> constraint)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdecore/KService.List.html">KService.List</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#defaultOffers">defaultOffers</a> (self, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> serviceType, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> constraint=QString())</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdecore/KService.Ptr.html">KService.Ptr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#preferredService">preferredService</a> (self, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> serviceType)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdecore/KService.List.html">KService.List</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#query">query</a> (self, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> servicetype, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> constraint=QString())</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdecore/KServiceTypeTrader.html">KServiceTypeTrader</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#self">self</a> (self)</td></tr>
</table>
<hr><h2>Method Documentation</h2><a class="anchor" name="KServiceTypeTrader"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname">__init__</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"><em>self</em>&nbsp;)</td>
<td width="100%"> </td>
</tr>
</table>
</div>
<div class="memdoc"><p><dl class="internal" compact><dt><b>Internal:</b></dt><dd>
</dd></dl>
</p></div></div><a class="anchor" name="KServiceTypeTrader"></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"><a href="../kdecore/KServiceTypeTrader.html">KServiceTypeTrader</a>&nbsp;</td>
<td class="paramname"><em>other</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"></div></div><a class="anchor" name="applyConstraints"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> applyConstraints</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="../kdecore/KService.List.html">KService.List</a>&nbsp;</td>
<td class="paramname"><em>lst</em>, </td>
</tr>
<tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>&nbsp;</td>
<td class="paramname"><em>constraint</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p><dl class="internal" compact><dt><b>Internal:</b></dt><dd> (public for KMimeTypeTrader)
</dd></dl>
</p></div></div><a class="anchor" name="defaultOffers"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"><a href="../kdecore/KService.List.html">KService.List</a> defaultOffers</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="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>&nbsp;</td>
<td class="paramname"><em>serviceType</em>, </td>
</tr>
<tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>&nbsp;</td>
<td class="paramname"><em>constraint=QString()</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Returns all offers associated with a given servicetype, IGNORING the
user preference. The sorting will be the one coming from the InitialPreference
in the .desktop files, and services disabled by the user will still be listed here.
This is used for "Revert to defaults" buttons in GUIs.
</p></div></div><a class="anchor" name="preferredService"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"><a href="../kdecore/KService.Ptr.html">KService.Ptr</a> preferredService</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="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>&nbsp;</td>
<td class="paramname"><em>serviceType</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Returns the preferred service for <b>serviceType.</b>
</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>serviceType</em>&nbsp;</td><td> the service type (e.g. "KMyApp/Plugin")
</td></tr> </table></dl>
<p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> the preferred service, or 0 if no service is available
</dd></dl>
</p></div></div><a class="anchor" name="query"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"><a href="../kdecore/KService.List.html">KService.List</a> query</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="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>&nbsp;</td>
<td class="paramname"><em>servicetype</em>, </td>
</tr>
<tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>&nbsp;</td>
<td class="paramname"><em>constraint=QString()</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>The main function in the KServiceTypeTrader class.
</p>
<p>
It will return a list of services that match your
specifications. The only required parameter is the service
type. This is something like 'text/plain' or 'text/html'. The
constraint parameter is used to limit the possible choices
returned based on the constraints you give it.
</p>
<p>
The <b>constraint</b> language is rather full. The most common
keywords are AND, OR, NOT, IN, and EXIST, all used in an
almost spoken-word form. An example is:
<pre class="fragment">
 (Type == 'Service') and (('KParts/ReadOnlyPart' in ServiceTypes) or (exist Exec))
</pre>
</p>
<p>
The keys used in the query (Type, ServiceType, Exec) are all
fields found in the .desktop files.
</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>servicetype</em>&nbsp;</td><td> A service type like 'KMyApp/Plugin' or 'KFilePlugin'.

<tr><td></td><td valign="top"><em>constraint</em>&nbsp;</td><td> A constraint to limit the choices returned, QString() to
get all services of the given <b>servicetype</b>
</td></tr>
</table></dl>
<p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> A list of services that satisfy the query
</dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> http://techbase.kde.org/Development/Tutorials/Services/Traders#The_KTrader_Query_Language
</dd></dl>
</p></div></div><a class="anchor" name="self"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"><a href="../kdecore/KServiceTypeTrader.html">KServiceTypeTrader</a> self</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"><em>self</em>&nbsp;)</td>
<td width="100%"> </td>
</tr>
</table>
</div>
<div class="memdoc"><p>This is a static pointer to the KServiceTypeTrader singleton.
</p>
<p>
You will need to use this to access the KServiceTypeTrader functionality since the
constructors are protected.
</p>
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd> Static KServiceTypeTrader instance
</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>