91 m_widgets.removeAll(widget);
94 if (QToolBar *toolBar = qobject_cast<QToolBar*>(widget)) {
95 m_widgets.append(widget);
96 const ToolBarData data = toolBarData(toolBar);
97 m_mainWindow->addToolBar(data.first, toolBar);
98 if (data.second) m_mainWindow->insertToolBarBreak(toolBar);
102 else if (QMenuBar *menuBar = qobject_cast<QMenuBar*>(widget)) {
103 if (menuBar != m_mainWindow->menuBar())
104 m_mainWindow->setMenuBar(menuBar);
106 m_widgets.append(widget);
110 else if (QStatusBar *statusBar = qobject_cast<QStatusBar*>(widget)) {
111 if (statusBar != m_mainWindow->statusBar())
112 m_mainWindow->setStatusBar(statusBar);
114 m_widgets.append(widget);
118 else if (QDockWidget *dockWidget = qobject_cast<QDockWidget*>(widget)) {
119 m_widgets.append(widget);
121 Qt::DockWidgetArea area = Qt::LeftDockWidgetArea;
123 if (areaProperty.canConvert<Qt::DockWidgetArea>()) {
124 area = areaProperty.value<Qt::DockWidgetArea>();
127 area = dockWidgetArea(dockWidget);
130 m_mainWindow->addDockWidget(area, dockWidget);
139 m_widgets.prepend(widget);
141 if (widget != m_mainWindow->centralWidget()) {
144 m_widgets.removeAll(m_mainWindow->centralWidget());
146 widget->setParent(m_mainWindow);
147 m_mainWindow->setCentralWidget(widget);
161 QWidget *widget = m_widgets.at(index);
162 if (QToolBar *toolBar = qobject_cast<QToolBar*>(widget)) {
163 m_mainWindow->removeToolBar(toolBar);
164 }
else if (QMenuBar *menuBar = qobject_cast<QMenuBar*>(widget)) {
166 menuBar->setParent(
nullptr);
167 m_mainWindow->setMenuBar(
nullptr);
168 }
else if (QStatusBar *statusBar = qobject_cast<QStatusBar*>(widget)) {
170 statusBar->setParent(
nullptr);
171 m_mainWindow->setStatusBar(
nullptr);
172 }
else if (QDockWidget *dockWidget = qobject_cast<QDockWidget*>(widget)) {
173 const auto area = m_mainWindow->dockWidgetArea(dockWidget);
174 dockWidget->setProperty(dockAreaPropertyName, QVariant::fromValue(area));
175 m_mainWindow->removeDockWidget(dockWidget);
177 m_widgets.removeAt(index);
void remove(int index) override
QWidget * widget(int index) const override
void insertWidget(int index, QWidget *widget) override
void addWidget(QWidget *widget) override
int count() const override
int currentIndex() const override
void setCurrentIndex(int index) override