void MainWindow::createHelpActions() { artxi = new QAction(tr("About &RTXI"), this); connect(artxi, SIGNAL(triggered()), this, SLOT(about())); axeno = new QAction(tr("About &Xenomai"), this); connect(axeno, SIGNAL(triggered()), this, SLOT(aboutXeno())); aqt = new QAction(tr("About &Qt"), this); connect(aqt, SIGNAL(triggered()), this, SLOT(aboutQt())); adocs = new QAction(tr("&Documentation"), this); connect(adocs, SIGNAL(triggered()), this, SLOT(openDocs())); sub_issue = new QAction(tr("&Submit Issue"), this); connect(sub_issue, SIGNAL(triggered()), this, SLOT(openSubIssue())); }
/* MainWindow::handleAction * Handles the action [id]. Returns true if the action was handled, * false otherwise *******************************************************************/ bool MainWindow::handleAction(string id) { // We're only interested in "main_" actions if (!id.StartsWith("main_")) return false; // File->Exit if (id == "main_exit") { Close(); return true; } // Edit->Undo if (id == "main_undo") { panel_archivemanager->undo(); return true; } // Edit->Redo if (id == "main_redo") { panel_archivemanager->redo(); return true; } // Edit->Set Base Resource Archive if (id == "main_setbra") { wxDialog dialog_ebr(this, -1, "Edit Base Resource Archives", wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); BaseResourceArchivesPanel brap(&dialog_ebr); wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(&brap, 1, wxEXPAND|wxALL, 4); sizer->Add(dialog_ebr.CreateButtonSizer(wxOK|wxCANCEL), 0, wxEXPAND|wxLEFT|wxRIGHT|wxDOWN, 4); dialog_ebr.SetSizer(sizer); dialog_ebr.Layout(); dialog_ebr.SetInitialSize(wxSize(500, 300)); dialog_ebr.CenterOnParent(); if (dialog_ebr.ShowModal() == wxID_OK) theArchiveManager->openBaseResource(brap.getSelectedPath()); return true; } // Edit->Preferences if (id == "main_preferences") { PreferencesDialog::openPreferences(this); return true; } // View->Archive Manager if (id == "main_showam") { wxAuiManager* m_mgr = wxAuiManager::GetManager(panel_archivemanager); wxAuiPaneInfo& p_inf = m_mgr->GetPane("archive_manager"); p_inf.Show(!p_inf.IsShown()); m_mgr->Update(); return true; } // View->Console if (id == "main_showconsole") { wxAuiManager* m_mgr = wxAuiManager::GetManager(panel_archivemanager); wxAuiPaneInfo& p_inf = m_mgr->GetPane("console"); p_inf.Show(!p_inf.IsShown()); p_inf.MinSize(200, 128); m_mgr->Update(); return true; } // View->Undo History if (id == "main_showundohistory") { wxAuiManager* m_mgr = wxAuiManager::GetManager(panel_archivemanager); wxAuiPaneInfo& p_inf = m_mgr->GetPane("undo_history"); p_inf.Show(!p_inf.IsShown()); m_mgr->Update(); return true; } // Help->About if (id == "main_about") { wxAboutDialogInfo info; info.SetName("SLADE"); string version = "v" + Global::version; if (Global::sc_rev != "") version = version + " (Git Rev " + Global::sc_rev + ")"; info.SetVersion(version); info.SetWebSite("http://slade.mancubus.net"); info.SetDescription("It's a Doom Editor"); // Set icon string icon_filename = appPath("slade.ico", DIR_TEMP); theArchiveManager->programResourceArchive()->getEntry("slade.ico")->exportFile(icon_filename); info.SetIcon(wxIcon(icon_filename, wxBITMAP_TYPE_ICO)); wxRemoveFile(icon_filename); string year = wxNow().Right(4); info.SetCopyright(S_FMT("(C) 2008-%s Simon Judd <*****@*****.**>", year)); wxAboutBox(info); return true; } // Help->Online Documentation if (id == "main_onlinedocs") { #ifdef USE_WEBVIEW_STARTPAGE openDocs(); #else wxLaunchDefaultBrowser("http://slade.mancubus.net/wiki"); #endif return true; } // Help->Check For Updates if (id == "main_updatecheck") { theApp->checkForUpdates(true); return true; } // Unknown action return false; }
// ----------------------------------------------------------------------------- // Handles the action [id]. // Returns true if the action was handled, false otherwise // ----------------------------------------------------------------------------- bool MainWindow::handleAction(string_view id) { // We're only interested in "main_" actions if (!StrUtil::startsWith(id, "main_")) return false; // File->Exit if (id == "main_exit") { Close(); return true; } // Edit->Undo if (id == "main_undo") { panel_archivemanager_->undo(); return true; } // Edit->Redo if (id == "main_redo") { panel_archivemanager_->redo(); return true; } // Edit->Set Base Resource Archive if (id == "main_setbra") { PreferencesDialog::openPreferences(this, "Base Resource Archive"); return true; } // Edit->Preferences if (id == "main_preferences") { PreferencesDialog::openPreferences(this); return true; } // View->Archive Manager if (id == "main_showam") { auto m_mgr = wxAuiManager::GetManager(panel_archivemanager_); auto& p_inf = m_mgr->GetPane("archive_manager"); p_inf.Show(!p_inf.IsShown()); m_mgr->Update(); return true; } // View->Console if (id == "main_showconsole") { auto m_mgr = wxAuiManager::GetManager(panel_archivemanager_); auto& p_inf = m_mgr->GetPane("console"); p_inf.Show(!p_inf.IsShown()); p_inf.MinSize(WxUtils::scaledSize(200, 128)); m_mgr->Update(); return true; } // View->Undo History if (id == "main_showundohistory") { auto m_mgr = wxAuiManager::GetManager(panel_archivemanager_); auto& p_inf = m_mgr->GetPane("undo_history"); p_inf.Show(!p_inf.IsShown()); m_mgr->Update(); return true; } // View->Show Start Page if (id == "main_showstartpage") openStartPageTab(); // Tools->Run Script if (id == "main_runscript") { ScriptManager::open(); return true; } // Help->About if (id == "main_about") { wxAboutDialogInfo info; info.SetName("SLADE"); wxString version = "v" + App::version().toString(); if (!Global::sc_rev.empty()) version = version + " (Git Rev " + Global::sc_rev + ")"; info.SetVersion(version); info.SetWebSite("http://slade.mancubus.net"); info.SetDescription("It's a Doom Editor"); // Set icon auto icon_filename = App::path(App::iconFile(), App::Dir::Temp); App::archiveManager().programResourceArchive()->entry(App::iconFile())->exportFile(icon_filename); info.SetIcon(wxIcon(icon_filename, wxBITMAP_TYPE_ICO)); wxRemoveFile(icon_filename); wxString year = wxNow().Right(4); info.SetCopyright(wxString::Format("(C) 2008-%s Simon Judd <*****@*****.**>", year)); wxAboutBox(info); return true; } // Help->Online Documentation if (id == "main_onlinedocs") { #ifdef USE_WEBVIEW_STARTPAGE openDocs(); #else wxLaunchDefaultBrowser("http://slade.mancubus.net/wiki"); #endif return true; } // Help->Check For Updates if (id == "main_updatecheck") { wxGetApp().checkForUpdates(true); return true; } // Unknown action return false; }