25 #include <kconfiggroup.h>
27 #include <kstandarddirs.h>
29 K_EXPORT_PLASMA_PACKAGESTRUCTURE(superkaramba,
SkPackage)
32 : Plasma::PackageStructure(parent)
35 setDefaultMimetypes( QStringList() <<
"application/zip" <<
"application/x-superkaramba" );
44 kDebug()<<
"archivePath="<<archivePath<<
"packageRoot="<<packageRoot;
48 QDir root(packageRoot);
49 const QString name = QString(
"sk_%1").arg(theme.
id());
50 if( !root.cd(name) && ( !root.mkdir(name) || !root.cd(name) ) ) {
54 const QString path = root.path();
57 kWarning()<<
"Failed to copy archive="<<archivePath<<
" to path="<<path;
63 Plasma::PackageMetadata data;
64 data.setPluginName(name);
65 data.setImplementationApi(
"superkaramba");
66 data.setCategory(
"SuperKaramba");
68 data.setName(theme.
name());
69 data.setDescription(i18n(
"SuperKaramba Theme"));
70 data.setAuthor(theme.
author());
72 data.setVersion(theme.
version());
74 data.setLicense(theme.
license());
78 QString iconfile =
"superkaramba";
81 QFileInfo fi(path, theme.
iconName());
83 iconfile = fi.absoluteFilePath();
86 Plasma::Package::registerPackage(data, iconfile);
90 const QString desktopfile = KStandardDirs::locateLocal(
"services", QString(
"plasma-scriptengine-%1.desktop").arg(name));
91 KDesktopFile desktop(desktopfile);
92 KConfigGroup group = desktop.desktopGroup();
94 group.writeEntry(
"Name", theme.
name());
95 group.writeEntry(
"Comment", i18n(
"SuperKaramba Theme"));
96 group.writeEntry(
"Type",
"Service");
97 group.writeEntry(
"ServiceTypes",
"Plasma/Applet");
99 QString iconfile =
"superkaramba";
100 if( ! theme.
iconName().isEmpty() ) {
101 QFileInfo fi(path, theme.
iconName());
103 iconfile = fi.absoluteFilePath();
105 group.writeEntry(
"Icon", iconfile);
107 group.writeEntry(
"X-KDE-PluginInfo-Name", name);
108 group.writeEntry(
"X-KDE-PluginInfo-Version", theme.
version());
109 group.writeEntry(
"X-KDE-PluginInfo-Author", theme.
author());
110 group.writeEntry(
"X-KDE-PluginInfo-Email", theme.
authorEmail());
111 group.writeEntry(
"X-KDE-PluginInfo-Website", theme.
homepage());
112 group.writeEntry(
"X-KDE-PluginInfo-License", theme.
license());
113 group.writeEntry(
"X-KDE-PluginInfo-Category",
"SuperKaramba");
114 group.writeEntry(
"X-KDE-PluginInfo-EnabledByDefault",
"true");
117 group.writeEntry(
"X-Plasma-API",
"superkaramba");
119 group.writeEntry(
"X-Plasma-ComponentTypes",
"Applet");
121 group.writeEntry(
"X-Plasma-PackageFormat",
"superkaramba");
127 QDBusMessage msg = QDBusMessage::createSignal(
"/",
"org.kde.KSycoca",
"notifyDatabaseChanged" );
128 msg << QStringList();
129 if( QDBusConnection::sessionBus().isConnected() )
130 QDBusConnection::sessionBus().send(msg);
135 #include "skpackage.moc"
const QString & authorEmail() const
bool copyArchiveTo(const QString &path)
virtual bool installPackage(const QString &archivePath, const QString &packageRoot)
Installs a package matching this package structure.
const QString & id() const
const QString & name() const
bool extractArchiveFileTo(const QString &file, const QString &path)
const QString & homepage() const
const QString & version() const
The SkPackage class implements a Plasma::PackageStructure to deal with SuperKaramba Theme Files - tho...
virtual ~SkPackage()
Destructor.
const QString & author() const
const QString & license() const