20 #include "kplugininfo.h"
21 #include <ksimpleconfig.h>
24 #include <kconfigbase.h>
26 #include <kstandarddirs.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-KDE-PluginInfo-Author" );
88 d->email = file.
readEntry(
"X-KDE-PluginInfo-Email" );
89 d->pluginName = file.
readEntry(
"X-KDE-PluginInfo-Name" );
90 d->version = file.
readEntry(
"X-KDE-PluginInfo-Version" );
91 d->website = file.
readEntry(
"X-KDE-PluginInfo-Website" );
92 d->category = file.
readEntry(
"X-KDE-PluginInfo-Category" );
93 d->license = file.
readEntry(
"X-KDE-PluginInfo-License" );
94 d->dependencies = file.
readListEntry(
"X-KDE-PluginInfo-Depends" );
96 "X-KDE-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-KDE-PluginInfo-Author" ).toString();
131 d->email = service->property(
"X-KDE-PluginInfo-Email" ).toString();
132 d->pluginName = service->property(
"X-KDE-PluginInfo-Name" ).toString();
133 d->version = service->property(
"X-KDE-PluginInfo-Version" ).toString();
134 d->website = service->property(
"X-KDE-PluginInfo-Website" ).toString();
135 d->category = service->property(
"X-KDE-PluginInfo-Category" ).toString();
136 d->license = service->property(
"X-KDE-PluginInfo-License" ).toString();
138 service->property(
"X-KDE-PluginInfo-Depends" ).toStringList();
139 TQVariant tmp = service->property(
"X-KDE-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 = KTrader::self()->query(
"KCModule",
"'" + d->pluginName +
280 "' in [X-KDE-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 );
329 d->config->setGroup( d->configgroup );
346 d->config->setGroup( d->configgroup );