• Skip to content
  • Skip to link menu
KDE 4.3 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

Plasma

packagemetadata.cpp

Go to the documentation of this file.
00001 /******************************************************************************
00002 *   Copyright 2007 by Riccardo Iaconelli  <riccardo@kde.org>                *
00003 *                                                                             *
00004 *   This library is free software; you can redistribute it and/or             *
00005 *   modify it under the terms of the GNU Library General Public               *
00006 *   License as published by the Free Software Foundation; either              *
00007 *   version 2 of the License, or (at your option) any later version.          *
00008 *                                                                             *
00009 *   This library is distributed in the hope that it will be useful,           *
00010 *   but WITHOUT ANY WARRANTY; without even the implied warranty of            *
00011 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU          *
00012 *   Library General Public License for more details.                          *
00013 *                                                                             *
00014 *   You should have received a copy of the GNU Library General Public License *
00015 *   along with this library; see the file COPYING.LIB.  If not, write to      *
00016 *   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,      *
00017 *   Boston, MA 02110-1301, USA.                                               *
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 } // namespace Plasma
00277 

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal