eric7/E5Gui/EricAction.py

branch
eric7
changeset 8358
144a6b854f70
parent 8357
a081458cc57b
child 8359
0e29e54e9269
--- a/eric7/E5Gui/EricAction.py	Sat May 22 19:52:34 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2006 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an Action class extending QAction.
-
-This extension is necessary in order to support alternate keyboard
-shortcuts.
-"""
-
-from PyQt6.QtGui import QIcon, QKeySequence, QAction, QActionGroup
-
-from E5Gui.EricApplication import ericApp
-
-
-class ArgumentsError(RuntimeError):
-    """
-    Class implementing an exception, which is raised, if the wrong number of
-    arguments are given.
-    """
-    def __init__(self, error):
-        """
-        Constructor
-        
-        @param error error message of the exception (string)
-        """
-        self.errorMessage = str(error)
-        
-    def __repr__(self):
-        """
-        Special method returning a representation of the exception.
-        
-        @return string representing the error message
-        """
-        return str(self.errorMessage)
-        
-    def __str__(self):
-        """
-        Special method returning a string representation of the exception.
-        
-        @return string representing the error message
-        """
-        return str(self.errorMessage)
-
-
-class EricAction(QAction):
-    """
-    Class implementing an Action class extending QAction.
-    """
-    def __init__(self, *args):
-        """
-        Constructor
-        
-        @param args argument list of the constructor. This list is one of
-            <ul>
-            <li>text (string), icon (QIcon), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string), toggle
-                (boolean)</li>
-            <li>text (string), icon (QIcon), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string)</li>
-            <li>text (string), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string), toggle
-                (boolean)</li>
-            <li>text (string), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string)</li>
-            </ul>
-        @exception ArgumentsError raised to indicate invalid arguments
-        """
-        if isinstance(args[1], QIcon):
-            icon = args[1]
-            incr = 1
-        else:
-            icon = None
-            incr = 0
-        if len(args) < 6 + incr:
-            raise ArgumentsError(
-                "Not enough arguments, {0:d} expected, got {1:d}".format(
-                    6 + incr, len(args)))
-        elif len(args) > 7 + incr:
-            raise ArgumentsError(
-                "Too many arguments, max. {0:d} expected, got {1:d}".format(
-                    7 + incr, len(args)))
-            
-        parent = args[4 + incr]
-        super().__init__(parent)
-        name = args[5 + incr]
-        if name:
-            self.setObjectName(name)
-        
-        if args[1 + incr]:
-            self.setText(args[1 + incr])
-        
-        if args[0]:
-            self.setIconText(args[0])
-        if args[2 + incr]:
-            self.setShortcut(QKeySequence(args[2 + incr]))
-        
-        if args[3 + incr]:
-            self.setAlternateShortcut(QKeySequence(args[3 + incr]))
-        
-        if icon:
-            self.setIcon(icon)
-        
-        if len(args) == 7 + incr:
-            self.setCheckable(args[6 + incr])
-        
-        self.__ammendToolTip()
-        
-    def setAlternateShortcut(self, shortcut, removeEmpty=False):
-        """
-        Public slot to set the alternative keyboard shortcut.
-        
-        @param shortcut the alternative accelerator (QKeySequence)
-        @param removeEmpty flag indicating to remove the alternate shortcut,
-            if it is empty (boolean)
-        """
-        if not shortcut.isEmpty():
-            shortcuts = self.shortcuts()
-            if len(shortcuts) > 0:
-                if len(shortcuts) == 1:
-                    shortcuts.append(shortcut)
-                else:
-                    shortcuts[1] = shortcut
-                self.setShortcuts(shortcuts)
-        elif removeEmpty:
-            shortcuts = self.shortcuts()
-            if len(shortcuts) == 2:
-                del shortcuts[1]
-                self.setShortcuts(shortcuts)
-        
-    def alternateShortcut(self):
-        """
-        Public method to retrieve the alternative keyboard shortcut.
-        
-        @return the alternative accelerator (QKeySequence)
-        """
-        shortcuts = self.shortcuts()
-        if len(shortcuts) < 2:
-            return QKeySequence()
-        else:
-            return shortcuts[1]
-        
-    def setShortcut(self, shortcut):
-        """
-        Public slot to set the keyboard shortcut.
-        
-        @param shortcut the accelerator (QKeySequence)
-        """
-        super().setShortcut(shortcut)
-        self.__ammendToolTip()
-        
-    def setShortcuts(self, shortcuts):
-        """
-        Public slot to set the list of keyboard shortcuts.
-        
-        @param shortcuts list of keyboard accelerators (list of QKeySequence)
-            or key for a platform dependent list of accelerators
-            (QKeySequence.StandardKey)
-        """
-        super().setShortcuts(shortcuts)
-        self.__ammendToolTip()
-        
-    def setIconText(self, text):
-        """
-        Public slot to set the icon text of the action.
-        
-        @param text new icon text (string)
-        """
-        super().setIconText(text)
-        self.__ammendToolTip()
-        
-    def __ammendToolTip(self):
-        """
-        Private slot to add the primary keyboard accelerator to the tooltip.
-        """
-        shortcut = self.shortcut().toString(
-            QKeySequence.SequenceFormat.NativeText)
-        if shortcut:
-            if ericApp().isLeftToRight():
-                fmt = "{0} ({1})"
-            else:
-                fmt = "({1}) {0}"
-            self.setToolTip(fmt.format(self.iconText(), shortcut))
-
-
-def addActions(target, actions):
-    """
-    Module function to add a list of actions to a widget.
-    
-    @param target reference to the target widget (QWidget)
-    @param actions list of actions to be added to the target. A
-        None indicates a separator (list of QActions)
-    """
-    if target is None:
-        return
-    
-    for action in actions:
-        if action is None:
-            target.addSeparator()
-        else:
-            target.addAction(action)
-
-
-def createActionGroup(parent, name=None, exclusive=False):
-    """
-    Module function to create an action group.
-    
-    @param parent parent object of the action group (QObject)
-    @param name name of the action group object (string)
-    @param exclusive flag indicating an exclusive action group (boolean)
-    @return reference to the created action group (QActionGroup)
-    """
-    actGrp = QActionGroup(parent)
-    if name:
-        actGrp.setObjectName(name)
-    actGrp.setExclusive(exclusive)
-    return actGrp

eric ide

mercurial