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