20#include "kplugininfo.h"
21#include <ksimpleconfig.h>
24#include <tdeconfigbase.h>
26#include <kstandarddirs.h>
27#include <kdesktopfile.h>
30class KPluginInfo::KPluginInfoPrivate
35 , enabledbydefault( false )
36 , pluginenabled( false )
38 , kcmservicesCached( false )
57 TQStringList dependencies;
60 bool enabledbydefault;
65 KService::Ptr service;
66 TQValueList<KService::Ptr> kcmservices;
67 bool kcmservicesCached;
71: d( new KPluginInfoPrivate )
75 d->specfile = filename;
77 if( filename.endsWith( TQString::fromAscii(
".desktop" ) ) )
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" );
96 "X-TDE-PluginInfo-EnabledByDefault",
false );
98 else if( filename.endsWith( TQString::fromAscii(
".plugin" ) ) )
110 d->license = file.
readEntry(
"License" );
116: d( new KPluginInfoPrivate )
119 d->specfile =
service->desktopEntryPath();
128 d->comment =
service->comment();
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();
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;
149KPluginInfo::~KPluginInfo()
156 TQValueList<KPluginInfo*> infolist;
158 for( KService::List::ConstIterator it = services.begin();
159 it != services.end(); ++it )
170 TQValueList<KPluginInfo*> infolist;
171 for( TQStringList::ConstIterator it = files.begin(); it != files.end(); ++it )
183 "/kpartplugins/*.desktop",
true,
false );
195 d->pluginenabled = enabled;
201 return d->pluginenabled;
207 return d->enabledbydefault;
247 return d->pluginName;
267 return d->dependencies;
277 if ( !d->kcmservicesCached )
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;
284 d->kcmservicesCached =
true;
287 return d->kcmservices;
293 d->configgroup = group;
303 return d->configgroup;
309 return d->service->property( key );
326 kdWarning( 703 ) <<
"no TDEConfigGroup, cannot save" <<
endl;
329 d->config->setGroup( d->configgroup );
343 kdWarning( 703 ) <<
"no TDEConfigGroup, cannot load" <<
endl;
346 d->config->setGroup( d->configgroup );
TQString readComment() const
TQString readName() const
const TQString & comment() const
const TQString & author() const
const TQString & website() const
const TQString & pluginName() const
const TQString & specfile() const
bool isPluginEnabledByDefault() const
virtual void save(TDEConfigGroup *config=0)
Save state of the plugin - enabled or not.
TDEConfig * config() const
const TQString & category() const
static KPluginInfo::List fromKPartsInstanceName(const TQString &, TDEConfig *config=0, const TQString &group=TQString::null)
const TQString & icon() const
static KPluginInfo::List fromServices(const KService::List &services, TDEConfig *config=0, const TQString &group=TQString::null)
KService::Ptr service() const
TQVariant property(const TQString &key) const
TQVariant operator[](const TQString &key) const
This is the same as property().
virtual bool isPluginEnabled() const
const TQString & version() const
virtual void load(TDEConfigGroup *config=0)
Load the state of the plugin - enabled or not.
virtual void defaults()
Restore defaults (enabled or not).
static KPluginInfo::List fromFiles(const TQStringList &files, TDEConfig *config=0, const TQString &group=TQString::null)
const TQString & name() const
const TQString & license() const
virtual void setPluginEnabled(bool enabled)
Set whether the plugin is currently loaded.
const TQString & email() const
const TQStringList & dependencies() const
const TQString & configgroup() const
void setConfig(TDEConfig *config, const TQString &group)
Set the TDEConfigGroup to use for load()ing and save()ing the configuration.
KPluginInfo(const TQString &filename, const char *resource=0)
Read plugin info from filename.
const TQValueList< KService::Ptr > & kcmServices() const
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
bool readBoolEntry(const TQString &pKey, bool bDefault=false) const
int readListEntry(const TQString &pKey, TQStrList &list, char sep=',') const
TQString readPathEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
static TDEStandardDirs * dirs()
TQStringList findAllResources(const char *type, const TQString &filter=TQString::null, bool recursive=false, bool unique=false) const
kdbgstream kdWarning(int area=0)
kndbgstream & endl(kndbgstream &s)
kdbgstream kdDebug(int area=0)