12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include "hexcmprangewin.h"
- #include <QLineEdit>
- #include <QMessageBox>
- HexCmpRangeWin::HexCmpRangeWin(QWidget *parent)
- : QDialog(parent), m_isCancel(true)
- {
- ui.setupUi(this);
- connect(ui.leftStartPos, &QLineEdit::textChanged, this, &HexCmpRangeWin::slot_asyncStartPos);
- connect(ui.leftCmpLens, &QLineEdit::textChanged, this, &HexCmpRangeWin::slot_asyncLenPos);
- }
- HexCmpRangeWin::~HexCmpRangeWin()
- {
- }
- void HexCmpRangeWin::slot_ok()
- {
- m_isCancel = false;
- close();
- }
- //通过左边的值同步右边。右边不同步左边,加速用户输入
- void HexCmpRangeWin::slot_asyncStartPos(const QString& text)
- {
- ui.rightStartPos->setText(text);
- }
- void HexCmpRangeWin::slot_asyncLenPos(const QString& text)
- {
- ui.rightCmpLens->setText(text);
- }
- //如果取消,则不返回任何有效范围值;错误值也是
- const int MAX_CMP_LENS = 1024 * 1024 * 10;
- void HexCmpRangeWin::getRange(bool & isCancel, qint64 & leftStartPos, int & leftCmpLen, qint64 & rightStartPos, int & rightCmpLen)
- {
- isCancel = m_isCancel;
- if (isCancel)
- {
- return;
- }
- bool ok = false;
- bool ok1 = false;
- bool ok2 = false;
- bool ok3 = false;
- leftStartPos = ui.leftStartPos->text().toULongLong(&ok);
- leftCmpLen = ui.leftCmpLens->text().toInt(&ok1);
- rightStartPos = ui.rightStartPos->text().toULongLong(&ok2);
- rightCmpLen = ui.rightCmpLens->text().toInt(&ok3);
- if (!ok || !ok1 || !ok2 || !ok3)
- {
- isCancel = true;
- leftStartPos = -1;
- rightStartPos = -1;
- leftCmpLen = 0;
- rightCmpLen = 0;
- QMessageBox::warning(this, tr("Error"), tr("StartPos or cmpare lens value error."));
- return;
- }
- if (leftCmpLen > MAX_CMP_LENS)
- {
- leftCmpLen = MAX_CMP_LENS;
- }
- if (rightCmpLen > MAX_CMP_LENS)
- {
- rightCmpLen = MAX_CMP_LENS;
- }
- }
|