moved to shstk
This commit is contained in:
82
libs/widgets/qipedit.cpp
Normal file
82
libs/widgets/qipedit.cpp
Normal file
@@ -0,0 +1,82 @@
|
||||
#include "qipedit.h"
|
||||
|
||||
QIPEdit::QIPEdit(QWidget * parent, const QString & ip): QWidget(parent) {
|
||||
layout = new QBoxLayout(QBoxLayout::LeftToRight, this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(1);
|
||||
QIntValidator * validator = new QIntValidator(0, 255, this);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
edits.push_back(new QLineEdit(this));
|
||||
edits.back()->setAlignment(Qt::AlignHCenter);
|
||||
edits.back()->setMaxLength(3);
|
||||
edits.back()->setValidator(validator);
|
||||
edits.back()->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||
layout->addWidget(edits.back());
|
||||
if (i < 3) {
|
||||
dots.push_back(new QLabel(this));
|
||||
dots.back()->setText(".");
|
||||
dots.back()->adjustSize();
|
||||
layout->addWidget(dots.back());
|
||||
}
|
||||
}
|
||||
//for (int i = 0; i < 3; i++) edits[i]->setTabOrder(edits[i+1], edits[i]);
|
||||
connect(edits[0], SIGNAL(returnPressed()), this, SLOT(returnPressed0()));
|
||||
connect(edits[1], SIGNAL(returnPressed()), this, SLOT(returnPressed1()));
|
||||
connect(edits[2], SIGNAL(returnPressed()), this, SLOT(returnPressed2()));
|
||||
connect(edits[3], SIGNAL(returnPressed()), this, SLOT(returnPressed3()));
|
||||
connect(edits[0], SIGNAL(textChanged(const QString & )), this, SLOT(textChanged0(const QString & )));
|
||||
connect(edits[1], SIGNAL(textChanged(const QString & )), this, SLOT(textChanged1(const QString & )));
|
||||
connect(edits[2], SIGNAL(textChanged(const QString & )), this, SLOT(textChanged2(const QString & )));
|
||||
connect(edits[3], SIGNAL(textChanged(const QString & )), this, SLOT(textChanged3(const QString & )));
|
||||
setLayout(layout);
|
||||
setIP(ip);
|
||||
cind = 0;
|
||||
}
|
||||
|
||||
|
||||
QIPEdit::~QIPEdit() {
|
||||
foreach (QLineEdit * i, edits)
|
||||
delete i;
|
||||
foreach (QLabel * i, dots)
|
||||
delete i;
|
||||
edits.clear();
|
||||
dots.clear();
|
||||
delete layout;
|
||||
}
|
||||
|
||||
|
||||
void QIPEdit::setIP(const QString & text) {
|
||||
QString s, str = text;
|
||||
s = str.left(str.indexOf('.'));
|
||||
edits[0]->setText(s == "" ? "0" : s);
|
||||
str = str.right(str.length() - s.length() - 1);
|
||||
s = str.left(str.indexOf('.'));
|
||||
edits[1]->setText(s == "" ? "0" : s);
|
||||
str = str.right(str.length() - s.length() - 1);
|
||||
s = str.left(str.indexOf('.'));
|
||||
edits[2]->setText(s == "" ? "0" : s);
|
||||
str = str.right(str.length() - s.length() - 1);
|
||||
edits[3]->setText(str == "" ? "0" : str);
|
||||
}
|
||||
|
||||
|
||||
QString QIPEdit::IP() {
|
||||
QString s;
|
||||
if (edits[0]->text() == "") s = "0.";
|
||||
else s = edits[0]->text() + ".";
|
||||
if (edits[1]->text() == "") s += "0.";
|
||||
else s += edits[1]->text() + ".";
|
||||
if (edits[2]->text() == "") s += "0.";
|
||||
else s += edits[2]->text() + ".";
|
||||
if (edits[3]->text() == "") s += "0";
|
||||
else s += edits[3]->text();
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
void QIPEdit::returnPress(int index) {
|
||||
if (index < 3) {
|
||||
edits[index + 1]->setFocus();
|
||||
edits[index + 1]->setSelection(0, 3);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user