• 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 <kstandarddirs.h>
27 #include <kdesktopfile.h>
28 #include <kservice.h>
29 
30 class 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 
70 KPluginInfo::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 
115 KPluginInfo::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 
149 KPluginInfo::~KPluginInfo()
150 {
151  delete d;
152 }
153 
154 TQValueList<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 
168 TQValueList<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 
180 TQValueList<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 
187 bool KPluginInfo::isHidden() const
188 {
189  return d->hidden;
190 }
191 
192 void KPluginInfo::setPluginEnabled( bool enabled )
193 {
194  kdDebug( 703 ) << k_funcinfo << endl;
195  d->pluginenabled = enabled;
196 }
197 
198 bool KPluginInfo::isPluginEnabled() const
199 {
200  kdDebug( 703 ) << k_funcinfo << endl;
201  return d->pluginenabled;
202 }
203 
204 bool KPluginInfo::isPluginEnabledByDefault() const
205 {
206  kdDebug( 703 ) << k_funcinfo << endl;
207  return d->enabledbydefault;
208 }
209 
210 const TQString & KPluginInfo::name() const
211 {
212  return d->name;
213 }
214 
215 const TQString & KPluginInfo::comment() const
216 {
217  return d->comment;
218 }
219 
220 const TQString & KPluginInfo::icon() const
221 {
222  return d->icon;
223 }
224 
225 const TQString & KPluginInfo::specfile() const
226 {
227  return d->specfile;
228 }
229 
230 const TQString & KPluginInfo::author() const
231 {
232  return d->author;
233 }
234 
235 const TQString & KPluginInfo::email() const
236 {
237  return d->email;
238 }
239 
240 const TQString & KPluginInfo::category() const
241 {
242  return d->category;
243 }
244 
245 const TQString & KPluginInfo::pluginName() const
246 {
247  return d->pluginName;
248 }
249 
250 const TQString & KPluginInfo::version() const
251 {
252  return d->version;
253 }
254 
255 const TQString & KPluginInfo::website() const
256 {
257  return d->website;
258 }
259 
260 const TQString & KPluginInfo::license() const
261 {
262  return d->license;
263 }
264 
265 const TQStringList & KPluginInfo::dependencies() const
266 {
267  return d->dependencies;
268 }
269 
270 KService::Ptr KPluginInfo::service() const
271 {
272  return d->service;
273 }
274 
275 const 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 
290 void KPluginInfo::setConfig( TDEConfig * config, const TQString & group )
291 {
292  d->config = config;
293  d->configgroup = group;
294 }
295 
296 TDEConfig * KPluginInfo::config() const
297 {
298  return d->config;
299 }
300 
301 const TQString & KPluginInfo::configgroup() const
302 {
303  return d->configgroup;
304 }
305 
306 TQVariant KPluginInfo::property( const TQString & key ) const
307 {
308  if( d->service )
309  return d->service->property( key );
310  else
311  return TQVariant();
312 }
313 
314 TQVariant KPluginInfo::operator[]( const TQString & key ) const
315 {
316  return property( key );
317 }
318 
319 void 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 
336 void 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 
353 void KPluginInfo::defaults()
354 {
355  kdDebug( 703 ) << k_funcinfo << endl;
356  setPluginEnabled( isPluginEnabledByDefault() );
357 }
KPluginInfo::operator[]
TQVariant operator[](const TQString &key) const
This is the same as property().
Definition: kplugininfo.cpp:314
TDEConfig
KDesktopFile::readComment
TQString readComment() const
KPluginInfo
Information about a plugin.
Definition: kplugininfo.h:42
KPluginInfo::website
const TQString & website() const
Definition: kplugininfo.cpp:255
KPluginInfo::pluginName
const TQString & pluginName() const
Definition: kplugininfo.cpp:245
KPluginInfo::icon
const TQString & icon() const
Definition: kplugininfo.cpp:220
KPluginInfo::isPluginEnabled
virtual bool isPluginEnabled() const
Definition: kplugininfo.cpp:198
KPluginInfo::service
KService::Ptr service() const
Definition: kplugininfo.cpp:270
KDesktopFile::setDesktopGroup
void setDesktopGroup()
KPluginInfo::comment
const TQString & comment() const
Definition: kplugininfo.cpp:215
KPluginInfo::kcmServices
const TQValueList< KService::Ptr > & kcmServices() const
Definition: kplugininfo.cpp:275
KDesktopFile::readListEntry
int readListEntry(const TQString &pKey, TQStrList &list, char sep= ',') const
KPluginInfo::fromKPartsInstanceName
static KPluginInfo::List fromKPartsInstanceName(const TQString &, TDEConfig *config=0, const TQString &group=TQString::null)
Definition: kplugininfo.cpp:180
kdDebug
kdbgstream kdDebug(int area=0)
KPluginInfo::version
const TQString & version() const
Definition: kplugininfo.cpp:250
KPluginInfo::save
virtual void save(TDEConfigGroup *config=0)
Save state of the plugin - enabled or not.
Definition: kplugininfo.cpp:319
KPluginInfo::fromServices
static KPluginInfo::List fromServices(const KService::List &services, TDEConfig *config=0, const TQString &group=TQString::null)
Definition: kplugininfo.cpp:154
KPluginInfo::load
virtual void load(TDEConfigGroup *config=0)
Load the state of the plugin - enabled or not.
Definition: kplugininfo.cpp:336
TDEGlobal::dirs
static TDEStandardDirs * dirs()
TDEConfigGroup
TDEStandardDirs::findAllResources
TQStringList findAllResources(const char *type, const TQString &filter=TQString::null, bool recursive=false, bool unique=false) const
KPluginInfo::fromFiles
static KPluginInfo::List fromFiles(const TQStringList &files, TDEConfig *config=0, const TQString &group=TQString::null)
Definition: kplugininfo.cpp:168
KPluginInfo::setPluginEnabled
virtual void setPluginEnabled(bool enabled)
Set whether the plugin is currently loaded.
Definition: kplugininfo.cpp:192
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::config
TDEConfig * config() const
Definition: kplugininfo.cpp:296
KPluginInfo::defaults
virtual void defaults()
Restore defaults (enabled or not).
Definition: kplugininfo.cpp:353
kdWarning
kdbgstream kdWarning(int area=0)
KDesktopFile::readBoolEntry
bool readBoolEntry(const TQString &pKey, bool bDefault=false) const
KPluginInfo::specfile
const TQString & specfile() const
Definition: kplugininfo.cpp:225
KPluginInfo::isPluginEnabledByDefault
bool isPluginEnabledByDefault() const
Definition: kplugininfo.cpp:204
KDesktopFile
KPluginInfo::property
TQVariant property(const TQString &key) const
Definition: kplugininfo.cpp:306
KPluginInfo::email
const TQString & email() const
Definition: kplugininfo.cpp:235
KPluginInfo::author
const TQString & author() const
Definition: kplugininfo.cpp:230
KPluginInfo::configgroup
const TQString & configgroup() const
Definition: kplugininfo.cpp:301
KPluginInfo::license
const TQString & license() const
Definition: kplugininfo.cpp:260
KPluginInfo::name
const TQString & name() const
Definition: kplugininfo.cpp:210
KDesktopFile::readPathEntry
TQString readPathEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
KPluginInfo::isHidden
bool isHidden() const
Definition: kplugininfo.cpp:187
endl
kndbgstream & endl(kndbgstream &s)
KDesktopFile::readName
TQString readName() const
KDesktopFile::readEntry
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
KPluginInfo::KPluginInfo
KPluginInfo(const TQString &filename, const char *resource=0)
Read plugin info from filename.
Definition: kplugininfo.cpp:70
KPluginInfo::category
const TQString & category() const
Definition: kplugininfo.cpp:240
KPluginInfo::dependencies
const TQStringList & dependencies() const
Definition: kplugininfo.cpp:265

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
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeutils by doxygen 1.8.8
This website is maintained by Timothy Pearson.