def other_language(language): change_language(language) assert(get_current_language() == language) self.app.update_language()
def construct_menu_bar(self): bar = QMenuBar() # Project menu: self.projectmenuactions = dict() projectmenu = QMenu(l("projwin_menu_project")) self.projectmenuactions["new"] = \ projectmenu.addAction(QIcon.fromTheme("document-new"), l("projwin_menu_project_new"), self.new_project_window) self.projectmenuactions["open"] = \ projectmenu.addAction(QIcon.fromTheme("document-open"), l("projwin_menu_project_open"), self.open_project_window) projectmenu.addSeparator() self.projectmenuactions["save"] = \ projectmenu.addAction(QIcon.fromTheme("document-save"), l("projwin_menu_project_saveall")) self.projectmenuactions["save"].setShortcut( QKeySequence.Save) self.projectmenuactions["saveas"] = \ projectmenu.addAction( l("projwin_menu_project_saveas")) projectmenu.addSeparator() if self.project != None: self.projectmenuactions["close"] = \ projectmenu.addAction( l("projwin_menu_project_close"), self.close_window) else: self.projectmenuactions["close"] = \ projectmenu.addAction( l("projwin_menu_project_closewindow"), self.close_window) self.projectmenuactions["quit"] = \ projectmenu.addAction(QIcon.fromTheme("application-exit"), l("projwin_menu_project_quit"), self.app.close_all) # File menu: filemenu = QMenu(l("projwin_menu_file")) self.filemenu = filemenu self.filemenuactions = dict() self.filemenuactions["new"] = \ filemenu.addAction(QIcon.fromTheme("document-new"), l("projwin_menu_file_new")) self.filemenuactions["add"] = \ filemenu.addAction(l("projwin_menu_file_add")) self.filemenuactions["addfolder"] = \ filemenu.addAction(QIcon.fromTheme("folder-new"), l("projwin_menu_file_addfolder")) filemenu.addSeparator() self.filemenuactions["save"] = \ filemenu.addAction(QIcon.fromTheme("document-save"), l("projwin_menu_file_save")) self.filemenuactions["rename"] = \ filemenu.addAction(l("projwin_menu_file_rename")) filemenu.addSeparator() self.filemenuactions["remove"] = \ filemenu.addAction(QIcon.fromTheme("edit-delete"), l("projwin_menu_file_remove")) # Edit menu: editmenu = QMenu(l("projwin_menu_edit")) self.editmenu = editmenu self.editmenu.aboutToShow.connect(self.update_menu) self.editmenuactions = dict() self.editmenuactions["undo"] = \ editmenu.addAction(QIcon.fromTheme("edit-undo"), "undo_local", self.do_edit_undo_local) self.editmenuactions["undo"].setShortcut( QKeySequence.Undo) self.editmenuactions["redo"] = \ editmenu.addAction(QIcon.fromTheme("edit-redo"), "redo_local", self.do_edit_redo_local) self.editmenuactions["redo"].setShortcut( QKeySequence.Redo) editmenu.addSeparator() self.editmenuactions["undo_global"] = \ editmenu.addAction(QIcon.fromTheme("edit-undo"), "undo_global") self.editmenuactions["redo_global"] = \ editmenu.addAction(QIcon.fromTheme("edit-redo"), "redo_global") self.update_undo() editmenu.addSeparator() self.editmenuactions["cut"] = \ editmenu.addAction(QIcon.fromTheme("edit-cut"), l("projwin_menu_edit_cut"), self.do_edit_cut) self.editmenuactions["cut"].setShortcut( QKeySequence.Cut) self.editmenuactions["copy"] = \ editmenu.addAction(QIcon.fromTheme("edit-copy"), l("projwin_menu_edit_copy"), self.do_edit_copy) self.editmenuactions["copy"].setShortcut( QKeySequence.Copy) self.editmenuactions["paste"] = \ editmenu.addAction(QIcon.fromTheme("edit-paste"), l("projwin_menu_edit_paste"), self.do_edit_paste) self.editmenuactions["paste"].setShortcut( QKeySequence.Paste) editmenu.addSeparator() self.editmenuactions["select_all"] = \ editmenu.addAction( l("projwin_menu_edit_select_all"), self.do_edit_select_all) self.editmenuactions["select_all"].setShortcut( QKeySequence.SelectAll) # Run menu runmenu = QMenu(l("projwin_menu_run")) self.runmenu = runmenu self.runmenuactions = dict() self.runmenuactions["run_in_editor"] = \ runmenu.addAction(QIcon.fromTheme("media-playback-start"), l("projwin_menu_run_in_editor")) runmenu.addSeparator() self.runmenuactions["run_in_editor_from_start"] = \ runmenu.addAction( l("projwin_menu_run_in_editor_from_start")) self.runmenuactions["run_external"] = \ runmenu.addAction(QIcon.fromTheme("go-jump"), l("projwin_menu_run_external")) runmenu.addSeparator() self.runmenuactions["run_pause"] = \ runmenu.addAction(QIcon.fromTheme("media-playback-pause"), l("projwin_menu_run_pause")) runmenu.addSeparator() self.runmenuactions["run_stop"] = \ runmenu.addAction(QIcon.fromTheme("process-stop"), l("projwin_menu_run_stop")) # Settings > Language menu languagesmenu = QMenu(l("projwin_menu_settings_language")) languagesmenu.setIcon(QIcon.fromTheme("preferences-desktop-locale")) def other_language(language): change_language(language) assert(get_current_language() == language) self.app.update_language() for (id, name) in list_languages(): a = languagesmenu.addAction( name, lambda id=id: other_language(id) ) if id == get_current_language(): a.setCheckable(True) a.setChecked(True) # Settings menu self.settingsmenuactions = dict() settingsmenu = QMenu(l("projwin_menu_settings")) settingsmenu.addMenu(languagesmenu) # Window menu self.windowmenuactions = dict() windowmenu = QMenu(l("projwin_menu_window")) self.windowmenuactions["new"] = \ windowmenu.addAction(QIcon.fromTheme("window-new"), l("projwin_menu_window_new"), self.new_window) windowmenu.addSeparator() self.windowmenuactions["dock_filelist"] = \ windowmenu.addAction( l("projwin_menu_window_dock_filelist"), lambda: self.contentwidget.toggle_dock_visible("filelist")) self.windowmenuactions["dock_filelist"].setCheckable(True) windowmenu.addSeparator() self.windowmenuactions["close"] = \ windowmenu.addAction(l("projwin_menu_window_close"), self.close_window) # About menu self.aboutmenuactions = dict() aboutmenu = QMenu(l("projwin_menu_about")) self.aboutmenuactions["new"] = \ aboutmenu.addAction(QIcon.fromTheme("help-about"), l("projwin_menu_about_about"), lambda pwin=self: pwin.open_about_dlg()) bar.addMenu(projectmenu) bar.addMenu(self.filemenu) bar.addMenu(self.editmenu) bar.addMenu(self.runmenu) bar.addMenu(settingsmenu) bar.addMenu(windowmenu) bar.addMenu(aboutmenu) return bar