1
0
Fork 0

GUI: updated QHexEdit3 + fixed focus and tabstop in HexEditDialog

This commit is contained in:
Mr. eXoDia 2014-07-05 04:46:52 +02:00
parent bfd165a4fa
commit b53cb5449e
5 changed files with 27 additions and 9 deletions

View File

@ -11,18 +11,22 @@ HexEditDialog::HexEditDialog(QWidget *parent) :
setWindowFlags(Qt::Dialog | Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::MSWindowsFixedSizeDialogHint);
setFixedSize(this->size()); //fixed size
setModal(true); //modal window
mHexEdit = new QHexEdit(this);
mHexEdit->setHorizontalSpacing(6);
connect(mHexEdit, SIGNAL(dataChanged()), this, SLOT(dataChangedSlot()));
mHexEdit->setData(QString("11223344556677889900aabbccddeeff"));
ui->scrollArea->setWidget(mHexEdit);
//setup text fields
QFont font("Monospace", 8);
font.setFixedPitch(true);
font.setStyleHint(QFont::Monospace);
ui->lineEditAscii->setFont(font);
ui->lineEditUnicode->setFont(font);
ui->lineEditAscii->setFocus();
//setup hex editor
mHexEdit = new QHexEdit(this);
mHexEdit->setHorizontalSpacing(6);
connect(mHexEdit, SIGNAL(dataChanged()), this, SLOT(dataChangedSlot()));
mHexEdit->setData(QByteArray(1,0));
ui->scrollArea->setWidget(mHexEdit);
mHexEdit->widget()->setFocus();
mHexEdit->setTabOrder(ui->btnUnicode2Hex, mHexEdit->widget());
}
HexEditDialog::~HexEditDialog()

View File

@ -16,6 +16,8 @@ public:
explicit HexEditDialog(QWidget *parent = 0);
~HexEditDialog();
QHexEdit* mHexEdit;
private slots:
void on_btnAscii2Hex_clicked();
void on_btnUnicode2Hex_clicked();
@ -24,7 +26,6 @@ private slots:
private:
Ui::HexEditDialog *ui;
QHexEdit* mHexEdit;
};
#endif // HEXEDITDIALOG_H

View File

@ -27,7 +27,7 @@
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<enum>Qt::NoFocus</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@ -193,9 +193,9 @@
</widget>
</widget>
<tabstops>
<tabstop>lineEditUnicode</tabstop>
<tabstop>lineEditAscii</tabstop>
<tabstop>btnAscii2Hex</tabstop>
<tabstop>lineEditUnicode</tabstop>
<tabstop>btnUnicode2Hex</tabstop>
<tabstop>scrollArea</tabstop>
<tabstop>chkKeepSize</tabstop>

View File

@ -254,6 +254,12 @@ void QHexEditPrivate::undo()
update();
}
void QHexEditPrivate::focusInEvent(QFocusEvent *event)
{
ensureVisible();
QWidget::focusInEvent(event);
}
void QHexEditPrivate::resizeEvent(QResizeEvent* event)
{
adjust();
@ -412,7 +418,10 @@ void QHexEditPrivate::keyPressEvent(QKeyEvent *event)
if (_overwriteMode == false)
{
if(_keepSize && _xData.size() >= _initSize)
{
QWidget::keyPressEvent(event);
return;
}
if ((charX % 3) == 0)
insert(posBa, char(0), char(0));
}
@ -615,6 +624,7 @@ void QHexEditPrivate::keyPressEvent(QKeyEvent *event)
ensureVisible();
update();
QWidget::keyPressEvent(event);
}
void QHexEditPrivate::mouseMoveEvent(QMouseEvent * event)
@ -624,6 +634,7 @@ void QHexEditPrivate::mouseMoveEvent(QMouseEvent * event)
int actPos = cursorPos(event->pos());
setCursorPos(actPos);
setSelection(actPos);
QWidget::mouseMoveEvent(event);
}
void QHexEditPrivate::mousePressEvent(QMouseEvent * event)
@ -641,6 +652,7 @@ void QHexEditPrivate::mousePressEvent(QMouseEvent * event)
resetSelection(cPos);
setCursorPos(cPos);
}
QWidget::mousePressEvent(event);
}
void QHexEditPrivate::paintEvent(QPaintEvent *event)

View File

@ -50,6 +50,7 @@ signals:
void overwriteModeChanged(bool state);
protected:
void focusInEvent(QFocusEvent* event);
void resizeEvent(QResizeEvent* event);
void keyPressEvent(QKeyEvent * event);
void mouseMoveEvent(QMouseEvent * event);