provide a containment package specialization

this will allow containments to have a different qml file
This commit is contained in:
Aaron Seigo 2012-11-09 14:05:45 +01:00
parent 75e9a7dcd5
commit 8b72b0b3ef
2 changed files with 22 additions and 5 deletions

View File

@ -44,17 +44,22 @@ void ChangeableMainScriptPackage::initPackage(Package *package)
package->setRequired("mainscript", true); package->setRequired("mainscript", true);
} }
QString ChangeableMainScriptPackage::findMainScript(Package *package) QString ChangeableMainScriptPackage::findMainScript(Package *package) const
{ {
Q_UNUSED(package) Q_UNUSED(package)
return QString(); return QString();
} }
QString ChangeableMainScriptPackage::mainScriptConfigKey() const
{
return QLatin1String("X-Plasma-MainScript");
}
void ChangeableMainScriptPackage::pathChanged(Package *package) void ChangeableMainScriptPackage::pathChanged(Package *package)
{ {
KDesktopFile config(package->path() + "/metadata.desktop"); KDesktopFile config(package->path() + "/metadata.desktop");
KConfigGroup cg = config.desktopGroup(); KConfigGroup cg = config.desktopGroup();
QString mainScript = cg.readEntry("X-Plasma-MainScript", QString()); QString mainScript = cg.readEntry(mainScriptConfigKey(), QString());
if (mainScript.isEmpty()) { if (mainScript.isEmpty()) {
mainScript = findMainScript(package); mainScript = findMainScript(package);
@ -71,7 +76,7 @@ void ChangeableMainScriptPackage::pathChanged(Package *package)
} }
} }
QString PlasmoidPackage::findMainScript(Package *package) QString PlasmoidPackage::findMainScript(Package *package) const
{ {
const QString mainScript = package->path() + "/ui/main.qml"; const QString mainScript = package->path() + "/ui/main.qml";
if (QFile::exists(mainScript)) { if (QFile::exists(mainScript)) {
@ -125,6 +130,11 @@ void PlasmoidPackage::initPackage(Package *package)
package->addDirectoryDefinition("animations", "animations", i18n("Animation scripts")); package->addDirectoryDefinition("animations", "animations", i18n("Animation scripts"));
} }
QString ContainmentPackage::mainScriptConfigKey() const
{
return QLatin1String("X-Plasma-Containment-MainScript");
}
void DataEnginePackage::initPackage(Package *package) void DataEnginePackage::initPackage(Package *package)
{ {
ChangeableMainScriptPackage::initPackage(package); ChangeableMainScriptPackage::initPackage(package);

View File

@ -33,7 +33,8 @@ public:
void initPackage(Package *package); void initPackage(Package *package);
protected: protected:
virtual QString findMainScript(Package *package); virtual QString findMainScript(Package *package) const;
virtual QString mainScriptConfigKey() const;
void pathChanged(Package *package); void pathChanged(Package *package);
}; };
@ -43,7 +44,13 @@ public:
void initPackage(Package *package); void initPackage(Package *package);
protected: protected:
QString findMainScript(Package *package); QString findMainScript(Package *package) const;
};
class ContainmentPackage : public PlasmoidPackage
{
public:
QString mainScriptConfigKey() const;
}; };
class DataEnginePackage : public ChangeableMainScriptPackage class DataEnginePackage : public ChangeableMainScriptPackage