PluginColorString.py

Thu, 16 Dec 2021 17:55:14 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 16 Dec 2021 17:55:14 +0100
branch
eric7
changeset 51
c02cbedf626d
parent 48
e35a2acef5b8
child 55
43b616631f94
permissions
-rw-r--r--

First release for eric7.

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

eric ide

mercurial