mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
fix: 修复飞行模式显示问题
1.gsettings不存在的情况下,或者值为true的情况下,飞行模式表现和需求一致。 2.如果gsettings值存在且为false,那么飞行模式始终不显示。 3.gsettings的值除手动修改外,不应有其他修改方式 Log: 修复飞行模式显示问题 Bug: https://pms.uniontech.com/zentao/bug-view-112804.html Influence: 任务栏-飞行模式插件-显示效果与需求保持一致 Change-Id: I775662712aa5415bdcd738d476010f6bca09023f
This commit is contained in:
parent
3a408ac347
commit
071be0f37b
@ -58,9 +58,9 @@ AirplaneModeItem::AirplaneModeItem(QWidget *parent)
|
||||
m_applet->setEnabled(enable);
|
||||
refreshIcon();
|
||||
|
||||
if (!enable)
|
||||
if (!enable || !Utils::SettingValue("com.deepin.dde.dock.module.airplane-mode", "/com/deepin/dde/dock/module/airplane-mode/", "enable", true).toBool())
|
||||
emit removeItem();
|
||||
else
|
||||
else if (Utils::SettingValue("com.deepin.dde.dock.module.airplane-mode", "/com/deepin/dde/dock/module/airplane-mode/", "enable", true).toBool())
|
||||
emit addItem();
|
||||
|
||||
updateTips();
|
||||
|
@ -147,5 +147,3 @@ void AirplaneModePlugin::addPlugin()
|
||||
m_proxyInter->itemAdded(this, AIRPLANEMODE_KEY);
|
||||
m_proxyInter->saveValue(this, STATE_KEY, true);
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,11 +22,15 @@
|
||||
#include "systemtrayitem.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <com_deepin_daemon_airplanemode.h>
|
||||
|
||||
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
|
||||
#include <xcb/xproto.h>
|
||||
|
||||
using DBusAirplaneMode = com::deepin::daemon::AirplaneMode;
|
||||
Dock::Position SystemTrayItem::DockPosition = Dock::Position::Top;
|
||||
QPointer<DockPopupWindow> SystemTrayItem::PopupWindow = nullptr;
|
||||
|
||||
@ -488,6 +492,18 @@ void SystemTrayItem::onGSettingsChanged(const QString &key) {
|
||||
|
||||
if (m_gsettings && m_gsettings->keys().contains("enable")) {
|
||||
const bool visible = m_gsettings->get("enable").toBool();
|
||||
|
||||
// 飞行模式显示条件: gsettings为true且飞行模式已开启
|
||||
DBusAirplaneMode airplaneBus("com.deepin.daemon.AirplaneMode",
|
||||
"/com/deepin/daemon/AirplaneMode",
|
||||
QDBusConnection::systemBus(),
|
||||
this);
|
||||
if (m_pluginInter && m_pluginInter->pluginName() == "airplane-mode" && !airplaneBus.enabled()) {
|
||||
setVisible(false);
|
||||
emit itemVisibleChanged(false);
|
||||
return;
|
||||
}
|
||||
|
||||
setVisible(visible);
|
||||
emit itemVisibleChanged(visible);
|
||||
}
|
||||
|
@ -23,9 +23,13 @@
|
||||
#include "pluginsiteminterface.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <com_deepin_daemon_airplanemode.h>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
|
||||
using DBusAirplaneMode = com::deepin::daemon::AirplaneMode;
|
||||
|
||||
SystemTraysController::SystemTraysController(QObject *parent)
|
||||
: AbstractPluginsController(parent)
|
||||
{
|
||||
@ -36,12 +40,20 @@ void SystemTraysController::itemAdded(PluginsItemInterface * const itemInter, co
|
||||
{
|
||||
QMap<PluginsItemInterface *, QMap<QString, QObject *>> &mPluginsMap = pluginsMap();
|
||||
|
||||
SystemTrayItem *item = nullptr;
|
||||
|
||||
// check if same item added
|
||||
if (mPluginsMap.contains(itemInter))
|
||||
if (mPluginsMap[itemInter].contains(itemKey))
|
||||
return;
|
||||
if (mPluginsMap[itemInter].contains(itemKey)) {
|
||||
if (itemKey != "airplane-mode-key")
|
||||
return;
|
||||
|
||||
item = static_cast<SystemTrayItem *>(pluginItemAt(itemInter, itemKey));
|
||||
}
|
||||
|
||||
if (!item)
|
||||
item = new SystemTrayItem(itemInter, itemKey);
|
||||
|
||||
SystemTrayItem *item = new SystemTrayItem(itemInter, itemKey);
|
||||
connect(item, &SystemTrayItem::itemVisibleChanged, this, [=] (bool visible){
|
||||
if (visible) {
|
||||
emit pluginItemAdded(itemKey, item);
|
||||
@ -53,9 +65,22 @@ void SystemTraysController::itemAdded(PluginsItemInterface * const itemInter, co
|
||||
|
||||
mPluginsMap[itemInter][itemKey] = item;
|
||||
|
||||
if (itemInter->pluginName() == "airplane-mode") {
|
||||
// 飞行模式显示条件: gsettings为true且飞行模式已开启
|
||||
DBusAirplaneMode airplaneBus("com.deepin.daemon.AirplaneMode",
|
||||
"/com/deepin/daemon/AirplaneMode",
|
||||
QDBusConnection::systemBus(),
|
||||
this);
|
||||
if (!Utils::SettingValue(QString("com.deepin.dde.dock.module.airplane-mode"), QByteArray(), "enable", true).toBool() || !airplaneBus.enabled()) {
|
||||
emit pluginItemRemoved(itemKey, item);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 隐藏的插件不加入到布局中
|
||||
if (Utils::SettingValue(QString("com.deepin.dde.dock.module.") + itemInter->pluginName(), QByteArray(), "enable", true).toBool())
|
||||
if (Utils::SettingValue(QString("com.deepin.dde.dock.module.") + itemInter->pluginName(), QByteArray(), "enable", true).toBool()) {
|
||||
emit pluginItemAdded(itemKey, item);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemTraysController::itemUpdate(PluginsItemInterface * const itemInter, const QString &itemKey)
|
||||
|
Loading…
x
Reference in New Issue
Block a user