PluginColorString.py

Fri, 02 Jan 2015 20:19:55 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 02 Jan 2015 20:19:55 +0100
changeset 18
a1e72b3e06cc
parent 17
b8fac5c059fb
child 20
ffe2ec016dfb
permissions
-rw-r--r--

Bug fix.

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
16
126fc3a16ebf Updated copyright for 2015.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
3 # Copyright (c) 2014 - 2015 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
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
10 from __future__ import unicode_literals
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
12 import os
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13
11
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
14 from PyQt5.QtCore import QObject, QTranslator
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
15 from PyQt5.QtGui import QColor
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
16 from PyQt5.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
17
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
18 from E5Gui.E5Application import e5App
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19 from E5Gui import E5MessageBox
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 # Start-Of-Header
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 name = "Color String Plug-in"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23 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
24 autoactivate = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 deactivateable = True
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
26 version = "2.0.1"
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 className = "ColorStringPlugin"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 packageName = "ColorString"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
29 shortDescription = "Insert color as string"
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 longDescription = \
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 """This plug-in implements a tool to select a color via a""" \
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 """ color selection dialog and insert it as a hex string at the""" \
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 """ current cursor position. Selected text is used to initialize""" \
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 """ the dialog and is replaced with the new color."""
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
8
ba338747008c Released as stable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
37 python2Compatible = True
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38 # End-Of-Header
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40 error = ""
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
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43 class ColorStringPlugin(QObject):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 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
46 """
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
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
50
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
51 @param ui reference to the user interface object (UI.UserInterface)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 QObject.__init__(self, ui)
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 = {}
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
62
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
63 def activate(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
64 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65 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
66
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 @return tuple of None and activation status (boolean)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
68 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
69 global error
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
70 error = "" # clear previous error
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 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
73
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
74 e5App().getObject("ViewManager").editorOpenedEd.connect(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 self.__editorOpened)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76 e5App().getObject("ViewManager").editorClosedEd.connect(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 self.__editorClosed)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 for editor in e5App().getObject("ViewManager").getOpenEditors():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 self.__editorOpened(editor)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
81
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 return None, True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 def deactivate(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86 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
87 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 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
89
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 e5App().getObject("ViewManager").editorOpenedEd.disconnect(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91 self.__editorOpened)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92 e5App().getObject("ViewManager").editorClosedEd.disconnect(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 self.__editorClosed)
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 for editor, acts in self.__editors.items():
18
a1e72b3e06cc Bug fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 17
diff changeset
96 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
97 menu = editor.getMenu("Tools")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
98 if menu is not None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 for act in acts:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 menu.removeAction(act)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101 self.__editors = {}
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 def __loadTranslator(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
105 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
106 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
107 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
108 loc = self.__ui.getLocale()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109 if loc and loc != "C":
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
110 locale_dir = os.path.join(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
111 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
112 translation = "colorstring_{0}".format(loc)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 translator = QTranslator(None)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
114 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
115 if loaded:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
116 self.__translator = translator
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
117 e5App().installTranslator(self.__translator)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 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
120 " loaded.".format(translation))
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 print("Using default.")
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 def __initMenu(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125 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
126 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 self.__menu = QMenu("Color String")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 self.__menu.addAction("Hex Color", self.__selectHexColor)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
129 self.__menu.addAction("Color Name", self.__selectColorName)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 self.__menu.setEnabled(False)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
132 def __populateMenu(self, name, menu):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
133 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134 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
135
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 @param name name of the menu (string)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137 @param menu reference to the menu to be populated (QMenu)
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 if name != "Tools":
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
140 return
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
142 if not menu.isEmpty():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143 menu.addSeparator()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 menu.addMenu(self.__menu)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 def __editorOpened(self, editor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148 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
149
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
150 @param editor reference to the new editor (QScintilla.Editor)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
151 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
152 menu = editor.getMenu("Tools")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 if menu is not None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 self.__editors[editor] = []
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
155 if not menu.isEmpty():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
156 act = menu.addSeparator()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
157 self.__editors[editor].append(act)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 act = menu.addMenu(self.__menu)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
159 self.__menu.setEnabled(True)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
160 self.__editors[editor].append(act)
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
161 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
162
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163 def __editorClosed(self, editor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
164 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
165 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
166
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
167 @param editor reference to the editor (QScintilla.Editor)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
168 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
169 try:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
170 del self.__editors[editor]
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
171 if not self.__editors:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
172 self.__menu.setEnabled(False)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
173 except KeyError:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
174 pass
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
175
17
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
176 def __editorShowMenu(self, menuName, menu, editor):
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
177 """
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
178 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
179 about to be shown.
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
180
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
181 @param menuName name of the menu to be shown (string)
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
182 @param menu reference to the menu (QMenu)
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
183 @param editor reference to the editor
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
184 """
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
185 if menuName == "Tools":
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
186 if self.__menu.menuAction() not in menu.actions():
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
187 # Re-add our menu
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
188 self.__editors[editor] = []
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
189 if not menu.isEmpty():
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
190 act = menu.addSeparator()
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
191 self.__editors[editor].append(act)
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
192 act = menu.addMenu(self.__menu)
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
193 self.__editors[editor].append(act)
b8fac5c059fb Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
194
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
195 def __isHexString(self, text):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
196 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
197 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
198
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
199 @param text text to check (string)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
200 @return flag indicating a hex string (boolean)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
201 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
202 isHex = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
203 for c in text:
11
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
204 isHex = isHex and c in "0123456789abcdefABCDEF"
1
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
205 return isHex
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
206
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
207 def __isValidColor(self, name):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
208 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
209 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
210
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
211 @param name color name to check (string)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
212 @return flag indicating a valid color name (boolean)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
213 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
214 try:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
215 if self.__isHexString(name) and len(name) in [3, 6, 9, 12]:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
216 return True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
217 return QColor.isValidColor(name)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
218 except AttributeError:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
219 if name.startswith("#"):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
220 if len(name) not in [4, 7, 10, 13]:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
221 return False
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
222 hexCheckStr = name[1:]
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
223 return self.__isHexString(hexCheckStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
224 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
225 if self.__isHexString(name) and len(name) in [3, 6, 9, 12]:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
226 return True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
227 return name in QColor.colorNames()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
228
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
229 def __selectHexColor(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
230 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
231 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
232 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
233 editor = e5App().getObject("ViewManager").activeWindow()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
234 if editor is None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
235 return
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
236
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
237 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
238 currColor = editor.selectedText()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 if not self.__isValidColor(currColor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
240 E5MessageBox.critical(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
241 self.__ui,
11
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
242 self.tr("Color String"),
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
243 self.tr(
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
244 """<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
245 """ valid color string. Aborting!</p>""")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
246 .format(currColor))
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
247 return
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 if currColor.startswith("#"):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
250 withHash = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
251 elif self.__isHexString(currColor):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
252 withHash = False
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
253 currColor = "#" + currColor
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
254 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
255 withHash = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
256 initColor = QColor(currColor)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
257 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
258 withHash = True
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
259 currColor = ""
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
260 initColor = QColor()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
261
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
262 color = QColorDialog.getColor(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
263 initColor, self.__ui, self.tr("Color String"))
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
264 if color.isValid():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
265 colorStr = color.name()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
266 if not withHash:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
267 colorStr = colorStr[1:]
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
268 editor.beginUndoAction()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
269 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
270 editor.replaceSelectedText(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
271 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
272 line, index = editor.getCursorPosition()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
273 editor.insert(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
274 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
275 editor.endUndoAction()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
276
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
277 def __selectColorName(self):
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
278 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
279 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
280 """
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
281 editor = e5App().getObject("ViewManager").activeWindow()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
282 if editor is None:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
283 return
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
284
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
285 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
286 currColor = editor.selectedText()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
287 if currColor not in QColor.colorNames():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
288 E5MessageBox.critical(
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
289 self.__ui,
11
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
290 self.tr("Color String"),
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
291 self.tr(
3b7ec819a55d Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
292 """<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
293 """ valid color name. Aborting!</p>""")
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
294 .format(currColor))
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
295 return
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 currColor = ""
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
298
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
299 from ColorString.ColorSelectionDialog import ColorSelectionDialog
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
300 dlg = ColorSelectionDialog(currColor, self.__ui)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
301 if dlg.exec_() == QDialog.Accepted:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
302 colorStr = dlg.getColor()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
303 editor.beginUndoAction()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
304 if editor.hasSelectedText():
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
305 editor.replaceSelectedText(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
306 else:
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
307 line, index = editor.getCursorPosition()
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
308 editor.insert(colorStr)
e1f013dc03bb Finished implementation of the 'color string' plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
309 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
310 editor.endUndoAction()

eric ide

mercurial