layouts::storage,provide subcontainment identities

--a generic way to identify subcontainments such as
systrays, group applets etc...
pull/19/head
Michail Vourlakos
parent ab2f416176
commit 46292bf7e5

@ -48,6 +48,16 @@ namespace Layouts {
Storage::Storage()
{
qDebug() << " >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LAYOUTS::STORAGE, TEMP DIR ::: " << m_storageTmpDir.path();
SubContaimentIdentityData data;
//! Systray
data.cfgGroup = "Configuration"; data.cfgGroup = "SystrayContainmentId";
m_subIdentities << data;
//! Group applet
data.cfgGroup = "Configuration"; data.cfgGroup = "ContainmentId";
m_subIdentities << data;
}
Storage::~Storage()
@ -90,15 +100,6 @@ bool Storage::isLatteContainment(const KConfigGroup &group) const
return pluginId == "org.kde.latte.containment";
}
void Storage::lock(const Layout::GenericLayout *layout)
{
QFileInfo layoutFileInfo(layout->file());
if (layoutFileInfo.exists() && layoutFileInfo.isWritable()) {
QFile(layout->file()).setPermissions(QFileDevice::ReadUser | QFileDevice::ReadGroup | QFileDevice::ReadOther);
}
}
bool Storage::isSubContainment(const Layout::GenericLayout *layout, const Plasma::Applet *applet) const
{
if (!layout || !applet) {
@ -124,11 +125,23 @@ int Storage::subContainmentId(const KConfigGroup &appletGroup) const
{
int subId{-1};
if (appletGroup.hasGroup("Configuration")) {
KConfigGroup appletConfigGroup = appletGroup.group("Configuration");
//! cycle through subcontainments identities
for (auto subidentity : m_subIdentities) {
KConfigGroup appletConfigGroup = appletGroup;
if (appletConfigGroup.hasKey("SystrayContainmentId")) {
subId = appletConfigGroup.readEntry("SystrayContainmentId", -1);
if (!subidentity.cfgGroup.isEmpty()) {
//! if identity provides specific configuration group
if (appletGroup.hasGroup(subidentity.cfgGroup)) {
appletConfigGroup = appletGroup.group(subidentity.cfgGroup);
}
}
if (!subidentity.cfgProperty.isEmpty()) {
//! if identity provides specific property for configuration group
if (appletConfigGroup.hasKey(subidentity.cfgProperty)) {
subId = appletConfigGroup.readEntry(subidentity.cfgProperty, -1);
return subId;
}
}
}
@ -153,6 +166,15 @@ Plasma::Containment *Storage::subContainmentOf(const Layout::GenericLayout *layo
return nullptr;
}
void Storage::lock(const Layout::GenericLayout *layout)
{
QFileInfo layoutFileInfo(layout->file());
if (layoutFileInfo.exists() && layoutFileInfo.isWritable()) {
QFile(layout->file()).setPermissions(QFileDevice::ReadUser | QFileDevice::ReadGroup | QFileDevice::ReadOther);
}
}
void Storage::unlock(const Layout::GenericLayout *layout)
{
QFileInfo layoutFileInfo(layout->file());

@ -40,6 +40,12 @@ struct ViewData;
namespace Latte {
namespace Layouts {
struct SubContaimentIdentityData
{
QString cfgGroup;
QString cfgProperty;
};
struct ViewDelayedCreationData
{
Plasma::Containment *containment{nullptr};
@ -101,6 +107,7 @@ private:
private:
QTemporaryDir m_storageTmpDir;
QList<SubContaimentIdentityData> m_subIdentities;
};
}

Loading…
Cancel
Save