mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
add plugin infoChanged interface
Change-Id: I329a790a2028749baf6e85ec318b70b7613665a4
This commit is contained in:
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
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -478,6 +478,7 @@ void LayoutDropMask::dragEnterEvent(QDragEnterEvent *event)
|
||||
|
||||
void LayoutDropMask::dragMoveEvent(QDragMoveEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
emit itemMove();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user