mirror of
https://github.com/Bismuth-Forge/bismuth.git
synced 2024-10-05 12:37:47 +03:00
chore: add config option for experimental backend
This commit is contained in:
parent
fc944db965
commit
410a2d2181
@ -177,6 +177,11 @@
|
||||
<label>Put new window as master</label>
|
||||
<default>false</default>
|
||||
</entry>
|
||||
|
||||
<entry name="experimentalBackend" type="Bool">
|
||||
<label>Enable Experimental Backend</label>
|
||||
<default>false</default>
|
||||
</entry>
|
||||
</group>
|
||||
|
||||
<group name="Plugins">
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "config.hpp"
|
||||
#include "engine/engine.hpp"
|
||||
#include "logger.hpp"
|
||||
#include "plasma-api/client.hpp"
|
||||
@ -21,17 +22,20 @@
|
||||
|
||||
namespace Bismuth
|
||||
{
|
||||
Controller::Controller(PlasmaApi::Api &api, Engine &engine)
|
||||
Controller::Controller(PlasmaApi::Api &api, Engine &engine, const Bismuth::Config &config)
|
||||
: m_plasmaApi(api)
|
||||
, m_proxy()
|
||||
, m_engine(engine)
|
||||
, m_config(config)
|
||||
{
|
||||
bindEvents();
|
||||
// TODO: Bind shortcuts
|
||||
|
||||
loadExistingWindows();
|
||||
if (m_config.experimentalBackend()) {
|
||||
loadExistingWindows();
|
||||
|
||||
m_engine.arrangeWindowsOnVisibleSurfaces();
|
||||
m_engine.arrangeWindowsOnVisibleSurfaces();
|
||||
}
|
||||
}
|
||||
|
||||
void Controller::bindEvents()
|
||||
@ -88,7 +92,7 @@ void Controller::registerAction(const Action &data)
|
||||
|
||||
void Controller::onCurrentSurfaceChanged()
|
||||
{
|
||||
if (m_proxy) {
|
||||
if (m_proxy && !m_config.experimentalBackend()) {
|
||||
auto ctl = m_proxy->jsController();
|
||||
auto func = ctl.property("onCurrentSurfaceChanged");
|
||||
func.callWithInstance(ctl);
|
||||
@ -97,7 +101,7 @@ void Controller::onCurrentSurfaceChanged()
|
||||
|
||||
void Controller::onSurfaceUpdate()
|
||||
{
|
||||
if (m_proxy) {
|
||||
if (m_proxy && !m_config.experimentalBackend()) {
|
||||
auto ctl = m_proxy->jsController();
|
||||
auto func = ctl.property("onSurfaceUpdate");
|
||||
func.callWithInstance(ctl);
|
||||
@ -106,7 +110,9 @@ void Controller::onSurfaceUpdate()
|
||||
|
||||
void Controller::onClientAdded(PlasmaApi::Client client)
|
||||
{
|
||||
m_engine.addWindow(client);
|
||||
if (m_config.experimentalBackend()) {
|
||||
m_engine.addWindow(client);
|
||||
}
|
||||
}
|
||||
|
||||
void Controller::onClientRemoved(PlasmaApi::Client)
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "config.hpp"
|
||||
#include "engine/engine.hpp"
|
||||
#include "plasma-api/api.hpp"
|
||||
#include "plasma-api/client.hpp"
|
||||
@ -33,7 +34,7 @@ class Controller : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Controller(PlasmaApi::Api &, Engine &);
|
||||
Controller(PlasmaApi::Api &, Engine &, const Bismuth::Config &);
|
||||
|
||||
void bindEvents();
|
||||
void loadExistingWindows();
|
||||
@ -57,6 +58,7 @@ private:
|
||||
PlasmaApi::Api &m_plasmaApi;
|
||||
TSProxy *m_proxy;
|
||||
Engine &m_engine;
|
||||
const Config &m_config;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ void Core::init()
|
||||
m_qmlEngine = qmlEngine(this);
|
||||
m_plasmaApi = std::make_unique<PlasmaApi::Api>(m_qmlEngine);
|
||||
m_engine = std::make_unique<Bismuth::Engine>(*m_plasmaApi);
|
||||
m_controller = std::make_unique<Bismuth::Controller>(*m_plasmaApi, *m_engine);
|
||||
m_controller = std::make_unique<Bismuth::Controller>(*m_plasmaApi, *m_engine, *m_config);
|
||||
m_tsProxy = std::make_unique<TSProxy>(m_qmlEngine, *m_controller, *m_plasmaApi, *m_config);
|
||||
m_controller->setProxy(m_tsProxy.get());
|
||||
}
|
||||
|
@ -56,6 +56,7 @@ QJSValue TSProxy::jsConfig()
|
||||
setProp("maximizeSoleTile", m_config.maximizeSoleTile());
|
||||
setProp("monocleMinimizeRest", m_config.monocleMinimizeRest());
|
||||
setProp("untileByDragging", m_config.untileByDragging());
|
||||
setProp("experimentalBackend", m_config.experimentalBackend());
|
||||
|
||||
setProp("keepFloatAbove", m_config.keepFloatAbove());
|
||||
setProp("noTileBorder", m_config.noTileBorder());
|
||||
|
@ -4,6 +4,8 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
export interface Config {
|
||||
experimentalBackend: boolean;
|
||||
|
||||
//#region Layout
|
||||
layoutOrder: string[];
|
||||
monocleMaximize: boolean;
|
||||
|
@ -15,8 +15,13 @@ export function init(
|
||||
qmlObjects: Bismuth.Qml.Main,
|
||||
kwinScriptingApi: KWin.Api,
|
||||
proxy: TSProxy
|
||||
): Controller {
|
||||
): Controller | null {
|
||||
const config = proxy.jsConfig();
|
||||
|
||||
if (config.experimentalBackend) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const logger = new LogImpl(proxy);
|
||||
|
||||
const controller = new ControllerImpl(
|
||||
|
Loading…
Reference in New Issue
Block a user