fixed(dde-dock): add GSettings config for bug 13911 of trash-plugin

This commit is contained in:
wangxuwen 2020-02-24 17:39:14 +08:00
parent e069fbe8c0
commit 1171b9c639
2 changed files with 27 additions and 4 deletions

View File

@ -48,6 +48,12 @@ static QGSettings *GSettingsByMenu()
return &settings;
}
static QGSettings *GSettingsByTrash()
{
static QGSettings settings("com.deepin.dde.dock.module.trash");
return &settings;
}
DockSettings::DockSettings(QWidget *parent)
: QObject(parent)
, m_dockInter(new DBusDock("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this))
@ -65,6 +71,7 @@ DockSettings::DockSettings(QWidget *parent)
, m_smartHideAct(tr("Smart Hide"), this)
, m_displayInter(new DBusDisplay(this))
, m_itemManager(DockItemManager::instance(this))
, m_trashPluginShow(true)
{
checkService();
@ -140,6 +147,8 @@ DockSettings::DockSettings(QWidget *parent)
connect(m_displayInter, &DBusDisplay::ScreenHeightChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
connect(m_displayInter, &DBusDisplay::ScreenWidthChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
connect(m_displayInter, &DBusDisplay::PrimaryChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
connect(GSettingsByTrash(), &QGSettings::changed, this, &DockSettings::onTrashGSettingsChanged);
QTimer::singleShot(0, this, [=] {onGSettingsChanged("enable");});
DApplication *app = qobject_cast<DApplication *>(qApp);
if (app) {
@ -240,10 +249,9 @@ void DockSettings::showDockSettingsMenu()
const QString &name = p->pluginName();
const QString &display = p->pluginDisplayName();
// // do not show trash in context menu under Efficient mode
// if (m_displayMode == Efficient && name == "trash") {
// continue;
// }
if (!m_trashPluginShow && name == "trash") {
continue;
}
QAction *act = new QAction(display, this);
act->setCheckable(true);
@ -619,3 +627,16 @@ void DockSettings::checkService()
});
}
}
void DockSettings::onTrashGSettingsChanged(const QString &key)
{
if (key != "enable") {
return ;
}
QGSettings *setting = GSettingsByTrash();
if (setting->keys().contains("enable")) {
m_trashPluginShow = GSettingsByTrash()->keys().contains("enable") && GSettingsByTrash()->get("enable").toBool();
}
}

View File

@ -105,6 +105,7 @@ private slots:
void onOpacityChanged(const double value);
void trayVisableCountChanged(const int &count);
void onWindowSizeChanged();
void onTrashGSettingsChanged(const QString &key);
private:
DockSettings(QWidget *parent = 0);
@ -145,6 +146,7 @@ private:
DBusDisplay *m_displayInter;
DockItemManager *m_itemManager;
bool m_trashPluginShow;
};
#endif // DOCKSETTINGS_H