• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeutils
 

tdeutils

  • tdeutils
kplugininfo.cpp
1/* This file is part of the KDE project
2 Copyright (C) 2003 Matthias Kretz <kretz@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation.
7
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details.
12
13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 Boston, MA 02110-1301, USA.
17
18*/
19
20#include "kplugininfo.h"
21#include <ksimpleconfig.h>
22#include <ktrader.h>
23#include <kdebug.h>
24#include <tdeconfigbase.h>
25#include <tdeglobal.h>
26#include <tdestandarddirs.h>
27#include <kdesktopfile.h>
28#include <kservice.h>
29
30class KPluginInfo::KPluginInfoPrivate
31{
32 public:
33 KPluginInfoPrivate()
34 : hidden( false )
35 , enabledbydefault( false )
36 , pluginenabled( false )
37 , config( 0 )
38 , kcmservicesCached( false )
39 {}
40
41 ~KPluginInfoPrivate()
42 {
43 delete config;
44 }
45
46 TQString specfile; // the filename of the file containing all the info
47 TQString name;
48 TQString comment;
49 TQString icon;
50 TQString author;
51 TQString email;
52 TQString pluginName; // the name attribute in the .rc file
53 TQString version;
54 TQString website; // URL to the website of the plugin/author
55 TQString category;
56 TQString license;
57 TQStringList dependencies;
58
59 bool hidden;
60 bool enabledbydefault;
61 bool pluginenabled;
62
63 TDEConfig * config;
64 TQString configgroup;
65 KService::Ptr service;
66 TQValueList<KService::Ptr> kcmservices;
67 bool kcmservicesCached;
68};
69
70KPluginInfo::KPluginInfo( const TQString & filename, const char* resource )
71: d( new KPluginInfoPrivate )
72{
73 KDesktopFile file( filename, true, resource );
74
75 d->specfile = filename;
76
77 if( filename.endsWith( TQString::fromAscii( ".desktop" ) ) )
78 {
79 file.setDesktopGroup();
80 d->hidden = file.readBoolEntry( "Hidden", false );
81 if( d->hidden )
82 return;
83
84 d->name = file.readName();
85 d->comment = file.readComment();
86 d->icon = file.readEntry( "Icon" );
87 d->author = file.readEntry( "X-TDE-PluginInfo-Author" );
88 d->email = file.readEntry( "X-TDE-PluginInfo-Email" );
89 d->pluginName = file.readEntry( "X-TDE-PluginInfo-Name" );
90 d->version = file.readEntry( "X-TDE-PluginInfo-Version" );
91 d->website = file.readEntry( "X-TDE-PluginInfo-Website" );
92 d->category = file.readEntry( "X-TDE-PluginInfo-Category" );
93 d->license = file.readEntry( "X-TDE-PluginInfo-License" );
94 d->dependencies = file.readListEntry( "X-TDE-PluginInfo-Depends" );
95 d->enabledbydefault = file.readBoolEntry(
96 "X-TDE-PluginInfo-EnabledByDefault", false );
97 }
98 else if( filename.endsWith( TQString::fromAscii( ".plugin" ) ) )
99 { // provided for noatun style .plugin files compatibility
100
101 d->name = file.readName();
102 d->comment = file.readComment();
103 d->icon = file.readEntry( "Icon" );
104 d->author = file.readEntry( "Author" );
105 d->email = file.readEntry( "Email" );
106 d->pluginName = file.readPathEntry( "Filename" );
107 // no version
108 d->website = file.readEntry( "Site" );
109 d->category = file.readEntry( "Type" );
110 d->license = file.readEntry( "License" );
111 d->dependencies = file.readListEntry( "Require" );
112 }
113}
114
115KPluginInfo::KPluginInfo( const KService::Ptr service )
116: d( new KPluginInfoPrivate )
117{
118 d->service = service;
119 d->specfile = service->desktopEntryPath();
120
121 if ( service->isDeleted() )
122 {
123 d->hidden = true;
124 return;
125 }
126
127 d->name = service->name();
128 d->comment = service->comment();
129 d->icon = service->icon();
130 d->author = service->property( "X-TDE-PluginInfo-Author" ).toString();
131 d->email = service->property( "X-TDE-PluginInfo-Email" ).toString();
132 d->pluginName = service->property( "X-TDE-PluginInfo-Name" ).toString();
133 d->version = service->property( "X-TDE-PluginInfo-Version" ).toString();
134 d->website = service->property( "X-TDE-PluginInfo-Website" ).toString();
135 d->category = service->property( "X-TDE-PluginInfo-Category" ).toString();
136 d->license = service->property( "X-TDE-PluginInfo-License" ).toString();
137 d->dependencies =
138 service->property( "X-TDE-PluginInfo-Depends" ).toStringList();
139 TQVariant tmp = service->property( "X-TDE-PluginInfo-EnabledByDefault" );
140 d->enabledbydefault = tmp.isValid() ? tmp.toBool() : false;
141}
142
143//X KPluginInfo::KPluginInfo()
144//X : d( new KPluginInfoPrivate )
145//X {
146//X d->hidden = true;
147//X }
148
149KPluginInfo::~KPluginInfo()
150{
151 delete d;
152}
153
154TQValueList<KPluginInfo*> KPluginInfo::fromServices( const KService::List & services, TDEConfig * config, const TQString & group )
155{
156 TQValueList<KPluginInfo*> infolist;
157 KPluginInfo * info;
158 for( KService::List::ConstIterator it = services.begin();
159 it != services.end(); ++it )
160 {
161 info = new KPluginInfo( *it );
162 info->setConfig( config, group );
163 infolist += info;
164 }
165 return infolist;
166}
167
168TQValueList<KPluginInfo*> KPluginInfo::fromFiles( const TQStringList & files, TDEConfig * config, const TQString & group )
169{
170 TQValueList<KPluginInfo*> infolist;
171 for( TQStringList::ConstIterator it = files.begin(); it != files.end(); ++it )
172 {
173 KPluginInfo * info = new KPluginInfo( *it );
174 info->setConfig( config, group );
175 infolist += info;
176 }
177 return infolist;
178}
179
180TQValueList<KPluginInfo*> KPluginInfo::fromKPartsInstanceName( const TQString & name, TDEConfig * config, const TQString & group )
181{
182 TQStringList files = TDEGlobal::dirs()->findAllResources( "data", name +
183 "/kpartplugins/*.desktop", true, false );
184 return fromFiles( files, config, group );
185}
186
187bool KPluginInfo::isHidden() const
188{
189 return d->hidden;
190}
191
192void KPluginInfo::setPluginEnabled( bool enabled )
193{
194 kdDebug( 703 ) << k_funcinfo << endl;
195 d->pluginenabled = enabled;
196}
197
198bool KPluginInfo::isPluginEnabled() const
199{
200 kdDebug( 703 ) << k_funcinfo << endl;
201 return d->pluginenabled;
202}
203
204bool KPluginInfo::isPluginEnabledByDefault() const
205{
206 kdDebug( 703 ) << k_funcinfo << endl;
207 return d->enabledbydefault;
208}
209
210const TQString & KPluginInfo::name() const
211{
212 return d->name;
213}
214
215const TQString & KPluginInfo::comment() const
216{
217 return d->comment;
218}
219
220const TQString & KPluginInfo::icon() const
221{
222 return d->icon;
223}
224
225const TQString & KPluginInfo::specfile() const
226{
227 return d->specfile;
228}
229
230const TQString & KPluginInfo::author() const
231{
232 return d->author;
233}
234
235const TQString & KPluginInfo::email() const
236{
237 return d->email;
238}
239
240const TQString & KPluginInfo::category() const
241{
242 return d->category;
243}
244
245const TQString & KPluginInfo::pluginName() const
246{
247 return d->pluginName;
248}
249
250const TQString & KPluginInfo::version() const
251{
252 return d->version;
253}
254
255const TQString & KPluginInfo::website() const
256{
257 return d->website;
258}
259
260const TQString & KPluginInfo::license() const
261{
262 return d->license;
263}
264
265const TQStringList & KPluginInfo::dependencies() const
266{
267 return d->dependencies;
268}
269
270KService::Ptr KPluginInfo::service() const
271{
272 return d->service;
273}
274
275const TQValueList<KService::Ptr> & KPluginInfo::kcmServices() const
276{
277 if ( !d->kcmservicesCached )
278 {
279 d->kcmservices = TDETrader::self()->query( "TDECModule", "'" + d->pluginName +
280 "' in [X-TDE-ParentComponents]" );
281 kdDebug( 703 ) << "found " << d->kcmservices.count() << " offers for " <<
282 d->pluginName << endl;
283
284 d->kcmservicesCached = true;
285 }
286
287 return d->kcmservices;
288}
289
290void KPluginInfo::setConfig( TDEConfig * config, const TQString & group )
291{
292 d->config = config;
293 d->configgroup = group;
294}
295
296TDEConfig * KPluginInfo::config() const
297{
298 return d->config;
299}
300
301const TQString & KPluginInfo::configgroup() const
302{
303 return d->configgroup;
304}
305
306TQVariant KPluginInfo::property( const TQString & key ) const
307{
308 if( d->service )
309 return d->service->property( key );
310 else
311 return TQVariant();
312}
313
314TQVariant KPluginInfo::operator[]( const TQString & key ) const
315{
316 return property( key );
317}
318
319void KPluginInfo::save( TDEConfigGroup * config )
320{
321 kdDebug( 703 ) << k_funcinfo << endl;
322 if( 0 == config )
323 {
324 if( 0 == d->config )
325 {
326 kdWarning( 703 ) << "no TDEConfigGroup, cannot save" << endl;
327 return;
328 }
329 d->config->setGroup( d->configgroup );
330 d->config->writeEntry( d->pluginName + "Enabled", isPluginEnabled() );
331 }
332 else
333 config->writeEntry( d->pluginName + "Enabled", isPluginEnabled() );
334}
335
336void KPluginInfo::load( TDEConfigGroup * config )
337{
338 kdDebug( 703 ) << k_funcinfo << endl;
339 if( 0 == config )
340 {
341 if( 0 == d->config )
342 {
343 kdWarning( 703 ) << "no TDEConfigGroup, cannot load" << endl;
344 return;
345 }
346 d->config->setGroup( d->configgroup );
347 setPluginEnabled( d->config->readBoolEntry( d->pluginName + "Enabled", isPluginEnabledByDefault() ) );
348 }
349 else
350 setPluginEnabled( config->readBoolEntry( d->pluginName + "Enabled", isPluginEnabledByDefault() ) );
351}
352
353void KPluginInfo::defaults()
354{
355 kdDebug( 703 ) << k_funcinfo << endl;
356 setPluginEnabled( isPluginEnabledByDefault() );
357}
KDesktopFile
KDesktopFile::readComment
TQString readComment() const
KDesktopFile::readName
TQString readName() const
KPluginInfo
Information about a plugin.
Definition: kplugininfo.h:43
KPluginInfo::comment
const TQString & comment() const
Definition: kplugininfo.cpp:215
KPluginInfo::author
const TQString & author() const
Definition: kplugininfo.cpp:230
KPluginInfo::website
const TQString & website() const
Definition: kplugininfo.cpp:255
KPluginInfo::pluginName
const TQString & pluginName() const
Definition: kplugininfo.cpp:245
KPluginInfo::specfile
const TQString & specfile() const
Definition: kplugininfo.cpp:225
KPluginInfo::isHidden
bool isHidden() const
Definition: kplugininfo.cpp:187
KPluginInfo::isPluginEnabledByDefault
bool isPluginEnabledByDefault() const
Definition: kplugininfo.cpp:204
KPluginInfo::save
virtual void save(TDEConfigGroup *config=0)
Save state of the plugin - enabled or not.
Definition: kplugininfo.cpp:319
KPluginInfo::config
TDEConfig * config() const
Definition: kplugininfo.cpp:296
KPluginInfo::category
const TQString & category() const
Definition: kplugininfo.cpp:240
KPluginInfo::fromKPartsInstanceName
static KPluginInfo::List fromKPartsInstanceName(const TQString &, TDEConfig *config=0, const TQString &group=TQString::null)
Definition: kplugininfo.cpp:180
KPluginInfo::icon
const TQString & icon() const
Definition: kplugininfo.cpp:220
KPluginInfo::fromServices
static KPluginInfo::List fromServices(const KService::List &services, TDEConfig *config=0, const TQString &group=TQString::null)
Definition: kplugininfo.cpp:154
KPluginInfo::service
KService::Ptr service() const
Definition: kplugininfo.cpp:270
KPluginInfo::property
TQVariant property(const TQString &key) const
Definition: kplugininfo.cpp:306
KPluginInfo::operator[]
TQVariant operator[](const TQString &key) const
This is the same as property().
Definition: kplugininfo.cpp:314
KPluginInfo::isPluginEnabled
virtual bool isPluginEnabled() const
Definition: kplugininfo.cpp:198
KPluginInfo::version
const TQString & version() const
Definition: kplugininfo.cpp:250
KPluginInfo::load
virtual void load(TDEConfigGroup *config=0)
Load the state of the plugin - enabled or not.
Definition: kplugininfo.cpp:336
KPluginInfo::defaults
virtual void defaults()
Restore defaults (enabled or not).
Definition: kplugininfo.cpp:353
KPluginInfo::fromFiles
static KPluginInfo::List fromFiles(const TQStringList &files, TDEConfig *config=0, const TQString &group=TQString::null)
Definition: kplugininfo.cpp:168
KPluginInfo::name
const TQString & name() const
Definition: kplugininfo.cpp:210
KPluginInfo::license
const TQString & license() const
Definition: kplugininfo.cpp:260
KPluginInfo::setPluginEnabled
virtual void setPluginEnabled(bool enabled)
Set whether the plugin is currently loaded.
Definition: kplugininfo.cpp:192
KPluginInfo::email
const TQString & email() const
Definition: kplugininfo.cpp:235
KPluginInfo::dependencies
const TQStringList & dependencies() const
Definition: kplugininfo.cpp:265
KPluginInfo::configgroup
const TQString & configgroup() const
Definition: kplugininfo.cpp:301
KPluginInfo::setConfig
void setConfig(TDEConfig *config, const TQString &group)
Set the TDEConfigGroup to use for load()ing and save()ing the configuration.
Definition: kplugininfo.cpp:290
KPluginInfo::KPluginInfo
KPluginInfo(const TQString &filename, const char *resource=0)
Read plugin info from filename.
Definition: kplugininfo.cpp:70
KPluginInfo::kcmServices
const TQValueList< KService::Ptr > & kcmServices() const
Definition: kplugininfo.cpp:275
TDEConfigBase::readEntry
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
TDEConfigBase::readBoolEntry
bool readBoolEntry(const TQString &pKey, bool bDefault=false) const
TDEConfigBase::setDesktopGroup
void setDesktopGroup()
TDEConfigBase::readListEntry
int readListEntry(const TQString &pKey, TQStrList &list, char sep=',') const
TDEConfigBase::writeEntry
void writeEntry(const TQString &pKey, const TQString &pValue, bool bPersistent=true, bool bGlobal=false, bool bNLS=false)
TDEConfigBase::readPathEntry
TQString readPathEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
TDEConfigGroup
TDEConfig
TDEGlobal::dirs
static TDEStandardDirs * dirs()
TDEStandardDirs::findAllResources
TQStringList findAllResources(const char *type, const TQString &filter=TQString::null, bool recursive=false, bool unique=false) const
kdWarning
kdbgstream kdWarning(int area=0)
endl
kndbgstream & endl(kndbgstream &s)
kdDebug
kdbgstream kdDebug(int area=0)

tdeutils

Skip menu "tdeutils"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

tdeutils

Skip menu "tdeutils"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeutils by doxygen 1.9.4
This website is maintained by Timothy Pearson.