From 14c3235a17c5896ed0f8049e552802f511665e55 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 14 Jul 2011 14:53:57 +0200 Subject: [PATCH] fix resolution of paths w/ only a packageRoot+name --- package.cpp | 17 ++++++++++++++++- packagestructure.cpp | 2 +- private/package_p.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/package.cpp b/package.cpp index 34735710b..e24fa17bb 100644 --- a/package.cpp +++ b/package.cpp @@ -128,7 +128,7 @@ Package::Package() Package::Package(const QString &packageRoot, const QString &package, PackageStructure::Ptr structure) - : d(new PackagePrivate(structure, packageRoot + '/' + package)) + : d(new PackagePrivate(structure, packageRoot, package)) { } @@ -767,6 +767,21 @@ PackagePrivate::PackagePrivate(const PackageStructure::Ptr st, const QString &p) valid = structure && !structure->path().isEmpty(); } +PackagePrivate::PackagePrivate(const PackageStructure::Ptr st, const QString &packageRoot, const QString &path) + : structure(st), + service(0) +{ + if (structure) { + if (packageRoot.isEmpty()) { + structure->setPath(structure->defaultPackageRoot()%"/"%path); + } else { + structure->setPath(packageRoot%path); + } + } + + valid = structure && !structure->path().isEmpty(); +} + PackagePrivate::PackagePrivate(const PackagePrivate &other) : structure(other.structure), service(other.service), diff --git a/packagestructure.cpp b/packagestructure.cpp index 8bfb12482..ede94a6e0 100644 --- a/packagestructure.cpp +++ b/packagestructure.cpp @@ -148,7 +148,7 @@ PackageStructure::Ptr PackageStructure::load(const QString &packageFormat) } else if (packageFormat == "Plasma/Generic") { structure = defaultPackageStructure(GenericComponent); structure->d->type = "Plasma/Generic"; - structure->setDefaultPackageRoot(KStandardDirs::locate("data", "plasmapackages")); + structure->setDefaultPackageRoot(KStandardDirs::locate("data", "plasma/packages/")); } if (structure) { diff --git a/private/package_p.h b/private/package_p.h index 92203b071..a572c1292 100644 --- a/private/package_p.h +++ b/private/package_p.h @@ -32,6 +32,7 @@ class PackagePrivate { public: PackagePrivate(const PackageStructure::Ptr st, const QString &p); + PackagePrivate(const PackageStructure::Ptr st, const QString &packageRoot, const QString &path); PackagePrivate(const PackagePrivate &other); ~PackagePrivate();