20 #include "kplugininfo.h" 21 #include <tdesimpleconfig.h> 24 #include <tdeconfigbase.h> 25 #include <tdeglobal.h> 26 #include <tdestandarddirs.h> 27 #include <kdesktopfile.h> 30 class KPluginInfo::KPluginInfoPrivate
35 , enabledbydefault( false )
36 , pluginenabled( false )
38 , kcmservicesCached( false )
60 bool enabledbydefault;
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();
121 if ( service->isDeleted() )
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();
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;
149 KPluginInfo::~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 );
184 return fromFiles( files, config, group );
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 readPathEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
TQStringList findAllResources(const char *type, const TQString &filter=TQString::null, bool recursive=false, bool unique=false) const
Information about a plugin.
bool isPluginEnabledByDefault() const
bool readBoolEntry(const TQString &pKey, bool bDefault=false) const
const TQString & version() const
const TQString & author() const
const TQString & configgroup() const
static KPluginInfo::List fromKPartsInstanceName(const TQString &, TDEConfig *config=0, const TQString &group=TQString::null)
kdbgstream kdDebug(int area=0)
KService::Ptr service() const
TQString readComment() const
const TQString & specfile() const
virtual void save(TDEConfigGroup *config=0)
Save state of the plugin - enabled or not.
TQVariant operator[](const TQString &key) const
This is the same as property().
int readListEntry(const TQString &pKey, TQStrList &list, char sep=',') const
TQVariant property(const TQString &key) const
static KPluginInfo::List fromServices(const KService::List &services, TDEConfig *config=0, const TQString &group=TQString::null)
virtual void load(TDEConfigGroup *config=0)
Load the state of the plugin - enabled or not.
const TQString & license() const
static TDEStandardDirs * dirs()
static KPluginInfo::List fromFiles(const TQStringList &files, TDEConfig *config=0, const TQString &group=TQString::null)
virtual void setPluginEnabled(bool enabled)
Set whether the plugin is currently loaded.
void setConfig(TDEConfig *config, const TQString &group)
Set the TDEConfigGroup to use for load()ing and save()ing the configuration.
void writeEntry(const TQString &pKey, const TQString &pValue, bool bPersistent=true, bool bGlobal=false, bool bNLS=false)
virtual void defaults()
Restore defaults (enabled or not).
kdbgstream kdWarning(int area=0)
TQString readName() const
const TQString & icon() const
const TQString & category() const
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
const TQString & email() const
const TQStringList & dependencies() const
const TQString & name() const
const TQString & website() const
const TQString & comment() const
virtual bool isPluginEnabled() const
TDEConfig * config() const
kndbgstream & endl(kndbgstream &s)
const TQValueList< KService::Ptr > & kcmServices() const
KPluginInfo(const TQString &filename, const char *resource=0)
Read plugin info from filename.
const TQString & pluginName() const