Hey,
The bug test case in the attachment.
--
// Dmitriy.
// The bug test case.
//
// Explanation:
// 1) Click "More";
// 2) Click "Login";
// 3) Inspect standard error, you'll see something like this:
// [error] "Wt: decodeSignal(): signal 'ow9j1cq.cancel' not exposed"
//
// Gdb run command: run --docroot . --http-address 0.0.0.0 --http-port 8888
#include <Wt/WApplication>
#include <Wt/WMenu>
#include <Wt/WPopupMenu>
#include <Wt/WMenuItem>
#include <Wt/WText>
#include <Wt/WStackedWidget>
namespace {
using namespace Wt;
class App : public WApplication {
public:
App(const WEnvironment& env);
private:
void change_user(bool logged_out);
WMenu* make_menu(bool logged_out);
WMenu* menu_;
};
void App::change_user(bool logged_out)
{
if (menu_)
delete menu_->contentsStack();
delete menu_;
menu_ = make_menu(logged_out);
root()->addWidget(menu_);
root()->addWidget(menu_->contentsStack());
}
WMenu* App::make_menu(bool logged_out)
{
WMenu* const m = new WMenu(new WStackedWidget);
m->setInternalPathEnabled("/");
m->addItem("Search", new WText("Search"));
// Submenu "More"
Wt::WPopupMenu* const pm = new WPopupMenu(m->contentsStack());
m->addMenu("More", pm); // Will lead to change internal path.
// Menuitem "Logout" / "Login"
if (logged_out)
// Will lead to change internal path.
pm->addItem("Login")->triggered().
connect(boost::bind(&App::change_user, this, false));
else
// Will lead to change internal path.
pm->addItem("Logout")->triggered().
connect(boost::bind(&App::change_user, this, true));
return m;
}
App::App(const Wt::WEnvironment& env)
: WApplication(env)
{
root()->addWidget(menu_ = make_menu(true));
root()->addWidget(menu_->contentsStack());
}
Wt::WApplication* createApp(const Wt::WEnvironment& env)
{
return new App(env);
}
} // namespace
int main(int argc, char* argv[])
{
return Wt::WRun(argc, argv, createApp);
}
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
witty-interest mailing list
witty-interest@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/witty-interest