Add "effect enabled" checkbox
This commit is contained in:
parent
c2d36383b5
commit
f7daccb2f8
|
|
@ -97,6 +97,7 @@ BreezyDesktopEffectConfig::BreezyDesktopEffectConfig(QObject *parent, const KPlu
|
||||||
addShortcutAction(actionCollection, BreezyShortcuts::TOGGLE_ZOOM_ON_FOCUS);
|
addShortcutAction(actionCollection, BreezyShortcuts::TOGGLE_ZOOM_ON_FOCUS);
|
||||||
ui.shortcutsEditor->addCollection(actionCollection);
|
ui.shortcutsEditor->addCollection(actionCollection);
|
||||||
connect(ui.shortcutsEditor, &KShortcutsEditor::keyChange, this, &BreezyDesktopEffectConfig::markAsChanged);
|
connect(ui.shortcutsEditor, &KShortcutsEditor::keyChange, this, &BreezyDesktopEffectConfig::markAsChanged);
|
||||||
|
connect(ui.kcfg_EffectEnabled, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::updateDriverEnabled);
|
||||||
connect(ui.kcfg_ZoomOnFocusEnabled, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::save);
|
connect(ui.kcfg_ZoomOnFocusEnabled, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::save);
|
||||||
connect(ui.kcfg_FocusedDisplayDistance, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
connect(ui.kcfg_FocusedDisplayDistance, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
||||||
connect(ui.kcfg_AllDisplaysDistance, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
connect(ui.kcfg_AllDisplaysDistance, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
||||||
|
|
@ -239,22 +240,17 @@ void BreezyDesktopEffectConfig::updateUnmanagedState()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void BreezyDesktopEffectConfig::enableDriver()
|
void BreezyDesktopEffectConfig::updateDriverEnabled()
|
||||||
{
|
{
|
||||||
qCCritical(KWIN_XR) << "\t\t\tBreezy config - enableDriver";
|
|
||||||
QJsonObject obj;
|
QJsonObject obj;
|
||||||
obj.insert(QStringLiteral("disabled"), false);
|
if (ui.kcfg_EffectEnabled->isChecked()) {
|
||||||
obj.insert(QStringLiteral("output_mode"), QStringLiteral("external_only"));
|
obj.insert(QStringLiteral("disabled"), false);
|
||||||
obj.insert(QStringLiteral("external_mode"), QStringLiteral("breezy_desktop"));
|
obj.insert(QStringLiteral("output_mode"), QStringLiteral("external_only"));
|
||||||
XRDriverIPC::instance().writeConfig(obj);
|
obj.insert(QStringLiteral("external_mode"), QStringLiteral("breezy_desktop"));
|
||||||
}
|
} else {
|
||||||
|
obj.insert(QStringLiteral("disabled"), true);
|
||||||
void BreezyDesktopEffectConfig::disableDriver()
|
obj.insert(QStringLiteral("external_mode"), QStringLiteral("none"));
|
||||||
{
|
}
|
||||||
qCCritical(KWIN_XR) << "\t\t\tBreezy config - disableDriver";
|
|
||||||
QJsonObject obj;
|
|
||||||
obj.insert(QStringLiteral("disabled"), true);
|
|
||||||
obj.insert(QStringLiteral("external_mode"), QStringLiteral("none"));
|
|
||||||
XRDriverIPC::instance().writeConfig(obj);
|
XRDriverIPC::instance().writeConfig(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -262,9 +258,9 @@ void BreezyDesktopEffectConfig::pollDriverState()
|
||||||
{
|
{
|
||||||
auto &bridge = XRDriverIPC::instance();
|
auto &bridge = XRDriverIPC::instance();
|
||||||
auto stateJsonOpt = bridge.retrieveDriverState();
|
auto stateJsonOpt = bridge.retrieveDriverState();
|
||||||
if (!stateJsonOpt) return;
|
auto configJsonOpt = bridge.retrieveConfig();
|
||||||
|
if (!stateJsonOpt || !configJsonOpt) return;
|
||||||
auto stateJson = stateJsonOpt.value();
|
auto stateJson = stateJsonOpt.value();
|
||||||
|
|
||||||
m_connectedDeviceBrand = stateJson.value(QStringLiteral("connected_device_brand")).toString();
|
m_connectedDeviceBrand = stateJson.value(QStringLiteral("connected_device_brand")).toString();
|
||||||
m_connectedDeviceModel = stateJson.value(QStringLiteral("connected_device_model")).toString();
|
m_connectedDeviceModel = stateJson.value(QStringLiteral("connected_device_model")).toString();
|
||||||
|
|
||||||
|
|
@ -276,6 +272,15 @@ void BreezyDesktopEffectConfig::pollDriverState()
|
||||||
QStringLiteral("No device connected"));
|
QStringLiteral("No device connected"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto configJson = configJsonOpt.value();
|
||||||
|
bool driverDisabled = configJson.value(QStringLiteral("disabled")).toBool();
|
||||||
|
QString driverOutputMode = configJson.value(QStringLiteral("output_mode")).toString();
|
||||||
|
QJsonArray driverExternalMode = configJson.value(QStringLiteral("external_mode")).toArray();
|
||||||
|
bool effectEnabled = !driverDisabled &&
|
||||||
|
driverOutputMode == QStringLiteral("external_only") &&
|
||||||
|
driverExternalMode.contains(QJsonValue(QStringLiteral("breezy_desktop")));
|
||||||
|
if (ui.kcfg_EffectEnabled->isChecked() != effectEnabled) ui.kcfg_EffectEnabled->setChecked(effectEnabled);
|
||||||
|
|
||||||
refreshLicenseUi(stateJson);
|
refreshLicenseUi(stateJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,7 @@ public Q_SLOTS:
|
||||||
void defaults() override;
|
void defaults() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void enableDriver();
|
void updateDriverEnabled();
|
||||||
void disableDriver();
|
|
||||||
void updateUiFromConfig();
|
void updateUiFromConfig();
|
||||||
void updateUiFromDefaultConfig();
|
void updateUiFromDefaultConfig();
|
||||||
void updateConfigFromUi();
|
void updateConfigFromUi();
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,17 @@
|
||||||
<string>&General</string>
|
<string>&General</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QFormLayout" name="formLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="kcfg_EffectEnabled">
|
||||||
|
<property name="text">
|
||||||
|
<string>XR Effect enabled</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="kcfg_ZoomOnFocusEnabled">
|
<widget class="QCheckBox" name="kcfg_ZoomOnFocusEnabled">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Zoom on Focus</string>
|
<string>Zoom on Focus</string>
|
||||||
|
|
@ -61,15 +71,15 @@
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="labelFocusedDisplayDistance">
|
<widget class="QLabel" name="labelFocusedDisplayDistance">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Focused Display Distance:</string>
|
<string>Focused Display Distance:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="LabeledSlider" name="kcfg_FocusedDisplayDistance">
|
<widget class="LabeledSlider" name="kcfg_FocusedDisplayDistance">
|
||||||
<property name="decimalShift">
|
<property name="decimalShift">
|
||||||
<double>2</double>
|
<double>2</double>
|
||||||
|
|
@ -88,14 +98,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="labelAllDisplaysDistance">
|
<widget class="QLabel" name="labelAllDisplaysDistance">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>All Displays Distance:</string>
|
<string>All Displays Distance:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="LabeledSlider" name="kcfg_AllDisplaysDistance">
|
<widget class="LabeledSlider" name="kcfg_AllDisplaysDistance">
|
||||||
<property name="decimalShift">
|
<property name="decimalShift">
|
||||||
<double>2</double>
|
<double>2</double>
|
||||||
|
|
@ -114,14 +124,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="labelDisplaySpacing">
|
<widget class="QLabel" name="labelDisplaySpacing">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Display Spacing:</string>
|
<string>Display Spacing:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QSlider" name="kcfg_DisplaySpacing">
|
<widget class="QSlider" name="kcfg_DisplaySpacing">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
|
|
@ -131,7 +141,7 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QLabel" name="labelVirtualDisplays">
|
<widget class="QLabel" name="labelVirtualDisplays">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Add Virtual Display:</string>
|
<string>Add Virtual Display:</string>
|
||||||
|
|
@ -144,7 +154,7 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="5" column="1">
|
||||||
<widget class="QWidget" name="widgetVirtualDisplayButtons">
|
<widget class="QWidget" name="widgetVirtualDisplayButtons">
|
||||||
<property name="visible">
|
<property name="visible">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
|
|
@ -177,7 +187,7 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0" colspan="2">
|
<item row="6" column="0" colspan="2">
|
||||||
<widget class="KShortcutsEditor" name="shortcutsEditor" native="true">
|
<widget class="KShortcutsEditor" name="shortcutsEditor" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue