90 m_widgets.removeAll(widget);
93 if (QToolBar *toolBar = qobject_cast<QToolBar*>(widget)) {
94 m_widgets.append(widget);
95 const ToolBarData data = toolBarData(toolBar);
96 m_mainWindow->addToolBar(data.first, toolBar);
97 if (data.second) m_mainWindow->insertToolBarBreak(toolBar);
101 else if (QMenuBar *menuBar = qobject_cast<QMenuBar*>(widget)) {
102 if (menuBar != m_mainWindow->menuBar())
103 m_mainWindow->setMenuBar(menuBar);
105 m_widgets.append(widget);
109 else if (QStatusBar *statusBar = qobject_cast<QStatusBar*>(widget)) {
110 if (statusBar != m_mainWindow->statusBar())
111 m_mainWindow->setStatusBar(statusBar);
113 m_widgets.append(widget);
117 else if (QDockWidget *dockWidget = qobject_cast<QDockWidget*>(widget)) {
118 m_widgets.append(widget);
120 Qt::DockWidgetArea area = Qt::LeftDockWidgetArea;
122 if (areaProperty.canConvert<Qt::DockWidgetArea>()) {
123 area = areaProperty.value<Qt::DockWidgetArea>();
126 area = dockWidgetArea(dockWidget);
129 m_mainWindow->addDockWidget(area, dockWidget);
132 if (
FormWindow *fw = FormWindow::findFormWindow(m_mainWindow)) {
138 m_widgets.prepend(widget);
140 if (widget != m_mainWindow->centralWidget()) {
143 m_widgets.removeAll(m_mainWindow->centralWidget());
145 widget->setParent(m_mainWindow);
146 m_mainWindow->setCentralWidget(widget);
160 QWidget *widget = m_widgets.at(index);
161 if (QToolBar *toolBar = qobject_cast<QToolBar*>(widget)) {
162 m_mainWindow->removeToolBar(toolBar);
163 }
else if (QMenuBar *menuBar = qobject_cast<QMenuBar*>(widget)) {
165 menuBar->setParent(
nullptr);
166 m_mainWindow->setMenuBar(
nullptr);
167 }
else if (QStatusBar *statusBar = qobject_cast<QStatusBar*>(widget)) {
169 statusBar->setParent(
nullptr);
170 m_mainWindow->setStatusBar(
nullptr);
171 }
else if (QDockWidget *dockWidget = qobject_cast<QDockWidget*>(widget)) {
172 const auto area = m_mainWindow->dockWidgetArea(dockWidget);
173 dockWidget->setProperty(dockAreaPropertyName, QVariant::fromValue(area));
174 m_mainWindow->removeDockWidget(dockWidget);
176 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