@@ -36,6 +36,7 @@ QHexEdit::QHexEdit(QWidget *parent) : QAbstractScrollArea(parent)
3636 , _addressWidth(4 )
3737 , _asciiArea(true )
3838 , _bytesPerLine(16 )
39+ , _defaultChar(' .' )
3940 , _hexCharsInLine(47 )
4041 , _highlighting(true )
4142 , _overwriteMode(true )
@@ -158,6 +159,20 @@ int QHexEdit::bytesPerLine()
158159 return _bytesPerLine;
159160}
160161
162+ char QHexEdit::defaultChar ()
163+ {
164+ return _defaultChar;
165+ }
166+
167+ void QHexEdit::setDefaultChar (char defaultChar)
168+ {
169+ _defaultChar = defaultChar;
170+
171+ adjust ();
172+ setCursorPosition (_cursorPosition);
173+ viewport ()->update ();
174+ }
175+
161176void QHexEdit::setCursorPosition (qint64 position)
162177{
163178 // 1. delete old cursor
@@ -945,7 +960,7 @@ void QHexEdit::paintEvent(QPaintEvent *event)
945960
946961 int ch = (uchar)_dataShown.at (bPosLine + colIdx);
947962 if ( ch < ' ' || ch > ' ~' )
948- ch = ' . ' ;
963+ ch = _defaultChar ;
949964 rect.setRect (pxPosAsciiX2, pxPosY - _pxCharHeight + _pxSelectionSub, _pxCharWidth, _pxCharHeight);
950965 painter.fillRect (rect, asciiArea.areaStyle ());
951966 painter.drawText (pxPosAsciiX2, pxPosY, QChar (ch));
@@ -982,7 +997,7 @@ void QHexEdit::paintEvent(QPaintEvent *event)
982997 // every 2 hex there is 1 ascii
983998 int ch = (uchar)_dataShown.at (hexPos / 2 );
984999 if (ch < ' ' || ch > ' ~' )
985- ch = ' . ' ;
1000+ ch = _defaultChar ;
9861001
9871002 painter.drawText (_pxCursorX - pxOfsX, _pxCursorY, QChar (ch));
9881003 }
@@ -1180,7 +1195,7 @@ QString QHexEdit::toReadable(const QByteArray &ba)
11801195 hexStr.append (" " ).append (ba.mid (i+j, 1 ).toHex ());
11811196 char ch = ba[i + j];
11821197 if ((ch < 0x20 ) || (ch > 0x7e ))
1183- ch = ' . ' ;
1198+ ch = _defaultChar ;
11841199 ascStr.append (QChar (ch));
11851200 }
11861201 }
0 commit comments