7 Module implementing an editor for binary data. |
7 Module implementing an editor for binary data. |
8 """ |
8 """ |
9 |
9 |
10 from __future__ import unicode_literals |
10 from __future__ import unicode_literals |
11 |
11 |
|
12 import sys |
|
13 is_Py2 = sys.version_info[0] == 2 |
|
14 |
12 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QByteArray, QTimer, QRect, \ |
15 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QByteArray, QTimer, QRect, \ |
13 QBuffer, QIODevice |
16 QBuffer, QIODevice |
14 from PyQt5.QtGui import QBrush, QPen, QColor, QFont, QPalette, QKeySequence, \ |
17 from PyQt5.QtGui import QBrush, QPen, QColor, QFont, QPalette, QKeySequence, \ |
15 QPainter |
18 QPainter |
16 from PyQt5.QtWidgets import QAbstractScrollArea, QApplication |
19 from PyQt5.QtWidgets import QAbstractScrollArea, QApplication |
17 |
20 |
18 from .HexEditChunks import HexEditChunks |
21 from .HexEditChunks import HexEditChunks |
19 from .HexEditUndoStack import HexEditUndoStack |
22 from .HexEditUndoStack import HexEditUndoStack |
20 |
23 |
21 import Globals |
24 import Globals |
22 |
|
23 |
|
24 # TODO: implement editing in ASCII area |
|
25 |
25 |
26 |
26 |
27 class HexEditWidget(QAbstractScrollArea): |
27 class HexEditWidget(QAbstractScrollArea): |
28 """ |
28 """ |
29 Class implementing an editor for binary data. |
29 Class implementing an editor for binary data. |
1420 pxPosX += 3 * self.__pxCharWidth |
1420 pxPosX += 3 * self.__pxCharWidth |
1421 |
1421 |
1422 # render ascii value |
1422 # render ascii value |
1423 if self.__asciiArea: |
1423 if self.__asciiArea: |
1424 by = self.__dataShown[bPosLine + colIdx] |
1424 by = self.__dataShown[bPosLine + colIdx] |
1425 if by < 0x20 or by > 0x7e: |
1425 if is_Py2 and (by < 0x20 or by > 0x7e): |
|
1426 ch = "." |
|
1427 elif not is_Py2 and \ |
|
1428 (by < 0x20 or (by > 0x7e and by < 0xa0)): |
1426 ch = "." |
1429 ch = "." |
1427 else: |
1430 else: |
1428 ch = chr(by) |
1431 ch = chr(by) |
1429 r.setRect( |
1432 r.setRect( |
1430 pxPosAsciiX2, |
1433 pxPosAsciiX2, |