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 QStringList keywords;
00041 QString author;
00042 QString email;
00043 QString version;
00044 QString website;
00045 QString license;
00046 QString app;
00047 QString category;
00048 QString requiredVersion;
00049 QString pluginName;
00050 QString type;
00051 QString serviceType;
00052 QString api;
00053 };
00054
00055 PackageMetadata::PackageMetadata(const PackageMetadata &other)
00056 : d(new PackageMetadataPrivate(*other.d))
00057 {
00058 }
00059
00060 PackageMetadata::PackageMetadata(const QString &path)
00061 : d(new PackageMetadataPrivate)
00062 {
00063 read(path);
00064 }
00065
00066 PackageMetadata::~PackageMetadata()
00067 {
00068 delete d;
00069 }
00070
00071 bool PackageMetadata::isValid() const
00072 {
00073 return ! (d->name.isEmpty() ||
00074 d->author.isEmpty() ||
00075 d->license.isEmpty() ||
00076 d->type.isEmpty());
00077 }
00078
00079 void PackageMetadata::write(const QString &filename) const
00080 {
00081 KDesktopFile cfg(filename);
00082 KConfigGroup config = cfg.desktopGroup();
00083 config.writeEntry("Encoding", "UTF-8");
00084
00085 config.writeEntry("Name", d->name);
00086 config.writeEntry("Comment", d->description);
00087 config.writeEntry("Keywords", d->keywords);
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-ParentApp", d->app);
00098 config.writeEntry("Type", d->type);
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->keywords = config.readEntry("Keywords", d->keywords);
00113 d->serviceType = config.readEntry("X-KDE-ServiceTypes", d->serviceType);
00114 d->pluginName = config.readEntry("X-KDE-PluginInfo-Name", d->pluginName);
00115 d->author = config.readEntry("X-KDE-PluginInfo-Author", d->author);
00116 d->email = config.readEntry("X-KDE-PluginInfo-Email", d->email);
00117 d->version = config.readEntry("X-KDE-PluginInfo-Version", d->version);
00118 d->website = config.readEntry("X-KDE-PluginInfo-Website", d->website);
00119 d->license = config.readEntry("X-KDE-PluginInfo-License", d->license);
00120 d->category = config.readEntry("X-KDE-PluginInfo-Category", d->category);
00121 d->api = config.readEntry("X-Plasma-API", d->api);
00122 d->app = config.readEntry("X-KDE-ParentApp", d->app);
00123 d->type = config.readEntry("Type", d->type);
00124 }
00125
00126 QString PackageMetadata::name() const
00127 {
00128 return d->name;
00129 }
00130
00131 QString PackageMetadata::description() const
00132 {
00133 return d->description;
00134 }
00135
00136 QString PackageMetadata::serviceType() const
00137 {
00138 return d->serviceType;
00139 }
00140
00141 QString PackageMetadata::author() const
00142 {
00143 return d->author;
00144 }
00145
00146 QString PackageMetadata::email() const
00147 {
00148 return d->email;
00149 }
00150
00151 QString PackageMetadata::version() const
00152 {
00153 return d->version;
00154 }
00155
00156 QString PackageMetadata::website() const
00157 {
00158 return d->website;
00159 }
00160
00161 QString PackageMetadata::license() const
00162 {
00163 return d->license;
00164 }
00165
00166 QString PackageMetadata::application() const
00167 {
00168 return d->app;
00169 }
00170
00171 QString PackageMetadata::category() const
00172 {
00173 return d->category;
00174 }
00175
00176 void PackageMetadata::setKeywords(const QStringList &keywords)
00177 {
00178 d->keywords = keywords;
00179 }
00180
00181 QStringList PackageMetadata::keywords() const
00182 {
00183 return d->keywords;
00184 }
00185
00186 QString PackageMetadata::requiredVersion() const
00187 {
00188 return d->requiredVersion;
00189 }
00190
00191 QString PackageMetadata::type() const
00192 {
00193 return d->type;
00194 }
00195
00196 QString PackageMetadata::implementationApi() const
00197 {
00198 return d->api;
00199 }
00200
00201 void PackageMetadata::setImplementationApi(const QString &api)
00202 {
00203 d->api = api;
00204 }
00205
00206 QString PackageMetadata::pluginName() const
00207 {
00208 return d->pluginName;
00209 }
00210
00211 void PackageMetadata::setPluginName(const QString &pluginName)
00212 {
00213 d->pluginName = pluginName;
00214 }
00215
00216 void PackageMetadata::setName(const QString &name)
00217 {
00218 d->name = name;
00219 }
00220
00221 void PackageMetadata::setDescription(const QString &description)
00222 {
00223 d->description = description;
00224 }
00225
00226 void PackageMetadata::setServiceType(const QString &serviceType)
00227 {
00228 d->serviceType = serviceType;
00229 }
00230
00231 void PackageMetadata::setAuthor(const QString &author)
00232 {
00233 d->author = author;
00234 }
00235
00236 void PackageMetadata::setEmail(const QString &email)
00237 {
00238 d->email = email;
00239 }
00240
00241 void PackageMetadata::setVersion(const QString &version)
00242 {
00243 d->version = version;
00244 }
00245
00246 void PackageMetadata::setWebsite(const QString &website)
00247 {
00248 d->website = website;
00249 }
00250
00251 void PackageMetadata::setLicense(const QString &license)
00252 {
00253 d->license = license;
00254 }
00255
00256 void PackageMetadata::setApplication(const QString &application)
00257 {
00258 d->app = application;
00259 }
00260
00261 void PackageMetadata::setCategory(const QString &category)
00262 {
00263 d->category = category;
00264 }
00265
00266 void PackageMetadata::setRequiredVersion(const QString &requiredVersion)
00267 {
00268 d->requiredVersion = requiredVersion;
00269 }
00270
00271 void PackageMetadata::setType(const QString &type)
00272 {
00273 d->type = type;
00274 }
00275
00276 }
00277