Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "hexeditor.h"
- HexEditor::HexEditor(QWidget *parent, QByteArray *bytes) :
- QTableWidget((bytes->size() + 7) / 8, 13, parent)
- {
- for (int i = 0; i < columnCount(); i++)
- setColumnWidth(i, 21);
- setColumnWidth(10, 35);
- setColumnWidth(12, 35);
- QFont font("Courier", 8);
- QString dump1, dump2;
- for (int i = 0, row = 0, column = 0; i < bytes->size(); i++, column++) {
- uchar c = bytes->at(i);
- char cr = c >= 33 && c <= 126 ? c : '.'; // unreadable chars => '.'
- if (column < 4)
- dump1.append(cr);
- else if (column == 4) {
- column++; // skip column
- dump2.append(cr);
- }
- else if (column > 4)
- dump2.append(cr);
- QString hex = QString("%1").arg(c, 2, 16, QChar('0'));
- QTableWidgetItem *item = new QTableWidgetItem(hex);
- item->setFont(font);
- setItem(row, column, item);
- if (i % 8 == 7 || i == bytes->size() - 1) {
- QTableWidgetItem *item = new QTableWidgetItem(dump1);
- item->setFont(font);
- setItem(row, 10, item);
- item = new QTableWidgetItem(dump2);
- item->setFont(font);
- setItem(row, 12, item);
- dump1.clear();
- dump2.clear();
- setRowHeight(row, 21);
- row++;
- column = -1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement