Changeset 87297 in vbox
- Timestamp:
- Jan 18, 2021 1:26:35 PM (4 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/networkmanager
- Files:
-
- 3 edited
-
UIDetailsWidgetNATNetwork.cpp (modified) (13 diffs)
-
UIDetailsWidgetNATNetwork.h (modified) (2 diffs)
-
UINetworkManager.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UIDetailsWidgetNATNetwork.cpp
r87295 r87297 74 74 } 75 75 76 bool UIDetailsWidgetNATNetwork::revalidate() 77 { 78 return m_pForwardingTableIPv4->validate() && m_pForwardingTableIPv6->validate(); 79 } 80 76 81 void UIDetailsWidgetNATNetwork::retranslateUi() 77 82 { … … 147 152 setToolTip(tr("Apply Changes (%1)").arg(m_pButtonBoxForwarding->button(QDialogButtonBox::Ok)->shortcut().toString())); 148 153 } 149 150 /* Retranslate validation: */151 retranslateValidation();152 154 } 153 155 … … 156 158 m_newData.m_fEnabled = fChecked; 157 159 loadDataForOptions(); 158 revalidate();159 160 updateButtonStates(); 160 161 } … … 163 164 { 164 165 m_newData.m_strName = strText; 165 revalidate();166 166 updateButtonStates(); 167 167 } … … 170 170 { 171 171 m_newData.m_strCIDR = strText; 172 revalidate();173 172 updateButtonStates(); 174 173 } … … 177 176 { 178 177 m_newData.m_fSupportsDHCP = fChecked; 179 revalidate();180 178 updateButtonStates(); 181 179 } … … 184 182 { 185 183 m_newData.m_fSupportsIPv6 = fChecked; 186 revalidate();187 184 updateButtonStates(); 188 185 } … … 191 188 { 192 189 m_newData.m_fAdvertiseDefaultIPv6Route = fChecked; 193 revalidate();194 190 updateButtonStates(); 195 191 } … … 198 194 { 199 195 m_newData.m_rules4 = m_pForwardingTableIPv4->rules(); 200 revalidate();201 196 updateButtonStates(); 202 197 } … … 205 200 { 206 201 m_newData.m_rules6 = m_pForwardingTableIPv6->rules(); 207 revalidate();208 202 updateButtonStates(); 209 203 } … … 422 416 { 423 417 /* Prepare IPv4 forwarding table: */ 424 m_pForwardingTableIPv4 = new UIPortForwardingTable(UIPortForwardingDataList(), false, true); 418 m_pForwardingTableIPv4 = new UIPortForwardingTable(UIPortForwardingDataList(), 419 false /* ip IPv6 protocol */, 420 false /* allow empty guest IPs */); 425 421 if (m_pForwardingTableIPv4) 426 422 { … … 430 426 } 431 427 /* Prepare IPv6 forwarding table: */ 432 m_pForwardingTableIPv6 = new UIPortForwardingTable(UIPortForwardingDataList(), true, true); 428 m_pForwardingTableIPv6 = new UIPortForwardingTable(UIPortForwardingDataList(), 429 true /* ip IPv6 protocol */, 430 false /* allow empty guest IPs */); 433 431 if (m_pForwardingTableIPv6) 434 432 { … … 502 500 } 503 501 504 void UIDetailsWidgetNATNetwork::revalidate(QWidget * /*pWidget*/ /* = 0 */)505 {506 #if 0507 /* Validate 'Interface' tab content: */508 if (!pWidget || pWidget == m_pErrorPaneAutomatic)509 {510 const bool fError = m_newData.m_interface.m_fDHCPEnabled511 && !m_newData.m_dhcpserver.m_fEnabled;512 m_pErrorPaneAutomatic->setVisible(fError);513 }514 if (!pWidget || pWidget == m_pErrorPaneManual)515 {516 const bool fError = false;517 m_pErrorPaneManual->setVisible(fError);518 }519 if (!pWidget || pWidget == m_pErrorPaneIPv4)520 {521 const bool fError = !m_newData.m_interface.m_fDHCPEnabled522 && !m_newData.m_interface.m_strAddress.trimmed().isEmpty()523 && ( !RTNetIsIPv4AddrStr(m_newData.m_interface.m_strAddress.toUtf8().constData())524 || RTNetStrIsIPv4AddrAny(m_newData.m_interface.m_strAddress.toUtf8().constData()));525 m_pErrorPaneIPv4->setVisible(fError);526 }527 if (!pWidget || pWidget == m_pErrorPaneNMv4)528 {529 const bool fError = !m_newData.m_interface.m_fDHCPEnabled530 && !m_newData.m_interface.m_strMask.trimmed().isEmpty()531 && ( !RTNetIsIPv4AddrStr(m_newData.m_interface.m_strMask.toUtf8().constData())532 || RTNetStrIsIPv4AddrAny(m_newData.m_interface.m_strMask.toUtf8().constData()));533 m_pErrorPaneNMv4->setVisible(fError);534 }535 if (!pWidget || pWidget == m_pErrorPaneIPv6)536 {537 const bool fError = !m_newData.m_interface.m_fDHCPEnabled538 && m_newData.m_interface.m_fSupportedIPv6539 && !m_newData.m_interface.m_strAddress6.trimmed().isEmpty()540 && ( !RTNetIsIPv6AddrStr(m_newData.m_interface.m_strAddress6.toUtf8().constData())541 || RTNetStrIsIPv6AddrAny(m_newData.m_interface.m_strAddress6.toUtf8().constData()));542 m_pErrorPaneIPv6->setVisible(fError);543 }544 if (!pWidget || pWidget == m_pErrorPaneNMv6)545 {546 bool fIsMaskPrefixLengthNumber = false;547 const int iMaskPrefixLength = m_newData.m_interface.m_strPrefixLength6.trimmed().toInt(&fIsMaskPrefixLengthNumber);548 const bool fError = !m_newData.m_interface.m_fDHCPEnabled549 && m_newData.m_interface.m_fSupportedIPv6550 && ( !fIsMaskPrefixLengthNumber551 || iMaskPrefixLength < 0552 || iMaskPrefixLength > 128);553 m_pErrorPaneNMv6->setVisible(fError);554 }555 556 /* Validate 'DHCP server' tab content: */557 if (!pWidget || pWidget == m_pErrorPaneDHCPAddress)558 {559 const bool fError = m_newData.m_dhcpserver.m_fEnabled560 && ( !RTNetIsIPv4AddrStr(m_newData.m_dhcpserver.m_strAddress.toUtf8().constData())561 || RTNetStrIsIPv4AddrAny(m_newData.m_dhcpserver.m_strAddress.toUtf8().constData()));562 m_pErrorPaneDHCPAddress->setVisible(fError);563 }564 if (!pWidget || pWidget == m_pErrorPaneDHCPMask)565 {566 const bool fError = m_newData.m_dhcpserver.m_fEnabled567 && ( !RTNetIsIPv4AddrStr(m_newData.m_dhcpserver.m_strMask.toUtf8().constData())568 || RTNetStrIsIPv4AddrAny(m_newData.m_dhcpserver.m_strMask.toUtf8().constData()));569 m_pErrorPaneDHCPMask->setVisible(fError);570 }571 if (!pWidget || pWidget == m_pErrorPaneDHCPLowerAddress)572 {573 const bool fError = m_newData.m_dhcpserver.m_fEnabled574 && ( !RTNetIsIPv4AddrStr(m_newData.m_dhcpserver.m_strLowerAddress.toUtf8().constData())575 || RTNetStrIsIPv4AddrAny(m_newData.m_dhcpserver.m_strLowerAddress.toUtf8().constData()));576 m_pErrorPaneDHCPLowerAddress->setVisible(fError);577 }578 if (!pWidget || pWidget == m_pErrorPaneDHCPUpperAddress)579 {580 const bool fError = m_newData.m_dhcpserver.m_fEnabled581 && ( !RTNetIsIPv4AddrStr(m_newData.m_dhcpserver.m_strUpperAddress.toUtf8().constData())582 || RTNetStrIsIPv4AddrAny(m_newData.m_dhcpserver.m_strUpperAddress.toUtf8().constData()));583 m_pErrorPaneDHCPUpperAddress->setVisible(fError);584 }585 586 /* Retranslate validation: */587 retranslateValidation(pWidget);588 #endif589 }590 591 void UIDetailsWidgetNATNetwork::retranslateValidation(QWidget * /*pWidget*/ /* = 0 */)592 {593 #if 0594 /* Translate 'Interface' tab content: */595 if (!pWidget || pWidget == m_pErrorPaneAutomatic)596 m_pErrorPaneAutomatic->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> is set to obtain the address automatically "597 "but the corresponding DHCP server is not enabled.").arg(m_newData.m_interface.m_strName));598 if (!pWidget || pWidget == m_pErrorPaneIPv4)599 m_pErrorPaneIPv4->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "600 "IPv4 address.").arg(m_newData.m_interface.m_strName));601 if (!pWidget || pWidget == m_pErrorPaneNMv4)602 m_pErrorPaneNMv4->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "603 "IPv4 network mask.").arg(m_newData.m_interface.m_strName));604 if (!pWidget || pWidget == m_pErrorPaneIPv6)605 m_pErrorPaneIPv6->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "606 "IPv6 address.").arg(m_newData.m_interface.m_strName));607 if (!pWidget || pWidget == m_pErrorPaneNMv6)608 m_pErrorPaneNMv6->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "609 "IPv6 prefix length.").arg(m_newData.m_interface.m_strName));610 611 /* Translate 'DHCP server' tab content: */612 if (!pWidget || pWidget == m_pErrorPaneDHCPAddress)613 m_pErrorPaneDHCPAddress->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "614 "DHCP server address.").arg(m_newData.m_interface.m_strName));615 if (!pWidget || pWidget == m_pErrorPaneDHCPMask)616 m_pErrorPaneDHCPMask->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "617 "DHCP server mask.").arg(m_newData.m_interface.m_strName));618 if (!pWidget || pWidget == m_pErrorPaneDHCPLowerAddress)619 m_pErrorPaneDHCPLowerAddress->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "620 "DHCP server lower address bound.").arg(m_newData.m_interface.m_strName));621 if (!pWidget || pWidget == m_pErrorPaneDHCPUpperAddress)622 m_pErrorPaneDHCPUpperAddress->setToolTip(tr("Host interface <nobr><b>%1</b></nobr> does not currently have a valid "623 "DHCP server upper address bound.").arg(m_newData.m_interface.m_strName));624 #endif625 }626 627 502 void UIDetailsWidgetNATNetwork::updateButtonStates() 628 503 { -
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UIDetailsWidgetNATNetwork.h
r87295 r87297 125 125 void setData(const UIDataNATNetwork &data, bool fHoldPosition = false); 126 126 127 /** Revalidates changes. */ 128 bool revalidate(); 129 127 130 protected: 128 131 … … 182 185 /** @name Change handling stuff. 183 186 * @{ */ 184 /** Revalidates changes for passed @a pWidget. */185 void revalidate(QWidget *pWidget = 0);186 /** Retranslates validation for passed @a pWidget. */187 void retranslateValidation(QWidget *pWidget = 0);188 187 /** Updates button states. */ 189 188 void updateButtonStates(); -
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UINetworkManager.cpp
r87295 r87297 1106 1106 /* Check NAT network details-widget: */ 1107 1107 AssertMsgReturnVoid(m_pDetailsWidgetNATNetwork, ("NAT network details-widget isn't created!\n")); 1108 1109 /* Revalidate NAT network details: */ 1110 if (!m_pDetailsWidgetNATNetwork->revalidate()) 1111 return; 1108 1112 1109 1113 /* Get item data: */
Note:
See TracChangeset
for help on using the changeset viewer.

