Ejemplo n.º 1
0
 def get_menubar_actions(cls):
     preferences_action = QAction(QIcon(I('config.png')), _('&Preferences'),
                                  None)
     quit_action = QAction(QIcon(I('window-close.png')), _('&Quit'), None)
     preferences_action.setMenuRole(QAction.PreferencesRole)
     quit_action.setMenuRole(QAction.QuitRole)
     return preferences_action, quit_action
Ejemplo n.º 2
0
 def ac(text, key, role=QAction.MenuRole.TextHeuristicRole):
     ans = QAction(text, self)
     ans.setMenuRole(role)
     ans.setShortcut(QKeySequence(key))
     self.edit_menu.addAction(ans)
     return ans
Ejemplo n.º 3
0
 def get_menubar_actions(cls):
     preferences_action = QAction(QIcon(I('config.png')), _('&Preferences'), None)
     quit_action        = QAction(QIcon(I('window-close.png')), _('&Quit'), None)
     preferences_action.setMenuRole(QAction.PreferencesRole)
     quit_action.setMenuRole(QAction.QuitRole)
     return preferences_action, quit_action
Ejemplo n.º 4
0
 def get_menubar_actions(cls):
     preferences_action = QAction(QIcon(I("config.png")), _("&Preferences"), None)
     quit_action = QAction(QIcon(I("window-close.png")), _("&Quit"), None)
     preferences_action.setMenuRole(QAction.PreferencesRole)
     quit_action.setMenuRole(QAction.QuitRole)
     return preferences_action, quit_action
Ejemplo n.º 5
0
    def _init(self):
        # Standard actions - needed on Mac to be placed correctly in
        # "application" menu
        action = QAction(QIcon.fromTheme('help-about'), '&About App', self)
        action.setMenuRole(QAction.AboutRole)
        action.triggered.connect(self._showAboutDialog)
        self._actions['Standard/About'] = action

        action = QAction(IconProvider.settingsIcon(), 'Pr&eferences', self)
        action.setMenuRole(QAction.PreferencesRole)
        action.setShortcut(QKeySequence(QKeySequence.Preferences))
        action.triggered.connect(self._showPreferences)
        self._actions['Standard/Preferences'] = action

        action = QAction(QIcon.fromTheme('application-exit'), 'Quit', self)
        action.setMenuRole(QAction.QuitRole)
        # Shortcut set from browserWindow
        action.triggered.connect(self._quitApplication)
        self._actions['Standard/Quit'] = action

        # File menu
        self._menuFile = QMenu('&File', self)
        self._menuFile.aboutToShow.connect(self._aboutToShowFileMenu)

        self._ADD_ACTION('File/NewTab', self._menuFile, IconProvider.newTabIcon(),
            'New Tab', self._newTab, 'Ctrl+T')
        self._ADD_ACTION('File/NewWindow', self._menuFile, IconProvider.newWindowIcon(),
            '&New Window', self._newWindow, 'Ctrl+N')
        self._ADD_ACTION('File/NewPrivateWindow', self._menuFile, IconProvider.privateBrowsingIcon(),
            'New &Private Window', self._newPrivateWindow, 'Ctrl+Shift+P')
        self._ADD_ACTION('File/OpenLocation', self._menuFile, QIcon.fromTheme('document-open-remote'),
            'Open Location', self._openLocation, 'Ctrl+L')
        self._ADD_ACTION('File/OpenFile', self._menuFile, QIcon.fromTheme('document-open'),
            'Open &File...', self._openFile, 'Ctrl+O')
        self._ADD_ACTION('File/CloseWindow', self._menuFile, QIcon.fromTheme('window-close'),
            'Close Window', self._closeWindow, 'Ctrl+Shift+W')
        self._menuFile.addSeparator()

        sessionManager = gVar.app.sessionManager()
        if sessionManager:
            sessionsSubmenu = QMenu('Sessions', self)
            sessionsSubmenu.aboutToShow.connect(sessionManager._aboutToShowSessionsMenu)
            self._menuFile.addMenu(sessionsSubmenu)
            action = QAction('Session Manager', self)
            action.triggered.connect(sessionManager.openSessionManagerDialog)
            self._actions['File/SessionManager'] = action
            self._menuFile.addAction(action)
            self._menuFile.addSeparator()

        self._ADD_ACTION('File/SavePageAs', self._menuFile, QIcon.fromTheme('document-save'),
            '&Save Page As...', self._savePageAs, 'Ctrl+S')
        self._ADD_ACTION('File/SendLink', self._menuFile, QIcon.fromTheme('mail-message-new'),
            'Send Link...', self._sendLink, '')
        self._ADD_ACTION('File/Print', self._menuFile, QIcon.fromTheme('document-print'),
            '&Print...', self._printPage, 'Ctrl+P')
        self._menuFile.addSeparator()
        self._menuFile.addAction(self._actions['Standard/Quit'])

        # Edit Menu
        self._menuEdit = QMenu('&Edit', self)
        self._menuEdit.aboutToShow.connect(self._aboutToShowEditMenu)

        action = self._ADD_ACTION('Edit/Undo', self._menuEdit, QIcon.fromTheme('edit-undo'),
            '&Undo', self._editUndo, 'Ctrl+Z')
        action.setShortcutContext(Qt.WidgetShortcut)
        action = self._ADD_ACTION('Edit/Redo', self._menuEdit, QIcon.fromTheme('edit-redo'),
            '&Redo', self._editRedo, 'Ctrl+Shift+Z')
        action.setShortcutContext(Qt.WidgetShortcut)
        self._menuEdit.addSeparator()
        action = self._ADD_ACTION('Edit/Cut', self._menuEdit, QIcon.fromTheme('edit-cut'),
            '&Cut', self._editCut, 'Ctrl+X')
        action.setShortcutContext(Qt.WidgetShortcut)
        action = self._ADD_ACTION('Edit/Copy', self._menuEdit, QIcon.fromTheme('edit-copy'),
            'C&opy', self._editCopy, 'Ctrl+C')
        action.setShortcutContext(Qt.WidgetShortcut)
        action = self._ADD_ACTION('Edit/Paste', self._menuEdit, QIcon.fromTheme('edit-paste'),
            '&Paste', self._editPaste, 'Ctrl+V')
        action.setShortcutContext(Qt.WidgetShortcut)
        self._menuEdit.addSeparator()
        action = self._ADD_ACTION('Edit/SelectAll', self._menuEdit, QIcon.fromTheme('edit-select-all'),
            'Select &All', self._editSelectAll, 'Ctrl+A')
        action.setShortcutContext(Qt.WidgetShortcut)
        action = self._ADD_ACTION('Edit/Find', self._menuEdit, QIcon.fromTheme('edit-find'),
            '&Find', self._editFind, 'Ctrl+F')
        action.setShortcutContext(Qt.WidgetShortcut)

        self._menuFile.addSeparator()

        # View menu
        self._menuView = QMenu('&View', self)
        self._menuView.aboutToShow.connect(self._aboutToShowViewMenu)

        toolbarsMenu = QMenu('Toolbars', self._menuView)
        toolbarsMenu.aboutToShow.connect(self._aboutToShowtoolbarsMenu)
        sidebarMenu = QMenu('Sidebar', self._menuView)
        sidebarMenu.aboutToShow.connect(self._aboutToShowSidebarsMenu)
        encodingMenu = QMenu('Character &Encoding', self._menuView)
        encodingMenu.aboutToShow.connect(self._aboutToShowEncodingMenu)

        # Create menus to make shortcuts available event before first showing
        # the menu
        self._window.createToolbarsMenu(toolbarsMenu)
        self._window.createSidebarsMenu(sidebarMenu)

        self._menuView.addMenu(toolbarsMenu)
        self._menuView.addMenu(sidebarMenu)
        self._ADD_CHECKABLE_ACTION('View/ShowStatusBar', self._menuView, QIcon(),
            'Sta&tus Bar', self._showStatusBar, '')
        self._menuView.addSeparator()
        self._ADD_ACTION('View/Stop', self._menuView, QIcon.fromTheme('process-stop'),
            '&Stop', self._stop, 'Esc')
        self._ADD_ACTION('View/Reload', self._menuView, QIcon.fromTheme('view-refresh'),
            '&Reload', self._reload, 'F5')
        self._menuView.addSeparator()
        self._ADD_ACTION('View/ZoomIn', self._menuView, QIcon.fromTheme('zoom-in'),
            'Zoom &In', self._zoomIn, 'Ctrl++')
        self._ADD_ACTION('View/ZoomOut', self._menuView, QIcon.fromTheme('zoom-out'),
            'Zoom &Out', self._zoomOut, 'Ctrl+-')
        self._ADD_ACTION('View/ZoomReset', self._menuView, QIcon.fromTheme('zoom-original'),
            'Reset', self._zoomReset, 'Ctrl+0')
        self._menuView.addSeparator()
        self._menuView.addMenu(encodingMenu)
        self._menuView.addSeparator()
        action = self._ADD_ACTION('View/PageSource', self._menuView, QIcon.fromTheme('text-html'),
            '&Page Source', self._showPageSource, 'Ctrl+U')
        action.setShortcutContext(Qt.WidgetShortcut)
        self._ADD_CHECKABLE_ACTION('View/FullScreen', self._menuView, QIcon.fromTheme('view-fullscreen'),
            '&FullScreen', self._showFullScreen, 'F11')

        # Tool menu
        self._menuTools = QMenu('&Tools', self)
        self._menuTools.aboutToShow.connect(self._aboutToShowToolsMenu)

        self._ADD_ACTION('Tools/WebSearch', self._menuTools, QIcon.fromTheme('edit-find'),
            '&Web Search', self._webSearch, 'Ctrl+K')
        action = self._ADD_ACTION('Tools/SiteInfo', self._menuTools, QIcon.fromTheme('dialog-information'),
            'Site &Info', self._showSiteInfo, 'Ctrl+I')
        action.setShortcutContext(Qt.WidgetShortcut)
        self._menuTools.addSeparator()
        self._ADD_ACTION('Tools/DownloadManager', self._menuTools, QIcon.fromTheme('download'),
            '&Download Manager', self._showDownloadManager, 'Ctrl+Y')
        self._ADD_ACTION('Tools/CookiesManager', self._menuTools, QIcon(),
            '&Cookies Manager', self._showCookieManager, '')
        self._ADD_ACTION('Tools/WebInspector', self._menuTools, QIcon(),
            'Web In&spector', self._toggleWebInspector, 'Ctrl+Shift+I')
        self._ADD_ACTION('Tools/ClearRecentHistory', self._menuTools, QIcon.fromTheme('edit-clear'),
            'Clear Recent &History', self._showClearRecentHistoryDialog, 'Ctrl+Shift+Del')

        if not WebInspector.isEnabled():
            self._actions['Tools/WebInspector'].setVisible(False)

        self._submenuExtensions = QMenu('&Extensions', self)
        self._submenuExtensions.menuAction().setVisible(False)
        self._menuTools.addMenu(self._submenuExtensions)
        self._menuTools.addSeparator()

        # Help menu
        self._menuHelp = QMenu('&Help', self)

        # ifndef Q_OS_MACOS
        self._ADD_ACTION('Help/AboutQt', self._menuHelp, QIcon(),
            'About &Qt', self._aboutQt, '')
        self._menuHelp.addAction(self._actions['Standard/About'])
        self._menuHelp.addSeparator()
        # endif

        self._ADD_ACTION('Help/InfoAboutApp', self._menuHelp, QIcon.fromTheme('help-contents'),
            'Information about application', self._showInfoAboutApp, '')
        self._ADD_ACTION('Help/ConfigInfo', self._menuHelp, QIcon(),
            'Configuration Information', self._showConfigInfo, '')
        self._ADD_ACTION('Help/ReportIssue', self._menuHelp, QIcon(),
            'Report &Issue', self._reportIssue, '')

        self._actions['Help/InfoAboutApp'].setShortcut(QKeySequence(QKeySequence.HelpContents))

        # History menu
        self._menuHistory = HistoryMenu()
        self._menuHistory.setMainWindow(self._window)

        # Bookmarks menu
        self._menuBookmarks = BookmarksMenu()
        self._menuBookmarks.setMainWindow(self._window)

        # Other actions
        action = QAction(QIcon.fromTheme('user-trash'),
            'Restore &Closed Tab', self)
        action.setShortcut(QKeySequence('Ctrl+Shift+T'))
        action.triggered.connect(self._restoreClosedTab)
        self._actions['Other/RestoreClosedTab'] = action

        # # ifdef Q_OS_MACOS
        # self._actions['View/FullScreen'].setShortcut(QKeySequence('Ctrl+Meta+F'))
        # # Add standard actions to File Menu (as it won't be ever cleared) and
        # # Mac menubar should move them to "Application" menu
        # self._menuFile.addAction(self._actions['Standard/About'])
        # self._menuFile.addAction(self._actions['Standard/Preferences'])

        # # Prevent ConfigInfo action to be detected as "Preferences..." action in
        # # Mac
        # self._actions['Help/ConfigInfo'].setMenuRole(QAction.NoRole)

        # # Create Dock Menu
        # dockMenu = QMenu(0)
        # dockMenu.addAction(self._actions['File/NewTab'])
        # dockMenu.addAction(self._actions['File/NewWindow'])
        # dockMenu.addAction(self._actions['File/NewPrivateWindow'])
        # qt_mac_set_dock_menu(dockMenu)
        # # endif

        if const.OS_UNIX and not const.OS_MACOS:
            self._menuEdit.addAction(self._actions['Standard/Preferences'])
        elif not const.OS_MACOS:
            self._menuTools.addAction(self._actions['Standard/Preferences'])

        self._addActionsToWindow()