diff --git a/debian/dde-dock.install b/debian/dde-dock.install
index ed96db33d..e6d4be541 100644
--- a/debian/dde-dock.install
+++ b/debian/dde-dock.install
@@ -1,5 +1,6 @@
usr/share
usr/bin
+etc/dde-dock
usr/lib/dde-dock/plugins/libdatetime.so
usr/lib/dde-dock/plugins/libshutdown.so
usr/lib/dde-dock/plugins/libtrash.so
diff --git a/plugins/keyboard-layout/dbusadaptors.cpp b/plugins/keyboard-layout/dbusadaptors.cpp
index 9bd427cc3..250e794bd 100644
--- a/plugins/keyboard-layout/dbusadaptors.cpp
+++ b/plugins/keyboard-layout/dbusadaptors.cpp
@@ -17,7 +17,9 @@
* along with this program. If not, see .
*/
+#include "utils.h"
#include "dbusadaptors.h"
+
#include
#include
@@ -26,7 +28,8 @@ DBusAdaptors::DBusAdaptors(QObject *parent)
m_keyboard(new Keyboard("com.deepin.daemon.InputDevices",
"/com/deepin/daemon/InputDevice/Keyboard",
QDBusConnection::sessionBus(), this)),
- m_menu(new QMenu())
+ m_menu(new QMenu()),
+ m_gsettings(Utils::ModuleSettingsPtr("keyboard", QByteArray(), this))
{
m_keyboard->setSync(false);
@@ -39,6 +42,9 @@ DBusAdaptors::DBusAdaptors(QObject *parent)
initAllLayoutList();
onCurrentLayoutChanged(m_keyboard->currentLayout());
onUserLayoutListChanged(m_keyboard->userLayoutList());
+
+ if (m_gsettings)
+ connect(m_gsettings, &QGSettings::changed, this, &DBusAdaptors::onGSettingsChanged);
}
DBusAdaptors::~DBusAdaptors()
@@ -47,6 +53,9 @@ DBusAdaptors::~DBusAdaptors()
QString DBusAdaptors::layout() const
{
+ if (m_gsettings && m_gsettings->keys().contains("enable") && !m_gsettings->get("enable").toBool())
+ return QString();
+
if (m_userLayoutList.size() < 2) {
// do NOT show keyboard indicator
return QString();
@@ -180,6 +189,18 @@ void DBusAdaptors::handleActionTriggered(QAction *action)
}
}
+void DBusAdaptors::onGSettingsChanged(const QString &key)
+{
+ Q_UNUSED(key);
+
+ // 键盘布局插件处显示的内容就是QLabel中的内容,有文字了就显示,没有文字就不显示了
+ if (m_gsettings && m_gsettings->keys().contains("enable")) {
+ const bool enable = m_gsettings->get("enable").toBool();
+ QString layoutStr = getCurrentKeyboard()->currentLayout().split(';').first();
+ setLayout(enable ? layoutStr : "");
+ }
+}
+
QString DBusAdaptors::duplicateCheck(const QString &kb)
{
QStringList list;
diff --git a/plugins/keyboard-layout/dbusadaptors.h b/plugins/keyboard-layout/dbusadaptors.h
index 971280e8a..355165153 100644
--- a/plugins/keyboard-layout/dbusadaptors.h
+++ b/plugins/keyboard-layout/dbusadaptors.h
@@ -25,6 +25,7 @@
#include
using Keyboard = com::deepin::daemon::inputdevice::Keyboard;
+class QGSettings;
class DBusAdaptors : public QDBusAbstractAdaptor
{
@@ -64,6 +65,9 @@ private slots:
void refreshMenuSelection();
void handleActionTriggered(QAction *action);
+private slots:
+ void onGSettingsChanged(const QString &key);
+
private:
QString duplicateCheck(const QString &kb);
@@ -76,6 +80,7 @@ private:
QString m_currentLayout;
QStringList m_userLayoutList;
KeyboardLayoutList m_allLayoutList;
+ const QGSettings *m_gsettings;
};
#endif
diff --git a/plugins/keyboard-layout/keyboardplugin.cpp b/plugins/keyboard-layout/keyboardplugin.cpp
index 642d4ec47..dba1ef731 100644
--- a/plugins/keyboard-layout/keyboardplugin.cpp
+++ b/plugins/keyboard-layout/keyboardplugin.cpp
@@ -22,10 +22,7 @@
KeyboardPlugin::KeyboardPlugin(QObject *parent)
: QObject(parent)
- , m_gsettings(Utils::ModuleSettingsPtr(pluginName(), QByteArray(), this))
{
- if (m_gsettings)
- connect(m_gsettings, &QGSettings::changed, this, &KeyboardPlugin::onGSettingsChanged);
}
KeyboardPlugin::~KeyboardPlugin()
@@ -95,15 +92,3 @@ void KeyboardPlugin::setSortKey(const QString &itemKey, const int order)
m_proxyInter->saveValue(this, key, order);
}
-
-void KeyboardPlugin::onGSettingsChanged(const QString &key)
-{
- Q_UNUSED(key);
-
- // 键盘布局插件处显示的内容就是QLabel中的内容,有文字了就显示,没有文字就不显示了
- if (m_gsettings && m_gsettings->keys().contains("enable")) {
- const bool enable = m_gsettings->get("enable").toBool();
- QString layoutStr = m_dbusAdaptors->getCurrentKeyboard()->currentLayout().split(';').first();
- m_dbusAdaptors->setLayout(enable ? layoutStr : "");
- }
-}
diff --git a/plugins/keyboard-layout/keyboardplugin.h b/plugins/keyboard-layout/keyboardplugin.h
index fa1ceda45..30cb754c9 100644
--- a/plugins/keyboard-layout/keyboardplugin.h
+++ b/plugins/keyboard-layout/keyboardplugin.h
@@ -23,8 +23,6 @@
#include "pluginsiteminterface.h"
#include "dbusadaptors.h"
-class QGSettings;
-
class KeyboardPlugin : public QObject, PluginsItemInterface
{
Q_OBJECT
@@ -45,12 +43,8 @@ public:
int itemSortKey(const QString &itemKey) override;
void setSortKey(const QString &itemKey, const int order) override;
-private slots:
- void onGSettingsChanged(const QString &key);
-
private:
DBusAdaptors *m_dbusAdaptors = nullptr;
- const QGSettings *m_gsettings;
};
#endif