libplasma
Plasma::PackageStructure Class Reference
#include <packagestructure.h>

Detailed Description
A description of the expected file structure of a given package type.PackageStructure defines what is in a package. This information is used to create packages and provides a way to programatically refer to contents.
An example usage of this class might be:
PackageStructure structure; structure.addDirectoryDefinition("images", "pics/", i18n("Images")); QStringList mimetypes; mimetypes << "image/svg" << "image/png" << "image/jpeg"; structure.setMimetypes("images", mimetypes); structure.addDirectoryDefinition("scripts", "code/", i18n("Executable Scripts")); mimetypes.clear(); mimetypes << "text/\*"; structure.setMimetypes("scripts", mimetypes); structure.addFileDefinition("mainscript", "code/main.js", i18n("Main Script File")); structure.setRequired("mainscript", true);
Either way, PackageStructure creates a sort of "contract" between the packager and the application which is also self-documenting.
Definition at line 69 of file packagestructure.h.
Public Types | |
typedef KSharedPtr < PackageStructure > | Ptr |
Public Member Functions | |
void | addDirectoryDefinition (const char *key, const QString &path, const QString &name) |
void | addFileDefinition (const char *key, const QString &path, const QString &name) |
QString | contentsPrefix () const |
QList< const char * > | directories () const |
QList< const char * > | files () const |
virtual bool | installPackage (const QString &archivePath, const QString &packageRoot) |
bool | isRequired (const char *key) const |
QStringList | mimetypes (const char *key) const |
QString | name (const char *key) const |
PackageStructure & | operator= (const PackageStructure &rhs) |
PackageStructure (QObject *parent=0, const QString &type=i18n("Invalid")) | |
QString | path () const |
QString | path (const char *key) const |
void | read (const KConfigBase *config) |
QList< const char * > | requiredDirectories () const |
QList< const char * > | requiredFiles () const |
void | setDefaultMimetypes (QStringList mimetypes) |
void | setMimetypes (const char *key, QStringList mimetypes) |
void | setPath (const QString &path) |
void | setRequired (const char *key, bool required) |
QString | type () const |
virtual bool | uninstallPackage (const QString &packageName, const QString &packageRoot) |
void | write (KConfigBase *config) const |
virtual | ~PackageStructure () |
Static Public Member Functions | |
static PackageStructure::Ptr | load (const QString &packageFormat) |
Protected Member Functions | |
virtual void | pathChanged () |
void | setContentsPrefix (const QString &prefix) |
Member Typedef Documentation
typedef KSharedPtr<PackageStructure> Plasma::PackageStructure::Ptr |
Definition at line 74 of file packagestructure.h.
Constructor & Destructor Documentation
Plasma::PackageStructure::PackageStructure | ( | QObject * | parent = 0 , |
|
const QString & | type = i18n("Invalid") | |||
) | [explicit] |
Default constructor for a package structure definition.
- type the type of package. This is often application specific.
Definition at line 72 of file packagestructure.cpp.
Plasma::PackageStructure::~PackageStructure | ( | ) | [virtual] |
Member Function Documentation
void Plasma::PackageStructure::addDirectoryDefinition | ( | const char * | key, | |
const QString & | path, | |||
const QString & | name | |||
) |
Adds a directory to the structure of the package.
It is added as a not-required element with no associated mimetypes.
- Parameters:
-
key used as an internal label for this directory path the path within the the package for this directory name the user visible (translated) name for the directory
Definition at line 195 of file packagestructure.cpp.
void Plasma::PackageStructure::addFileDefinition | ( | const char * | key, | |
const QString & | path, | |||
const QString & | name | |||
) |
Adds a file to the structure of the package.
It is added as a not-required element with no associated mimetypes.
- Parameters:
-
key used as an internal label for this file path the path within the the package for this file name the user visible (translated) name for the file
Definition at line 205 of file packagestructure.cpp.
QString Plasma::PackageStructure::contentsPrefix | ( | ) | const |
- Returns:
- the prefix inserted between the base path and content entries
Definition at line 353 of file packagestructure.cpp.
QList< const char * > Plasma::PackageStructure::directories | ( | ) | const |
QList< const char * > Plasma::PackageStructure::files | ( | ) | const |
The individual files, by key, that are defined for this package.
Definition at line 169 of file packagestructure.cpp.
bool Plasma::PackageStructure::installPackage | ( | const QString & | archivePath, | |
const QString & | packageRoot | |||
) | [virtual] |
Installs a package matching this package structure.
By default installs a native Plasma::Package.
- Parameters:
-
archivePath path to the package archive file packageRoot path to the directory where the package should be installed to
- Returns:
- true on successful installation, false otherwise
Definition at line 363 of file packagestructure.cpp.
bool Plasma::PackageStructure::isRequired | ( | const char * | key | ) | const |
- Returns:
- true if the item at path exists and is required
Definition at line 247 of file packagestructure.cpp.
PackageStructure::Ptr Plasma::PackageStructure::load | ( | const QString & | packageFormat | ) | [static] |
Loads a package format by name.
- format If not empty, attempts to locate the given format, either from built-ins or via plugins.
- Returns:
- a package that matches the format, if available. The caller is responsible for deleting the object.
Definition at line 85 of file packagestructure.cpp.
QStringList Plasma::PackageStructure::mimetypes | ( | const char * | key | ) | const |
- Returns:
- the mimetypes associated with the path, if any
Definition at line 272 of file packagestructure.cpp.
QString Plasma::PackageStructure::name | ( | const char * | key | ) | const |
PackageStructure & Plasma::PackageStructure::operator= | ( | const PackageStructure & | rhs | ) |
QString Plasma::PackageStructure::path | ( | ) | const |
- Returns:
- the path to the package, or QString() if none
Definition at line 292 of file packagestructure.cpp.
QString Plasma::PackageStructure::path | ( | const char * | key | ) | const |
- Returns:
- path relative to the package root for the given entry
Definition at line 215 of file packagestructure.cpp.
void Plasma::PackageStructure::pathChanged | ( | ) | [protected, virtual] |
Called whenever the path changes so that subclasses may take package specific actions.
Definition at line 297 of file packagestructure.cpp.
void Plasma::PackageStructure::read | ( | const KConfigBase * | config | ) |
QList< const char * > Plasma::PackageStructure::requiredDirectories | ( | ) | const |
The required directories defined for this package.
Definition at line 155 of file packagestructure.cpp.
QList< const char * > Plasma::PackageStructure::requiredFiles | ( | ) | const |
The individual required files, by key, that are defined for this package.
Definition at line 182 of file packagestructure.cpp.
void Plasma::PackageStructure::setContentsPrefix | ( | const QString & | prefix | ) | [protected] |
Sets the prefix that all the contents in this package should appear under.
This defaults to "contents/" and is added automatically between the base path and the entries as defined by the package structure
- prefix the directory prefix to use
Definition at line 358 of file packagestructure.cpp.
void Plasma::PackageStructure::setDefaultMimetypes | ( | QStringList | mimetypes | ) |
Defines the default mimetypes for any definitions that do not have associated mimetypes.
Handy for packages with only one or predominantly one file type.
- Parameters:
-
mimetypes a list of mimetypes
Definition at line 257 of file packagestructure.cpp.
void Plasma::PackageStructure::setMimetypes | ( | const char * | key, | |
QStringList | mimetypes | |||
) |
Define mimetypes for a given part of the structure The path must already have been added using addDirectoryDefinition or addFileDefinition.
- Parameters:
-
path the path of the entry within the package mimetypes a list of mimetypes
Definition at line 262 of file packagestructure.cpp.
void Plasma::PackageStructure::setPath | ( | const QString & | path | ) |
Sets the path to the package.
Useful for package formats which do not have well defined contents prior to installation.
Definition at line 286 of file packagestructure.cpp.
void Plasma::PackageStructure::setRequired | ( | const char * | key, | |
bool | required | |||
) |
Sets whether or not a given part of the structure is required or not.
The path must already have been added using addDirectoryDefinition or addFileDefinition.
- Parameters:
-
path the path of the entry within the package required true if this entry is required, false if not
Definition at line 237 of file packagestructure.cpp.
QString Plasma::PackageStructure::type | ( | ) | const |
bool Plasma::PackageStructure::uninstallPackage | ( | const QString & | packageName, | |
const QString & | packageRoot | |||
) | [virtual] |
Uninstalls a package matching this package structure.
- packageName the name of the package to remove
- packageRoot path to the directory where the package should be installed to
- Returns:
- true on successful removal of the package, false otherwise
Definition at line 368 of file packagestructure.cpp.
void Plasma::PackageStructure::write | ( | KConfigBase * | config | ) | const |
The documentation for this class was generated from the following files: