Plasma
packagemetadata.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <packagemetadata.h>
00021
00022 #include <QDir>
00023
00024 #include <kconfiggroup.h>
00025 #include <kdesktopfile.h>
00026
00027 namespace Plasma
00028 {
00029
00030 class PackageMetadataPrivate
00031 {
00032 public:
00033 PackageMetadataPrivate()
00034 : type("Service")
00035 {
00036 }
00037
00038 QString name;
00039 QString description;
00040 QString author;
00041 QString email;
00042 QString version;
00043 QString website;
00044 QString license;
00045 QString app;
00046 QString category;
00047 QString requiredVersion;
00048 QString pluginName;
00049 QString type;
00050 QString serviceType;
00051 QString api;
00052 };
00053
00054 PackageMetadata::PackageMetadata(const PackageMetadata &other)
00055 : d(new PackageMetadataPrivate(*other.d))
00056 {
00057 }
00058
00059 PackageMetadata::PackageMetadata(const QString &path)
00060 : d(new PackageMetadataPrivate)
00061 {
00062 read(path);
00063 }
00064
00065 PackageMetadata::~PackageMetadata()
00066 {
00067 delete d;
00068 }
00069
00070 bool PackageMetadata::isValid() const
00071 {
00072 return ! (d->name.isEmpty() ||
00073 d->author.isEmpty() ||
00074 d->version.isEmpty() ||
00075 d->license.isEmpty() ||
00076 d->app.isEmpty() ||
00077 d->type.isEmpty());
00078 }
00079
00080 void PackageMetadata::write(const QString &filename) const
00081 {
00082 KDesktopFile cfg(filename);
00083 KConfigGroup config = cfg.desktopGroup();
00084 config.writeEntry("Encoding", "UTF-8");
00085
00086 config.writeEntry("Name", d->name);
00087 config.writeEntry("Comment", d->description);
00088 config.writeEntry("X-KDE-ServiceTypes", d->serviceType);
00089 config.writeEntry("X-KDE-PluginInfo-Name", d->pluginName);
00090 config.writeEntry("X-KDE-PluginInfo-Author", d->author);
00091 config.writeEntry("X-KDE-PluginInfo-Email", d->email);
00092 config.writeEntry("X-KDE-PluginInfo-Version", d->version);
00093 config.writeEntry("X-KDE-PluginInfo-Website", d->website);
00094 config.writeEntry("X-KDE-PluginInfo-License", d->license);
00095 config.writeEntry("X-KDE-PluginInfo-Category", d->category);
00096 config.writeEntry("X-Plasma-API", d->api);
00097 config.writeEntry("X-KDE-Plasmagik-ApplicationName", d->app);
00098 config.writeEntry("X-KDE-Plasmagik-RequiredVersion", d->requiredVersion);
00099 }
00100
00101 void PackageMetadata::read(const QString &filename)
00102 {
00103 if (filename.isEmpty()) {
00104 return;
00105 }
00106
00107 KDesktopFile cfg(filename);
00108 KConfigGroup config = cfg.desktopGroup();
00109
00110 d->name = config.readEntry("Name", d->name);
00111 d->description = config.readEntry("Comment", d->description);
00112 d->serviceType = config.readEntry("X-KDE-ServiceTypes", d->serviceType);
00113 d->pluginName = config.readEntry("X-KDE-PluginInfo-Name", d->pluginName);
00114 d->author = config.readEntry("X-KDE-PluginInfo-Author", d->author);
00115 d->email = config.readEntry("X-KDE-PluginInfo-Email", d->email);
00116 d->version = config.readEntry("X-KDE-PluginInfo-Version", d->version);
00117 d->website = config.readEntry("X-KDE-PluginInfo-Website", d->website);
00118 d->license = config.readEntry("X-KDE-PluginInfo-License", d->license);
00119 d->type = config.readEntry("Type", d->type);
00120 d->category = config.readEntry("X-KDE-PluginInfo-Category", d->category);
00121 d->app = config.readEntry("X-KDE-Plasmagik-ApplicationName", d->app);
00122 d->requiredVersion = config.readEntry("X-KDE-Plasmagik-RequiredVersion", d->requiredVersion);
00123 }
00124
00125 QString PackageMetadata::name() const
00126 {
00127 return d->name;
00128 }
00129
00130 QString PackageMetadata::description() const
00131 {
00132 return d->description;
00133 }
00134
00135 QString PackageMetadata::serviceType() const
00136 {
00137 return d->serviceType;
00138 }
00139
00140 QString PackageMetadata::author() const
00141 {
00142 return d->author;
00143 }
00144
00145 QString PackageMetadata::email() const
00146 {
00147 return d->email;
00148 }
00149
00150 QString PackageMetadata::version() const
00151 {
00152 return d->version;
00153 }
00154
00155 QString PackageMetadata::website() const
00156 {
00157 return d->website;
00158 }
00159
00160 QString PackageMetadata::license() const
00161 {
00162 return d->license;
00163 }
00164
00165 QString PackageMetadata::application() const
00166 {
00167 return d->app;
00168 }
00169
00170 QString PackageMetadata::category() const
00171 {
00172 return d->category;
00173 }
00174
00175 QString PackageMetadata::requiredVersion() const
00176 {
00177 return d->requiredVersion;
00178 }
00179
00180 QString PackageMetadata::type() const
00181 {
00182 return d->type;
00183 }
00184
00185 QString PackageMetadata::implementationApi() const
00186 {
00187 return d->api;
00188 }
00189
00190 void PackageMetadata::setImplementationApi(const QString &api)
00191 {
00192 d->api = api;
00193 }
00194
00195 QString PackageMetadata::pluginName() const
00196 {
00197 return d->pluginName;
00198 }
00199
00200 void PackageMetadata::setPluginName(const QString &pluginName)
00201 {
00202 d->pluginName = pluginName;
00203 }
00204
00205 void PackageMetadata::setName(const QString &name)
00206 {
00207 d->name = name;
00208 }
00209
00210 void PackageMetadata::setDescription(const QString &description)
00211 {
00212 d->description = description;
00213 }
00214
00215 void PackageMetadata::setServiceType(const QString &serviceType)
00216 {
00217 d->serviceType = serviceType;
00218 }
00219
00220 void PackageMetadata::setAuthor(const QString &author)
00221 {
00222 d->author = author;
00223 }
00224
00225 void PackageMetadata::setEmail(const QString &email)
00226 {
00227 d->email = email;
00228 }
00229
00230 void PackageMetadata::setVersion(const QString &version)
00231 {
00232 d->version = version;
00233 }
00234
00235 void PackageMetadata::setWebsite(const QString &website)
00236 {
00237 d->website = website;
00238 }
00239
00240 void PackageMetadata::setLicense(const QString &license)
00241 {
00242 d->license = license;
00243 }
00244
00245 void PackageMetadata::setApplication(const QString &application)
00246 {
00247 d->app = application;
00248 }
00249
00250 void PackageMetadata::setCategory(const QString &category)
00251 {
00252 d->category = category;
00253 }
00254
00255 void PackageMetadata::setRequiredVersion(const QString &requiredVersion)
00256 {
00257 d->requiredVersion = requiredVersion;
00258 }
00259
00260 void PackageMetadata::setType(const QString &type)
00261 {
00262 d->type = type;
00263 }
00264
00265 }
00266