dock plugin interface changes

1, init method invocation time
2, use rightLayout instead of testLayout
3, item reiszed signal
This commit is contained in:
Hualet Wang 2015-07-13 16:33:22 +08:00
parent 65b95b99f9
commit 4162ee7790
5 changed files with 18 additions and 9 deletions

View File

@ -28,11 +28,6 @@ Panel::Panel(QWidget *parent)
connect(dockCons, SIGNAL(dockModeChanged(Dock::DockMode,Dock::DockMode)),
this, SLOT(slotDockModeChanged(Dock::DockMode,Dock::DockMode)));
// QHBoxLayout * testLayout = new QHBoxLayout;
// testLayout->addStretch();
// this->setLayout(testLayout);
DockPluginManager *pluginManager = new DockPluginManager(this);
connect(DockModeData::instance(), &DockModeData::dockModeChanged,
pluginManager, &DockPluginManager::onDockModeChanged);
@ -44,8 +39,12 @@ Panel::Panel(QWidget *parent)
});
connect(proxy, &DockPluginProxy::itemRemoved, [=](AbstractDockItem* item) {
int index = rightLayout->indexOf(item);
rightLayout->removeItem(index);
if (index != -1) {
rightLayout->removeItem(index);
}
});
proxy->plugin()->init(proxy);
}
panelMenu = new PanelMenu();

View File

@ -50,7 +50,6 @@ DockPluginProxy* DockPluginManager::loadPlugin(QString &path)
qDebug() << "Plugin loaded: " << path;
DockPluginProxy *proxy = new DockPluginProxy(interface);
interface->init(proxy);
return proxy;
} else {

View File

@ -19,8 +19,6 @@ void DockPluginProxy::itemAddedEvent(QString uuid)
AbstractDockItem * item = new PluginItemWrapper(m_plugin, uuid);
m_items << item;
qDebug() << item->geometry();
emit itemAdded(item);
}
@ -36,6 +34,16 @@ void DockPluginProxy::itemRemovedEvent(QString uuid)
}
}
void DockPluginProxy::itemSizeChangedEvent(QString uuid)
{
qDebug() << "Item size changed on plugin " << m_plugin->name() << uuid;
AbstractDockItem * item = getItem(uuid);
if (item) {
emit item->widthChanged();
}
}
AbstractDockItem * DockPluginProxy::getItem(QString uuid)
{
foreach (AbstractDockItem * item, m_items) {

View File

@ -15,6 +15,7 @@ public:
void itemAddedEvent(QString uuid) Q_DECL_OVERRIDE;
void itemRemovedEvent(QString uuid) Q_DECL_OVERRIDE;
void itemSizeChangedEvent(QString uuid) Q_DECL_OVERRIDE;
signals:
void itemAdded(AbstractDockItem * item);

View File

@ -8,6 +8,8 @@ class DockPluginProxyInterface
public:
virtual void itemAddedEvent(QString uuid) = 0;
virtual void itemRemovedEvent(QString uuid) = 0;
virtual void itemSizeChangedEvent(QString uuid) = 0;
};
#endif // DOCKPLUGINPROXYINTERFACE_H