void script_app::init() { INVARIANT(root()); INVARIANT(layout()); INVARIANT(_conversation); INVARIANT(_app); //setup frontend setup_decorations(); _canvas = new QWidget; _canvas_layout = new QGridLayout{_canvas}; layout()->addWidget(_canvas, 1,0,2,3); auto front = std::make_shared<qtw::qt_frontend>(_canvas, _canvas_layout, nullptr); connect(front.get(), SIGNAL(alerted()), this, SLOT(got_alert())); _front = std::make_shared<qtw::qt_frontend_client>(front); set_main(_canvas); //setup mail _mail = std::make_shared<m::mailbox>(_id); _sender = std::make_shared<ms::sender>(_conversation->user_service(), _mail); //setup api and backend _api = std::make_shared<l::lua_api>( _app, _sender, _conversation, _conversation_service, _front.get()); _api->who_started_id = _from_id; _back = std::make_shared<l::backend_client>(_api.get(), _mail); //assign backend to frontend _front->set_backend(_back.get()); //run script and start backend on seperate thread _back->run(_app->code()); _back->start(); //setup mail service INVARIANT(_api); INVARIANT(_front); INVARIANT(_back); INVARIANT(_conversation); INVARIANT(_mail); INVARIANT(_sender); }
void script_app::init() { INVARIANT(root()); INVARIANT(layout()); INVARIANT(_conversation); INVARIANT(_app); //setup frontend setup_decorations(); _canvas = new QWidget; _canvas_layout = new QGridLayout{_canvas}; layout()->addWidget(_canvas, 1,0,2,3); set_main(_canvas); //setup mail _mail = std::make_shared<m::mailbox>(_id); _sender = std::make_shared<ms::sender>(_conversation->user_service(), _mail); ENSURE(_mail); ENSURE(_sender); }