12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #include "DockManager.h"
- #include "DockableWidget.h"
- #include "DockableWidgetArea.h"
- void DockManager::addDockArea(DockableWidgetArea* area)
- {
- if (areas.indexOf(area) == -1) {
- areas.append(area);
- }
- }
- int DockManager::dockAreaIndex(DockableWidgetArea* area) const
- {
- return areas.indexOf(area);
- }
- void DockManager::dockWidget(DockableWidget* widget, const QPoint& p, const QRect& r)
- {
- AreaMap::iterator it = areaMap.begin(); // TODO
- if (it != areaMap.end()) {
- areaMap[widget] = it.value();
- return it.value()->addWidget(widget, r);
- }
- }
- void DockManager::undockWidget(DockableWidget* widget)
- {
- AreaMap::iterator it = areaMap.find(widget);
- if (it != areaMap.end()) {
- it.value()->removeWidget(widget);
- }
- }
- void DockManager::insertWidget(
- DockableWidget* widget, int index,
- DockableWidgetLayout::DockSide side, int distance, int w, int h)
- {
- if (index < 0 || index >= areas.size()) return;
- //Q_ASSERT(areaMap.find(widget) == areaMap.end());
- areas[index]->addWidget(widget, side, distance, w, h);
- areaMap[widget] = areas[index];
- }
- bool DockManager::insertLocation(QRect& r, const QSizePolicy& sizePol)
- {
- AreaMap::iterator it = areaMap.begin(); // TODO
- if (it == areaMap.end()) return false;
- return it.value()->insertLocation(r, sizePol);
- }
- void DockManager::visibilityChanged(DockableWidget* widget)
- {
- AreaMap::iterator it = areaMap.find(widget);
- if (it != areaMap.end()) {
- it.value()->layout->changed();
- }
- }
- void DockManager::getConfig(int index, QStringList& list) const
- {
- areas[index]->getConfig(list);
- }
- void DockManager::attachWidget(DockableWidget* widget)
- {
- dockWidgets.append(widget);
- }
- void DockManager::detachWidget(DockableWidget* widget)
- {
- dockWidgets.removeAll(widget);
- }
- const QList<DockableWidget*>& DockManager::managedWidgets() const
- {
- return dockWidgets;
- }
- DockableWidget* DockManager::findDockableWidget(const QString& id) const
- {
- for (QList<DockableWidget*>::const_iterator it = dockWidgets.begin();
- it != dockWidgets.end(); ++it) {
- if ((*it)->id() == id) return *it;
- }
- return 0;
- }
|