mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat:add com.deepin.dde.dock.module.menu control menu show/hide
添加 com.deepin.dde.dock.module.menu 服务控制dock右键菜单不弹出(task:13652)
This commit is contained in:
parent
96050d849c
commit
c305f89037
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QX11Info>
|
#include <QX11Info>
|
||||||
|
#include <QGSettings>
|
||||||
|
|
||||||
#include <DApplication>
|
#include <DApplication>
|
||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
@ -41,9 +42,16 @@ DWIDGET_USE_NAMESPACE
|
|||||||
|
|
||||||
extern const QPoint rawXPosition(const QPoint &scaledPos);
|
extern const QPoint rawXPosition(const QPoint &scaledPos);
|
||||||
|
|
||||||
|
static QGSettings *GSettingsByMenu()
|
||||||
|
{
|
||||||
|
static QGSettings settings("com.deepin.dde.dock.module.menu");
|
||||||
|
return &settings;
|
||||||
|
}
|
||||||
|
|
||||||
DockSettings::DockSettings(QWidget *parent)
|
DockSettings::DockSettings(QWidget *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_dockInter(new DBusDock("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this))
|
, m_dockInter(new DBusDock("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this))
|
||||||
|
, m_menuVisible(true)
|
||||||
, m_autoHide(true)
|
, m_autoHide(true)
|
||||||
, m_opacity(0.4)
|
, m_opacity(0.4)
|
||||||
, m_fashionModeAct(tr("Fashion Mode"), this)
|
, m_fashionModeAct(tr("Fashion Mode"), this)
|
||||||
@ -114,6 +122,7 @@ DockSettings::DockSettings(QWidget *parent)
|
|||||||
m_settingsMenu.setTitle("Settings Menu");
|
m_settingsMenu.setTitle("Settings Menu");
|
||||||
|
|
||||||
connect(&m_settingsMenu, &QMenu::triggered, this, &DockSettings::menuActionClicked);
|
connect(&m_settingsMenu, &QMenu::triggered, this, &DockSettings::menuActionClicked);
|
||||||
|
connect(GSettingsByMenu(), &QGSettings::changed, this, &DockSettings::onGSettingsChanged);
|
||||||
connect(m_dockInter, &DBusDock::PositionChanged, this, &DockSettings::onPositionChanged);
|
connect(m_dockInter, &DBusDock::PositionChanged, this, &DockSettings::onPositionChanged);
|
||||||
connect(m_dockInter, &DBusDock::DisplayModeChanged, this, &DockSettings::onDisplayModeChanged);
|
connect(m_dockInter, &DBusDock::DisplayModeChanged, this, &DockSettings::onDisplayModeChanged);
|
||||||
connect(m_dockInter, &DBusDock::HideModeChanged, this, &DockSettings::hideModeChanged, Qt::QueuedConnection);
|
connect(m_dockInter, &DBusDock::HideModeChanged, this, &DockSettings::hideModeChanged, Qt::QueuedConnection);
|
||||||
@ -314,6 +323,20 @@ void DockSettings::menuActionClicked(QAction *action)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DockSettings::onGSettingsChanged(const QString &key)
|
||||||
|
{
|
||||||
|
if (key != "enable") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QGSettings *setting = GSettingsByMenu();
|
||||||
|
|
||||||
|
if (setting->keys().contains("enable")) {
|
||||||
|
const bool isEnable = GSettingsByMenu()->keys().contains("enable") && GSettingsByMenu()->get("enable").toBool();
|
||||||
|
m_menuVisible=isEnable && setting->get("enable").toBool();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DockSettings::onPositionChanged()
|
void DockSettings::onPositionChanged()
|
||||||
{
|
{
|
||||||
const Position prevPos = m_position;
|
const Position prevPos = m_position;
|
||||||
|
@ -74,6 +74,7 @@ public:
|
|||||||
|
|
||||||
QSize m_mainWindowSize;
|
QSize m_mainWindowSize;
|
||||||
DBusDock *m_dockInter;
|
DBusDock *m_dockInter;
|
||||||
|
bool m_menuVisible;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void dataChanged() const;
|
void dataChanged() const;
|
||||||
@ -91,6 +92,7 @@ public slots:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void menuActionClicked(QAction *action);
|
void menuActionClicked(QAction *action);
|
||||||
|
void onGSettingsChanged(const QString &key);
|
||||||
void onPositionChanged();
|
void onPositionChanged();
|
||||||
void onDisplayModeChanged();
|
void onDisplayModeChanged();
|
||||||
void hideModeChanged();
|
void hideModeChanged();
|
||||||
|
@ -347,7 +347,7 @@ void MainWindow::showEvent(QShowEvent *e)
|
|||||||
void MainWindow::mousePressEvent(QMouseEvent *e)
|
void MainWindow::mousePressEvent(QMouseEvent *e)
|
||||||
{
|
{
|
||||||
e->ignore();
|
e->ignore();
|
||||||
if (e->button() == Qt::RightButton) {
|
if (e->button() == Qt::RightButton && m_settings->m_menuVisible) {
|
||||||
m_settings->showDockSettingsMenu();
|
m_settings->showDockSettingsMenu();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user