PluginColorString.py

Tue, 20 Dec 2022 17:41:13 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 20 Dec 2022 17:41:13 +0100
branch
eric7
changeset 60
c3b4907111e7
parent 58
80dfe684353a
child 61
5a4cb531054c
permissions
-rw-r--r--

Resorted imports with isort.

1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
55
43b616631f94 Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 51
diff changeset
3 # Copyright (c) 2014 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the 'Color String' tool plug-in.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
45
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
10 import contextlib
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11 import os
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
12
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
13 from PyQt6.QtCore import QObject, QTranslator
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
14 from PyQt6.QtGui import QColor
60
c3b4907111e7 Resorted imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 58
diff changeset
15 from PyQt6.QtWidgets import QColorDialog, QDialog, QMenu
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
16
58
80dfe684353a Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
17 from eric7.EricWidgets import EricMessageBox
80dfe684353a Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
18 from eric7.EricWidgets.EricApplication import ericApp
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20 # Start-Of-Header
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 name = "Color String Plug-in"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23 autoactivate = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 deactivateable = True
58
80dfe684353a Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
25 version = "10.1.0"
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 className = "ColorStringPlugin"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 packageName = "ColorString"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 shortDescription = "Insert color as string"
40
e0086d2cb15d Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
29 longDescription = (
e0086d2cb15d Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
30 """This plug-in implements a tool to select a color via a"""
e0086d2cb15d Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
31 """ color selection dialog and insert it as a hex string at the"""
e0086d2cb15d Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
32 """ current cursor position. Selected text is used to initialize"""
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 """ the dialog and is replaced with the new color."""
40
e0086d2cb15d Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
34 )
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 needsRestart = False
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36 pyqtApi = 2
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37 # End-Of-Header
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39 error = ""
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42 class ColorStringPlugin(QObject):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 Class implementing the 'Color String' tool plug-in.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 """
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
46
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47 def __init__(self, ui):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49 Constructor
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
50
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
51 @param ui reference to the user interface object
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
52 @type UserInterface
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 """
45
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
54 super().__init__(ui)
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
55 self.__ui = ui
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
56
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
57 self.__translator = None
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
58 self.__loadTranslator()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
59
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
60 self.__initMenu()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
61
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
62 self.__editors = {}
25
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
63 self.__mainActions = []
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
64
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65 def activate(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
66 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 Public method to activate this plugin.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
68
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
69 @return tuple of None and activation status
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
70 @rtype tuple of (None, bool)
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
71 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72 global error
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
73 error = "" # clear previous error
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
74
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 self.__ui.showMenu.connect(self.__populateMenu)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
76
25
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
77 menu = self.__ui.getMenu("plugin_tools")
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
78 if menu is not None:
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
79 if not menu.isEmpty():
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
80 act = menu.addSeparator()
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
81 self.__mainActions.append(act)
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
82 act = menu.addMenu(self.__menu)
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
83 self.__mainActions.append(act)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
84
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
85 ericApp().getObject("ViewManager").editorOpenedEd.connect(self.__editorOpened)
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
86 ericApp().getObject("ViewManager").editorClosedEd.connect(self.__editorClosed)
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
87
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
88 for editor in ericApp().getObject("ViewManager").getOpenEditors():
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 self.__editorOpened(editor)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
90
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91 return None, True
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
92
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 def deactivate(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
94 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
95 Public method to deactivate this plugin.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
96 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
97 self.__ui.showMenu.disconnect(self.__populateMenu)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
98
25
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
99 menu = self.__ui.getMenu("plugin_tools")
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
100 if menu is not None:
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
101 for act in self.__mainActions:
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
102 menu.removeAction(act)
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
103 self.__mainActions = []
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
104
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
105 ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
106 self.__editorOpened
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
107 )
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
108 ericApp().getObject("ViewManager").editorClosedEd.disconnect(
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
109 self.__editorClosed
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
110 )
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
111
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112 for editor, acts in self.__editors.items():
18
a1e72b3e06cc Bug fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
113 editor.showMenu.disconnect(self.__editorShowMenu)
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
114 menu = editor.getMenu("Tools")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
115 if menu is not None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
116 for act in acts:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
117 menu.removeAction(act)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118 self.__editors = {}
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
119
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 def __loadTranslator(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
122 Private method to load the translation file.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124 if self.__ui is not None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125 loc = self.__ui.getLocale()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
126 if loc and loc != "C":
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 locale_dir = os.path.join(
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
128 os.path.dirname(__file__), "ColorString", "i18n"
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
129 )
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 translation = "colorstring_{0}".format(loc)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131 translator = QTranslator(None)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
132 loaded = translator.load(translation, locale_dir)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
133 if loaded:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134 self.__translator = translator
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
135 ericApp().installTranslator(self.__translator)
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 else:
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
137 print(
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
138 "Warning: translation file '{0}' could not be"
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
139 " loaded.".format(translation)
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
140 )
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141 print("Using default.")
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
142
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143 def __initMenu(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 Private method to initialize the menu.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 """
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
147 self.__menu = QMenu(self.tr("Color String"))
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
148 self.__menu.addAction(self.tr("Hex Color"), self.__selectHexColor)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
149 self.__menu.addAction(self.tr("Color Name"), self.__selectColorName)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
150 self.__menu.addAction(self.tr("RGBA Color"), self.__selectRgbaColor)
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
151 self.__menu.setEnabled(False)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
152
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 def __populateMenu(self, name, menu):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
155 Private slot to populate the tools menu with our entry.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
156
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
157 @param name name of the menu
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
158 @type str
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
159 @param menu reference to the menu to be populated
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
160 @type QMenu
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
161 """
25
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
162 if name not in ["Tools", "PluginTools"]:
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163 return
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
164
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
165 editor = ericApp().getObject("ViewManager").activeWindow()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
166
25
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
167 if name == "Tools":
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
168 if not menu.isEmpty():
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
169 menu.addSeparator()
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
170 act = menu.addMenu(self.__menu)
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
171 act.setEnabled(editor is not None)
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
172 elif name == "PluginTools" and self.__mainActions:
cf10856f55de Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 23
diff changeset
173 self.__mainActions[-1].setEnabled(editor is not None)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
174
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175 def __editorOpened(self, editor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
176 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
177 Private slot called, when a new editor was opened.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
178
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
179 @param editor reference to the new editor
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
180 @type Editor
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
181 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
182 menu = editor.getMenu("Tools")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
183 if menu is not None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 self.__editors[editor] = []
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185 if not menu.isEmpty():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
186 act = menu.addSeparator()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
187 self.__editors[editor].append(act)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
188 act = menu.addMenu(self.__menu)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
189 self.__menu.setEnabled(True)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
190 self.__editors[editor].append(act)
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
191 editor.showMenu.connect(self.__editorShowMenu)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
192
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
193 def __editorClosed(self, editor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
194 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
195 Private slot called, when an editor was closed.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
196
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
197 @param editor reference to the editor
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
198 @type Editor
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
199 """
45
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
200 with contextlib.suppress(KeyError):
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
201 del self.__editors[editor]
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
202 if not self.__editors:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
203 self.__menu.setEnabled(False)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
204
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
205 def __editorShowMenu(self, menuName, menu, editor):
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
206 """
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
207 Private slot called, when the the editor context menu or a submenu is
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
208 about to be shown.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
209
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
210 @param menuName name of the menu to be shown
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
211 @type str
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
212 @param menu reference to the menu
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
213 @type QMenu
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
214 @param editor reference to the editor
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
215 @type Editor
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
216 """
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
217 if menuName == "Tools" and self.__menu.menuAction() not in menu.actions():
45
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
218 # Re-add our menu
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
219 self.__editors[editor] = []
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
220 if not menu.isEmpty():
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
221 act = menu.addSeparator()
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
222 self.__editors[editor].append(act)
45
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
223 act = menu.addMenu(self.__menu)
1ba3620cae56 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
224 self.__editors[editor].append(act)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
225
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
226 def __isHexString(self, text):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
227 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
228 Private method to check, if a given text is a hex string.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
229
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
230 @param text text to check
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
231 @type str
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
232 @return flag indicating a hex string
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
233 @rtype bool
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
234 """
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
235 return all(c in "0123456789abcdefABCDEF" for c in text)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
236
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
237 def __isValidColor(self, name):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
238 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 Private method to check for a valid color name.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
240
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
241 @param name color name to check
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
242 @type str
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
243 @return flag indicating a valid color name
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
244 @rtype bool
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
245 """
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
246 if self.__isHexString(name) and len(name) in (3, 6, 8, 9, 12):
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
247 return True
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
248 return QColor.isValidColor(name)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
249
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
250 def __selectHexColor(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
251 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
252 Private slot implementing the hex color string selection.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
253 """
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
254 editor = ericApp().getObject("ViewManager").activeWindow()
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
255 if editor is None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
256 return
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
257
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
258 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
259 currColor = editor.selectedText()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
260 if not self.__isValidColor(currColor):
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
261 EricMessageBox.critical(
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
262 self.__ui,
11
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
263 self.tr("Color String"),
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
264 self.tr(
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
265 """<p>The selected string <b>{0}</b> is not a"""
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
266 """ valid color string. Aborting!</p>"""
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
267 ).format(currColor),
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
268 )
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
269 return
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
270
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
271 if currColor.startswith("#"):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
272 withHash = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
273 elif self.__isHexString(currColor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
274 withHash = False
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
275 currColor = "#" + currColor
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
276 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
277 withHash = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
278 initColor = QColor(currColor)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
279 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
280 withHash = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
281 currColor = ""
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
282 initColor = QColor()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
283
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
284 color = QColorDialog.getColor(
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
285 initColor,
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
286 self.__ui,
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
287 self.tr("Color String"),
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
288 QColorDialog.ColorDialogOption.ShowAlphaChannel,
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
289 )
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
290 if color.isValid():
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
291 if color.alpha() == 255:
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
292 nameFormat = QColor.NameFormat.HexRgb
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
293 else:
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
294 nameFormat = QColor.NameFormat.HexArgb
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
295 colorStr = color.name(nameFormat)
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
296 if not withHash:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
297 colorStr = colorStr[1:]
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
298 editor.beginUndoAction()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
299 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
300 editor.replaceSelectedText(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
301 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
302 line, index = editor.getCursorPosition()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
303 editor.insert(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
304 editor.setCursorPosition(line, index + len(colorStr))
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
305 editor.endUndoAction()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
306
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
307 def __selectColorName(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
308 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
309 Private slot implementing the named color string selection.
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
310 """
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
311 editor = ericApp().getObject("ViewManager").activeWindow()
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
312 if editor is None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
313 return
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
314
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
315 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
316 currColor = editor.selectedText()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
317 if currColor not in QColor.colorNames():
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
318 EricMessageBox.critical(
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
319 self.__ui,
11
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
320 self.tr("Color String"),
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
321 self.tr(
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
322 """<p>The selected string <b>{0}</b> is not a"""
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
323 """ valid color name. Aborting!</p>"""
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
324 ).format(currColor),
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
325 )
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
326 return
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
327 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
328 currColor = ""
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
329
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
330 from ColorString.ColorSelectionDialog import ColorSelectionDialog
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
331
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
332 dlg = ColorSelectionDialog(currColor, self.__ui)
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
333 if dlg.exec() == QDialog.DialogCode.Accepted:
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
334 colorStr = dlg.getColor()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
335 editor.beginUndoAction()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
336 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
337 editor.replaceSelectedText(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
338 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
339 line, index = editor.getCursorPosition()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
340 editor.insert(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
341 editor.setCursorPosition(line, index + len(colorStr))
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
342 editor.endUndoAction()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
343
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
344 def __selectRgbaColor(self):
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
345 """
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
346 Private slot implementing the RGBA color string selection.
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
347 """
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
348 editor = ericApp().getObject("ViewManager").activeWindow()
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
349 if editor is None:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
350 return
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
351
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
352 if editor.hasSelectedText():
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
353 currColor = editor.selectedText()
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
354 valid, rgba = self.__isValidRgbaColor(currColor)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
355 if not valid:
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
356 EricMessageBox.critical(
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
357 self.__ui,
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
358 self.tr("Color String"),
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
359 self.tr(
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
360 """<p>The selected string <b>{0}</b> is not a"""
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
361 """ valid RGBA color string. Aborting!</p>"""
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
362 ).format(currColor),
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
363 )
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
364 return
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
365 initColor = QColor(*rgba)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
366 else:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
367 initColor = QColor()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
368
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
369 color = QColorDialog.getColor(
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
370 initColor,
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
371 self.__ui,
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
372 self.tr("Color String"),
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
373 QColorDialog.ColorDialogOption.ShowAlphaChannel,
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
374 )
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
375 if color.isValid():
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
376 rgba = color.getRgb()
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
377 if rgba[-1] == 255:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
378 colorStr = "{0}, {1}, {2}".format(*rgba[:-1])
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
379 else:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
380 colorStr = "{0}, {1}, {2}, {3}".format(*rgba)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
381 editor.beginUndoAction()
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
382 if editor.hasSelectedText():
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
383 editor.replaceSelectedText(colorStr)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
384 else:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
385 line, index = editor.getCursorPosition()
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
386 editor.insert(colorStr)
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
387 editor.setCursorPosition(line, index + len(colorStr))
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
388 editor.endUndoAction()
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
389
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
390 def __isValidRgbaColor(self, color):
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
391 """
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
392 Private method to check for a valid RGBA color.
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
393
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
394 @param color color string to check
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
395 @type str
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
396 @return flag indicating a valid RGBA color (boolean) and a list with
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
397 the RGBA components of the color (three or four integers)
48
e35a2acef5b8 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
398 @rtype tuple of (bool, [int, int, int]) or (bool, [int, int, int, int])
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
399 """
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
400 rgba = []
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
401
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
402 parts = color.split(",")
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
403 if len(parts) not in [3, 4]:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
404 return False, []
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
405
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
406 for part in parts:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
407 try:
51
c02cbedf626d First release for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
408 c = int(float(part)) if "." in part else int(part)
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
409 except ValueError:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
410 return False, []
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
411
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
412 if c < 0 or c > 255:
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
413 return False, []
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
414
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
415 rgba.append(c)
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
416
20
ffe2ec016dfb Added entry for RGBA color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
417 return True, rgba
35
72225d6b363a Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
418
57
b633598e2e67 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
419
35
72225d6b363a Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
420 #
72225d6b363a Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
421 # eflag: noqa = M801

eric ide

mercurial