Plasma
bundle.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
00021
00022 #ifndef BUNDLE_H
00023 #define BUNDLE_H
00024
00025 #include <KZip>
00026 #include <KTempDir>
00027
00028 #include <Plasma/PackageStructure>
00029
00030 class KArchiveDirectory;
00031
00032 class Bundle : public Plasma::PackageStructure
00033 {
00034 Q_OBJECT
00035 public:
00036 Bundle(const QString &path);
00037 Bundle(const QByteArray &data);
00038 Bundle(QObject *parent, QVariantList args);
00039 ~Bundle();
00040
00041 bool isValid() const;
00042
00043 void setData(const QByteArray &fn);
00044 QByteArray data() const;
00045
00046 QString bundleId() const;
00047 QString name() const;
00048 QString version() const;
00049 QString description() const;
00050 int width() const;
00051 int height() const;
00052 QString htmlLocation() const;
00053 QString iconLocation() const;
00054
00055 protected:
00056 void pathChanged();
00057
00058 private:
00059 bool extractArchive(const KArchiveDirectory *dir, const QString &path);
00060 bool extractInfo();
00061
00062 bool parsePlist(const QString &loc);
00063 bool parseConfigXml(const QString &loc);
00064
00065 void initTempDir();
00066
00067 bool open();
00068 bool close();
00069 bool installPackage(const QString &archivePath, const QString &packageRoot);
00070
00071 private:
00072 QByteArray m_data;
00073 bool m_isValid;
00074 KTempDir *m_tempDir;
00075
00076 QString m_bundleId;
00077 QString m_name;
00078 QString m_version;
00079 QString m_description;
00080 int m_width;
00081 int m_height;
00082 QString m_htmlLocation;
00083 QString m_iconLocation;
00084 };
00085
00086 #endif