DNS不完全输入 双击可编辑问题

This commit is contained in:
zhangyuanyuan1 2022-10-18 11:46:55 +08:00
parent 91c99a6e82
commit 8b5fb65f50
7 changed files with 36 additions and 2 deletions

View File

@ -95,6 +95,12 @@ void CreatNetPage::initComponent() {
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
// connect(firstDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
// connect(secondDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
connect(m_dnsWidget, &MultipleDnsWidget::dnsTextChanged, this, [=]() {
setCreatePageState(false);
});
connect(m_dnsWidget, &MultipleDnsWidget::dnsEditingFinished, this, [=]() {
setCreatePageState(true);
});
}
bool CreatNetPage::checkConnectBtnIsEnabled()

View File

@ -151,6 +151,12 @@ void Ipv4Page::initComponent() {
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
// connect(firstDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
// connect(secondDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
connect(m_dnsWidget, &MultipleDnsWidget::dnsTextChanged, this, [=]() {
setIpv4PageState(false);
});
connect(m_dnsWidget, &MultipleDnsWidget::dnsEditingFinished, this, [=]() {
setIpv4PageState(true);
});
}
void Ipv4Page::setIpv4Config(KyIpConfigType ipv4Config)

View File

@ -241,6 +241,12 @@ void Ipv6Page::initComponent() {
connect(gateWayEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
// connect(firstDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
// connect(secondDnsEdit, SIGNAL(textChanged(QString)), this, SLOT(setEnableOfSaveBtn()));
connect(m_dnsWidget, &MultipleDnsWidget::dnsTextChanged, this, [=]() {
setIpv6PageState(false);
});
connect(m_dnsWidget, &MultipleDnsWidget::dnsEditingFinished, this, [=]() {
setIpv6PageState(true);
});
}
void Ipv6Page::configChanged(int index) {

View File

@ -45,7 +45,7 @@ void MultipleDnsWidget::initUI()
m_dnsListWidget->setBackgroundRole(QPalette::Base);
m_dnsListWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus);
m_dnsListWidget->setFrameShape(QFrame::Shape::StyledPanel);
m_dnsListWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_dnsListWidget->setEditTriggers(QAbstractItemView::DoubleClicked);
setDnsListWidgetStyle();
m_addDnsBtn = new QPushButton(this);
@ -81,6 +81,10 @@ void MultipleDnsWidget::initComponent()
m_removeDnsBtn->setEnabled(true);
}
});
connect(m_dnsListWidget, &QListWidget::itemDoubleClicked, this, [=](QListWidgetItem *item) {
m_dnsListWidget->edit(m_dnsListWidget->currentIndex());
item->setFlags(item->flags() | Qt::ItemIsEditable);
});
}
void MultipleDnsWidget::setEditEnabled(bool state)
@ -132,6 +136,9 @@ void MultipleDnsWidget::AddOneDnsItem(QListWidget *listWidget)
ListItemEdit *dnsListItemEdit = new ListItemEdit(m_regExp);
listWidget->setItemDelegateForRow(listWidget->currentIndex().row() , dnsListItemEdit);
listWidget->editItem(dnsListWidgetItem);
connect(dnsListItemEdit, SIGNAL(textChanged(QString)), this, SIGNAL(dnsTextChanged(QString)));
connect(dnsListItemEdit, SIGNAL(editingFinished()), this, SIGNAL(dnsEditingFinished()));
}
void MultipleDnsWidget::RemoveOneDnsItem(QListWidgetItem *aItem, QListWidget *listWidget)

View File

@ -61,6 +61,10 @@ private Q_SLOTS:
void setDnsListWidgetStyle();
void onAddBtnClicked();
void onRemoveBtnClicked();
Q_SIGNALS:
void dnsTextChanged(const QString &);
void dnsEditingFinished();
};
#endif // MULTIPLEDNSWIDGET_H

View File

@ -29,8 +29,9 @@ ListItemEdit::ListItemEdit(const QRegExp &rx, QObject *parent)
QWidget *ListItemEdit::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QLineEdit *editor = new QLineEdit(parent);
editor->setValidator(new QRegExpValidator(m_regExp, parent));
connect(editor, SIGNAL(textChanged(QString)), this, SIGNAL(textChanged(QString)));
connect(editor, SIGNAL(editingFinished()), this, SIGNAL(editingFinished()));
return editor;
}

View File

@ -43,6 +43,10 @@ public:
const QModelIndex &index) const override;
private:
QRegExp m_regExp;
Q_SIGNALS:
void textChanged(const QString &);
void editingFinished();
};
#endif // LISTITEMEDIT_H