add plugin infoChanged interface

Change-Id: I329a790a2028749baf6e85ec318b70b7613665a4
This commit is contained in:
zccrs 2015-10-13 10:57:03 +08:00
parent 6d953151bd
commit 6e0c71fc19
Notes: Deepin Code Review 2016-06-14 07:19:47 +00:00
Verified+1: Anonymous Coward #1000004
Code-Review+2: <yangwanqing@linuxdeepin.com>
Submitted-by: <yangwanqing@linuxdeepin.com>
Submitted-at: Tue, 13 Oct 2015 11:19:17 +0800
Reviewed-on: https://cr.deepin.io/7710
Project: dde/dde-dock
Branch: refs/heads/master
7 changed files with 52 additions and 13 deletions

View File

@ -94,7 +94,7 @@ QWidget * SystrayPlugin::getApplet(QString)
void SystrayPlugin::changeMode(Dock::DockMode newMode, Dock::DockMode)
{
m_compositeItem->setMode(newMode);
m_proxy->itemSizeChangedEvent(CompositeItemKey);
m_proxy->infoChanged(DockPluginInterface::ItemSize, CompositeItemKey);
}
QString SystrayPlugin::getMenuContent(QString)
@ -116,7 +116,7 @@ void SystrayPlugin::onAdded(WId winId)
m_compositeItem->addTrayIcon(key, icon);
m_proxy->itemSizeChangedEvent(CompositeItemKey);
m_proxy->infoChanged(DockPluginInterface::ItemSize, CompositeItemKey);
}
void SystrayPlugin::onRemoved(WId winId)
@ -125,5 +125,5 @@ void SystrayPlugin::onRemoved(WId winId)
m_compositeItem->remove(key);
m_proxy->itemSizeChangedEvent(CompositeItemKey);
m_proxy->infoChanged(DockPluginInterface::ItemSize, CompositeItemKey);
}

View File

@ -35,6 +35,17 @@ void DockPluginManager::initAll()
foreach (DockPluginProxy * proxy, m_proxies.values()) {
proxy->plugin()->init(proxy);
connect(proxy, &DockPluginProxy::canDisableChanged, this, [this, proxy](const QString &uuid){
if(proxy->plugin()->canDisable(uuid)){
m_settingFrame->onPluginAdd(!proxy->plugin()->isDisabled(uuid),
uuid,
proxy->plugin()->getName(uuid),
proxy->plugin()->getIcon(uuid));
}else{
m_settingFrame->onPluginRemove(uuid);
}
});
}
refreshSettingWindow();
@ -98,14 +109,12 @@ DockPluginProxy * DockPluginManager::loadPlugin(const QString &path)
}
} else {
qWarning() << "Load plugin failed(failed to convert) " << path;
return NULL;
}
} else {
qWarning() << "Load plugin failed" << pluginLoader->errorString();
return NULL;
}
return NULL;
}
void DockPluginManager::unloadPlugin(const QString &path)

View File

@ -63,6 +63,26 @@ void DockPluginProxy::itemRemovedEvent(QString id)
}
}
void DockPluginProxy::infoChanged(DockPluginInterface::InfoType type, const QString &id)
{
switch (type) {
case DockPluginInterface::ItemSize:
itemSizeChangedEvent(id);
break;
case DockPluginInterface::AppletSize:
appletSizeChangedEvent(id);
break;
case DockPluginInterface::Title:
emit titleChanged(id);
break;
case DockPluginInterface::CanDisable:
emit canDisableChanged(id);
break;
default:
break;
}
}
void DockPluginProxy::itemSizeChangedEvent(QString id)
{
qDebug() << "Item size changed on plugin " << m_plugin->getPluginName() << id;

View File

@ -20,12 +20,15 @@ public:
void itemAddedEvent(QString id) Q_DECL_OVERRIDE;
void itemRemovedEvent(QString id) Q_DECL_OVERRIDE;
void itemSizeChangedEvent(QString id) Q_DECL_OVERRIDE;
void appletSizeChangedEvent(QString id) Q_DECL_OVERRIDE;
void itemSizeChangedEvent(QString id);
void appletSizeChangedEvent(QString id);
void infoChanged(DockPluginInterface::InfoType type, const QString &id) Q_DECL_OVERRIDE;
signals:
void itemAdded(AbstractDockItem * item, QString uuid);
void itemRemoved(AbstractDockItem * item, QString uuid);
void titleChanged(const QString &id);
void canDisableChanged(const QString &id);
private:
QMap<QString, AbstractDockItem*> m_items;

View File

@ -6,11 +6,18 @@
#include <QStringList>
#include "dockconstants.h"
#include "dockpluginproxyinterface.h"
class DockPluginProxyInterface;
class DockPluginInterface
{
public:
enum InfoType{
ItemSize,
AppletSize,
Title,
CanDisable
};
virtual ~DockPluginInterface() {}
virtual QString getPluginName() = 0;

View File

@ -4,6 +4,7 @@
#include <QString>
#include "dockconstants.h"
#include "dockplugininterface.h"
class DockPluginProxyInterface
{
@ -12,9 +13,7 @@ public:
virtual void itemAddedEvent(QString id) = 0;
virtual void itemRemovedEvent(QString id) = 0;
virtual void itemSizeChangedEvent(QString id) = 0;
virtual void appletSizeChangedEvent(QString id) = 0;
virtual void infoChanged(DockPluginInterface::InfoType type, const QString &id) = 0;
};
#endif // DOCKPLUGINPROXYINTERFACE_H

View File

@ -478,6 +478,7 @@ void LayoutDropMask::dragEnterEvent(QDragEnterEvent *event)
void LayoutDropMask::dragMoveEvent(QDragMoveEvent *event)
{
Q_UNUSED(event);
emit itemMove();
}