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

Plasma

Plasma::PackageStructure

Plasma::PackageStructure Class Reference

A description of the expected file structure of a given package type. More...

#include <Plasma/PackageStructure>

Inheritance diagram for Plasma::PackageStructure:
QObject

List of all members.

Public Types

typedef KSharedPtr
< PackageStructure > 
Ptr

Signals

void newWidgetBrowserFinished ()

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)
bool allowExternalPaths () const
QString contentsPrefix () const
virtual void createNewWidgetBrowser (QWidget *parent=0)
QString defaultPackageRoot () const
QList< const char * > directories () const
QStringList entryList (const char *key)
QList< const char * > files () const
virtual bool installPackage (const QString &archivePath, const QString &packageRoot)
bool isRequired (const char *key) const
virtual PackageMetadata metadata ()
QStringList mimetypes (const char *key) const
QString name (const char *key) const
PackageStructure & operator= (const PackageStructure &rhs)
 PackageStructure (QObject *parent=0, const QString &type=i18nc("A non-functional package","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
QString servicePrefix () const
void setDefaultMimetypes (QStringList mimetypes)
void setMimetypes (const char *key, QStringList mimetypes)
void setPath (const QString &path)
void setRequired (const char *key, bool required)
void setServicePrefix (const QString &servicePrefix)
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 setAllowExternalPaths (bool allow)
void setContentsPrefix (const QString &prefix)
void setDefaultPackageRoot (const QString &packageRoot)

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);

One may also choose to create a subclass of PackageStructure and include the setup in the constructor.

Either way, PackageStructure creates a sort of "contract" between the packager and the application which is also self-documenting.

Definition at line 72 of file packagestructure.h.


Member Typedef Documentation

typedef KSharedPtr<PackageStructure> Plasma::PackageStructure::Ptr

Definition at line 77 of file packagestructure.h.


Constructor & Destructor Documentation

Plasma::PackageStructure::PackageStructure ( QObject *  parent = 0,
const QString &  type = i18nc("A non-functional package", "Invalid") 
) [explicit]

Default constructor for a package structure definition.

  • type the type of package. This is often application specific.

Definition at line 99 of file packagestructure.cpp.

Plasma::PackageStructure::~PackageStructure (  )  [virtual]

Destructor.

Definition at line 109 of file packagestructure.cpp.


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 package for this directory
name the user visible (translated) name for the directory

Definition at line 292 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 package for this file
name the user visible (translated) name for the file

Definition at line 303 of file packagestructure.cpp.

bool Plasma::PackageStructure::allowExternalPaths (  )  const
Returns:
true if paths/symlinks outside the package itself should be followed. By default this is set to false for security reasons.

Definition at line 561 of file packagestructure.cpp.

QString Plasma::PackageStructure::contentsPrefix (  )  const
Returns:
the prefix inserted between the base path and content entries

Definition at line 472 of file packagestructure.cpp.

void Plasma::PackageStructure::createNewWidgetBrowser ( QWidget *  parent = 0  )  [virtual]

When called, the package plugin should display a window to the user that they can use to browser, select and then install widgets supported by this package plugin with.

The user interface may be an in-process dialog or an out-of-process application.

When the process is complete, the newWidgetBrowserFinished() signal must be emitted.

Parameters:
parent the parent widget to use for the widget

Definition at line 492 of file packagestructure.cpp.

QString Plasma::PackageStructure::defaultPackageRoot (  )  const
Returns:
preferred package root. This defaults to plasma/plasmoids/

Definition at line 498 of file packagestructure.cpp.

QList< const char * > Plasma::PackageStructure::directories (  )  const

The directories defined for this package.

Definition at line 213 of file packagestructure.cpp.

QStringList Plasma::PackageStructure::entryList ( const char *  key  ) 

Get the list of files of a given type.

  • key the type of file to look for
    Returns:
    list of files by name
    Since:
    4.3

Definition at line 266 of file packagestructure.cpp.

QList< const char * > Plasma::PackageStructure::files (  )  const

The individual files, by key, that are defined for this package.

Definition at line 240 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 482 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 345 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 114 of file packagestructure.cpp.

PackageMetadata Plasma::PackageStructure::metadata (  )  [virtual]
Returns:
the package metadata object.

Definition at line 534 of file packagestructure.cpp.

QStringList Plasma::PackageStructure::mimetypes ( const char *  key  )  const
Returns:
the mimetypes associated with the path, if any

Definition at line 370 of file packagestructure.cpp.

QString Plasma::PackageStructure::name ( const char *  key  )  const
Returns:
user visible name for the given entry

Definition at line 325 of file packagestructure.cpp.

void Plasma::PackageStructure::newWidgetBrowserFinished (  )  [signal]

Emitted when the new widget browser process completes.

PackageStructure & Plasma::PackageStructure::operator= ( const PackageStructure &  rhs  ) 

Assignment operator.

Definition at line 198 of file packagestructure.cpp.

QString Plasma::PackageStructure::path (  )  const
Returns:
the path to the package, or QString() if none

Definition at line 411 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 313 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 416 of file packagestructure.cpp.

void Plasma::PackageStructure::read ( const KConfigBase *  config  ) 

Read a package structure from a config file.

Definition at line 421 of file packagestructure.cpp.

QList< const char * > Plasma::PackageStructure::requiredDirectories (  )  const

The required directories defined for this package.

Definition at line 226 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 253 of file packagestructure.cpp.

QString Plasma::PackageStructure::servicePrefix (  )  const
Returns:
service prefix used in desktop files. This defaults to plasma-applet-

Definition at line 503 of file packagestructure.cpp.

void Plasma::PackageStructure::setAllowExternalPaths ( bool  allow  )  [protected]

Sets whether or not external paths/symlinks can be followed by a package.

  • allow true if paths/symlinks outside of the package should be followed, false if they should be rejected.

Definition at line 566 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 477 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 355 of file packagestructure.cpp.

void Plasma::PackageStructure::setDefaultPackageRoot ( const QString &  packageRoot  )  [protected]

Sets preferred package root.

Definition at line 508 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:
key the entry within the package
mimetypes a list of mimetypes

Definition at line 360 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 384 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:
key the entry within the package
required true if this entry is required, false if not

Definition at line 335 of file packagestructure.cpp.

void Plasma::PackageStructure::setServicePrefix ( const QString &  servicePrefix  ) 

Sets service prefix.

Definition at line 513 of file packagestructure.cpp.

QString Plasma::PackageStructure::type (  )  const

Type of package this structure describes.

Definition at line 208 of file packagestructure.cpp.

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 487 of file packagestructure.cpp.

void Plasma::PackageStructure::write ( KConfigBase *  config  )  const

Write this package structure to a config file.

Definition at line 449 of file packagestructure.cpp.


The documentation for this class was generated from the following files:
  • packagestructure.h
  • packagestructure.cpp

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