From 004b73ed7ef33cb407897f7eccbec5f3861f99d7 Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Fri, 7 Jul 2023 12:37:21 +0200 Subject: Squashed 'qhexedit2/' content from commit 7f22526 git-subtree-dir: qhexedit2 git-subtree-split: 7f22526a86685aec1c5722154b8a7422d5037b77 --- doc/html/class_q_hex_edit.html | 1237 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1237 insertions(+) create mode 100644 doc/html/class_q_hex_edit.html (limited to 'doc/html/class_q_hex_edit.html') diff --git a/doc/html/class_q_hex_edit.html b/doc/html/class_q_hex_edit.html new file mode 100644 index 0000000..913d940 --- /dev/null +++ b/doc/html/class_q_hex_edit.html @@ -0,0 +1,1237 @@ + + + + + + + +QHexEdit: QHexEdit Class Reference + + + + + + + + + +
+
+ + + + + + +
+
QHexEdit +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
QHexEdit Class Reference
+
+
+ +

#include <qhexedit.h>

+
+Inheritance diagram for QHexEdit:
+
+
+ + + +
+ + + + + + +

+Public Slots

void redo ()
 
void undo ()
 
+ + + + + + + + + +

+Signals

void currentAddressChanged (qint64 address)
 
void currentSizeChanged (qint64 size)
 
void dataChanged ()
 
void overwriteModeChanged (bool state)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 QHexEdit (QWidget *parent=0)
 
bool setData (QIODevice &iODevice)
 
QByteArray dataAt (qint64 pos, qint64 count=-1)
 
bool write (QIODevice &iODevice, qint64 pos=0, qint64 count=-1)
 
void insert (qint64 pos, char ch)
 
void remove (qint64 pos, qint64 len=1)
 
void replace (qint64 pos, char ch)
 
void insert (qint64 pos, const QByteArray &ba)
 
void replace (qint64 pos, qint64 len, const QByteArray &ba)
 
qint64 cursorPosition (QPoint point)
 
void ensureVisible ()
 
qint64 indexOf (const QByteArray &ba, qint64 from)
 
bool isModified ()
 
qint64 lastIndexOf (const QByteArray &ba, qint64 from)
 
QString selectionToReadableString ()
 
QString selectedData ()
 
void setFont (const QFont &font)
 
QString toReadableString ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Properties

bool addressArea
 
QColor addressAreaColor
 
qint64 addressOffset
 
int addressWidth
 
bool asciiArea
 
int bytesPerLine
 
qint64 cursorPosition
 
QByteArray data
 
bool hexCaps
 
bool dynamicBytesPerLine
 
bool highlighting
 
QColor highlightingColor
 
bool overwriteMode
 
QColor selectionColor
 
bool readOnly
 
QFont font
 
+

Detailed Description

+

QHexEdit is a hex editor widget written in C++ for the Qt (Qt4, Qt5) framework. It is a simple editor for binary data, just like QPlainTextEdit is for text data. There are sip configuration files included, so it is easy to create bindings for PyQt and you can use this widget also in python 2 and 3.

+

QHexEdit takes the data of a QByteArray (setData()) and shows it. You can use the mouse or the keyboard to navigate inside the widget. If you hit the keys (0..9, a..f) you will change the data. Changed data is highlighted and can be accessed via data().

+

Normally QHexEdit works in the overwrite mode. You can set overwrite mode(false) and insert data. In this case the size of data() increases. It is also possible to delete bytes (del or backspace), here the size of data decreases.

+

You can select data with keyboard hits or mouse movements. The copy-key will copy the selected data into the clipboard. The cut-key copies also but deletes it afterwards. In overwrite mode, the paste function overwrites the content of the (does not change the length) data. In insert mode, clipboard data will be inserted. The clipboard content is expected in ASCII Hex notation. Unknown characters will be ignored.

+

QHexEdit comes with undo/redo functionality. All changes can be undone, by pressing the undo-key (usually ctr-z). They can also be redone afterwards. The undo/redo framework is cleared, when setData() sets up a new content for the editor. You can search data inside the content with indexOf() and lastIndexOf(). The replace() function is to change located subdata. This 'replaced' data can also be undone by the undo/redo framework.

+

QHexEdit is based on QIODevice, that's why QHexEdit can handle big amounts of data. The size of edited data can be more then two gigabytes without any restrictions.

+

Constructor & Destructor Documentation

+ +

◆ QHexEdit()

+ +
+
+ + + + + + + + +
QHexEdit::QHexEdit (QWidget * parent = 0)
+
+

Creates an instance of QHexEdit.

Parameters
+ + +
parentParent widget of QHexEdit.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ currentAddressChanged

+ +
+
+ + + + + +
+ + + + + + + + +
void QHexEdit::currentAddressChanged (qint64 address)
+
+signal
+
+

Contains the address, where the cursor is located.

+ +
+
+ +

◆ currentSizeChanged

+ +
+
+ + + + + +
+ + + + + + + + +
void QHexEdit::currentSizeChanged (qint64 size)
+
+signal
+
+

Contains the size of the data to edit.

+ +
+
+ +

◆ cursorPosition()

+ +
+
+ + + + + + + + +
qint64 QHexEdit::cursorPosition (QPoint point)
+
+

Calc cursor position from graphics position

Parameters
+ + +
pointfrom where the cursor position should be calculated
+
+
+
Returns
Cursor position
+ +
+
+ +

◆ dataAt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
QByteArray QHexEdit::dataAt (qint64 pos,
qint64 count = -1 
)
+
+

Gives back the data as a QByteArray starting at position

Parameters
+ + + +
posand delivering
countbytes.
+
+
+ +
+
+ +

◆ dataChanged

+ +
+
+ + + + + +
+ + + + + + + +
void QHexEdit::dataChanged ()
+
+signal
+
+

The signal is emitted every time, the data is changed.

+ +
+
+ +

◆ ensureVisible()

+ +
+
+ + + + + + + +
void QHexEdit::ensureVisible ()
+
+

Ensure the cursor to be visbile

+ +
+
+ +

◆ indexOf()

+ +
+
+ + + + + + + + + + + + + + + + + + +
qint64 QHexEdit::indexOf (const QByteArray & ba,
qint64 from 
)
+
+

Find first occurrence of ba in QHexEdit data

Parameters
+ + + +
baData to find
fromPoint where the search starts
+
+
+
Returns
pos if fond, else -1
+ +
+
+ +

◆ insert() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void QHexEdit::insert (qint64 pos,
char ch 
)
+
+

Inserts a char.

Parameters
+ + + +
posIndex position, where to insert
chChar, which is to insert The char will be inserted and size of data grows.
+
+
+ +
+
+ +

◆ insert() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void QHexEdit::insert (qint64 pos,
const QByteArray & ba 
)
+
+

Inserts a byte array.

Parameters
+ + + +
posIndex position, where to insert
baQByteArray, which is to insert The QByteArray will be inserted and size of data grows.
+
+
+ +
+
+ +

◆ isModified()

+ +
+
+ + + + + + + +
bool QHexEdit::isModified ()
+
+

Returns if any changes where done on document

Returns
true when document is modified else false
+ +
+
+ +

◆ lastIndexOf()

+ +
+
+ + + + + + + + + + + + + + + + + + +
qint64 QHexEdit::lastIndexOf (const QByteArray & ba,
qint64 from 
)
+
+

Find last occurrence of ba in QHexEdit data

Parameters
+ + + +
baData to find
fromPoint where the search starts
+
+
+
Returns
pos if fond, else -1
+ +
+
+ +

◆ overwriteModeChanged

+ +
+
+ + + + + +
+ + + + + + + + +
void QHexEdit::overwriteModeChanged (bool state)
+
+signal
+
+

The signal is emitted every time, the overwrite mode is changed.

+ +
+
+ +

◆ redo

+ +
+
+ + + + + +
+ + + + + + + +
void QHexEdit::redo ()
+
+slot
+
+

Redoes the last operation. If there is no operation to redo, i.e. there is no redo step in the undo/redo history, nothing happens.

+ +
+
+ +

◆ remove()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void QHexEdit::remove (qint64 pos,
qint64 len = 1 
)
+
+

Removes len bytes from the content.

Parameters
+ + + +
posIndex position, where to remove
lenAmount of bytes to remove
+
+
+ +
+
+ +

◆ replace() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void QHexEdit::replace (qint64 pos,
char ch 
)
+
+

Replaces a char.

Parameters
+ + + +
posIndex position, where to overwrite
chChar, which is to insert The char will be overwritten and size remains constant.
+
+
+ +
+
+ +

◆ replace() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void QHexEdit::replace (qint64 pos,
qint64 len,
const QByteArray & ba 
)
+
+

Replaces

Parameters
+ + + + + + +
lenbytes with a byte array
ba
posIndex position, where to overwrite
baQByteArray, which is inserted
lencount of bytes to overwrite The data is overwritten and size of data may change.
+
+
+ +
+
+ +

◆ selectedData()

+ +
+
+ + + + + + + +
QString QHexEdit::selectedData ()
+
+

Return the selected content of QHexEdit as QByteArray

+ +
+
+ +

◆ selectionToReadableString()

+ +
+
+ + + + + + + +
QString QHexEdit::selectionToReadableString ()
+
+

Gives back a formatted image of the selected content of QHexEdit

+ +
+
+ +

◆ setData()

+ +
+
+ + + + + + + + +
bool QHexEdit::setData (QIODevice & iODevice)
+
+

Sets the data of QHexEdit. The QIODevice will be opened just before reading and closed immediately afterwards. This is to allow other programs to rewrite the file while editing it.

+ +
+
+ +

◆ setFont()

+ +
+
+ + + + + + + + +
void QHexEdit::setFont (const QFont & font)
+
+

Set Font of QHexEdit

Parameters
+ + +
font
+
+
+ +
+
+ +

◆ toReadableString()

+ +
+
+ + + + + + + +
QString QHexEdit::toReadableString ()
+
+

Gives back a formatted image of the content of QHexEdit

+ +
+
+ +

◆ undo

+ +
+
+ + + + + +
+ + + + + + + +
void QHexEdit::undo ()
+
+slot
+
+

Undoes the last operation. If there is no operation to undo, i.e. there is no undo step in the undo/redo history, nothing happens.

+ +
+
+ +

◆ write()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool QHexEdit::write (QIODevice & iODevice,
qint64 pos = 0,
qint64 count = -1 
)
+
+

Gives back the data into a

Parameters
+ + + + +
iODevicestarting at position
posand delivering
countbytes.
+
+
+ +
+
+

Property Documentation

+ +

◆ addressArea

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::addressArea
+
+readwrite
+
+

Property address area switch the address area on or off. Set addressArea true (show it), false (hide it).

+ +
+
+ +

◆ addressAreaColor

+ +
+
+ + + + + +
+ + + + +
QColor QHexEdit::addressAreaColor
+
+readwrite
+
+

Property address area color sets (setAddressAreaColor()) the background color of address areas. You can also read the color (addressaAreaColor()).

+ +
+
+ +

◆ addressOffset

+ +
+
+ + + + + +
+ + + + +
qint64 QHexEdit::addressOffset
+
+readwrite
+
+

Property addressOffset is added to the Numbers of the Address Area. A offset in the address area (left side) is sometimes useful, whe you show only a segment of a complete memory picture. With setAddressOffset() you set this property - with addressOffset() you get the current value.

+ +
+
+ +

◆ addressWidth

+ +
+
+ + + + + +
+ + + + +
int QHexEdit::addressWidth
+
+readwrite
+
+

Set and get the minimum width of the address area, width in characters.

+ +
+
+ +

◆ asciiArea

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::asciiArea
+
+readwrite
+
+

Switch the ascii area on (true, show it) or off (false, hide it).

+ +
+
+ +

◆ bytesPerLine

+ +
+
+ + + + + +
+ + + + +
int QHexEdit::bytesPerLine
+
+readwrite
+
+

Set and get bytes number per line.

+ +
+
+ +

◆ cursorPosition

+ +
+
+ + + + + +
+ + + + +
qint64 QHexEdit::cursorPosition
+
+readwrite
+
+

Property cursorPosition sets or gets the position of the editor cursor in QHexEdit. Every byte in data has two cursor positions: the lower and upper Nibble. Maximum cursor position is factor two of data.size().

+ +
+
+ +

◆ data

+ +
+
+ + + + + +
+ + + + +
QByteArray QHexEdit::data
+
+readwrite
+
+

Property data holds the content of QHexEdit. Call setData() to set the content of QHexEdit, data() returns the actual content. When calling setData() with a QByteArray as argument, QHexEdit creates a internal copy of the data If you want to edit big files please use setData(), based on QIODevice.

+ +
+
+ +

◆ dynamicBytesPerLine

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::dynamicBytesPerLine
+
+readwrite
+
+

Property defines the dynamic calculation of bytesPerLine parameter depends of width of widget. set this property true to avoid horizontal scrollbars and show the maximal possible data. defalut value is false

+ +
+
+ +

◆ font

+ +
+
+ + + + + +
+ + + + +
QFont QHexEdit::font
+
+readwrite
+
+

Set the font of the widget. Please use fixed width fonts like Mono or Courier.

+ +
+
+ +

◆ hexCaps

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::hexCaps
+
+readwrite
+
+

That property defines if the hex values looks as a-f if the value is false(default) or A-F if value is true.

+ +
+
+ +

◆ highlighting

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::highlighting
+
+readwrite
+
+

Switch the highlighting feature on or of: true (show it), false (hide it).

+ +
+
+ +

◆ highlightingColor

+ +
+
+ + + + + +
+ + + + +
QColor QHexEdit::highlightingColor
+
+readwrite
+
+

Property highlighting color sets (setHighlightingColor()) the background color of highlighted text areas. You can also read the color (highlightingColor()).

+ +
+
+ +

◆ overwriteMode

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::overwriteMode
+
+readwrite
+
+

Property overwrite mode sets (setOverwriteMode()) or gets (overwriteMode()) the mode in which the editor works. In overwrite mode the user will overwrite existing data. The size of data will be constant. In insert mode the size will grow, when inserting new data.

+ +
+
+ +

◆ readOnly

+ +
+
+ + + + + +
+ + + + +
bool QHexEdit::readOnly
+
+readwrite
+
+

Property readOnly sets (setReadOnly()) or gets (isReadOnly) the mode in which the editor works. In readonly mode the the user can only navigate through the data and select data; modifying is not possible. This property's default is false.

+ +
+
+ +

◆ selectionColor

+ +
+
+ + + + + +
+ + + + +
QColor QHexEdit::selectionColor
+
+readwrite
+
+

Property selection color sets (setSelectionColor()) the background color of selected text areas. You can also read the color (selectionColor()).

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + -- cgit v1.2.3