From a969d811b72aa861127648f202fe4efc1f260311 Mon Sep 17 00:00:00 2001 From: chenzhe Date: Fri, 14 Feb 2020 23:25:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:Adding=20com.deepin.dde.dock.module.launche?= =?UTF-8?q?r=20also=20needs=20to=20hide=20the=20multitasking=20view=20and?= =?UTF-8?q?=20show=20the=20desktop=20icon=20=E6=B7=BB=E5=8A=A0com.deepin.d?= =?UTF-8?q?de.dock.module.launcher=E4=B8=AD=E8=BF=98=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E5=A4=9A=E4=BB=BB=E5=8A=A1=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E5=92=8C=E6=98=BE=E7=A4=BA=E6=A1=8C=E9=9D=A2=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frame/panel/mainpanelcontrol.cpp | 42 +++++++++++++++++++++++++++++++- frame/panel/mainpanelcontrol.h | 6 +++++ frame/util/docksettings.cpp | 7 ++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/frame/panel/mainpanelcontrol.cpp b/frame/panel/mainpanelcontrol.cpp index e7f7c59b0..2909b900b 100755 --- a/frame/panel/mainpanelcontrol.cpp +++ b/frame/panel/mainpanelcontrol.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -45,6 +46,12 @@ DWIDGET_USE_NAMESPACE +static QGSettings *GSettingsByLaunch() +{ + static QGSettings settings("com.deepin.dde.dock.module.launcher"); + return &settings; +} + MainPanelControl::MainPanelControl(QWidget *parent) : QWidget(parent) , m_mainPanelLayout(new QBoxLayout(QBoxLayout::LeftToRight, this)) @@ -66,6 +73,7 @@ MainPanelControl::MainPanelControl(QWidget *parent) , m_appSpliter(new QLabel(this)) , m_traySpliter(new QLabel(this)) , m_isHover(false) + , m_isEnableLaunch(true) { init(); updateMainPanelLayout(); @@ -128,6 +136,29 @@ void MainPanelControl::init() //桌面 m_mainPanelLayout->addWidget(m_desktopWidget); + connect(GSettingsByLaunch(), &QGSettings::changed, this, &MainPanelControl::onGSettingsChanged); +} + +void MainPanelControl::onGSettingsChanged(const QString &key) +{ + if (key != "enable") { + return; + } + + QGSettings *setting = GSettingsByLaunch(); + + if (setting->keys().contains("enable")) { + const bool isEnable = GSettingsByLaunch()->keys().contains("enable") && GSettingsByLaunch()->get("enable").toBool(); + if(isEnable && setting->get("enable").toBool()){ + m_fixedAreaWidget->setVisible(true); + m_fixedSpliter->setVisible(true); + m_isEnableLaunch = true; + } else { + m_fixedAreaWidget->setVisible(false); + m_fixedSpliter->setVisible(false); + m_isEnableLaunch = false; + } + } } void MainPanelControl::setDisplayMode(DisplayMode mode) @@ -751,6 +782,14 @@ void MainPanelControl::itemUpdated(DockItem *item) resizeDockIcon(); } +void MainPanelControl::showEvent(QShowEvent* event) { + QTimer::singleShot(0, this, [=] { + onGSettingsChanged("enable"); + }); + + return QWidget::showEvent(event); +} + void MainPanelControl::paintEvent(QPaintEvent *event) { QPainter painter(this); @@ -763,7 +802,8 @@ void MainPanelControl::paintEvent(QPaintEvent *event) painter.setOpacity(0.1); } - painter.fillRect(m_fixedSpliter->geometry(), color); + if(m_isEnableLaunch) + painter.fillRect(m_fixedSpliter->geometry(), color); painter.fillRect(m_appSpliter->geometry(), color); painter.fillRect(m_traySpliter->geometry(), color); diff --git a/frame/panel/mainpanelcontrol.h b/frame/panel/mainpanelcontrol.h index 8e743e71b..f8df9afeb 100755 --- a/frame/panel/mainpanelcontrol.h +++ b/frame/panel/mainpanelcontrol.h @@ -97,6 +97,11 @@ public slots: void removeItem(DockItem *item); void itemUpdated(DockItem *item); + // void + void onGSettingsChanged(const QString &key); + +protected: + void showEvent(QShowEvent *event) override; private: QBoxLayout *m_mainPanelLayout; QWidget *m_fixedAreaWidget; @@ -123,6 +128,7 @@ private: int m_trayIconCount; TrayPluginItem *m_tray = nullptr; bool m_isHover;//判断鼠标是否移到desktop区域 + bool m_isEnableLaunch;//判断是否使能了com.deepin.dde.dock.module.launcher }; #endif // MAINPANELCONTROL_H diff --git a/frame/util/docksettings.cpp b/frame/util/docksettings.cpp index 343ba740b..10c9fddd5 100644 --- a/frame/util/docksettings.cpp +++ b/frame/util/docksettings.cpp @@ -151,6 +151,9 @@ DockSettings::DockSettings(QWidget *parent) resetFrontendGeometry(); QTimer::singleShot(0, this, [ = ] {onOpacityChanged(m_dockInter->opacity());}); + QTimer::singleShot(0, this, [=] { + onGSettingsChanged("enable"); + }); } DockSettings &DockSettings::Instance() @@ -221,6 +224,10 @@ const QRect DockSettings::windowRect(const Position position, const bool hide) c void DockSettings::showDockSettingsMenu() { + QTimer::singleShot(0, this, [=] { + onGSettingsChanged("enable"); + }); + m_autoHide = false; // create actions