https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&feed=atom&action=history
Development/Tutorials/Services/Introduction (de) - Revision history
2024-03-29T10:36:39Z
Revision history for this page on the wiki
MediaWiki 1.40.2
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=107065&oldid=prev
Nmariusp: {{Proposed_deletion|reason=Page was created before the current translation system.}}
2023-10-11T20:13:52Z
<p>{{Proposed_deletion|reason=Page was created before the current translation system.}}</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:13, 11 October 2023</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{Proposed_deletion|reason=Page was created before the current translation system.}}</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{TutorialBrowser (de)|</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{TutorialBrowser (de)|</div></td></tr>
</table>
Nmariusp
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=73066&oldid=prev
AnneW at 14:29, 14 July 2012
2012-07-14T14:29:51Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 14:29, 14 July 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{Template:I18n/Language Navigation Bar|Development/Tutorials/Services/Introduction}}</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{TutorialBrowser (de)|</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{TutorialBrowser (de)|</div></td></tr>
</table>
AnneW
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=60735&oldid=prev
Neverendingo: Text replace - "</code>" to "</syntaxhighlight>"
2011-06-29T20:56:27Z
<p>Text replace - "</code>" to "</syntaxhighlight>"</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:56, 29 June 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l53">Line 53:</td>
<td colspan="2" class="diff-lineno">Line 53:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> "konqueror");</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> "konqueror");</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService service(pathToDesktopFile);</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService service(pathToDesktopFile);</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></<del style="font-weight: bold; text-decoration: none;">code</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></<ins style="font-weight: bold; text-decoration: none;">syntaxhighlight</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService bietet auch Möglichkeiten, einen Dienst direkt über den Namen zu laden und zwar über die <tt>serviceBy*</tt> Methoden. Die sicherste und am meisten empfohlene ist die <tt>serviceByStorageId</tt>:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService bietet auch Möglichkeiten, einen Dienst direkt über den Namen zu laden und zwar über die <tt>serviceBy*</tt> Methoden. Die sicherste und am meisten empfohlene ist die <tt>serviceByStorageId</tt>:</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l59">Line 59:</td>
<td colspan="2" class="diff-lineno">Line 59:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="cpp-qt"></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="cpp-qt"></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService::Ptr service = KService::serviceByStorageId("konqueror");</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService::Ptr service = KService::serviceByStorageId("konqueror");</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></<del style="font-weight: bold; text-decoration: none;">code</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></<ins style="font-weight: bold; text-decoration: none;">syntaxhighlight</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Beachten Sie, dass der Rückgabewerte <tt>KService::Ptr</tt> ist und nicht nur ein {{class|KService}}. Ein <tt>{{class|KService}}::Ptr</tt> sieht aus und verhält sich genau wie ein normaler Zeiger (<tt>{{class|KService}}*</tt>), wird jedoch automatisch im Speicher verwaltet. Daher ist es nicht notwendig einen <tt>KService::Ptr</tt> von Hand zu löschen, da sie einen eingebauten Referenzzähler haben. </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Beachten Sie, dass der Rückgabewerte <tt>KService::Ptr</tt> ist und nicht nur ein {{class|KService}}. Ein <tt>{{class|KService}}::Ptr</tt> sieht aus und verhält sich genau wie ein normaler Zeiger (<tt>{{class|KService}}*</tt>), wird jedoch automatisch im Speicher verwaltet. Daher ist es nicht notwendig einen <tt>KService::Ptr</tt> von Hand zu löschen, da sie einen eingebauten Referenzzähler haben. </div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l73">Line 73:</td>
<td colspan="2" class="diff-lineno">Line 73:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> KRun::run(service, urls, 0);</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> KRun::run(service, urls, 0);</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div></<del style="font-weight: bold; text-decoration: none;">code</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></<ins style="font-weight: bold; text-decoration: none;">syntaxhighlight</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Dadurch wird <tt>Konqueror</tt> gestartet und die KDE Homepage geöffnet.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Dadurch wird <tt>Konqueror</tt> gestartet und die KDE Homepage geöffnet.</div></td></tr>
</table>
Neverendingo
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=59704&oldid=prev
Neverendingo: Text replace - "<code cppqt>" to "<syntaxhighlight lang="cpp-qt">"
2011-06-29T20:30:44Z
<p>Text replace - "<code cppqt>" to "<syntaxhighlight lang="cpp-qt">"</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:30, 29 June 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l49">Line 49:</td>
<td colspan="2" class="diff-lineno">Line 49:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Eine Suchanfrage</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Eine Suchanfrage</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Der erste Ansatz ist der direkteste und sieht ungefähr so aus:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Der erste Ansatz ist der direkteste und sieht ungefähr so aus:</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><<del style="font-weight: bold; text-decoration: none;">code cppqt</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><<ins style="font-weight: bold; text-decoration: none;">syntaxhighlight lang="cpp-qt"</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>QString pathToDesktopFile = KStandardDirs::locate("apps",</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>QString pathToDesktopFile = KStandardDirs::locate("apps",</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> "konqueror");</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> "konqueror");</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l57">Line 57:</td>
<td colspan="2" class="diff-lineno">Line 57:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService bietet auch Möglichkeiten, einen Dienst direkt über den Namen zu laden und zwar über die <tt>serviceBy*</tt> Methoden. Die sicherste und am meisten empfohlene ist die <tt>serviceByStorageId</tt>:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService bietet auch Möglichkeiten, einen Dienst direkt über den Namen zu laden und zwar über die <tt>serviceBy*</tt> Methoden. Die sicherste und am meisten empfohlene ist die <tt>serviceByStorageId</tt>:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><<del style="font-weight: bold; text-decoration: none;">code cppqt</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><<ins style="font-weight: bold; text-decoration: none;">syntaxhighlight lang="cpp-qt"</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService::Ptr service = KService::serviceByStorageId("konqueror");</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>KService::Ptr service = KService::serviceByStorageId("konqueror");</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l67">Line 67:</td>
<td colspan="2" class="diff-lineno">Line 67:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>An diesem Punkt haben wir jetzt Zugriff auf alle Arten von Informationen über einen bestimmten Service. In folgenden Beispiel soll <tt>konqueror</tt> aufgerufen werden. Um das zu bewerkstelligen können auch Dienste benutzt werden:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>An diesem Punkt haben wir jetzt Zugriff auf alle Arten von Informationen über einen bestimmten Service. In folgenden Beispiel soll <tt>konqueror</tt> aufgerufen werden. Um das zu bewerkstelligen können auch Dienste benutzt werden:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><<del style="font-weight: bold; text-decoration: none;">code cppqt</del>></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><<ins style="font-weight: bold; text-decoration: none;">syntaxhighlight lang="cpp-qt"</ins>></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>if (service.isApplication()) {</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>if (service.isApplication()) {</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> KUrl::List urls;</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> KUrl::List urls;</div></td></tr>
</table>
Neverendingo
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=21470&oldid=prev
Tampakrap: /* SyCoCa: Der System Konfigurations Cache */
2008-02-26T22:01:50Z
<p><span dir="auto"><span class="autocomment">SyCoCa: Der System Konfigurations Cache</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:01, 26 February 2008</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l88">Line 88:</td>
<td colspan="2" class="diff-lineno">Line 88:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Während die Methode mit <tt>.desktop</tt>-Dateien recht einfach für Benutzer und das hinzufügen neuer Einträge ist, kann die Effizienz ein Problem werden, da es nicht unüblich ist, mehrere tausend dieser Dateien (die verschiedene Mimetypes, Applikationen, Plugins, Bildschirmschoner, etc beschreiben) zu haben. Aus diesem Grund werden die Einträge in einen binären Cache geschrieben, der über shared memory von allen Applikationen benutzt werden kann. Dieser Cache nennt sich '''Sy'''stem '''Co'''nfiguration '''Ca'''che, oder kurz SyCoCa. Finden und Laden von {{class|KService}}s wird transparent für die eigene Applikation durch diesen Cache erledigt. </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Während die Methode mit <tt>.desktop</tt>-Dateien recht einfach für Benutzer und das hinzufügen neuer Einträge ist, kann die Effizienz ein Problem werden, da es nicht unüblich ist, mehrere tausend dieser Dateien (die verschiedene Mimetypes, Applikationen, Plugins, Bildschirmschoner, etc beschreiben) zu haben. Aus diesem Grund werden die Einträge in einen binären Cache geschrieben, der über shared memory von allen Applikationen benutzt werden kann. Dieser Cache nennt sich '''Sy'''stem '''Co'''nfiguration '''Ca'''che, oder kurz SyCoCa. Finden und Laden von {{class|KService}}s wird transparent für die eigene Applikation durch diesen Cache erledigt. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Jedesmal wenn eine neue <tt>.desktop</tt> Datei hinzugefügt, entfernt oder verändert wird, wird der Cache automatisch von der {{path|kbuildsycoca}} Applikation aktualisiert. Man kann eine Aktualisierung <del style="font-weight: bold; text-decoration: none;">erzwischen</del>, indem man {{path|kbuildsycoca}} per Hand aufruft, obwohl es normalerweise von {{path|kded}} aufgerufen wird, wenn es nötig ist. Ein vollständiges Neuerzeugen des Zwischenspeichers (und nicht nur ein einfachen auffrischen) kann dadurch erzwungen werden, dass man <tt>--noincremental</tt> an {{path|kbuildsycoca}} übergibt.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Jedesmal wenn eine neue <tt>.desktop</tt> Datei hinzugefügt, entfernt oder verändert wird, wird der Cache automatisch von der {{path|kbuildsycoca}} Applikation aktualisiert. Man kann eine Aktualisierung <ins style="font-weight: bold; text-decoration: none;">erzwingen</ins>, indem man {{path|kbuildsycoca}} per Hand aufruft, obwohl es normalerweise von {{path|kded}} aufgerufen wird, wenn es nötig ist. Ein vollständiges Neuerzeugen des Zwischenspeichers (und nicht nur ein einfachen auffrischen) kann dadurch erzwungen werden, dass man <tt>--noincremental</tt> an {{path|kbuildsycoca}} übergibt.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Nach Diensten suchen ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Nach Diensten suchen ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das nächste Kapitel ist [[../Traders (de)|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das nächste Kapitel ist [[../Traders (de)|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div></td></tr>
</table>
Tampakrap
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=16601&oldid=prev
Dhaumann at 19:32, 20 November 2007
2007-11-20T19:32:20Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:32, 20 November 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Template:I18n/Language Navigation Bar|Development/Tutorials/Services/Introduction}}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Template:I18n/Language Navigation Bar|Development/Tutorials/Services/Introduction}}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{TutorialBrowser(de)|</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{TutorialBrowser (de)|</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>series=Dienste|</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>series=Dienste|</div></td></tr>
</table>
Dhaumann
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=16598&oldid=prev
DrSlowDecay: Navigationstemplate eingefügt
2007-11-20T19:08:21Z
<p>Navigationstemplate eingefügt</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:08, 20 November 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Template:I18n/Language Navigation Bar|Development/Tutorials/Services/Introduction}}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Template:I18n/Language Navigation Bar|Development/Tutorials/Services/Introduction}}</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{TutorialBrowser(de)|</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">series=Dienste|</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">name=Einführung|</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">pre=keine|</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">next=[[../Traders_(de)|Dienste finden mit Trader Queries]]| </ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">reading=[http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec freedesktop.org Desktop File (englisch) Specification]<br>[http://www.freedesktop.org/wiki/Specifications/menu-spec freedesktop.org Menu (englisch) Specification]<br>[http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec freedesktop.org MimeType specification englisch]</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">}}</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Zusammenfassung ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Zusammenfassung ==</div></td></tr>
</table>
DrSlowDecay
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=16582&oldid=prev
DrSlowDecay: /* Nach Diensten suchen */ Link auf deutsche Seite
2007-11-20T15:17:09Z
<p><span dir="auto"><span class="autocomment">Nach Diensten suchen: </span> Link auf deutsche Seite</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:17, 20 November 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l78">Line 78:</td>
<td colspan="2" class="diff-lineno">Line 78:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Nach Diensten suchen ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Nach Diensten suchen ==</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das nächste Kapitel ist [[../Traders|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das nächste Kapitel ist [[../Traders <ins style="font-weight: bold; text-decoration: none;">(de)</ins>|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div></td></tr>
</table>
DrSlowDecay
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=16579&oldid=prev
DrSlowDecay: Rest übersetzt / translated the rest
2007-11-20T14:56:43Z
<p>Rest übersetzt / translated the rest</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 14:56, 20 November 2007</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l11">Line 11:</td>
<td colspan="2" class="diff-lineno">Line 11:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* Es ist flexibel</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* Es ist flexibel</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Whenever your application needs to launch another desktop application</del>, <del style="font-weight: bold; text-decoration: none;">find available applications</del>, <del style="font-weight: bold; text-decoration: none;">load plugins or find application add-ons it's as simple as a few lines of code to do </del>so <del style="font-weight: bold; text-decoration: none;">and the code is quite similar regardless of what you are looking for</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Jedesmal wenn Ihre Applikation einen Dienst (andere Applikation</ins>, <ins style="font-weight: bold; text-decoration: none;">Plugin oder Add-on) benötigt</ins>, <ins style="font-weight: bold; text-decoration: none;">ist das starten und/oder laden </ins>so <ins style="font-weight: bold; text-decoration: none;">einfach, dass ein paar Zeilen Code ausreichen. Egal wonach gesucht wird, der Code sieht immer sehr ähnlich aus</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Since most of the details involved in looking up services are hidden away from your application</del>, <del style="font-weight: bold; text-decoration: none;">if things change either due to time and new standards or platform specific features your code will continue to work</del>. <del style="font-weight: bold; text-decoration: none;">For instance, when </del>KDE <del style="font-weight: bold; text-decoration: none;">implemented the </del>freedesktop.org <del style="font-weight: bold; text-decoration: none;">specification for describing application launcher menu structures</del>, <del style="font-weight: bold; text-decoration: none;">application code that had been functioning previous to this continued to function without any changes or even a recompile</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Da die meisten Details bei der Suche nach Diensten von Ihrer Applikation verborgen werden</ins>, <ins style="font-weight: bold; text-decoration: none;">wird Ihr Code auch dann noch funktionieren, wenn der darunterliegende Rahmen durch neue Standards oder plattformspezifische Eigenschaften verändert wird</ins>. <ins style="font-weight: bold; text-decoration: none;">Wenn </ins>KDE <ins style="font-weight: bold; text-decoration: none;">zum Beispiel die von </ins>freedesktop.org <ins style="font-weight: bold; text-decoration: none;">vorgeschlagenen Spezifikationen für die Beschreibung von Starmenüs implementiert, wird Ihr Code</ins>, <ins style="font-weight: bold; text-decoration: none;">der vorher funktioniert hat auch hinterher seinen Dienst tun ohne Änderungen oder ein Neuübersetzen</ins>. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Best of all</del>, <del style="font-weight: bold; text-decoration: none;">the services system provides a flexible system under the hood for users and administrators to be able to customize</del>, <del style="font-weight: bold; text-decoration: none;">add new entries</del>, <del style="font-weight: bold; text-decoration: none;">remove existing items and even lock down access without putting any burden of complexity on application developers</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Das beste ist</ins>, <ins style="font-weight: bold; text-decoration: none;">dass das Dienstesystem ein flexibles System ist</ins>, <ins style="font-weight: bold; text-decoration: none;">welches Benutzern und Administratoren ermöglicht Elemente zu ändern</ins>, <ins style="font-weight: bold; text-decoration: none;">hinzuzufügen, zu entfernen oder den Zugriff darauf einzuschränken ohne den Applikationsentwickler mit unnötiger Komplexität zu belasten</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Ein Blick auf die Klassen ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Ein Blick auf die Klassen ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l42">Line 42:</td>
<td colspan="2" class="diff-lineno">Line 42:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>KService <del style="font-weight: bold; text-decoration: none;">also provides ways to load services by name directly with the </del><tt>serviceBy*</tt> <del style="font-weight: bold; text-decoration: none;">set of methods, of which the safest and most recommended is </del><tt>serviceByStorageId</tt>:</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>KService <ins style="font-weight: bold; text-decoration: none;">bietet auch Möglichkeiten, einen Dienst direkt über den Namen zu laden und zwar über die </ins><tt>serviceBy*</tt> <ins style="font-weight: bold; text-decoration: none;">Methoden. Die sicherste und am meisten empfohlene ist die </ins><tt>serviceByStorageId</tt>:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><code cppqt></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><code cppqt></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l48">Line 48:</td>
<td colspan="2" class="diff-lineno">Line 48:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Note that it passed back a </del><tt>KService::Ptr</tt> <del style="font-weight: bold; text-decoration: none;">rather than just a </del>{{class|KService}}. <del style="font-weight: bold; text-decoration: none;">A </del><tt>{{class|KService}}::Ptr</tt> <del style="font-weight: bold; text-decoration: none;">looks, acts and behaves just like a regular pointer </del>(<tt>{{class|KService}}*</tt>) <del style="font-weight: bold; text-decoration: none;">but it is automatically memory managed</del>. <del style="font-weight: bold; text-decoration: none;">It is not necessary to manually delete </del><tt>KService::Ptr</tt><del style="font-weight: bold; text-decoration: none;">s</del>, <del style="font-weight: bold; text-decoration: none;">because they are reference counted</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Beachten Sie, dass der Rückgabewerte </ins><tt>KService::Ptr</tt> <ins style="font-weight: bold; text-decoration: none;">ist und nicht nur ein </ins>{{class|KService}}. <ins style="font-weight: bold; text-decoration: none;">Ein </ins><tt>{{class|KService}}::Ptr</tt> <ins style="font-weight: bold; text-decoration: none;">sieht aus und verhält sich genau wie ein normaler Zeiger </ins>(<tt>{{class|KService}}*</tt>)<ins style="font-weight: bold; text-decoration: none;">, wird jedoch automatisch im Speicher verwaltet</ins>. <ins style="font-weight: bold; text-decoration: none;">Daher ist es nicht notwendig einen </ins><tt>KService::Ptr</tt> <ins style="font-weight: bold; text-decoration: none;">von Hand zu löschen</ins>, <ins style="font-weight: bold; text-decoration: none;">da sie einen eingebauten Referenzzähler haben</ins>. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">A list of all services can be retrieved using the </del><tt>{{class|KService}}::allServices</tt> <del style="font-weight: bold; text-decoration: none;">method</del>. <del style="font-weight: bold; text-decoration: none;">Of course</del>, <del style="font-weight: bold; text-decoration: none;">one often wants finer grained control over locating services, which is the role of the </del>{{class|KServiceTypeTrader}} <del style="font-weight: bold; text-decoration: none;">and is the topic of the next tutorial in this series</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Eine Liste aller Dienste kann mit der </ins><tt>{{class|KService}}::allServices</tt> <ins style="font-weight: bold; text-decoration: none;">Methode geholt werden</ins>. <ins style="font-weight: bold; text-decoration: none;">Jedoch benötigt man eine detailiertere Kontrolle über die Dienste</ins>, <ins style="font-weight: bold; text-decoration: none;">das ist die Aufgabe der Klasse </ins>{{class|KServiceTypeTrader}} <ins style="font-weight: bold; text-decoration: none;">und das Thema des nächsten Kapitels dieser Serie</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">At this point we now have access to all sorts of information on the service, which in this case is an application called </del><tt>konqueror</tt>. <del style="font-weight: bold; text-decoration: none;">We can even launch the app using this service</del>:</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">An diesem Punkt haben wir jetzt Zugriff auf alle Arten von Informationen über einen bestimmten Service. In folgenden Beispiel soll </ins><tt>konqueror</tt> <ins style="font-weight: bold; text-decoration: none;">aufgerufen werden</ins>. <ins style="font-weight: bold; text-decoration: none;">Um das zu bewerkstelligen können auch Dienste benutzt werden</ins>:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><code cppqt></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><code cppqt></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l62">Line 62:</td>
<td colspan="2" class="diff-lineno">Line 62:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></code></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">This would launch </del><tt><del style="font-weight: bold; text-decoration: none;">konqueror</del></tt> <del style="font-weight: bold; text-decoration: none;">and cause it to open the </del>KDE <del style="font-weight: bold; text-decoration: none;">homepage</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Dadurch wird </ins><tt><ins style="font-weight: bold; text-decoration: none;">Konqueror</ins></tt> <ins style="font-weight: bold; text-decoration: none;">gestartet und die </ins>KDE <ins style="font-weight: bold; text-decoration: none;">Homepage geöffnet</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Dienste registrieren ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Dienste registrieren ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Services are represented on disk as individual </del><tt>.desktop</tt> <del style="font-weight: bold; text-decoration: none;">files</del>. <del style="font-weight: bold; text-decoration: none;">This makes it easy to add</del>, <del style="font-weight: bold; text-decoration: none;">remove</del>, <del style="font-weight: bold; text-decoration: none;">and customize services on the system</del>. <del style="font-weight: bold; text-decoration: none;">The </del><tt>.desktop</tt> <del style="font-weight: bold; text-decoration: none;">files are organized by their type of service</del>. <del style="font-weight: bold; text-decoration: none;">Applications</del>, <del style="font-weight: bold; text-decoration: none;">plugins</del>, <del style="font-weight: bold; text-decoration: none;">protocols, and mimetypes are each kept </del>in <del style="font-weight: bold; text-decoration: none;">their own directories</del>. <del style="font-weight: bold; text-decoration: none;">The location of these directories is documented </del>in <del style="font-weight: bold; text-decoration: none;">the </del>[[KDE System Administration/KDE_Filesystem_Hierarchy|KDE Filesystem <del style="font-weight: bold; text-decoration: none;">Hierarchy</del>]] <del style="font-weight: bold; text-decoration: none;">page</del>. Installation <del style="font-weight: bold; text-decoration: none;">is usually automated through the build system</del>, <del style="font-weight: bold; text-decoration: none;">such as </del>CMake in KDE4.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Dienste werden auf der Festplatte als individuelle </ins><tt>.desktop</tt> <ins style="font-weight: bold; text-decoration: none;">Dateien beschrieben</ins>. <ins style="font-weight: bold; text-decoration: none;">Das macht es einfach</ins>, <ins style="font-weight: bold; text-decoration: none;">Dienste hinzuzufügen</ins>, <ins style="font-weight: bold; text-decoration: none;">zu löschen oder anzupassen</ins>. <ins style="font-weight: bold; text-decoration: none;">Die </ins><tt>.desktop</tt> <ins style="font-weight: bold; text-decoration: none;">Dateien werden vom jeweiligen Diensttyp organisiert</ins>. <ins style="font-weight: bold; text-decoration: none;">Applikationen</ins>, <ins style="font-weight: bold; text-decoration: none;">Plugins</ins>, <ins style="font-weight: bold; text-decoration: none;">Protokolle und Mimetypes werden jeweils </ins>in <ins style="font-weight: bold; text-decoration: none;">einem eigenen Verzeichnis aufbewahrt</ins>. <ins style="font-weight: bold; text-decoration: none;">Der Ort dieser Verzeichnisse wird </ins>in [[KDE System Administration/KDE_Filesystem_Hierarchy|KDE Filesystem <ins style="font-weight: bold; text-decoration: none;">Hierarchie</ins>]] <ins style="font-weight: bold; text-decoration: none;">beschrieben</ins>. <ins style="font-weight: bold; text-decoration: none;">Die </ins>Installation <ins style="font-weight: bold; text-decoration: none;">wird in der Regel durch das Build-System automatisiert</ins>, <ins style="font-weight: bold; text-decoration: none;">zum Beispiel </ins>CMake in KDE4.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Services may also have one or more </del>"<del style="font-weight: bold; text-decoration: none;">service types</del>" <del style="font-weight: bold; text-decoration: none;">that are used to categorize and search for them</del>. <del style="font-weight: bold; text-decoration: none;">While applications and mimetypes don't utilize this</del>, <del style="font-weight: bold; text-decoration: none;">plugins and other services do</del>. <del style="font-weight: bold; text-decoration: none;">These service types are registered by placing a </del><tt>.desktop</tt> <del style="font-weight: bold; text-decoration: none;">file describing the service type </del>in <del style="font-weight: bold; text-decoration: none;">the correct location in the filesystem, usually </del>{{path|share/kde4/servicetypes}}. <del style="font-weight: bold; text-decoration: none;">See the </del>[[KDE System Administration/KDE_Filesystem_Hierarchy|KDE Filesystem <del style="font-weight: bold; text-decoration: none;">Hierarchy</del>]] <del style="font-weight: bold; text-decoration: none;">page for more information</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Diensten können auch ein oder mehr </ins>"<ins style="font-weight: bold; text-decoration: none;">Diensttypen</ins>" <ins style="font-weight: bold; text-decoration: none;">haben, die benutzt werden, um sie zu kategorisieren und nach ihnen zu suchen</ins>. <ins style="font-weight: bold; text-decoration: none;">Während Applikationen und Mimetypes dies nicht benötigen</ins>, <ins style="font-weight: bold; text-decoration: none;">benötigen Plugins und andere Dienste diese Funktion</ins>. <ins style="font-weight: bold; text-decoration: none;">Die Diensttypen werden bestimmt, indem man eine </ins><tt>.desktop</tt> <ins style="font-weight: bold; text-decoration: none;">Datei an einer bestimmten Stelle im Verzeichnissystem anlegt, die den Diensttyp näher bestimmt. Dieses Verzeichnis ist </ins>in <ins style="font-weight: bold; text-decoration: none;">der Regel </ins>{{path|share/kde4/servicetypes}}. <ins style="font-weight: bold; text-decoration: none;">Näheres findet man im Kapitel </ins>[[KDE System Administration/KDE_Filesystem_Hierarchy|KDE Filesystem <ins style="font-weight: bold; text-decoration: none;">Hierarchie</ins>]].</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">The content and form of these </del>.desktop <del style="font-weight: bold; text-decoration: none;">files is covered in detail in the </del>[[../Plugins|<del style="font-weight: bold; text-decoration: none;">Creating and Loading </del>Plugins <del style="font-weight: bold; text-decoration: none;">Using </del>KService]] <del style="font-weight: bold; text-decoration: none;">tutorial</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Der Form und Inhalt dieser </ins>.desktop <ins style="font-weight: bold; text-decoration: none;">Dateien wird im Detail im Kapitel </ins>[[../Plugins <ins style="font-weight: bold; text-decoration: none;">(de)</ins>|<ins style="font-weight: bold; text-decoration: none;">Erzeugen und Laden von </ins>Plugins <ins style="font-weight: bold; text-decoration: none;">über </ins>KService]] <ins style="font-weight: bold; text-decoration: none;">beschrieben</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== SyCoCa: Der System Konfigurations Cache ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== SyCoCa: Der System Konfigurations Cache ==</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Während die Methode mit <tt>.desktop</tt>-Dateien recht einfach für Benutzer und das hinzufügen neuer Einträge ist, kann die Effizienz ein Problem werden, da es nicht unüblich ist, mehrere tausend dieser Dateien (die verschiedene Mimetypes, Applikationen, Plugins, Bildschirmschoner, etc beschreiben) zu haben. Aus diesem Grund werden die Einträge in einen binären Cache geschrieben, der über shared memory von allen Applikationen benutzt werden kann. Dieser Cache nennt sich '''Sy'''stem '''Co'''nfiguration '''Ca'''che, oder kurz SyCoCa. Finden und Laden von {{class|KService}}s wird transparent für die eigene Applikation durch diesen Cache erledigt. </ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">While the </del><tt>.desktop</tt> <del style="font-weight: bold; text-decoration: none;">(file) method is very handy for users (and adding new entries), performance could be an issue because it is common to have thousands of these files describing various mimetypes, applications, plugins, screensavers, etc. Thus, the entries are put into a binary cache which is accessed via shared memory by all applications. The cache is known as the '''Sy'''stem '''Co'''nfiguration '''Ca'''che, or SyCoCa for short. Loading and locating {{class|KService}}s is done via this cache, transparently to the application. </del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Jedesmal wenn eine neue </ins><tt>.desktop</tt> <ins style="font-weight: bold; text-decoration: none;">Datei hinzugefügt</ins>, <ins style="font-weight: bold; text-decoration: none;">entfernt oder verändert wird</ins>, <ins style="font-weight: bold; text-decoration: none;">wird der Cache automatisch von der </ins>{{path|kbuildsycoca}} <ins style="font-weight: bold; text-decoration: none;">Applikation aktualisiert</ins>. <ins style="font-weight: bold; text-decoration: none;">Man kann eine Aktualisierung erzwischen, indem man </ins>{{path|kbuildsycoca}} <ins style="font-weight: bold; text-decoration: none;">per Hand aufruft</ins>, <ins style="font-weight: bold; text-decoration: none;">obwohl es normalerweise von </ins>{{path|kded}} <ins style="font-weight: bold; text-decoration: none;">aufgerufen wird, wenn es nötig ist</ins>. <ins style="font-weight: bold; text-decoration: none;">Ein vollständiges Neuerzeugen des Zwischenspeichers </ins>(<ins style="font-weight: bold; text-decoration: none;">und nicht nur ein einfachen auffrischen</ins>) <ins style="font-weight: bold; text-decoration: none;">kann dadurch erzwungen werden, dass man </ins><tt>--noincremental</tt> <ins style="font-weight: bold; text-decoration: none;">an </ins>{{path|kbuildsycoca}} <ins style="font-weight: bold; text-decoration: none;">übergibt</ins>.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Whenever a new <tt>.desktop</tt> file is added</del>, <del style="font-weight: bold; text-decoration: none;">removed or altered</del>, <del style="font-weight: bold; text-decoration: none;">the cache is automatically updated by the </del>{{path|kbuildsycoca}} <del style="font-weight: bold; text-decoration: none;">application</del>. <del style="font-weight: bold; text-decoration: none;">You can force an update of the cache by running </del>{{path|kbuildsycoca}} <del style="font-weight: bold; text-decoration: none;">manually</del>, <del style="font-weight: bold; text-decoration: none;">though usually it is launched by </del>{{path|kded}} <del style="font-weight: bold; text-decoration: none;">automatically when needed</del>. <del style="font-weight: bold; text-decoration: none;">A full rebuild of the cache </del>(<del style="font-weight: bold; text-decoration: none;">versus a simple update</del>) <del style="font-weight: bold; text-decoration: none;">can be triggered by passing </del><tt>--noincremental</tt> <del style="font-weight: bold; text-decoration: none;">to </del>{{path|kbuildsycoca}}.</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Nach Diensten suchen ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Nach Diensten suchen ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das nächste Kapitel ist [[../Traders|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das nächste Kapitel ist [[../Traders|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div></td></tr>
</table>
DrSlowDecay
https://techbase.kde.org/index.php?title=Development/Tutorials/Services/Introduction_(de)&diff=16577&oldid=prev
DrSlowDecay: Seite angelegt und erste Teile übersetzt
2007-11-20T13:49:41Z
<p>Seite angelegt und erste Teile übersetzt</p>
<p><b>New page</b></p><div>{{Template:I18n/Language Navigation Bar|Development/Tutorials/Services/Introduction}}<br />
<br />
== Zusammenfassung ==<br />
Dienste (Services) stellen Applikationen, Plugins und andere Erweiterungen dar, die auf dem System verfügbar sind. Sie vereinfachen das Finden, Starten und Laden der Module, die sie repräsentieren ohne eine spezielle Erweiterung zum Zeitpunkt der Programmierung des Hauptprogrammes kennen zu müssen. Diese Anleitung beschäftigt sich damit, was das Dienste-System zur Verfügung stellt und wo die Informationen gespeichert werden. <br />
<br />
== Die Vorteile Dienste zu benutzen ==<br />
<br />
Es gibt drei Hauptvorteile, Dienste zu benutzen:<br />
* Es ist einfach<br />
* Es ist zukunftssicher<br />
* Es ist flexibel<br />
<br />
Whenever your application needs to launch another desktop application, find available applications, load plugins or find application add-ons it's as simple as a few lines of code to do so and the code is quite similar regardless of what you are looking for.<br />
<br />
Since most of the details involved in looking up services are hidden away from your application, if things change either due to time and new standards or platform specific features your code will continue to work. For instance, when KDE implemented the freedesktop.org specification for describing application launcher menu structures, application code that had been functioning previous to this continued to function without any changes or even a recompile.<br />
<br />
Best of all, the services system provides a flexible system under the hood for users and administrators to be able to customize, add new entries, remove existing items and even lock down access without putting any burden of complexity on application developers.<br />
<br />
== Ein Blick auf die Klassen ==<br />
Die Hauptklassen für Dienste, die von Applikationen am meisten benutzt werden sind in der Regel nur diese beiden:<br />
<br />
*{{class|KService}}: Repräsentiert eine Applikation, ein Plugin oder eine Erweiterung<br />
*{{class|KServiceTypeTrader}}: Erlaubt das Suchen nach verfügbaren Diensten durch eine einfache Suchanfragen Sprache. Diese Klasse und die Suchanfragen werden detailiert im folgenden Kapitel [[../Traders|next tutorial]] besprochen.<br />
<br />
Andere Klassen die verfügbar sind, jedoch wenig häufig von Applikationen benutzt werden sind unter anderem:<br />
*{{class|KServiceOffer}}: Stellt Informationen über die Benutzervoreinstellungen zu einem bestimmten Service zur Verfügung und wird primär für mimitypes benutzt. <br />
*{{class|KServiceType}}: Stellt Zugriff auf Informationen über einen bestimmten Typ von Diensten zur Verfügung.<br />
*{{class|KServiceTypeProfile}}: Repräsentiert die Benutzervoreinstellungen zwischen verschiedenen Diensten des selben Typs. Wird intern von KServiceTypeTrader benutzt. <br />
<br />
== KService ==<br />
Die {{class|KService}} Klasse bildet das Zentrum des Dienstsystems. Es spielt eine sowohl informative als auch funktionelle Rolle. {{class|KService}} stellt einen Zugriff auf die Details eines bestimmten Dienstes zur Verfügung, so zum Beispiel ob es eine Applikation ist, welchen Namen der Dienst hat, das assoziierte Icon (wenn es ein solches gibt) usw. Es kann aber auch benutzt werden, um Applikationen zu starten und Plugins von der Festplatte zu laden.<br />
<br />
Ein {{class|KService}} Objekt kann auf drei Arten erzeugt werden:<br />
*Erzeugung per Hand<br />
*Anfordern über den Namen<br />
*Eine Suchanfrage<br />
Der erste Ansatz ist der direkteste und sieht ungefähr so aus:<br />
<code cppqt><br />
QString pathToDesktopFile = KStandardDirs::locate("apps",<br />
"konqueror");<br />
KService service(pathToDesktopFile);<br />
</code><br />
<br />
KService also provides ways to load services by name directly with the <tt>serviceBy*</tt> set of methods, of which the safest and most recommended is <tt>serviceByStorageId</tt>:<br />
<br />
<code cppqt><br />
KService::Ptr service = KService::serviceByStorageId("konqueror");<br />
</code><br />
<br />
Note that it passed back a <tt>KService::Ptr</tt> rather than just a {{class|KService}}. A <tt>{{class|KService}}::Ptr</tt> looks, acts and behaves just like a regular pointer (<tt>{{class|KService}}*</tt>) but it is automatically memory managed. It is not necessary to manually delete <tt>KService::Ptr</tt>s, because they are reference counted.<br />
<br />
A list of all services can be retrieved using the <tt>{{class|KService}}::allServices</tt> method. Of course, one often wants finer grained control over locating services, which is the role of the {{class|KServiceTypeTrader}} and is the topic of the next tutorial in this series.<br />
<br />
At this point we now have access to all sorts of information on the service, which in this case is an application called <tt>konqueror</tt>. We can even launch the app using this service:<br />
<br />
<code cppqt><br />
if (service.isApplication()) {<br />
KUrl::List urls;<br />
urls << "http://www.kde.org";<br />
KRun::run(service, urls, 0);<br />
}<br />
</code><br />
<br />
This would launch <tt>konqueror</tt> and cause it to open the KDE homepage.<br />
<br />
== Dienste registrieren ==<br />
<br />
Services are represented on disk as individual <tt>.desktop</tt> files. This makes it easy to add, remove, and customize services on the system. The <tt>.desktop</tt> files are organized by their type of service. Applications, plugins, protocols, and mimetypes are each kept in their own directories. The location of these directories is documented in the [[KDE System Administration/KDE_Filesystem_Hierarchy|KDE Filesystem Hierarchy]] page. Installation is usually automated through the build system, such as CMake in KDE4.<br />
<br />
Services may also have one or more "service types" that are used to categorize and search for them. While applications and mimetypes don't utilize this, plugins and other services do. These service types are registered by placing a <tt>.desktop</tt> file describing the service type in the correct location in the filesystem, usually {{path|share/kde4/servicetypes}}. See the [[KDE System Administration/KDE_Filesystem_Hierarchy|KDE Filesystem Hierarchy]] page for more information.<br />
<br />
The content and form of these .desktop files is covered in detail in the [[../Plugins|Creating and Loading Plugins Using KService]] tutorial.<br />
<br />
== SyCoCa: Der System Konfigurations Cache ==<br />
<br />
While the <tt>.desktop</tt> (file) method is very handy for users (and adding new entries), performance could be an issue because it is common to have thousands of these files describing various mimetypes, applications, plugins, screensavers, etc. Thus, the entries are put into a binary cache which is accessed via shared memory by all applications. The cache is known as the '''Sy'''stem '''Co'''nfiguration '''Ca'''che, or SyCoCa for short. Loading and locating {{class|KService}}s is done via this cache, transparently to the application. <br />
<br />
Whenever a new <tt>.desktop</tt> file is added, removed or altered, the cache is automatically updated by the {{path|kbuildsycoca}} application. You can force an update of the cache by running {{path|kbuildsycoca}} manually, though usually it is launched by {{path|kded}} automatically when needed. A full rebuild of the cache (versus a simple update) can be triggered by passing <tt>--noincremental</tt> to {{path|kbuildsycoca}}.<br />
<br />
== Nach Diensten suchen ==<br />
Das nächste Kapitel ist [[../Traders|Dienste über Trader queries finden]]. Wir werden sehen, wie man Dienste über die KTrader query language und die {{class|KServiceTypeTrader}} Klasse findet.</div>
DrSlowDecay