6 """ |
6 """ |
7 Module implementing a dialog for entering character classes. |
7 Module implementing a dialog for entering character classes. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt4.QtCore import QRegExp |
10 from PyQt4.QtCore import QRegExp |
11 from PyQt4.QtGui import QSizePolicy, QSpacerItem, QWidget, QHBoxLayout, QLineEdit, \ |
11 from PyQt4.QtGui import QSizePolicy, QSpacerItem, QWidget, QHBoxLayout, \ |
12 QPushButton, QDialog, QScrollArea, QComboBox, QVBoxLayout, QRegExpValidator, QLabel |
12 QLineEdit, QPushButton, QDialog, QScrollArea, QComboBox, QVBoxLayout, \ |
|
13 QRegExpValidator, QLabel |
13 |
14 |
14 from .Ui_QRegExpWizardCharactersDialog import Ui_QRegExpWizardCharactersDialog |
15 from .Ui_QRegExpWizardCharactersDialog import Ui_QRegExpWizardCharactersDialog |
15 |
16 |
16 |
17 |
17 class QRegExpWizardCharactersDialog(QDialog, Ui_QRegExpWizardCharactersDialog): |
18 class QRegExpWizardCharactersDialog(QDialog, Ui_QRegExpWizardCharactersDialog): |
52 self.comboItems.append((self.trUtf8( |
53 self.comboItems.append((self.trUtf8( |
53 "Unicode character in hexadecimal notation"), "-h")) |
54 "Unicode character in hexadecimal notation"), "-h")) |
54 self.comboItems.append((self.trUtf8( |
55 self.comboItems.append((self.trUtf8( |
55 "ASCII/Latin1 character in octal notation"), "-o")) |
56 "ASCII/Latin1 character in octal notation"), "-o")) |
56 self.singleComboItems.append(("---", "-i")) |
57 self.singleComboItems.append(("---", "-i")) |
57 self.singleComboItems.append((self.trUtf8("Bell character (\\a)"), "\\a")) |
58 self.singleComboItems.append( |
58 self.singleComboItems.append((self.trUtf8("Page break (\\f)"), "\\f")) |
59 (self.trUtf8("Bell character (\\a)"), "\\a")) |
59 self.singleComboItems.append((self.trUtf8("Line feed (\\n)"), "\\n")) |
60 self.singleComboItems.append( |
60 self.singleComboItems.append((self.trUtf8("Carriage return (\\r)"), "\\r")) |
61 (self.trUtf8("Page break (\\f)"), "\\f")) |
|
62 self.singleComboItems.append( |
|
63 (self.trUtf8("Line feed (\\n)"), "\\n")) |
|
64 self.singleComboItems.append( |
|
65 (self.trUtf8("Carriage return (\\r)"), "\\r")) |
61 self.singleComboItems.append( |
66 self.singleComboItems.append( |
62 (self.trUtf8("Horizontal tabulator (\\t)"), "\\t")) |
67 (self.trUtf8("Horizontal tabulator (\\t)"), "\\t")) |
63 self.singleComboItems.append((self.trUtf8("Vertical tabulator (\\v)"), "\\v")) |
68 self.singleComboItems.append( |
|
69 (self.trUtf8("Vertical tabulator (\\v)"), "\\v")) |
64 elif mode == QRegExpWizardCharactersDialog.W3CMode: |
70 elif mode == QRegExpWizardCharactersDialog.W3CMode: |
65 self.comboItems.append((self.trUtf8( |
71 self.comboItems.append((self.trUtf8( |
66 "Unicode character in hexadecimal notation"), "-h")) |
72 "Unicode character in hexadecimal notation"), "-h")) |
67 self.comboItems.append((self.trUtf8( |
73 self.comboItems.append((self.trUtf8( |
68 "ASCII/Latin1 character in octal notation"), "-o")) |
74 "ASCII/Latin1 character in octal notation"), "-o")) |
69 self.singleComboItems.append(("---", "-i")) |
75 self.singleComboItems.append(("---", "-i")) |
70 self.singleComboItems.append((self.trUtf8("Line feed (\\n)"), "\\n")) |
76 self.singleComboItems.append( |
71 self.singleComboItems.append((self.trUtf8("Carriage return (\\r)"), "\\r")) |
77 (self.trUtf8("Line feed (\\n)"), "\\n")) |
|
78 self.singleComboItems.append( |
|
79 (self.trUtf8("Carriage return (\\r)"), "\\r")) |
72 self.singleComboItems.append( |
80 self.singleComboItems.append( |
73 (self.trUtf8("Horizontal tabulator (\\t)"), "\\t")) |
81 (self.trUtf8("Horizontal tabulator (\\t)"), "\\t")) |
74 self.singleComboItems.append(("---", "-i")) |
82 self.singleComboItems.append(("---", "-i")) |
75 self.singleComboItems.append((self.trUtf8("Character Category"), "-ccp")) |
83 self.singleComboItems.append( |
76 self.singleComboItems.append((self.trUtf8("Character Block"), "-cbp")) |
84 (self.trUtf8("Character Category"), "-ccp")) |
77 self.singleComboItems.append((self.trUtf8("Not Character Category"), "-ccn")) |
85 self.singleComboItems.append( |
78 self.singleComboItems.append((self.trUtf8("Not Character Block"), "-cbn")) |
86 (self.trUtf8("Character Block"), "-cbp")) |
|
87 self.singleComboItems.append( |
|
88 (self.trUtf8("Not Character Category"), "-ccn")) |
|
89 self.singleComboItems.append( |
|
90 (self.trUtf8("Not Character Block"), "-cbn")) |
79 |
91 |
80 self.charValidator = QRegExpValidator(QRegExp(".{0,1}"), self) |
92 self.charValidator = QRegExpValidator(QRegExp(".{0,1}"), self) |
81 self.hexValidator = QRegExpValidator(QRegExp("[0-9a-fA-F]{0,4}"), self) |
93 self.hexValidator = QRegExpValidator(QRegExp("[0-9a-fA-F]{0,4}"), self) |
82 self.octValidator = QRegExpValidator(QRegExp("[0-3]?[0-7]{0,2}"), self) |
94 self.octValidator = QRegExpValidator(QRegExp("[0-3]?[0-7]{0,2}"), self) |
83 |
95 |
108 hlayout0.setObjectName("hlayout0") |
120 hlayout0.setObjectName("hlayout0") |
109 self.moreSinglesButton = QPushButton(self.trUtf8("Additional Entries"), |
121 self.moreSinglesButton = QPushButton(self.trUtf8("Additional Entries"), |
110 self.singlesBox) |
122 self.singlesBox) |
111 self.moreSinglesButton.setObjectName("moreSinglesButton") |
123 self.moreSinglesButton.setObjectName("moreSinglesButton") |
112 hlayout0.addWidget(self.moreSinglesButton) |
124 hlayout0.addWidget(self.moreSinglesButton) |
113 hspacer0 = QSpacerItem(30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) |
125 hspacer0 = QSpacerItem( |
|
126 30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) |
114 hlayout0.addItem(hspacer0) |
127 hlayout0.addItem(hspacer0) |
115 self.singlesBoxLayout.addLayout(hlayout0) |
128 self.singlesBoxLayout.addLayout(hlayout0) |
116 self.moreSinglesButton.clicked[()].connect(self.__addSinglesLine) |
129 self.moreSinglesButton.clicked[()].connect(self.__addSinglesLine) |
117 |
130 |
118 # generate dialog part for character ranges |
131 # generate dialog part for character ranges |
142 hlayout1.setObjectName("hlayout1") |
155 hlayout1.setObjectName("hlayout1") |
143 self.moreRangesButton = QPushButton(self.trUtf8("Additional Entries"), |
156 self.moreRangesButton = QPushButton(self.trUtf8("Additional Entries"), |
144 self.rangesBox) |
157 self.rangesBox) |
145 self.moreSinglesButton.setObjectName("moreRangesButton") |
158 self.moreSinglesButton.setObjectName("moreRangesButton") |
146 hlayout1.addWidget(self.moreRangesButton) |
159 hlayout1.addWidget(self.moreRangesButton) |
147 hspacer1 = QSpacerItem(30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) |
160 hspacer1 = QSpacerItem( |
|
161 30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) |
148 hlayout1.addItem(hspacer1) |
162 hlayout1.addItem(hspacer1) |
149 self.rangesBoxLayout.addLayout(hlayout1) |
163 self.rangesBoxLayout.addLayout(hlayout1) |
150 self.moreRangesButton.clicked[()].connect(self.__addRangesLine) |
164 self.moreRangesButton.clicked[()].connect(self.__addRangesLine) |
151 |
165 |
152 def __initCharacterSelectors(self): |
166 def __initCharacterSelectors(self): |
528 combo.hide() |
542 combo.hide() |
529 lineedit.clear() |
543 lineedit.clear() |
530 |
544 |
531 def __singlesCharTypeSelected(self, index): |
545 def __singlesCharTypeSelected(self, index): |
532 """ |
546 """ |
533 Private slot to handle the activated(int) signal of the single chars combo boxes. |
547 Private slot to handle the activated(int) signal of the single chars |
|
548 combo boxes. |
534 |
549 |
535 @param index selected list index (integer) |
550 @param index selected list index (integer) |
536 """ |
551 """ |
537 combo = self.sender() |
552 combo = self.sender() |
538 for entriesList in self.singlesEntries: |
553 for entriesList in self.singlesEntries: |
539 if combo == entriesList[0]: |
554 if combo == entriesList[0]: |
540 format = combo.itemData(index) |
555 format = combo.itemData(index) |
541 self.__performSelectedAction(format, entriesList[1], entriesList[2]) |
556 self.__performSelectedAction( |
|
557 format, entriesList[1], entriesList[2]) |
542 break |
558 break |
543 |
559 |
544 def __rangesCharTypeSelected(self, index): |
560 def __rangesCharTypeSelected(self, index): |
545 """ |
561 """ |
546 Private slot to handle the activated(int) signal of the char ranges combo boxes. |
562 Private slot to handle the activated(int) signal of the char ranges |
|
563 combo boxes. |
547 |
564 |
548 @param index selected list index (integer) |
565 @param index selected list index (integer) |
549 """ |
566 """ |
550 combo = self.sender() |
567 combo = self.sender() |
551 for entriesList in self.rangesEntries: |
568 for entriesList in self.rangesEntries: |