Feat: 新增触控板开关选项

This commit is contained in:
wangyan 2023-11-10 16:15:04 +08:00 committed by yan wang
parent 67cad16c1f
commit 784d0aec5b
6 changed files with 154 additions and 62 deletions

View File

@ -42,6 +42,14 @@
#define KYLIN_USER_GUIDE_SERVICE "com.kylinUserGuide.hotel"
#define KYLIN_USER_GUIDE_INTERFACE "com.guide.hotel"
const QByteArray kTouchpadSchemas = "org.ukui.peripherals-touchpad";
const QString kMouseDisableKey = "disable-on-external-mouse";
const QString kTouchpadDisableKey = "touchpadEnabled";
const QString kTypingDisableKey = "disable-while-typing";
const QString kClickKey = "tap-to-click";
const QString kScrollSlideKey = "natural-scroll";
const QString kPointerSpeedKey = "motion-acceleration";
TouchpadUI::TouchpadUI(QList<TouchpadGestureInfo> gestureInfos, QWidget *parent)
: QWidget(parent)
, m_gestureInfos(gestureInfos)
@ -55,6 +63,7 @@ TouchpadUI::TouchpadUI(QList<TouchpadGestureInfo> gestureInfos, QWidget *parent)
m_touchpadGsetting = nullptr;
}
initTouchpadEnabled();
initUI();
}
@ -70,6 +79,18 @@ QFrame* TouchpadUI::createLine()
return line;
}
void TouchpadUI::initTouchpadEnabled()
{
m_touchpadEnabled = m_touchpadGsetting->get(kTouchpadDisableKey).toBool();
}
void TouchpadUI::setTouchPadEnabled(bool enabled)
{
m_touchpadEnabled = enabled;
m_touchpadGsetting->set(kTouchpadDisableKey, enabled);
emit touchpadEnabled(m_touchpadEnabled);
}
void TouchpadUI::initUI()
{
if (!m_touchpadGsetting) {
@ -126,6 +147,11 @@ QWidget* TouchpadUI::createTouchPadSettingWidget()
QVBoxLayout *touchpadLyt = new QVBoxLayout(touchpadFrame);
touchpadLyt->setMargin(0);
QWidget* touchpadDisableWidget = createTouchpadDisableWidget();
touchpadLyt->addSpacing(6);
touchpadLyt->addWidget(touchpadDisableWidget);
touchpadLyt->addWidget(createLine());
QWidget* mouseDisableWidget = createMouseDisableWidget();
touchpadLyt->addSpacing(6);
touchpadLyt->addWidget(mouseDisableWidget);
@ -153,6 +179,33 @@ QWidget* TouchpadUI::createTouchPadSettingWidget()
return touchpadFrame;
}
QWidget* TouchpadUI::createTouchpadDisableWidget()
{
QWidget* touchpadDisableWidget = new QWidget(this);
touchpadDisableWidget->setMaximumSize(16777215, 60);
QLabel* touchpadDisableLabel = new QLabel(tr("touchpad"), this);
kdk::KSwitchButton* touchpadDisableBtn = new kdk::KSwitchButton(this);
touchpadDisableBtn->blockSignals(true);
touchpadDisableBtn->setChecked(m_touchpadEnabled);
touchpadDisableBtn->blockSignals(false);
connect(touchpadDisableBtn, &kdk::KSwitchButton::stateChanged, this, &TouchpadUI::touchpadEnabledSlot);
connect(this, &TouchpadUI::touchpadEnabled, this, [touchpadDisableBtn](bool status){
touchpadDisableBtn->setChecked(status);
});
QHBoxLayout *touchpadDisableHLayout = new QHBoxLayout(touchpadDisableWidget);
touchpadDisableHLayout->addSpacing(6);
touchpadDisableHLayout->addWidget(touchpadDisableLabel);
touchpadDisableHLayout->addStretch();
touchpadDisableHLayout->addWidget(touchpadDisableBtn);
touchpadDisableHLayout->addSpacing(6);
touchpadDisableWidget->setLayout(touchpadDisableHLayout);
return touchpadDisableWidget;
}
QWidget* TouchpadUI::createMouseDisableWidget()
{
QWidget* mouseDisableWidget = new QWidget(this);
@ -164,7 +217,9 @@ QWidget* TouchpadUI::createMouseDisableWidget()
mouseDisableBtn->blockSignals(true);
mouseDisableBtn->setChecked(m_touchpadGsetting->get(kMouseDisableKey).toBool());
mouseDisableBtn->blockSignals(false);
mouseDisableBtn->setEnabled(m_touchpadEnabled);
connect(mouseDisableBtn, &kdk::KSwitchButton::stateChanged, this, &TouchpadUI::mouseDisableSlot);
connect(this, &TouchpadUI::touchpadEnabled, mouseDisableBtn, &kdk::KSwitchButton::setEnabled);
QHBoxLayout *mouseDisableHLayout = new QHBoxLayout(mouseDisableWidget);
mouseDisableHLayout->addSpacing(6);
@ -193,6 +248,7 @@ QWidget* TouchpadUI::createPointerSpeedWidget()
pointerSpeedSlider->blockSignals(true);
pointerSpeedSlider->setValue(m_touchpadGsetting->get(kPointerSpeedKey).toInt()* 10);
pointerSpeedSlider->blockSignals(false);
pointerSpeedSlider->setEnabled(m_touchpadEnabled);
connect(pointerSpeedSlider, &QSlider::valueChanged, this, &TouchpadUI::pointerSpeedSlot);
connect(m_touchpadGsetting, &QGSettings::changed, this, [=](const QString &key) {
if (key == kPointerSpeedKey) {
@ -213,6 +269,7 @@ QWidget* TouchpadUI::createPointerSpeedWidget()
}
}
});
connect(this, &TouchpadUI::touchpadEnabled, pointerSpeedSlider, &kdk::KSwitchButton::setEnabled);
QHBoxLayout *pointerSpeedHLayout = new QHBoxLayout(pointerSpeedWidget);
pointerSpeedHLayout->addSpacing(6);
@ -238,7 +295,9 @@ QWidget* TouchpadUI::createTypingDisableWidget()
typingDisableBtn->blockSignals(true);
typingDisableBtn->setChecked(m_touchpadGsetting->get(kTypingDisableKey).toBool());
typingDisableBtn->blockSignals(false);
typingDisableBtn->setEnabled(m_touchpadEnabled);
connect(typingDisableBtn, &kdk::KSwitchButton::stateChanged, this, &TouchpadUI::typingDisableSlot);
connect(this, &TouchpadUI::touchpadEnabled, typingDisableBtn, &kdk::KSwitchButton::setEnabled);
QHBoxLayout *typingDisableHLayout = new QHBoxLayout(typingDisableWidget);
typingDisableHLayout->addSpacing(6);
@ -263,7 +322,9 @@ QWidget* TouchpadUI::createClickDisableWidget()
clickBtn->blockSignals(true);
clickBtn->setChecked(m_touchpadGsetting->get(kClickKey).toBool());
clickBtn->blockSignals(false);
clickBtn->setEnabled(m_touchpadEnabled);
connect(clickBtn, &kdk::KSwitchButton::stateChanged, this, &TouchpadUI::clickSlot);
connect(this, &TouchpadUI::touchpadEnabled, clickBtn, &kdk::KSwitchButton::setEnabled);
clickHLayout->addSpacing(6);
clickHLayout->addWidget(clickLabel);
@ -285,7 +346,9 @@ QWidget* TouchpadUI::createScrollSlideWidget()
scrollSlideBtn->blockSignals(true);
scrollSlideBtn->setChecked(!m_touchpadGsetting->get(kScrollSlideKey).toBool());
scrollSlideBtn->blockSignals(false);
scrollSlideBtn->setEnabled(m_touchpadEnabled);
connect(scrollSlideBtn, &kdk::KSwitchButton::stateChanged, this, &TouchpadUI::scrollSlideSlot);
connect(this, &TouchpadUI::touchpadEnabled, scrollSlideBtn, &kdk::KSwitchButton::setEnabled);
QHBoxLayout *scrollSlideHLayout = new QHBoxLayout(scrollSlideWidget);
scrollSlideHLayout->addSpacing(6);
@ -313,6 +376,7 @@ QWidget* TouchpadUI::createScrollAreaWidget()
scrollTypeComBox->blockSignals(true);
scrollTypeComBox->setCurrentIndex(scrollTypeComBox->findData(currentScrollingType()));
scrollTypeComBox->blockSignals(false);
scrollTypeComBox->setEnabled(m_touchpadEnabled);
if (QString::compare(V_EDGE_KEY, scrollTypeComBox->currentData().toString()) == 0) {
m_touchpadGsetting->set(H_EDGE_KEY, true);
m_touchpadGsetting->set(H_FINGER_KEY, false);
@ -352,6 +416,7 @@ QWidget* TouchpadUI::createScrollAreaWidget()
}
buriedSettings("ScrollArea", "select", data);
});
connect(this, &TouchpadUI::touchpadEnabled, scrollTypeComBox, &kdk::KSwitchButton::setEnabled);
QHBoxLayout *scrollAreaHLayout = new QHBoxLayout(scrollAreaWidget);
scrollAreaHLayout->addSpacing(6);
@ -498,6 +563,12 @@ void TouchpadUI::buriedSettings(QString settingsName, QString action, QString va
}
/* slot functions */
void TouchpadUI::touchpadEnabledSlot(bool status)
{
setTouchPadEnabled(status);
buriedSettings(kTouchpadDisableKey, "settings", status ? "true":"false");
}
void TouchpadUI::mouseDisableSlot(bool status)
{
m_touchpadGsetting->set(kMouseDisableKey, status);

View File

@ -32,12 +32,6 @@
//水平边界
#define H_EDGE_KEY "horizontal-edge-scrolling"
const QByteArray kTouchpadSchemas = "org.ukui.peripherals-touchpad";
const QString kMouseDisableKey = "disable-on-external-mouse";
const QString kTypingDisableKey = "disable-while-typing";
const QString kClickKey = "tap-to-click";
const QString kScrollSlideKey = "natural-scroll";
const QString kPointerSpeedKey = "motion-acceleration";
/*
*motion-acceleration
@ -96,6 +90,7 @@ public slots:
signals:
void iconThemeChangedSignal();
void touchpadEnabled(bool status);
private:
QGSettings *m_touchpadGsetting;
@ -103,14 +98,18 @@ private:
QVector<GestureWidget *> m_gestureArray;
QString projectCodeName;
QList<TouchpadGestureInfo> m_gestureInfos;
bool m_touchpadEnabled;
private:
void initTouchpadEnabled();
void initUI();
void setTouchPadEnabled(bool enabled);
QFrame* createLine();
QWidget* createTitleWidget(QString titleText);
QWidget* createTouchPadSettingWidget();
QWidget* createTouchpadDisableWidget();
QWidget* createMouseDisableWidget();
QWidget* createPointerSpeedWidget();
QWidget* createTypingDisableWidget();
@ -128,6 +127,7 @@ private:
QString currentScrollingType();
void touchpadEnabledSlot(bool status);
void mouseDisableSlot(bool status);
void pointerSpeedSlot(int value);
void typingDisableSlot(bool status);

View File

@ -75,72 +75,77 @@
<context>
<name>TouchpadUI</name>
<message>
<location filename="../touchpadsettingsui.cpp" line="85"/>
<location filename="../touchpadsettingsui.cpp" line="106"/>
<source>Touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="94"/>
<location filename="../touchpadsettingsui.cpp" line="115"/>
<source>Gesture</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="161"/>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<source>touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="214"/>
<source>Disable touchpad when using the mouse</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="186"/>
<location filename="../touchpadsettingsui.cpp" line="241"/>
<source>Pointer Speed</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<location filename="../touchpadsettingsui.cpp" line="242"/>
<source>Slow</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="188"/>
<location filename="../touchpadsettingsui.cpp" line="243"/>
<source>Fast</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="235"/>
<location filename="../touchpadsettingsui.cpp" line="292"/>
<source>Disable touchpad when typing</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="261"/>
<location filename="../touchpadsettingsui.cpp" line="320"/>
<source>Touch and click on the touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="283"/>
<location filename="../touchpadsettingsui.cpp" line="344"/>
<source>Scroll bar slides with finger</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="307"/>
<location filename="../touchpadsettingsui.cpp" line="370"/>
<source>Scrolling area</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="310"/>
<location filename="../touchpadsettingsui.cpp" line="373"/>
<source>Two-finger scrolling in the middle area</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="311"/>
<location filename="../touchpadsettingsui.cpp" line="374"/>
<source>Edge scrolling</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="312"/>
<location filename="../touchpadsettingsui.cpp" line="375"/>
<source>Disable scrolling</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="457"/>
<location filename="../touchpadsettingsui.cpp" line="522"/>
<source>More gesture</source>
<translation></translation>
</message>

View File

@ -75,72 +75,77 @@
<context>
<name>TouchpadUI</name>
<message>
<location filename="../touchpadsettingsui.cpp" line="85"/>
<location filename="../touchpadsettingsui.cpp" line="106"/>
<source>Touchpad</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="94"/>
<location filename="../touchpadsettingsui.cpp" line="115"/>
<source>Gesture</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="161"/>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<source>touchpad</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="214"/>
<source>Disable touchpad when using the mouse</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="186"/>
<location filename="../touchpadsettingsui.cpp" line="241"/>
<source>Pointer Speed</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<location filename="../touchpadsettingsui.cpp" line="242"/>
<source>Slow</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="188"/>
<location filename="../touchpadsettingsui.cpp" line="243"/>
<source>Fast</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="235"/>
<location filename="../touchpadsettingsui.cpp" line="292"/>
<source>Disable touchpad when typing</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="261"/>
<location filename="../touchpadsettingsui.cpp" line="320"/>
<source>Touch and click on the touchpad</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="283"/>
<location filename="../touchpadsettingsui.cpp" line="344"/>
<source>Scroll bar slides with finger</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="307"/>
<location filename="../touchpadsettingsui.cpp" line="370"/>
<source>Scrolling area</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="310"/>
<location filename="../touchpadsettingsui.cpp" line="373"/>
<source>Two-finger scrolling in the middle area</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="311"/>
<location filename="../touchpadsettingsui.cpp" line="374"/>
<source>Edge scrolling</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="312"/>
<location filename="../touchpadsettingsui.cpp" line="375"/>
<source>Disable scrolling</source>
<translation> </translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="457"/>
<location filename="../touchpadsettingsui.cpp" line="522"/>
<source>More gesture</source>
<translation> </translation>
</message>

View File

@ -76,73 +76,79 @@
<context>
<name>TouchpadUI</name>
<message>
<location filename="../touchpadsettingsui.cpp" line="85"/>
<location filename="../touchpadsettingsui.cpp" line="106"/>
<source>Touchpad</source>
<translatorcomment></translatorcomment>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="94"/>
<location filename="../touchpadsettingsui.cpp" line="115"/>
<source>Gesture</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="161"/>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<source>touchpad</source>
<translatorcomment></translatorcomment>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="214"/>
<source>Disable touchpad when using the mouse</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="186"/>
<location filename="../touchpadsettingsui.cpp" line="241"/>
<source>Pointer Speed</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<location filename="../touchpadsettingsui.cpp" line="242"/>
<source>Slow</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="188"/>
<location filename="../touchpadsettingsui.cpp" line="243"/>
<source>Fast</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="235"/>
<location filename="../touchpadsettingsui.cpp" line="292"/>
<source>Disable touchpad when typing</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="261"/>
<location filename="../touchpadsettingsui.cpp" line="320"/>
<source>Touch and click on the touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="283"/>
<location filename="../touchpadsettingsui.cpp" line="344"/>
<source>Scroll bar slides with finger</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="307"/>
<location filename="../touchpadsettingsui.cpp" line="370"/>
<source>Scrolling area</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="310"/>
<location filename="../touchpadsettingsui.cpp" line="373"/>
<source>Two-finger scrolling in the middle area</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="311"/>
<location filename="../touchpadsettingsui.cpp" line="374"/>
<source>Edge scrolling</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="312"/>
<location filename="../touchpadsettingsui.cpp" line="375"/>
<source>Disable scrolling</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="457"/>
<location filename="../touchpadsettingsui.cpp" line="522"/>
<source>More gesture</source>
<translation></translation>
</message>

View File

@ -75,72 +75,77 @@
<context>
<name>TouchpadUI</name>
<message>
<location filename="../touchpadsettingsui.cpp" line="85"/>
<location filename="../touchpadsettingsui.cpp" line="106"/>
<source>Touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="94"/>
<location filename="../touchpadsettingsui.cpp" line="115"/>
<source>Gesture</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="161"/>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<source>touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="214"/>
<source>Disable touchpad when using the mouse</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="186"/>
<location filename="../touchpadsettingsui.cpp" line="241"/>
<source>Pointer Speed</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="187"/>
<location filename="../touchpadsettingsui.cpp" line="242"/>
<source>Slow</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="188"/>
<location filename="../touchpadsettingsui.cpp" line="243"/>
<source>Fast</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="235"/>
<location filename="../touchpadsettingsui.cpp" line="292"/>
<source>Disable touchpad when typing</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="261"/>
<location filename="../touchpadsettingsui.cpp" line="320"/>
<source>Touch and click on the touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="283"/>
<location filename="../touchpadsettingsui.cpp" line="344"/>
<source>Scroll bar slides with finger</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="307"/>
<location filename="../touchpadsettingsui.cpp" line="370"/>
<source>Scrolling area</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="310"/>
<location filename="../touchpadsettingsui.cpp" line="373"/>
<source>Two-finger scrolling in the middle area</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="311"/>
<location filename="../touchpadsettingsui.cpp" line="374"/>
<source>Edge scrolling</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="312"/>
<location filename="../touchpadsettingsui.cpp" line="375"/>
<source>Disable scrolling</source>
<translation></translation>
</message>
<message>
<location filename="../touchpadsettingsui.cpp" line="457"/>
<location filename="../touchpadsettingsui.cpp" line="522"/>
<source>More gesture</source>
<translation></translation>
</message>