#include #include #include #include #include #include #include #include #include #include using namespace Wt; std::unique_ptr createTestPanel() { auto pagePanel = std::make_unique(); auto panelContainer = pagePanel->setCentralWidget(std::make_unique()); auto pageLayout = panelContainer->setLayout(std::make_unique()); pageLayout->addWidget(std::make_unique("Test")); pagePanel->disable(); // The crash happens only when the panel is disabled return pagePanel; } // ----------------------------------------------------------------------------------- std::unique_ptr createHelloApplication(const WEnvironment &env) { auto app = std::make_unique(env); auto theme = std::make_shared(); app->setTheme(theme); auto container = app->root()->addNew(); auto contents = std::make_unique(); Wt::WMenu *menu = container->addNew(contents.get()); menu->setStyleClass("nav nav-pills flex-column"); menu->setWidth(150); // Add menu items using the default lazy loading policy. menu->addItem("Dummy Menu Item", std::make_unique("Dummy Test")); menu->addItem("This will crash", createTestPanel()); container->addWidget(std::move(contents)); return app; } // ----------------------------------------------------------------------------------- int main(int argc, char *argv[]) { return Wt::WRun(argc, argv, &createHelloApplication); }