Skip to content

DockWidgets in 2nd MainWindow within first MainWindow do not show when dockWidgets are toggled #360

@dlinenbe

Description

@dlinenbe

// The 2nd MainWindow within first MainWindow does not show its dockWidgets when toggled

using namespace KDDockWidgets;

DockWidget *createDockWidget(MainWindow mainWindow, QMenu mainWindowMenu, const QString &label, const QStringList affinities = {})
{
auto dockWidget = new DockWidget(label);
dockWidget->setAffinities(affinities);
QLabel *l = new QLabel(label);
dockWidget->setWidget(l);
mainWindow->addDockWidget(dockWidget, Location::Location_OnTop);
mainWindowMenu->addAction(dockWidget->toggleAction());
return dockWidget;
}

int main(int argc, char **argv)
{
QApplication app(argc, argv);

MainWindow * mainWindow = new MainWindow("mainWindow");
QMenu *mainWindowMenu = mainWindow->menuBar()->addMenu("Toggle1");
createDockWidget(mainWindow, mainWindowMenu, "L1");
createDockWidget(mainWindow, mainWindowMenu, "L2");

auto mainWindowDockWidget3 = new DockWidget("mainWindowInMainWindow");
MainWindow*  mainWindow2 = new MainWindow("mainWindow2");
QMenu *mainWindowMenu2 = mainWindow2->menuBar()->addMenu("Toggle2");
const QStringList affinities { "DwInDw" };
mainWindow2->setAffinities(affinities);
mainWindowDockWidget3->setWidget(mainWindow2);
mainWindow->addDockWidget(mainWindowDockWidget3, Location_OnRight);

createDockWidget(mainWindow2, mainWindowMenu2, "L3", affinities);
createDockWidget(mainWindow2, mainWindowMenu2, "L4", affinities);

// Note - widgets show correctly on initialization,
// but when Toggle1/mainWindowInMainWindow is toggled, the dock widgets L3 & L4
// are not shown
mainWindowMenu->addAction(mainWindowDockWidget3->toggleAction());  

mainWindow->resize(800, 800);
mainWindow->show();
return app.exec();

}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions