GUI: updated QHexEdit3 + fixed focus and tabstop in HexEditDialog
This commit is contained in:
		
							parent
							
								
									bfd165a4fa
								
							
						
					
					
						commit
						b53cb5449e
					
				|  | @ -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() | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
|  | @ -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); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue