dde-dock/frame/controller/dockpluginscontroller.h
石博文 83a0d66185 adjust item layout if receive itemUpdate signal
Change-Id: Icf29a0ff3d09b1ef7998939da85f17610467aa5c
2017-02-09 09:27:03 +08:00

50 lines
1.6 KiB
C++

#ifndef DOCKPLUGINSCONTROLLER_H
#define DOCKPLUGINSCONTROLLER_H
#include "item/pluginsitem.h"
#include "pluginproxyinterface.h"
#include <QPluginLoader>
#include <QList>
#include <QMap>
class DockItemController;
class PluginsItemInterface;
class DockPluginsController : public QObject, PluginProxyInterface
{
Q_OBJECT
public:
explicit DockPluginsController(DockItemController *itemControllerInter = 0);
~DockPluginsController();
// implements PluginProxyInterface
void itemAdded(PluginsItemInterface * const itemInter, const QString &itemKey);
void itemUpdate(PluginsItemInterface * const itemInter, const QString &itemKey);
void itemRemoved(PluginsItemInterface * const itemInter, const QString &itemKey);
void requestContextMenu(PluginsItemInterface * const itemInter, const QString &itemKey);
signals:
void pluginItemInserted(PluginsItem *pluginItem) const;
void pluginItemRemoved(PluginsItem *pluginItem) const;
void pluginItemUpdated(PluginsItem *pluginItem) const;
private slots:
void startLoader();
void displayModeChanged();
void positionChanged();
void loadPlugin(const QString &pluginFile);
private:
bool eventFilter(QObject *o, QEvent *e);
PluginsItem *pluginItemAt(PluginsItemInterface * const itemInter, const QString &itemKey) const;
private:
// QList<PluginsItemInterface *> m_pluginsInterfaceList;
// QList<QPluginLoader *> m_pluginLoaderList;
QMap<PluginsItemInterface *, QMap<QString, PluginsItem *>> m_pluginList;
DockItemController *m_itemControllerInter;
};
#endif // DOCKPLUGINSCONTROLLER_H