libplasma
packagestructure.h
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 #ifndef PACKAGESTRUCTURE_H
00021 #define PACKAGESTRUCTURE_H
00022
00023 #include <QtCore/QStringList>
00024 #include <QtCore/QSharedData>
00025
00026 #include <KDE/KGenericFactory>
00027 #include <KDE/KLocale>
00028 #include <KDE/KSharedPtr>
00029
00030 #include <plasma/version.h>
00031
00032 class KConfigBase;
00033
00034 namespace Plasma
00035 {
00036
00037 class PackageStructurePrivate;
00038
00069 class PLASMA_EXPORT PackageStructure : public QObject, public QSharedData
00070 {
00071 Q_OBJECT
00072
00073 public:
00074 typedef KSharedPtr<PackageStructure> Ptr;
00075
00081 explicit PackageStructure(QObject *parent = 0, const QString &type = i18n("Invalid"));
00082
00086 virtual ~PackageStructure();
00087
00091 PackageStructure& operator=(const PackageStructure& rhs);
00092
00101 static PackageStructure::Ptr load(const QString &packageFormat);
00102
00106 QString type() const;
00107
00111 QList<const char*> directories() const;
00112
00116 QList<const char*> requiredDirectories() const;
00117
00121 QList<const char*> files() const;
00122
00126 QList<const char*> requiredFiles() const;
00127
00136 void addDirectoryDefinition(const char* key, const QString& path, const QString& name);
00137
00146 void addFileDefinition(const char* key, const QString& path, const QString& name);
00147
00151 QString path(const char* key) const;
00152
00156 QString name(const char* key) const;
00157
00166 void setRequired(const char* key, bool required);
00167
00171 bool isRequired(const char* key) const;
00172
00180 void setDefaultMimetypes(QStringList mimetypes);
00181
00190 void setMimetypes(const char* key, QStringList mimetypes);
00191
00195 QStringList mimetypes(const char* key) const;
00196
00201 void setPath(const QString &path);
00202
00206 QString path() const;
00207
00211 void read(const KConfigBase *config);
00212
00216 void write(KConfigBase *config) const;
00217
00227 virtual bool installPackage(const QString &archivePath, const QString &packageRoot);
00228
00236 virtual bool uninstallPackage(const QString& packageName, const QString& packageRoot);
00237
00241 QString contentsPrefix() const;
00242
00243 protected:
00252 void setContentsPrefix(const QString &prefix);
00253
00258 virtual void pathChanged();
00259
00260 private:
00261 PackageStructurePrivate * const d;
00262 };
00263
00267 #define K_EXPORT_PLASMA_PACKAGESTRUCTURE(libname, classname) \
00268 K_PLUGIN_FACTORY(factory, registerPlugin<classname>();) \
00269 K_EXPORT_PLUGIN(factory("plasma_packagestructure_" #libname)) \
00270 K_EXPORT_PLUGIN_VERSION(PLASMA_VERSION)
00271
00272 }
00273 #endif