kcms/screenedges: Fix Overview not being displayed
Scripted and builtin effect metadata formats are no longer compatible. So KPackageLoader doesn't list builtin effects anymore. To address that, load builtin effect metadata manually.
This commit is contained in:
parent
65db053ba6
commit
3af30c4250
1 changed files with 26 additions and 1 deletions
|
@ -119,6 +119,31 @@ void KWinScreenEdgesConfig::defaults()
|
|||
//-----------------------------------------------------------------------------
|
||||
// Monitor
|
||||
|
||||
static QList<KPluginMetaData> listBuiltinEffects()
|
||||
{
|
||||
const QString rootDirectory = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
|
||||
QStringLiteral("kwin/builtin-effects"),
|
||||
QStandardPaths::LocateDirectory);
|
||||
|
||||
QList<KPluginMetaData> ret;
|
||||
|
||||
const QStringList nameFilters{QStringLiteral("*.json")};
|
||||
QDirIterator it(rootDirectory, nameFilters, QDir::Files);
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
if (const KPluginMetaData metaData = KPluginMetaData::fromJsonFile(it.filePath()); metaData.isValid()) {
|
||||
ret.append(metaData);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static QList<KPluginMetaData> listScriptedEffects()
|
||||
{
|
||||
return KPackage::PackageLoader::self()->listPackages(QStringLiteral("KWin/Effect"), QStringLiteral("kwin/effects/"));
|
||||
}
|
||||
|
||||
void KWinScreenEdgesConfig::monitorInit()
|
||||
{
|
||||
m_form->monitorAddItem(i18n("No Action"));
|
||||
|
@ -139,7 +164,7 @@ void KWinScreenEdgesConfig::monitorInit()
|
|||
m_form->monitorAddItem(i18n("Toggle alternative window switching"));
|
||||
|
||||
KConfigGroup config(m_config, "Plugins");
|
||||
const auto effects = KPackage::PackageLoader::self()->listPackages(QStringLiteral("KWin/Effect"), QStringLiteral("kwin/builtin-effects/")) << KPackage::PackageLoader::self()->listPackages(QStringLiteral("KWin/Effect"), QStringLiteral("kwin/effects/"));
|
||||
const auto effects = listBuiltinEffects() << listScriptedEffects();
|
||||
|
||||
for (const KPluginMetaData &effect : effects) {
|
||||
if (!effect.value(QStringLiteral("X-KWin-Border-Activate"), false)) {
|
||||
|
|
Loading…
Reference in a new issue