feat: update all plugins to support take effect in time for Deepin-Sync

Change-Id: I6fec9ab494eede8a4b0f35e62ccd6f4c749ded09
This commit is contained in:
listenerri 2019-01-30 18:00:46 +08:00
parent 07e8775371
commit 8ae30ec2d1
Notes: gerrit 2019-01-30 18:08:56 +08:00
Verified+1: <jenkins@deepin.com>
Code-Review+2: listenerri <listenerri@gmail.com>
Submitted-by: listenerri <listenerri@gmail.com>
Submitted-at: Wed, 30 Jan 2019 18:08:56 +0800
Reviewed-on: https://cr.deepin.io/41542
Project: dde/dde-dock
Branch: refs/heads/dev/daemon-plugin-settings
16 changed files with 160 additions and 53 deletions

View File

@ -79,10 +79,7 @@ void DatetimePlugin::pluginStateSwitched()
{ {
m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable());
if (!pluginIsDisable()) refreshPluginItemsVisible();
m_proxyInter->itemAdded(this, pluginName());
else
m_proxyInter->itemRemoved(this, pluginName());
} }
bool DatetimePlugin::pluginIsDisable() bool DatetimePlugin::pluginIsDisable()
@ -183,6 +180,13 @@ void DatetimePlugin::invokedMenuItem(const QString &itemKey, const QString &menu
} }
} }
void DatetimePlugin::pluginSettingsChanged()
{
m_centralWidget->set24HourFormat(m_proxyInter->getValue(this, TIME_FORMAT_KEY, true).toBool());
refreshPluginItemsVisible();
}
void DatetimePlugin::updateCurrentTimeString() void DatetimePlugin::updateCurrentTimeString()
{ {
const QDateTime currentDateTime = QDateTime::currentDateTime(); const QDateTime currentDateTime = QDateTime::currentDateTime();
@ -200,3 +204,11 @@ void DatetimePlugin::updateCurrentTimeString()
m_currentTimeString = currentString; m_currentTimeString = currentString;
m_centralWidget->update(); m_centralWidget->update();
} }
void DatetimePlugin::refreshPluginItemsVisible()
{
if (!pluginIsDisable())
m_proxyInter->itemAdded(this, pluginName());
else
m_proxyInter->itemRemoved(this, pluginName());
}

View File

@ -58,8 +58,11 @@ public:
void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) override; void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) override;
void pluginSettingsChanged() override;
private slots: private slots:
void updateCurrentTimeString(); void updateCurrentTimeString();
void refreshPluginItemsVisible();
private: private:
QPointer<DatetimeWidget> m_centralWidget; QPointer<DatetimeWidget> m_centralWidget;

View File

@ -88,19 +88,7 @@ void NetworkPlugin::pluginStateSwitched()
{ {
m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable()); m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable());
if (pluginIsDisable()) { refreshPluginItemsVisible();
for (auto itemKey : m_itemsMap.keys()) {
m_proxyInter->itemRemoved(this, itemKey);
}
return;
}
if (!m_pluginLoaded) {
loadPlugin();
return;
}
onDeviceListChanged(m_networkModel->devices());
} }
bool NetworkPlugin::pluginIsDisable() bool NetworkPlugin::pluginIsDisable()
@ -171,6 +159,11 @@ void NetworkPlugin::setSortKey(const QString &itemKey, const int order)
m_proxyInter->saveValue(this, key, order); m_proxyInter->saveValue(this, key, order);
} }
void NetworkPlugin::pluginSettingsChanged()
{
refreshPluginItemsVisible();
}
bool NetworkPlugin::isConnectivity() bool NetworkPlugin::isConnectivity()
{ {
return NetworkModel::connectivity() == Connectivity::Full; return NetworkModel::connectivity() == Connectivity::Full;
@ -329,3 +322,20 @@ void NetworkPlugin::onItemRequestSetAppletVisible(const bool visible)
m_proxyInter->requestSetAppletVisible(this, item->path(), visible); m_proxyInter->requestSetAppletVisible(this, item->path(), visible);
} }
void NetworkPlugin::refreshPluginItemsVisible()
{
if (pluginIsDisable()) {
for (auto itemKey : m_itemsMap.keys()) {
m_proxyInter->itemRemoved(this, itemKey);
}
return;
}
if (!m_pluginLoaded) {
loadPlugin();
return;
}
onDeviceListChanged(m_networkModel->devices());
}

View File

@ -54,12 +54,15 @@ public:
int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE; int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE;
void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE; void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE;
void pluginSettingsChanged() override;
static bool isConnectivity(); static bool isConnectivity();
private slots: private slots:
void onDeviceListChanged(const QList<dde::network::NetworkDevice *> devices); void onDeviceListChanged(const QList<dde::network::NetworkDevice *> devices);
void refreshWiredItemVisible(); void refreshWiredItemVisible();
void onItemRequestSetAppletVisible(const bool visible); void onItemRequestSetAppletVisible(const bool visible);
void refreshPluginItemsVisible();
private: private:
DeviceItem *itemByPath(const QString &path); DeviceItem *itemByPath(const QString &path);

View File

@ -73,16 +73,7 @@ void OnboardPlugin::pluginStateSwitched()
{ {
m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable());
if (pluginIsDisable()) refreshPluginItemsVisible();
{
m_proxyInter->itemRemoved(this, pluginName());
} else {
if (!m_pluginLoaded) {
loadPlugin();
return;
}
m_proxyInter->itemAdded(this, pluginName());
}
} }
bool OnboardPlugin::pluginIsDisable() bool OnboardPlugin::pluginIsDisable()
@ -151,6 +142,11 @@ void OnboardPlugin::setSortKey(const QString &itemKey, const int order)
m_proxyInter->saveValue(this, key, order); m_proxyInter->saveValue(this, key, order);
} }
void OnboardPlugin::pluginSettingsChanged()
{
refreshPluginItemsVisible();
}
void OnboardPlugin::loadPlugin() void OnboardPlugin::loadPlugin()
{ {
if (m_pluginLoaded) { if (m_pluginLoaded) {
@ -165,3 +161,17 @@ void OnboardPlugin::loadPlugin()
m_proxyInter->itemAdded(this, pluginName()); m_proxyInter->itemAdded(this, pluginName());
displayModeChanged(displayMode()); displayModeChanged(displayMode());
} }
void OnboardPlugin::refreshPluginItemsVisible()
{
if (pluginIsDisable())
{
m_proxyInter->itemRemoved(this, pluginName());
} else {
if (!m_pluginLoaded) {
loadPlugin();
return;
}
m_proxyInter->itemAdded(this, pluginName());
}
}

View File

@ -55,8 +55,11 @@ public:
int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE; int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE;
void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE; void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE;
void pluginSettingsChanged() override;
private: private:
void loadPlugin(); void loadPlugin();
void refreshPluginItemsVisible();
private: private:
bool m_pluginLoaded; bool m_pluginLoaded;

View File

@ -94,15 +94,7 @@ void PowerPlugin::pluginStateSwitched()
{ {
m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable());
if (pluginIsDisable()) { refreshPluginItemsVisible();
m_proxyInter->itemRemoved(this, POWER_KEY);
} else {
if (!m_pluginLoaded) {
loadPlugin();
return;
}
updateBatteryVisible();
}
} }
bool PowerPlugin::pluginIsDisable() bool PowerPlugin::pluginIsDisable()
@ -171,6 +163,11 @@ void PowerPlugin::setSortKey(const QString &itemKey, const int order)
m_proxyInter->saveValue(this, key, order); m_proxyInter->saveValue(this, key, order);
} }
void PowerPlugin::pluginSettingsChanged()
{
refreshPluginItemsVisible();
}
void PowerPlugin::updateBatteryVisible() void PowerPlugin::updateBatteryVisible()
{ {
const bool exist = !m_powerInter->batteryPercentage().isEmpty(); const bool exist = !m_powerInter->batteryPercentage().isEmpty();
@ -197,3 +194,16 @@ void PowerPlugin::loadPlugin()
updateBatteryVisible(); updateBatteryVisible();
} }
void PowerPlugin::refreshPluginItemsVisible()
{
if (pluginIsDisable()) {
m_proxyInter->itemRemoved(this, POWER_KEY);
} else {
if (!m_pluginLoaded) {
loadPlugin();
return;
}
updateBatteryVisible();
}
}

View File

@ -55,10 +55,12 @@ public:
void refreshIcon(const QString &itemKey) Q_DECL_OVERRIDE; void refreshIcon(const QString &itemKey) Q_DECL_OVERRIDE;
int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE; int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE;
void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE; void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE;
void pluginSettingsChanged() override;
private: private:
void updateBatteryVisible(); void updateBatteryVisible();
void loadPlugin(); void loadPlugin();
void refreshPluginItemsVisible();
private: private:
bool m_pluginLoaded; bool m_pluginLoaded;

View File

@ -83,16 +83,7 @@ void ShutdownPlugin::pluginStateSwitched()
{ {
m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, !m_proxyInter->getValue(this, PLUGIN_STATE_KEY, true).toBool()); m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, !m_proxyInter->getValue(this, PLUGIN_STATE_KEY, true).toBool());
if (pluginIsDisable()) refreshPluginItemsVisible();
{
m_proxyInter->itemRemoved(this, pluginName());
} else {
if (!m_pluginLoaded) {
loadPlugin();
return;
}
m_proxyInter->itemAdded(this, pluginName());
}
} }
bool ShutdownPlugin::pluginIsDisable() bool ShutdownPlugin::pluginIsDisable()
@ -219,6 +210,11 @@ void ShutdownPlugin::setSortKey(const QString &itemKey, const int order)
m_proxyInter->saveValue(this, key, order); m_proxyInter->saveValue(this, key, order);
} }
void ShutdownPlugin::pluginSettingsChanged()
{
refreshPluginItemsVisible();
}
void ShutdownPlugin::loadPlugin() void ShutdownPlugin::loadPlugin()
{ {
if (m_pluginLoaded) { if (m_pluginLoaded) {
@ -247,3 +243,17 @@ bool ShutdownPlugin::checkSwap()
return false; return false;
} }
void ShutdownPlugin::refreshPluginItemsVisible()
{
if (pluginIsDisable())
{
m_proxyInter->itemRemoved(this, pluginName());
} else {
if (!m_pluginLoaded) {
loadPlugin();
return;
}
m_proxyInter->itemAdded(this, pluginName());
}
}

View File

@ -55,9 +55,12 @@ public:
int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE; int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE;
void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE; void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE;
void pluginSettingsChanged() override;
private: private:
void loadPlugin(); void loadPlugin();
bool checkSwap(); bool checkSwap();
void refreshPluginItemsVisible();
private: private:
bool m_pluginLoaded; bool m_pluginLoaded;

View File

@ -54,10 +54,7 @@ void SoundPlugin::pluginStateSwitched()
{ {
m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable()); m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable());
if (pluginIsDisable()) refreshPluginItemsVisible();
m_proxyInter->itemRemoved(this, SOUND_KEY);
else
m_proxyInter->itemAdded(this, SOUND_KEY);
} }
bool SoundPlugin::pluginIsDisable() bool SoundPlugin::pluginIsDisable()
@ -128,3 +125,16 @@ void SoundPlugin::refreshIcon(const QString &itemKey)
m_soundItem->refreshIcon(); m_soundItem->refreshIcon();
} }
} }
void SoundPlugin::pluginSettingsChanged()
{
refreshPluginItemsVisible();
}
void SoundPlugin::refreshPluginItemsVisible()
{
if (pluginIsDisable())
m_proxyInter->itemRemoved(this, SOUND_KEY);
else
m_proxyInter->itemAdded(this, SOUND_KEY);
}

View File

@ -48,6 +48,10 @@ public:
int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE; int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE;
void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE; void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE;
void refreshIcon(const QString &itemKey) Q_DECL_OVERRIDE; void refreshIcon(const QString &itemKey) Q_DECL_OVERRIDE;
void pluginSettingsChanged() override;
private:
void refreshPluginItemsVisible();
private: private:
SoundItem *m_soundItem; SoundItem *m_soundItem;

View File

@ -240,6 +240,11 @@ void FashionTrayItem::setRightSplitVisible(const bool visible)
} }
} }
void FashionTrayItem::onPluginSettingsChanged()
{
m_controlWidget->setExpanded(m_trayPlugin->getValue(FASHION_MODE_ITEM_KEY, ExpandedKey, true).toBool());
}
void FashionTrayItem::showEvent(QShowEvent *event) void FashionTrayItem::showEvent(QShowEvent *event)
{ {
requestResize(); requestResize();

View File

@ -60,6 +60,7 @@ public slots:
void onExpandChanged(const bool expand); void onExpandChanged(const bool expand);
void setSuggestIconSize(QSize size); void setSuggestIconSize(QSize size);
void setRightSplitVisible(const bool visible); void setRightSplitVisible(const bool visible);
void onPluginSettingsChanged();
protected: protected:
void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;

View File

@ -32,6 +32,7 @@
#include "../widgets/tipswidget.h" #include "../widgets/tipswidget.h"
#include "xcb/xcb_icccm.h" #include "xcb/xcb_icccm.h"
#define PLUGIN_ENABLED_KEY "enable"
#define FASHION_MODE_TRAYS_SORTED "fashion-mode-trays-sorted" #define FASHION_MODE_TRAYS_SORTED "fashion-mode-trays-sorted"
#define SNI_WATCHER_SERVICE "org.kde.StatusNotifierWatcher" #define SNI_WATCHER_SERVICE "org.kde.StatusNotifierWatcher"
@ -77,7 +78,7 @@ void TrayPlugin::init(PluginProxyInterface *proxyInter)
m_proxyInter = proxyInter; m_proxyInter = proxyInter;
if (!proxyInter->getValue(this, "enable", true).toBool()) { if (pluginIsDisable()) {
qDebug() << "hide tray from config disable!!"; qDebug() << "hide tray from config disable!!";
return; return;
} }
@ -96,9 +97,14 @@ void TrayPlugin::init(PluginProxyInterface *proxyInter)
QTimer::singleShot(4000, this, &TrayPlugin::initXEmbed); QTimer::singleShot(4000, this, &TrayPlugin::initXEmbed);
} }
bool TrayPlugin::pluginIsDisable()
{
return !m_proxyInter->getValue(this, PLUGIN_ENABLED_KEY, true).toBool();
}
void TrayPlugin::displayModeChanged(const Dock::DisplayMode mode) void TrayPlugin::displayModeChanged(const Dock::DisplayMode mode)
{ {
if (!m_proxyInter->getValue(this, "enable", true).toBool()) { if (pluginIsDisable()) {
return; return;
} }
@ -107,7 +113,7 @@ void TrayPlugin::displayModeChanged(const Dock::DisplayMode mode)
void TrayPlugin::positionChanged(const Dock::Position position) void TrayPlugin::positionChanged(const Dock::Position position)
{ {
if (!m_proxyInter->getValue(this, "enable", true).toBool()) { if (pluginIsDisable()) {
return; return;
} }
@ -208,6 +214,19 @@ void TrayPlugin::refreshIcon(const QString &itemKey)
} }
} }
void TrayPlugin::pluginSettingsChanged()
{
if (pluginIsDisable()) {
return;
}
if (displayMode() == Dock::DisplayMode::Fashion) {
m_fashionItem->onPluginSettingsChanged();
m_fashionItem->clearTrayWidgets();
m_fashionItem->setTrayWidgets(m_trayMap);
}
}
Dock::Position TrayPlugin::dockPosition() const Dock::Position TrayPlugin::dockPosition() const
{ {
return position(); return position();

View File

@ -48,6 +48,7 @@ public:
const QString pluginName() const Q_DECL_OVERRIDE; const QString pluginName() const Q_DECL_OVERRIDE;
void init(PluginProxyInterface *proxyInter) Q_DECL_OVERRIDE; void init(PluginProxyInterface *proxyInter) Q_DECL_OVERRIDE;
bool pluginIsDisable() override;
void displayModeChanged(const Dock::DisplayMode mode) Q_DECL_OVERRIDE; void displayModeChanged(const Dock::DisplayMode mode) Q_DECL_OVERRIDE;
void positionChanged(const Dock::Position position) Q_DECL_OVERRIDE; void positionChanged(const Dock::Position position) Q_DECL_OVERRIDE;
QWidget *itemWidget(const QString &itemKey) Q_DECL_OVERRIDE; QWidget *itemWidget(const QString &itemKey) Q_DECL_OVERRIDE;
@ -59,6 +60,7 @@ public:
void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE; void setSortKey(const QString &itemKey, const int order) Q_DECL_OVERRIDE;
void setItemIsInContainer(const QString &itemKey, const bool container) Q_DECL_OVERRIDE; void setItemIsInContainer(const QString &itemKey, const bool container) Q_DECL_OVERRIDE;
void refreshIcon(const QString &itemKey) Q_DECL_OVERRIDE; void refreshIcon(const QString &itemKey) Q_DECL_OVERRIDE;
void pluginSettingsChanged() override;
Dock::Position dockPosition() const; Dock::Position dockPosition() const;
bool traysSortedInFashionMode(); bool traysSortedInFashionMode();