App::App(const WEnvironment& environment) : BaseApp(environment, my_appCookieName) { // Set up the db string postgresConnectionString; readConfigurationProperty("DB", postgresConnectionString); postgres.connect(postgresConnectionString); dbSession().setConnection(postgres); log("notice") << "Mapping classes"; mapModels(dbSession()); // Load the message bundles messageResourceBundle().use(appRoot() + "messages/App"); messageResourceBundle().use(appRoot() + "messages/MainWindow"); messageResourceBundle().use(appRoot() + "messages/LoginWindow"); messageResourceBundle().use(appRoot() + "messages/ButtonBar"); messageResourceBundle().use(appRoot() + "messages/AdminIndex", false); messageResourceBundle().use(appRoot() + "messages/UserList", false); messageResourceBundle().use(appRoot() + "messages/UserEdit", false); // Set up our signals _userChanged = new UserChangedSignal(this); _statusTextChanged = new MessageSignal(this); internalPathChanged().connect(this, &App::rememberHistory); // Set up the general URL handling _url2ActionMapper = new URL2Action(this); // Set up the UI useStyleSheet(resourcesUrl() + "/themes/" + cssTheme() + "/forms.css"); useStyleSheet(resourcesUrl() + "/themes/" + cssTheme() + "/fonts.css"); useStyleSheet(resourcesUrl() + "/themes/" + cssTheme() + "/controlPanel.css"); setTitle(WString::tr("main-title")); _mainWindow = new MainWindow(root()); _statusTextChanged->connect(_mainWindow, &MainWindow::setStatusText); setBodyClass("yui-skin-sam"); // Fire an internal path changed event off as user may have navigated straight here internalPathChanged().emit(app()->internalPath()); }
App::App(const Wt::WEnvironment& env) : wittyPlus::App(env) { setTheme(new Wt::WCssTheme("polished", this)); messageResourceBundle().use(appRoot() + "messages/MainWindow"); useStyleSheet("/css/footprint.css"); // Ensure that any users from the config file exist std::string users; readConfigurationProperty("users", users); ensureUsers(users); // Run! new widgets::MainWindow(root()); };
std::string Configuration::appRoot() const { READ_LOCK; std::string approot; if (!readConfigurationProperty("appRoot", approot)) { return ""; } if (!approot.empty() && approot[approot.length() - 1] != '/' #ifdef WIN32 && approot[approot.length() - 1] != '\\' #endif ) { approot += "/"; } return approot; }
std::string Application::read_config(const std::string& name) { std::string result; readConfigurationProperty(name, result); return result; }