From 60501807b361ced9f594ba9c58331857e2011834 Mon Sep 17 00:00:00 2001 From: IceN9ne Date: Fri, 11 Nov 2016 23:19:46 -0500 Subject: KviIpEditor: Change to a QLineEdit and update code. * Changes from a multi-QLineEdit box for each part of the IP address to a single QLineEdit which allows pasting of IP addresses rather than having to hand type them in. * Uses Qt5's QHostAddress to proccess the input and validate the IPs * Fixes the OptionsWidget_servers to enable/disable the KviIpEditor depending on if the Cache IP checkbox is checked or not. --- src/modules/options/OptionsWidget_servers.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/modules/options/OptionsWidget_servers.cpp') diff --git a/src/modules/options/OptionsWidget_servers.cpp b/src/modules/options/OptionsWidget_servers.cpp index 6e3af5daf..f8eeac761 100644 --- a/src/modules/options/OptionsWidget_servers.cpp +++ b/src/modules/options/OptionsWidget_servers.cpp @@ -703,6 +703,8 @@ IrcServerDetailsWidget::IrcServerDetailsWidget(QWidget * par, KviIrcServer * s) "unreachable or you want to avoid the round-robin lookups.", "options")); m_pCacheIpCheck->setChecked(s->cacheIp()); + m_pIpEditor->setEnabled(m_pCacheIpCheck->isChecked()); + connect(m_pCacheIpCheck, SIGNAL(toggled(bool)), this, SLOT(useCacheIpCheckToggled(bool))); m_pUseAutoConnect = new QCheckBox(__tr2qs_ctx("Connect to this server at startup", "options"), tab); m_pUseAutoConnect->setChecked(s->autoConnect()); @@ -1014,6 +1016,11 @@ IrcServerDetailsWidget::~IrcServerDetailsWidget() KviScriptEditor::destroyInstance(m_pOnLoginEditor); } +void IrcServerDetailsWidget::useCacheIpCheckToggled(bool) +{ + m_pIpEditor->setEnabled(m_pCacheIpCheck->isChecked()); +} + void IrcServerDetailsWidget::useIPV6CheckToggled(bool) { #ifdef COMPILE_IPV6_SUPPORT @@ -1148,14 +1155,13 @@ void IrcServerDetailsWidget::fillData(KviIrcServer * s) if(m_pIpEditor) { - QString tmpAddr = m_pIpEditor->address(); - - if(!m_pIpEditor->hasEmptyFields()) + if(m_pIpEditor->isValid()) { + QString tmpAddr = m_pIpEditor->address(); #ifdef COMPILE_IPV6_SUPPORT if(s->isIPv6()) { - if((!KviQString::equalCI(tmpAddr, "0:0:0:0:0:0:0:0")) && KviNetUtils::isValidStringIp(tmpAddr)) + if(tmpAddr != "::" && KviNetUtils::isValidStringIp(tmpAddr)) { s->setIp(tmpAddr); } @@ -1168,7 +1174,7 @@ void IrcServerDetailsWidget::fillData(KviIrcServer * s) else { #endif - if((!KviQString::equalCI(tmpAddr, "0.0.0.0")) && KviNetUtils::isValidStringIp(tmpAddr)) + if(tmpAddr != "0.0.0.0" && KviNetUtils::isValidStringIp(tmpAddr)) { s->setIp(tmpAddr); } -- cgit v1.3.1-10-gc9f91