Advance KWin Wayland port for Red Bear desktop session
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -41,15 +41,17 @@
|
||||
#include "workspace.h"
|
||||
// KDE
|
||||
#include <KConfigGroup>
|
||||
#include <KConfigPropertyMap>
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
#include <KDeclarative/KConfigPropertyMap>
|
||||
#endif
|
||||
#include <KGlobalAccel>
|
||||
#include <KLocalizedContext>
|
||||
#include <KLocalizedQmlContext>
|
||||
#include <KPackage/PackageLoader>
|
||||
// Qt
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusPendingCallWatcher>
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
#include <QFutureWatcher>
|
||||
#include <QMenu>
|
||||
#include <QQmlContext>
|
||||
@@ -59,7 +61,6 @@
|
||||
#include <QStandardPaths>
|
||||
#include <QtConcurrentRun>
|
||||
|
||||
#include "scriptadaptor.h"
|
||||
|
||||
static QRect scriptValueToRect(const QJSValue &value)
|
||||
{
|
||||
@@ -112,8 +113,6 @@ KWin::AbstractScript::AbstractScript(int id, QString scriptName, QString pluginN
|
||||
m_pluginName = scriptName;
|
||||
}
|
||||
|
||||
new ScriptAdaptor(this);
|
||||
QDBusConnection::sessionBus().registerObject(QStringLiteral("/Scripting/Script") + QString::number(scriptId()), this, QDBusConnection::ExportAdaptors);
|
||||
}
|
||||
|
||||
KWin::AbstractScript::~AbstractScript()
|
||||
@@ -566,6 +565,7 @@ QAction *KWin::Script::createMenu(const QString &title, const QJSValue &items, Q
|
||||
return menu->menuAction();
|
||||
}
|
||||
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
KWin::DeclarativeScript::DeclarativeScript(int id, QString scriptName, QString pluginName, QObject *parent)
|
||||
: AbstractScript(id, scriptName, pluginName, parent)
|
||||
, m_context(new QQmlContext(Scripting::self()->declarativeScriptSharedContext(), this))
|
||||
@@ -603,8 +603,9 @@ void KWin::DeclarativeScript::createComponent()
|
||||
}
|
||||
setRunning(true);
|
||||
}
|
||||
#endif
|
||||
|
||||
KWin::JSEngineGlobalMethodsWrapper::JSEngineGlobalMethodsWrapper(KWin::DeclarativeScript *parent)
|
||||
KWin::JSEngineGlobalMethodsWrapper::JSEngineGlobalMethodsWrapper(KWin::AbstractScript *parent)
|
||||
: QObject(parent)
|
||||
, m_script(parent)
|
||||
{
|
||||
@@ -636,7 +637,9 @@ KWin::Scripting::Scripting(QObject *parent)
|
||||
, m_workspaceWrapper(new QtScriptWorkspaceWrapper(this))
|
||||
{
|
||||
m_qmlEngine->setProperty("_kirigamiTheme", QStringLiteral("KirigamiPlasmaStyle"));
|
||||
m_qmlEngine->rootContext()->setContextObject(new KLocalizedQmlContext(m_qmlEngine));
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
m_qmlEngine->rootContext()->setContextObject(new KLocalizedContext(m_qmlEngine));
|
||||
#endif
|
||||
init();
|
||||
QDBusConnection::sessionBus().registerObject(QStringLiteral("/Scripting"), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportScriptableInvokables);
|
||||
connect(Workspace::self(), &Workspace::configChanged, this, &Scripting::start);
|
||||
@@ -670,7 +673,9 @@ void KWin::Scripting::init()
|
||||
});
|
||||
qmlRegisterSingletonInstance("org.kde.kwin", 3, 0, "Options", options);
|
||||
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
qmlRegisterAnonymousType<KConfigPropertyMap>("org.kde.kwin", 3);
|
||||
#endif
|
||||
qmlRegisterAnonymousType<KWin::Output>("org.kde.kwin", 3);
|
||||
qmlRegisterAnonymousType<KWin::Window>("org.kde.kwin", 3);
|
||||
qmlRegisterAnonymousType<KWin::VirtualDesktop>("org.kde.kwin", 3);
|
||||
@@ -697,7 +702,9 @@ void KWin::Scripting::start()
|
||||
if (it->first) {
|
||||
loadScript(it->second.first, it->second.second);
|
||||
} else {
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
loadDeclarativeScript(it->second.first, it->second.second);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -764,7 +771,9 @@ void KWin::Scripting::slotScriptsQueried()
|
||||
if (it->first) {
|
||||
loadScript(it->second.first, it->second.second);
|
||||
} else {
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
loadDeclarativeScript(it->second.first, it->second.second);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -827,6 +836,7 @@ int KWin::Scripting::loadScript(const QString &filePath, const QString &pluginNa
|
||||
return id;
|
||||
}
|
||||
|
||||
#if KWIN_BUILD_QTQUICK
|
||||
int KWin::Scripting::loadDeclarativeScript(const QString &filePath, const QString &pluginName)
|
||||
{
|
||||
QMutexLocker locker(m_scriptsLock.get());
|
||||
@@ -839,6 +849,7 @@ int KWin::Scripting::loadDeclarativeScript(const QString &filePath, const QStrin
|
||||
scripts.append(script);
|
||||
return id;
|
||||
}
|
||||
#endif
|
||||
|
||||
KWin::Scripting::~Scripting()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user