Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py

Sat, 08 Mar 2014 20:09:41 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 08 Mar 2014 20:09:41 +0100
changeset 3345
071afe8be2a1
parent 3213
95fbeca03619
child 3484
645c12de6b0c
permissions
-rw-r--r--

Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.

2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
3160
209a07d7e401 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3119
diff changeset
3 # Copyright (c) 2013 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the QRegularExpression wizard dialog.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import re
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
12 import sys
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
13 import json
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
3213
95fbeca03619 Fixed a wrong behavior of the QRegularExpression wizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
15 from PyQt4.QtCore import QFileInfo, pyqtSlot, QProcess, QByteArray
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
16 from PyQt4.QtGui import QWidget, QDialog, QInputDialog, QApplication, \
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
17 QClipboard, QTextCursor, QDialogButtonBox, QVBoxLayout, QTableWidgetItem
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 from E5Gui import E5MessageBox, E5FileDialog
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from E5Gui.E5MainWindow import E5MainWindow
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
22 from .Ui_QRegularExpressionWizardDialog import \
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
23 Ui_QRegularExpressionWizardDialog
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 import UI.PixmapCache
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 import Utilities
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 import Preferences
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
31 class QRegularExpressionWizardWidget(QWidget,
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
32 Ui_QRegularExpressionWizardDialog):
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Class implementing the QRegularExpression wizard dialog.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 def __init__(self, parent=None, fromEric=True):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Constructor
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @param parent parent widget (QWidget)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param fromEric flag indicating a call from within eric5
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 super().__init__(parent)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.setupUi(self)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 # initialize icons of the tool buttons
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.commentButton.setIcon(UI.PixmapCache.getIcon("comment.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.charButton.setIcon(UI.PixmapCache.getIcon("characters.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.anycharButton.setIcon(UI.PixmapCache.getIcon("anychar.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.repeatButton.setIcon(UI.PixmapCache.getIcon("repeat.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.nonGroupButton.setIcon(UI.PixmapCache.getIcon("nongroup.png"))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
52 self.atomicGroupButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
53 UI.PixmapCache.getIcon("atomicgroup.png"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.groupButton.setIcon(UI.PixmapCache.getIcon("group.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.namedGroupButton.setIcon(UI.PixmapCache.getIcon("namedgroup.png"))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
56 self.namedReferenceButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
57 UI.PixmapCache.getIcon("namedreference.png"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.altnButton.setIcon(UI.PixmapCache.getIcon("altn.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.beglineButton.setIcon(UI.PixmapCache.getIcon("begline.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.endlineButton.setIcon(UI.PixmapCache.getIcon("endline.png"))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
61 self.wordboundButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
62 UI.PixmapCache.getIcon("wordboundary.png"))
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
63 self.nonwordboundButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
64 UI.PixmapCache.getIcon("nonwordboundary.png"))
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
65 self.poslookaheadButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
66 UI.PixmapCache.getIcon("poslookahead.png"))
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
67 self.neglookaheadButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
68 UI.PixmapCache.getIcon("neglookahead.png"))
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
69 self.poslookbehindButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
70 UI.PixmapCache.getIcon("poslookbehind.png"))
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
71 self.neglookbehindButton.setIcon(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
72 UI.PixmapCache.getIcon("neglookbehind.png"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.undoButton.setIcon(UI.PixmapCache.getIcon("editUndo.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.redoButton.setIcon(UI.PixmapCache.getIcon("editRedo.png"))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.namedGroups = re.compile(r"""\(?P<([^>]+)>""").findall
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
78 # start the PyQt5 server part
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
79 self.__pyqt5Available = False
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
80 self.__pyqt5Server = QProcess(self)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
81 self.__pyqt5Server.start(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
82 sys.executable, [os.path.join(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
83 os.path.dirname(__file__), "QRegularExpressionWizardServer.py")
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
84 ])
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2770
diff changeset
85 if self.__pyqt5Server.waitForStarted(5000):
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
86 self.__pyqt5Server.setReadChannel(QProcess.StandardOutput)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
87 if self.__sendCommand("available"):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
88 response = self.__receiveResponse()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
89 if response and response["available"]:
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
90 self.__pyqt5Available = True
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
91
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
92 self.saveButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
93 self.tr("Save"), QDialogButtonBox.ActionRole)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
94 self.saveButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
95 self.tr("Save the regular expression to a file"))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
96 self.loadButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
97 self.tr("Load"), QDialogButtonBox.ActionRole)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
98 self.loadButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
99 self.tr("Load a regular expression from a file"))
3213
95fbeca03619 Fixed a wrong behavior of the QRegularExpression wizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
100 if self.__pyqt5Available:
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 self.validateButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
102 self.tr("Validate"), QDialogButtonBox.ActionRole)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
103 self.validateButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
104 self.tr("Validate the regular expression"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.executeButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
106 self.tr("Execute"), QDialogButtonBox.ActionRole)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
107 self.executeButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
108 self.tr("Execute the regular expression"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.nextButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
110 self.tr("Next match"), QDialogButtonBox.ActionRole)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.nextButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
112 self.tr("Show the next match of the regular expression"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.nextButton.setEnabled(False)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 else:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.validateButton = None
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.executeButton = None
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.nextButton = None
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 if fromEric:
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
120 self.buttonBox.setStandardButtons(
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
121 QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 self.copyButton = None
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
124 self.copyButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
125 self.tr("Copy"), QDialogButtonBox.ActionRole)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 self.copyButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
127 self.tr("Copy the regular expression to the clipboard"))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
128 self.buttonBox.setStandardButtons(QDialogButtonBox.Close)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 self.variableLabel.hide()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 self.variableLineEdit.hide()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.variableLine.hide()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.regexpTextEdit.setFocus()
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
133
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
134 def __sendCommand(self, command, **kw):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
135 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
136 Private method to send a command to the PyQt5 server.
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
137
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
138 @param command dictionary with command string and related
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
139 data (dict)
2964
84b65fb9e780 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2893
diff changeset
140 @keyparam kw parameters for the command
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
141 @return flag indicating a successful transmission (boolean)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
142 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
143 result = False
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
144 if command:
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
145 commandDict = {"command": command}
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
146 commandDict.update(kw)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
147 commandStr = json.dumps(commandDict) + "\n"
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
148 data = QByteArray(commandStr.encode("utf-8"))
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
149 self.__pyqt5Server.write(data)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
150 result = self.__pyqt5Server.waitForBytesWritten(10000)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
151 return result
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
152
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
153 def __receiveResponse(self):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
154 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
155 Private method to receive a response from the PyQt5 server.
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
156
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
157 @return response dictionary (dict)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
158 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
159 responseDict = {}
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
160 if self.__pyqt5Server.waitForReadyRead(10000):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
161 data = bytes(self.__pyqt5Server.readAllStandardOutput())
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
162 responseStr = data.decode("utf-8")
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
163 responseDict = json.loads(responseStr)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
164 if responseDict["error"]:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
165 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
166 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
167 self.tr("Communication Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
168 self.tr("""<p>The PyQt5 backend reported"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
169 """ an error.</p><p>{0}</p>""")
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
170 .format(responseDict["error"]))
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
171 responseDict = {}
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
172
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
173 return responseDict
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
174
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
175 def shutdown(self):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
176 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
177 Public method to shut down the PyQt5 server part.
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
178 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
179 self.__sendCommand("exit")
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
180 self.__pyqt5Server.waitForFinished(5000)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
181
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 def __insertString(self, s, steps=0):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 Private method to insert a string into line edit and move cursor.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 @param s string to be inserted into the regexp line edit
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 (string)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 @param steps number of characters to move the cursor (integer).
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 Negative steps moves cursor back, positives forward.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 self.regexpTextEdit.insertPlainText(s)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 tc = self.regexpTextEdit.textCursor()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 if steps != 0:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 if steps < 0:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 act = QTextCursor.Left
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 steps = abs(steps)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 else:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 act = QTextCursor.Right
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 for i in range(steps):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 tc.movePosition(act)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 self.regexpTextEdit.setTextCursor(tc)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 def on_commentButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 Private slot to handle the comment toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 self.__insertString("(?#)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 def on_charButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 Private slot to handle the characters toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 from .QRegularExpressionWizardCharactersDialog import \
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 QRegularExpressionWizardCharactersDialog
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 dlg = QRegularExpressionWizardCharactersDialog(self)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 if dlg.exec_() == QDialog.Accepted:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 self.__insertString(dlg.getCharacters())
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 def on_anycharButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 Private slot to handle the any character toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self.__insertString(".")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 def on_repeatButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 Private slot to handle the repeat toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 from .QRegularExpressionWizardRepeatDialog import \
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 QRegularExpressionWizardRepeatDialog
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 dlg = QRegularExpressionWizardRepeatDialog(self)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 if dlg.exec_() == QDialog.Accepted:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 self.__insertString(dlg.getRepeat())
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 def on_nonGroupButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 Private slot to handle the non group toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 self.__insertString("(?:)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 def on_atomicGroupButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 Private slot to handle the atomic non group toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 self.__insertString("(?>)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 def on_groupButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 Private slot to handle the group toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 self.__insertString("()", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 def on_namedGroupButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 Private slot to handle the named group toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 self.__insertString("(?P<>)", -2)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 def on_namedReferenceButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 Private slot to handle the named reference toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 # determine cursor position as length into text
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 length = self.regexpTextEdit.textCursor().position()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
275 # only present group names that occur before the current
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
276 # cursor position
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 regex = self.regexpTextEdit.toPlainText()[:length]
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 names = self.namedGroups(regex)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 if not names:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
280 E5MessageBox.information(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
281 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
282 self.tr("Named reference"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
283 self.tr("""No named groups have been defined yet."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 return
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 groupName, ok = QInputDialog.getItem(
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
288 self.tr("Named reference"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
289 self.tr("Select group name:"),
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 names,
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 0, True)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 if ok and groupName:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 self.__insertString("(?P={0})".format(groupName))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 def on_altnButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 Private slot to handle the alternatives toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 self.__insertString("(|)", -2)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 def on_beglineButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 Private slot to handle the begin line toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 self.__insertString("^")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 def on_endlineButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 Private slot to handle the end line toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 self.__insertString("$")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 def on_wordboundButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 Private slot to handle the word boundary toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 self.__insertString("\\b")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 def on_nonwordboundButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 Private slot to handle the non word boundary toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 self.__insertString("\\B")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 def on_poslookaheadButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 Private slot to handle the positive lookahead toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 self.__insertString("(?=)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 def on_neglookaheadButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 Private slot to handle the negative lookahead toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 self.__insertString("(?!)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 def on_poslookbehindButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 Private slot to handle the positive lookbehind toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 self.__insertString("(?<=)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 def on_neglookbehindButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 Private slot to handle the negative lookbehind toolbutton.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 self.__insertString("(?<!)", -1)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 def on_undoButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 Private slot to handle the undo action.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 self.regexpTextEdit.document().undo()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 def on_redoButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 Private slot to handle the redo action.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 self.regexpTextEdit.document().redo()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 def on_buttonBox_clicked(self, button):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 Private slot called by a button of the button box clicked.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 @param button button that was clicked (QAbstractButton)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 if button == self.validateButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 self.on_validateButton_clicked()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 elif button == self.executeButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 self.on_executeButton_clicked()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 elif button == self.saveButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 self.on_saveButton_clicked()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 elif button == self.loadButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 self.on_loadButton_clicked()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386 elif button == self.nextButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 self.on_nextButton_clicked()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 elif self.copyButton and button == self.copyButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 self.on_copyButton_clicked()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 def on_saveButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 Private slot to save the QRegularExpression to a file.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
398 self.tr("Save regular expression"),
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 "",
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
400 self.tr("RegExp Files (*.rx);;All Files (*)"),
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 None,
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 if fname:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 ext = QFileInfo(fname).suffix()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 if not ext:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 ex = selectedFilter.split("(*")[1].split(")")[0]
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 if ex:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 fname += ex
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 if QFileInfo(fname).exists():
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
410 res = E5MessageBox.yesNo(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
411 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
412 self.tr("Save regular expression"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
413 self.tr("<p>The file <b>{0}</b> already exists."
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
414 " Overwrite it?</p>").format(fname),
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 icon=E5MessageBox.Warning)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 if not res:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 return
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 try:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
420 f = open(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
421 Utilities.toNativeSeparators(fname), "w", encoding="utf-8")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 f.write(self.regexpTextEdit.toPlainText())
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 f.close()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 except IOError as err:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
425 E5MessageBox.information(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
426 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
427 self.tr("Save regular expression"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
428 self.tr("""<p>The regular expression could not"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
429 """ be saved.</p><p>Reason: {0}</p>""")
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
430 .format(str(err)))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 def on_loadButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 Private slot to load a QRegularExpression from a file.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 fname = E5FileDialog.getOpenFileName(
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
439 self.tr("Load regular expression"),
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 "",
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
441 self.tr("RegExp Files (*.rx);;All Files (*)"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 if fname:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 try:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
444 f = open(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
445 Utilities.toNativeSeparators(fname), "r", encoding="utf-8")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446 regexp = f.read()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 f.close()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 self.regexpTextEdit.setPlainText(regexp)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 except IOError as err:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
450 E5MessageBox.information(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
451 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
452 self.tr("Save regular expression"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
453 self.tr("""<p>The regular expression could not"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
454 """ be saved.</p><p>Reason: {0}</p>""")
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
455 .format(str(err)))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
456
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
457 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
458 def on_copyButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 Private slot to copy the QRegularExpression string into the clipboard.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 This slot is only available, if not called from within eric5.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 escaped = self.regexpTextEdit.toPlainText()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 if escaped:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 escaped = escaped.replace("\\", "\\\\")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 cb = QApplication.clipboard()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 cb.setText(escaped, QClipboard.Clipboard)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 if cb.supportsSelection():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 cb.setText(escaped, QClipboard.Selection)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 def on_validateButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
474 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 Private slot to validate the entered QRegularExpression.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 """
3213
95fbeca03619 Fixed a wrong behavior of the QRegularExpression wizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
477 if not self.__pyqt5Available:
95fbeca03619 Fixed a wrong behavior of the QRegularExpression wizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
478 # only available for PyQt5
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 return
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
481 regexp = self.regexpTextEdit.toPlainText()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
482 if regexp:
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
483 options = []
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 if self.caseInsensitiveCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
485 options.append("CaseInsensitiveOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 if self.multilineCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
487 options.append("MultilineOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 if self.dotallCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
489 options.append("DotMatchesEverythingOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490 if self.extendedCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
491 options.append("ExtendedPatternSyntaxOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 if self.greedinessCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
493 options.append("InvertedGreedinessOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 if self.unicodeCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
495 options.append("UseUnicodePropertiesOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 if self.captureCheckBox.isChecked():
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
497 options.append("DontCaptureOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
499 if self.__sendCommand("validate", options=options, regexp=regexp):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
500 response = self.__receiveResponse()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
501 if response and "valid" in response:
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
502 if response["valid"]:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
503 E5MessageBox.information(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
504 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
505 self.tr("Validation"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
506 self.tr(
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
507 """The regular expression is valid."""))
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
508 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
509 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
510 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
511 self.tr("Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
512 self.tr("""Invalid regular expression: {0}""")
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
513 .format(response["errorMessage"]))
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
514 # move cursor to error offset
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
515 offset = response["errorOffset"]
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
516 tc = self.regexpTextEdit.textCursor()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
517 tc.setPosition(offset)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
518 self.regexpTextEdit.setTextCursor(tc)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
519 self.regexpTextEdit.setFocus()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
520 return
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
521 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
522 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
523 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
524 self.tr("Communication Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
525 self.tr("""Invalid response received from"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
526 """ PyQt5 backend."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
528 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
529 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
530 self.tr("Communication Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
531 self.tr("""Communication with PyQt5 backend"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
532 """ failed."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
533 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
534 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
535 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
536 self.tr("Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
537 self.tr("""A regular expression must be given."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
540 def on_executeButton_clicked(self, startpos=0):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
541 """
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
542 Private slot to execute the entered QRegularExpression on the test
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
543 text.
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
545 This slot will execute the entered QRegularExpression on the entered
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
546 test data and will display the result in the table part of the dialog.
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 @param startpos starting position for the QRegularExpression matching
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549 """
3213
95fbeca03619 Fixed a wrong behavior of the QRegularExpression wizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
550 if not self.__pyqt5Available:
95fbeca03619 Fixed a wrong behavior of the QRegularExpression wizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
551 # only available for PyQt5
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 return
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
554 regexp = self.regexpTextEdit.toPlainText()
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 text = self.textTextEdit.toPlainText()
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
556 if regexp and text:
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
557 options = []
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 if self.caseInsensitiveCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
559 options.append("CaseInsensitiveOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 if self.multilineCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
561 options.append("MultilineOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 if self.dotallCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
563 options.append("DotMatchesEverythingOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 if self.extendedCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
565 options.append("ExtendedPatternSyntaxOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566 if self.greedinessCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
567 options.append("InvertedGreedinessOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 if self.unicodeCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
569 options.append("UseUnicodePropertiesOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 if self.captureCheckBox.isChecked():
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
571 options.append("DontCaptureOption")
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
572
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
573 if self.__sendCommand("execute", options=options, regexp=regexp,
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
574 text=text, startpos=startpos):
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
575 response = self.__receiveResponse()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
576 if response and ("valid" in response or "matched" in response):
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
577 if "valid" in response:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
578 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
579 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
580 self.tr("Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
581 self.tr("""Invalid regular expression: {0}""")
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
582 .format(response["errorMessage"]))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
583 # move cursor to error offset
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
584 offset = response["errorOffset"]
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
585 tc = self.regexpTextEdit.textCursor()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
586 tc.setPosition(offset)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
587 self.regexpTextEdit.setTextCursor(tc)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
588 self.regexpTextEdit.setFocus()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
589 return
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
590 else:
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
591 row = 0
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
592 OFFSET = 5
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
593
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
594 self.resultTable.setColumnCount(0)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
595 self.resultTable.setColumnCount(3)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
596 self.resultTable.setRowCount(0)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
597 self.resultTable.setRowCount(OFFSET)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
598 self.resultTable.setItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
599 row, 0, QTableWidgetItem(self.tr("Regexp")))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
600 self.resultTable.setItem(
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
601 row, 1, QTableWidgetItem(regexp))
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
602 if response["matched"]:
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
603 captures = response["captures"]
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
604 # index 0 is the complete match
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
605 offset = captures[0][1]
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
606 self.lastMatchEnd = captures[0][2]
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
607 self.nextButton.setEnabled(True)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
608 row += 1
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
609 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
610 row, 0,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
611 QTableWidgetItem(self.tr("Offset")))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
612 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
613 row, 1,
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
614 QTableWidgetItem("{0:d}".format(offset)))
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
615
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
616 row += 1
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
617 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
618 row, 0,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
619 QTableWidgetItem(self.tr("Captures")))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
620 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
621 row, 1,
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
622 QTableWidgetItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
623 "{0:d}".format(len(captures) - 1)))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
624 row += 1
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
625 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
626 row, 1,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
627 QTableWidgetItem(self.tr("Text")))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
628 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
629 row, 2,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
630 QTableWidgetItem(self.tr("Characters")))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
631
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
632 row += 1
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
633 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
634 row, 0,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
635 QTableWidgetItem(self.tr("Match")))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
636 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
637 row, 1,
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
638 QTableWidgetItem(captures[0][0]))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
639 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
640 row, 2,
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
641 QTableWidgetItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
642 "{0:d}".format(captures[0][3])))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
643
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
644 for i in range(1, len(captures)):
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
645 if captures[i][0]:
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
646 row += 1
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
647 self.resultTable.insertRow(row)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
648 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
649 row, 0,
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
650 QTableWidgetItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
651 self.tr("Capture #{0}")
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
652 .format(i)))
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
653 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
654 row, 1,
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
655 QTableWidgetItem(captures[i][0]))
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
656 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
657 row, 2,
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
658 QTableWidgetItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
659 "{0:d}".format(captures[i][3])))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
660
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
661 # highlight the matched text
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
662 tc = self.textTextEdit.textCursor()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
663 tc.setPosition(offset)
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
664 tc.setPosition(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
665 self.lastMatchEnd, QTextCursor.KeepAnchor)
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
666 self.textTextEdit.setTextCursor(tc)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
667 else:
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
668 self.nextButton.setEnabled(False)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
669 self.resultTable.setRowCount(2)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
670 row += 1
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
671 if startpos > 0:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
672 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
673 row, 0,
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
674 QTableWidgetItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
675 self.tr("No more matches")))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
676 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
677 self.resultTable.setItem(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
678 row, 0,
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
679 QTableWidgetItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
680 self.tr("No matches")))
2748
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
681
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
682 # remove the highlight
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
683 tc = self.textTextEdit.textCursor()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
684 tc.setPosition(0)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
685 self.textTextEdit.setTextCursor(tc)
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
686
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
687 self.resultTable.resizeColumnsToContents()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
688 self.resultTable.resizeRowsToContents()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
689 self.resultTable.verticalHeader().hide()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
690 self.resultTable.horizontalHeader().hide()
3731148a7cdf Completed the coding stuff of the QRegularExpression support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2747
diff changeset
691 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
692 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
693 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
694 self.tr("Communication Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
695 self.tr("""Invalid response received from"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
696 """ PyQt5 backend."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
698 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
699 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
700 self.tr("Communication Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
701 self.tr("""Communication with PyQt5"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
702 """ backend failed."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 else:
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
704 E5MessageBox.critical(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
705 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
706 self.tr("Error"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
707 self.tr("""A regular expression and a text must"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
708 """ be given."""))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711 def on_nextButton_clicked(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713 Private slot to find the next match.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 self.on_executeButton_clicked(self.lastMatchEnd)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717 @pyqtSlot()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
718 def on_regexpTextEdit_textChanged(self):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
720 Private slot called when the regexp changes.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 if self.nextButton:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 self.nextButton.setEnabled(False)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 def getCode(self, indLevel, indString):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 Public method to get the source code.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 @param indLevel indentation level (int)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
730 @param indString string used for indentation (space or tab) (string)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 @return generated code (string)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 # calculate the indentation string
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 i1string = (indLevel + 1) * indString
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 estring = os.linesep + indLevel * indString
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 # now generate the code
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738 reVar = self.variableLineEdit.text()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 if not reVar:
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 reVar = "regexp"
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
741
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 regexp = self.regexpTextEdit.toPlainText()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 options = []
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
745 if self.caseInsensitiveCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
746 options.append("QRegularExpression.CaseInsensitiveOption")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
747 if self.multilineCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748 options.append("QRegularExpression.MultilineOption")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749 if self.dotallCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 options.append("QRegularExpression.DotMatchesEverythingOption")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 if self.extendedCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
752 options.append("QRegularExpression.ExtendedPatternSyntaxOption")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
753 if self.greedinessCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
754 options.append("QRegularExpression.InvertedGreedinessOption")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
755 if self.unicodeCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756 options.append("QRegularExpression.UseUnicodePropertiesOption")
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 if self.captureCheckBox.isChecked():
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758 options.append("QRegularExpression.DontCaptureOption")
3119
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
759 options = " |{0}{1}".format(os.linesep, i1string).join(options)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760
3119
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
761 code = '{0} = QRegularExpression('.format(reVar)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762 if options:
3119
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
763 code += '{0}{1}r"""{2}""",'.format(
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
764 os.linesep, i1string, regexp.replace('"', '\\"'))
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
765 code += '{0}{1}{2}'.format(os.linesep, i1string, options)
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
766 else:
8b19074bb239 Changed some wizards to generate PEP-8 compliant code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
767 code += 'r"""{0}"""'.format(regexp.replace('"', '\\"'))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 code += '){0}'.format(estring)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
769 return code
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
771
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 class QRegularExpressionWizardDialog(QDialog):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 Class for the dialog variant.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
775 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
776 def __init__(self, parent=None, fromEric=True):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778 Constructor
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
779
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
780 @param parent parent widget (QWidget)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 @param fromEric flag indicating a call from within eric5
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
783 super().__init__(parent)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
784 self.setModal(fromEric)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
785 self.setSizeGripEnabled(True)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
786
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
787 self.__layout = QVBoxLayout(self)
2824
858412c29c34 Replaced the obsoleted method setMargin() with setContentsMargins().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
788 self.__layout.setContentsMargins(0, 0, 0, 0)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
789 self.setLayout(self.__layout)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
790
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
791 self.cw = QRegularExpressionWizardWidget(self, fromEric)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
792 size = self.cw.size()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 self.__layout.addWidget(self.cw)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794 self.resize(size)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
795 self.setWindowTitle(self.cw.windowTitle())
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
796
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3213
diff changeset
797 self.cw.buttonBox.accepted.connect(self.accept)
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3213
diff changeset
798 self.cw.buttonBox.rejected.connect(self.reject)
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 def getCode(self, indLevel, indString):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 Public method to get the source code.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804 @param indLevel indentation level (int)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 @param indString string used for indentation (space or tab) (string)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 @return generated code (string)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
807 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
808 return self.cw.getCode(indLevel, indString)
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
809
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
810 def accept(self):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
811 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
812 Public slot to hide the dialog and set the result code to Accepted.
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
813 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
814 self.cw.shutdown()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
815 super().accept()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
816
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
817 def reject(self):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
818 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
819 Public slot to hide the dialog and set the result code to Rejected.
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
820 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
821 self.cw.shutdown()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
822 super().reject()
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 class QRegularExpressionWizardWindow(E5MainWindow):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 Main window class for the standalone dialog.
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 def __init__(self, parent=None):
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
830 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 Constructor
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
832
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
833 @param parent reference to the parent widget (QWidget)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 """
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
835 super().__init__(parent)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
836 self.cw = QRegularExpressionWizardWidget(self, fromEric=False)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
837 size = self.cw.size()
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838 self.setCentralWidget(self.cw)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
839 self.resize(size)
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
840 self.setWindowTitle(self.cw.windowTitle())
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
841
2893
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
842 self.setStyle(
150de635fa29 Some changes to code generation wizards.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2824
diff changeset
843 Preferences.getUI("Style"), Preferences.getUI("StyleSheet"))
2736
86cd4d14b58e Added a wizard for the Qt5 QRegularExpression class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3213
diff changeset
845 self.cw.buttonBox.accepted.connect(self.close)
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3213
diff changeset
846 self.cw.buttonBox.rejected.connect(self.close)
2747
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
847
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
848 def closeEvent(self, evt):
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
849 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
850 Protected method handling the close event.
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
851
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
852 @param evt close event (QCloseEvent)
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
853 """
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
854 self.cw.shutdown()
68b920f307ff Started to rework the QRegularExpression wizard because PyQt4 and PyQt5 cannot be mixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2743
diff changeset
855 super().closeEvent(evt)

eric ide

mercurial