Esempio n. 1
0
    def setup_menu(self):
        """
        Adds top menu bar and various menu items.
        """
        menu_bar = QtWidgets.QMenuBar(self.widget)
        file_menu = QtWidgets.QMenu('File')
        help_menu = QtWidgets.QMenu('Help')
        edit_menu = QtWidgets.QMenu('Edit')

        for menu in [file_menu, edit_menu, help_menu]:
            menu_bar.addMenu(menu)

        file_menu.addAction('New', self.new)

        file_menu.addAction('Open', self.open)

        file_menu.addAction('&Save', self.save)

        file_menu.addAction('Save As', self.save)

        export_menu = QtWidgets.QMenu('Export')
        file_menu.addMenu(export_menu)
        ex = export_menu.addAction

        ex('Save Selected Text', self.save_selected_text)

        ex('Export Selected To External Editor',
           self.export_selected_to_external_editor)

        ex('Export Current Tab To External Editor',
           self.export_current_tab_to_external_editor)

        ex('Export All Tabs To External Editor',
           self.export_all_tabs_to_external_editor)

        help_menu.addAction('Reload Python Editor',
                            self.widget._parent.reload_package)

        help_menu.addAction('About Python Editor', self.show_about_dialog)

        edit_menu.addAction('Preferences', self.show_preferences)

        edit_menu.addAction('Shortcuts', self.show_shortcuts)

        self.widget.layout().addWidget(menu_bar)
Esempio n. 2
0
    def menu_setup(self):
        """
        Adds top menu bar and various menu
        items based on a json config file.
        """
        self.menu = QtWidgets.QMenuBar(self.pythoneditor)
        names = [
            'File',
            'Edit',
            'View',
            'Tools',
            'Find',
            'Selection',
            'Preferences',
            'Help',
        ]
        for name in names:
            self.menu.addMenu(name)

        for widget, action_name, attributes in actions.class_actions(self):
            location = attributes.get('Menu Location')
            if location is None:
                continue
            for action in widget.actions():
                if action.text() != action_name:
                    continue
                break
            else:
                continue

            menu = self.menu
            if location.strip():
                for name in location.split('/'):
                    item = actions.find_menu_item(menu, name)
                    if item is None:
                        item = menu.addMenu(name)
                    menu = item
                menu.addAction(action)

        self.pythoneditor.layout().insertWidget(0, self.menu)