Add checkbox for mirroring the physical displays, remove physical displays menu
This commit is contained in:
parent
40475736c1
commit
46b0ef747f
|
|
@ -57,12 +57,10 @@
|
|||
<label>Antialiasing Quality</label>
|
||||
<description>0=None, 1=Medium, 2=High, 3=Very High</description>
|
||||
</entry>
|
||||
<entry name="PhysicalDisplaysMode" type="Int">
|
||||
<default>1</default>
|
||||
<min>0</min>
|
||||
<max>2</max>
|
||||
<label>Physical Displays On/Off</label>
|
||||
<description>How to handle the physical (built-in) monitors: 0=Off, 1=On - not mirrored in XR, 2=On - mirrored in XR (may impact performance)</description>
|
||||
<entry name="MirrorPhysicalDisplays" type="Bool">
|
||||
<default>false</default>
|
||||
<label>Mirror Physical Displays</label>
|
||||
<description>Whether to mirror the physical monitors in XR</description>
|
||||
</entry>
|
||||
<entry name="RemoveVirtualDisplaysOnDisable" type="Bool">
|
||||
<default>true</default>
|
||||
|
|
|
|||
|
|
@ -203,14 +203,14 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags)
|
|||
int wrap = BreezyDesktopConfig::displayWrappingScheme();
|
||||
int aaQuality = BreezyDesktopConfig::antialiasingQuality();
|
||||
bool removeVD = BreezyDesktopConfig::removeVirtualDisplaysOnDisable();
|
||||
int physDisplaysMode = BreezyDesktopConfig::physicalDisplaysMode();
|
||||
bool mirrorPhysicalDisplays = BreezyDesktopConfig::mirrorPhysicalDisplays();
|
||||
bool changed = false;
|
||||
if (!qFuzzyCompare(m_displayHorizontalOffset, horiz)) { m_displayHorizontalOffset = horiz; changed = true; }
|
||||
if (!qFuzzyCompare(m_displayVerticalOffset, vert)) { m_displayVerticalOffset = vert; changed = true; }
|
||||
if (m_displayWrappingScheme != wrap) { m_displayWrappingScheme = wrap; Q_EMIT displayWrappingSchemeChanged(); }
|
||||
if (m_antialiasingQuality != aaQuality) { m_antialiasingQuality = aaQuality; Q_EMIT antialiasingQualityChanged(); }
|
||||
if (m_removeVirtualDisplaysOnDisable != removeVD) { m_removeVirtualDisplaysOnDisable = removeVD; Q_EMIT removeVirtualDisplaysOnDisableChanged(); }
|
||||
if (m_physicalDisplaysMode != physDisplaysMode) { m_physicalDisplaysMode = physDisplaysMode; Q_EMIT physicalDisplaysModeChanged(); }
|
||||
if (m_mirrorPhysicalDisplays != mirrorPhysicalDisplays) { m_mirrorPhysicalDisplays = mirrorPhysicalDisplays; Q_EMIT mirrorPhysicalDisplaysChanged(); }
|
||||
if (changed) Q_EMIT displayOffsetChanged();
|
||||
}
|
||||
|
||||
|
|
@ -429,8 +429,8 @@ bool BreezyDesktopEffect::removeVirtualDisplaysOnDisable() const {
|
|||
return m_removeVirtualDisplaysOnDisable;
|
||||
}
|
||||
|
||||
int BreezyDesktopEffect::physicalDisplaysMode() const {
|
||||
return m_physicalDisplaysMode;
|
||||
bool BreezyDesktopEffect::mirrorPhysicalDisplays() const {
|
||||
return m_mirrorPhysicalDisplays;
|
||||
}
|
||||
|
||||
bool BreezyDesktopEffect::checkParityByte(const char* data) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace KWin
|
|||
Q_PROPERTY(bool customBannerEnabled READ customBannerEnabled NOTIFY devicePropertiesChanged)
|
||||
Q_PROPERTY(int antialiasingQuality READ antialiasingQuality NOTIFY antialiasingQualityChanged)
|
||||
Q_PROPERTY(bool removeVirtualDisplaysOnDisable READ removeVirtualDisplaysOnDisable NOTIFY removeVirtualDisplaysOnDisableChanged)
|
||||
Q_PROPERTY(int physicalDisplaysMode READ physicalDisplaysMode NOTIFY physicalDisplaysModeChanged)
|
||||
Q_PROPERTY(bool mirrorPhysicalDisplays READ mirrorPhysicalDisplays NOTIFY mirrorPhysicalDisplaysChanged)
|
||||
|
||||
public:
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ namespace KWin
|
|||
bool customBannerEnabled() const;
|
||||
int antialiasingQuality() const;
|
||||
bool removeVirtualDisplaysOnDisable() const;
|
||||
int physicalDisplaysMode() const;
|
||||
bool mirrorPhysicalDisplays() const;
|
||||
|
||||
void showCursor();
|
||||
void hideCursor();
|
||||
|
|
@ -106,7 +106,7 @@ namespace KWin
|
|||
void devicePropertiesChanged();
|
||||
void antialiasingQualityChanged();
|
||||
void removeVirtualDisplaysOnDisableChanged();
|
||||
void physicalDisplaysModeChanged();
|
||||
void mirrorPhysicalDisplaysChanged();
|
||||
|
||||
protected:
|
||||
QVariantMap initialProperties(Output *screen) override;
|
||||
|
|
@ -145,7 +145,7 @@ namespace KWin
|
|||
int m_displayWrappingScheme = 0; // 0=auto,1=horizontal,2=vertical,3=flat
|
||||
int m_antialiasingQuality = 3; // 0=None, 1=Medium, 2=High, 3=VeryHigh
|
||||
bool m_removeVirtualDisplaysOnDisable = true;
|
||||
int m_physicalDisplaysMode = 1; // 0=Off,1=On no mirror,2=On mirrored
|
||||
bool m_mirrorPhysicalDisplays = false;
|
||||
QList<Output *> m_virtualOutputs;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ BreezyDesktopEffectConfig::BreezyDesktopEffectConfig(QObject *parent, const KPlu
|
|||
connect(ui.kcfg_DisplayVerticalOffset, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
||||
connect(ui.kcfg_DisplayWrappingScheme, qOverload<int>(&QComboBox::currentIndexChanged), this, &BreezyDesktopEffectConfig::save);
|
||||
connect(ui.kcfg_AntialiasingQuality, qOverload<int>(&QComboBox::currentIndexChanged), this, &BreezyDesktopEffectConfig::save);
|
||||
connect(ui.kcfg_PhysicalDisplaysMode, qOverload<int>(&QComboBox::currentIndexChanged), this, &BreezyDesktopEffectConfig::save);
|
||||
connect(ui.kcfg_MirrorPhysicalDisplays, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::save);
|
||||
connect(ui.kcfg_RemoveVirtualDisplaysOnDisable, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::save);
|
||||
|
||||
if (auto label = widget()->findChild<QLabel*>("labelAppNameVersion")) {
|
||||
|
|
@ -227,7 +227,7 @@ void BreezyDesktopEffectConfig::updateUiFromConfig()
|
|||
ui.kcfg_DisplayVerticalOffset->setValue(BreezyDesktopConfig::self()->displayVerticalOffset());
|
||||
ui.kcfg_DisplayWrappingScheme->setCurrentIndex(BreezyDesktopConfig::self()->displayWrappingScheme());
|
||||
ui.kcfg_AntialiasingQuality->setCurrentIndex(BreezyDesktopConfig::self()->antialiasingQuality());
|
||||
ui.kcfg_PhysicalDisplaysMode->setCurrentIndex(BreezyDesktopConfig::self()->physicalDisplaysMode());
|
||||
ui.kcfg_MirrorPhysicalDisplays->setChecked(BreezyDesktopConfig::self()->mirrorPhysicalDisplays());
|
||||
ui.kcfg_RemoveVirtualDisplaysOnDisable->setChecked(BreezyDesktopConfig::self()->removeVirtualDisplaysOnDisable());
|
||||
ui.kcfg_ZoomOnFocusEnabled->setChecked(BreezyDesktopConfig::self()->zoomOnFocusEnabled());
|
||||
ui.kcfg_FocusedDisplayDistance->setEnabled(ui.kcfg_ZoomOnFocusEnabled->isChecked());
|
||||
|
|
|
|||
|
|
@ -267,39 +267,13 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="labelPhysicalDisplaysMode">
|
||||
<property name="text">
|
||||
<string>Physical Displays On/Off:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="kcfg_PhysicalDisplaysMode">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On - not mirrored in XR</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On - mirrored in XR (may impact performance)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="labelDisplayHorizontalOffset">
|
||||
<property name="text">
|
||||
<string>Display Horizontal Offset:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="2" column="1">
|
||||
<widget class="LabeledSlider" name="kcfg_DisplayHorizontalOffset">
|
||||
<property name="decimalShift">
|
||||
<double>2</double>
|
||||
|
|
@ -318,14 +292,14 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="labelDisplayVerticalOffset">
|
||||
<property name="text">
|
||||
<string>Display Vertical Offset:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="3" column="1">
|
||||
<widget class="LabeledSlider" name="kcfg_DisplayVerticalOffset">
|
||||
<property name="decimalShift">
|
||||
<double>2</double>
|
||||
|
|
@ -344,7 +318,7 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="kcfg_RemoveVirtualDisplaysOnDisable">
|
||||
<property name="visible">
|
||||
<bool>false</bool>
|
||||
|
|
@ -358,6 +332,14 @@
|
|||
<property name="checked"><bool>true</bool></property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="kcfg_MirrorPhysicalDisplays">
|
||||
<property name="text">
|
||||
<string>Mirror physical displays (may impact performance)</string>
|
||||
</property>
|
||||
<property name="checked"><bool>false</bool></property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabLicenseDetails">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ Item {
|
|||
|
||||
property real viewportDiagonalFOVDegrees: effect.diagonalFOV
|
||||
property var viewportResolution: effect.displayResolution
|
||||
property bool mirrorPhysicalDisplays: effect.physicalDisplaysMode === 2
|
||||
property bool mirrorPhysicalDisplays: effect.mirrorPhysicalDisplays
|
||||
property var screens: KWinComponents.Workspace.screens.filter(function(screen) {
|
||||
return mirrorPhysicalDisplays || screen.name.includes("BreezyDesktop") || supportedModels.some(model => screen.model.includes(model));
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue