Changeset 66612 in vbox
- Timestamp:
- Apr 19, 2017 3:09:43 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114655
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings/global
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp
r66593 r66612 75 75 76 76 77 /* Global settings / Network page / NAT network item:*/78 class UIItemNetworkNAT : public QITreeWidgetItem 77 /** Global settings: Network page: NAT network tree-widget item. */ 78 class UIItemNetworkNAT : public QITreeWidgetItem, public UIDataSettingsGlobalNetworkNAT 79 79 { 80 80 public: 81 81 82 /* Constructor:*/82 /** Constructs item. */ 83 83 UIItemNetworkNAT(); 84 84 85 /* API: Get/return data to/form items: */ 86 void fetchNetworkData(const UIDataSettingsGlobalNetworkNAT &data); 87 void uploadNetworkData(UIDataSettingsGlobalNetworkNAT &data); 85 /** Updates item fields from data. */ 86 void updateFields(); 87 /** Updates item data from fields. */ 88 void updateData(); 88 89 89 90 /** Performs validation, updates @a messages list if something is wrong. */ 90 91 bool validate(UIValidationMessage &messages); 91 92 92 /* API: Update stuff: */ 93 void updateInfo(); 94 void updateData(); 95 96 /* API: Network item getters: */ 97 QString name() const { return m_data.m_strName; } 98 QString newName() const { return m_data.m_strNewName; } 93 /** Returns item name. */ 94 QString name() const { return m_strName; } 95 /** Returns new item name. */ 96 QString newName() const { return m_strNewName; } 97 98 protected: 99 99 100 100 /** Returns default text. */ 101 101 virtual QString defaultText() const /* override */; 102 103 private:104 105 /* Variable: Network data: */106 UIDataSettingsGlobalNetworkNAT m_data;107 102 }; 108 103 109 104 110 /* Global settings / Network page / Host network item:*/111 class UIItemNetworkHost : public QITreeWidgetItem 105 /** Global settings: Network page: Host network tree-widget item. */ 106 class UIItemNetworkHost : public QITreeWidgetItem, public UIDataSettingsGlobalNetworkHost 112 107 { 113 108 public: 114 109 115 /* Constructor:*/110 /** Constructs item. */ 116 111 UIItemNetworkHost(); 117 112 118 /* API: Get/return data to/form items: */ 119 void fetchNetworkData(const UIDataSettingsGlobalNetworkHost &data); 120 void uploadNetworkData(UIDataSettingsGlobalNetworkHost &data); 113 /** Updates item fields from data. */ 114 void updateFields(); 121 115 122 116 /** Performs validation, updates @a messages list if something is wrong. */ 123 117 bool validate(UIValidationMessage &messages); 124 118 125 /* API: Update stuff: */ 126 void updateInfo(); 127 128 /* API: Network item getters: */ 129 QString name() const { return m_data.m_interface.m_strName; } 130 131 private: 132 133 /* Variable: Network data: */ 134 UIDataSettingsGlobalNetworkHost m_data; 119 /** Returns item name. */ 120 QString name() const { return m_interface.m_strName; } 135 121 }; 136 122 123 124 /********************************************************************************************************************************* 125 * Class UIItemNetworkNAT implementation. * 126 *********************************************************************************************************************************/ 137 127 138 128 UIItemNetworkNAT::UIItemNetworkNAT() … … 141 131 } 142 132 143 void UIItemNetworkNAT::fetchNetworkData(const UIDataSettingsGlobalNetworkNAT &data) 144 { 145 /* Get from the cache: */ 146 m_data = data; 147 148 /* Fetch info: */ 149 updateInfo(); 150 } 151 152 void UIItemNetworkNAT::uploadNetworkData(UIDataSettingsGlobalNetworkNAT &data) 153 { 154 /* Put to the cache: */ 155 data = m_data; 133 void UIItemNetworkNAT::updateFields() 134 { 135 /* Compose item name/tool-tip: */ 136 const QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"); 137 const QString strSubHeader("<tr><td><nobr> %1: </nobr></td><td><nobr>%2</nobr></td></tr>"); 138 QString strToolTip; 139 140 /* Item name was not changed: */ 141 setCheckState(0, m_fEnabled ? Qt::Checked : Qt::Unchecked); 142 if (m_strNewName == m_strName) 143 { 144 /* Just use the old one: */ 145 setText(1, m_strName); 146 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network Name"), m_strName); 147 } 148 /* If name was changed: */ 149 else 150 { 151 /* We should explain that: */ 152 const QString oldName = m_strName; 153 const QString newName = m_strNewName.isEmpty() ? UIGlobalSettingsNetwork::tr("[empty]") : m_strNewName; 154 setText(1, UIGlobalSettingsNetwork::tr("%1 (renamed from %2)").arg(newName, oldName)); 155 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Old Network Name"), m_strName); 156 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("New Network Name"), m_strNewName); 157 } 158 159 /* Other tool-tip information: */ 160 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network CIDR"), m_strCIDR); 161 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports DHCP"), 162 m_fSupportsDHCP ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no")); 163 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports IPv6"), 164 m_fSupportsIPv6 ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no")); 165 if (m_fSupportsIPv6 && m_fAdvertiseDefaultIPv6Route) 166 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Default IPv6 route"), UIGlobalSettingsNetwork::tr("yes")); 167 168 /* Assign tool-tip finally: */ 169 setToolTip(1, strToolTip); 170 } 171 172 void UIItemNetworkNAT::updateData() 173 { 174 /* Update data: */ 175 m_fEnabled = checkState(0) == Qt::Checked; 156 176 } 157 177 … … 163 183 /* NAT network name validation: */ 164 184 bool fNameValid = true; 165 if (m_ data.m_strNewName.isEmpty())185 if (m_strNewName.isEmpty()) 166 186 { 167 187 /* Emptiness validation: */ 168 message.second << UIGlobalSettingsNetwork::tr("No new name specified for the NAT network previously called <b>%1</b>.").arg(m_ data.m_strName);188 message.second << UIGlobalSettingsNetwork::tr("No new name specified for the NAT network previously called <b>%1</b>.").arg(m_strName); 169 189 fNameValid = false; 170 190 fPass = false; … … 172 192 173 193 /* NAT network CIDR validation: */ 174 if (m_ data.m_strCIDR.isEmpty())194 if (m_strCIDR.isEmpty()) 175 195 { 176 196 /* Emptiness validation: */ 177 197 if (fNameValid) 178 message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network <b>%1</b>.").arg(m_ data.m_strNewName);198 message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network <b>%1</b>.").arg(m_strNewName); 179 199 else 180 message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network previously called <b>%1</b>.").arg(m_ data.m_strName);200 message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network previously called <b>%1</b>.").arg(m_strName); 181 201 fPass = false; 182 202 } … … 185 205 /* Correctness validation: */ 186 206 RTNETADDRIPV4 network, mask; 187 int rc = RTCidrStrToIPv4(m_ data.m_strCIDR.toUtf8().constData(), &network, &mask);207 int rc = RTCidrStrToIPv4(m_strCIDR.toUtf8().constData(), &network, &mask); 188 208 if (RT_FAILURE(rc)) 189 209 { 190 210 if (fNameValid) 191 211 message.second << UIGlobalSettingsNetwork::tr("Invalid CIDR specified (<i>%1</i>) for the NAT network <b>%2</b>.") 192 .arg(m_ data.m_strCIDR, m_data.m_strNewName);212 .arg(m_strCIDR, m_strNewName); 193 213 else 194 214 message.second << UIGlobalSettingsNetwork::tr("Invalid CIDR specified (<i>%1</i>) for the NAT network previously called <b>%2</b>.") 195 .arg(m_ data.m_strCIDR, m_data.m_strName);215 .arg(m_strCIDR, m_strName); 196 216 fPass = false; 197 217 } … … 202 222 } 203 223 204 void UIItemNetworkNAT::updateInfo()205 {206 /* Compose item name/tool-tip: */207 QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>");208 QString strSubHeader("<tr><td><nobr> %1: </nobr></td><td><nobr>%2</nobr></td></tr>");209 QString strToolTip;210 211 /* Item name was not changed: */212 setCheckState(0, m_data.m_fEnabled ? Qt::Checked : Qt::Unchecked);213 if (m_data.m_strNewName == m_data.m_strName)214 {215 /* Just use the old one: */216 setText(1, m_data.m_strName);217 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network Name"), m_data.m_strName);218 }219 /* If name was changed: */220 else221 {222 /* We should explain that: */223 const QString oldName = m_data.m_strName;224 const QString newName = m_data.m_strNewName.isEmpty() ? UIGlobalSettingsNetwork::tr("[empty]") : m_data.m_strNewName;225 setText(1, UIGlobalSettingsNetwork::tr("%1 (renamed from %2)").arg(newName, oldName));226 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Old Network Name"), m_data.m_strName);227 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("New Network Name"), m_data.m_strNewName);228 }229 230 /* Other tool-tip information: */231 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network CIDR"), m_data.m_strCIDR);232 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports DHCP"),233 m_data.m_fSupportsDHCP ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));234 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports IPv6"),235 m_data.m_fSupportsIPv6 ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));236 if (m_data.m_fSupportsIPv6 && m_data.m_fAdvertiseDefaultIPv6Route)237 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Default IPv6 route"), UIGlobalSettingsNetwork::tr("yes"));238 239 /* Assign tool-tip finally: */240 setToolTip(1, strToolTip);241 }242 243 void UIItemNetworkNAT::updateData()244 {245 /* Update data: */246 m_data.m_fEnabled = checkState(0) == Qt::Checked;247 }248 249 224 QString UIItemNetworkNAT::defaultText() const 250 225 { 251 return m_ data.m_fEnabled ?226 return m_fEnabled ? 252 227 tr("%1, %2", "col.2 text, col.1 name") 253 228 .arg(text(1)) … … 258 233 259 234 235 /********************************************************************************************************************************* 236 * Class UIItemNetworkHost implementation. * 237 *********************************************************************************************************************************/ 238 260 239 UIItemNetworkHost::UIItemNetworkHost() 261 240 : QITreeWidgetItem() … … 263 242 } 264 243 265 void UIItemNetworkHost::fetchNetworkData(const UIDataSettingsGlobalNetworkHost &data) 266 { 267 /* Get from the cache: */ 268 m_data = data; 269 270 /* Fetch info: */ 271 updateInfo(); 272 } 273 274 void UIItemNetworkHost::uploadNetworkData(UIDataSettingsGlobalNetworkHost &data) 275 { 276 /* Put to the cache: */ 277 data = m_data; 244 void UIItemNetworkHost::updateFields() 245 { 246 /* Compose item name/tool-tip: */ 247 setText(0, m_interface.m_strName); 248 const QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"); 249 const QString strSubHeader("<tr><td><nobr> %1: </nobr></td><td><nobr>%2</nobr></td></tr>"); 250 QString strToolTip; 251 252 /* Host interface information: */ 253 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Adapter")) 254 .arg(m_interface.m_fDhcpClientEnabled ? 255 UIGlobalSettingsNetwork::tr("Automatically configured", "interface") : 256 UIGlobalSettingsNetwork::tr("Manually configured", "interface")); 257 if (!m_interface.m_fDhcpClientEnabled) 258 { 259 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Address")) 260 .arg(m_interface.m_strInterfaceAddress.isEmpty() ? 261 UIGlobalSettingsNetwork::tr ("Not set", "address") : 262 m_interface.m_strInterfaceAddress) + 263 strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Network Mask")) 264 .arg(m_interface.m_strInterfaceMask.isEmpty() ? 265 UIGlobalSettingsNetwork::tr ("Not set", "mask") : 266 m_interface.m_strInterfaceMask); 267 if (m_interface.m_fIpv6Supported) 268 { 269 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Address")) 270 .arg(m_interface.m_strInterfaceAddress6.isEmpty() ? 271 UIGlobalSettingsNetwork::tr("Not set", "address") : 272 m_interface.m_strInterfaceAddress6) + 273 strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Network Mask Length")) 274 .arg(m_interface.m_strInterfaceMaskLength6.isEmpty() ? 275 UIGlobalSettingsNetwork::tr("Not set", "length") : 276 m_interface.m_strInterfaceMaskLength6); 277 } 278 } 279 280 /* DHCP server information: */ 281 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("DHCP Server")) 282 .arg(m_dhcpserver.m_fDhcpServerEnabled ? 283 UIGlobalSettingsNetwork::tr("Enabled", "server") : 284 UIGlobalSettingsNetwork::tr("Disabled", "server")); 285 if (m_dhcpserver.m_fDhcpServerEnabled) 286 { 287 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Address")) 288 .arg(m_dhcpserver.m_strDhcpServerAddress.isEmpty() ? 289 UIGlobalSettingsNetwork::tr("Not set", "address") : 290 m_dhcpserver.m_strDhcpServerAddress) + 291 strSubHeader.arg(UIGlobalSettingsNetwork::tr("Network Mask")) 292 .arg(m_dhcpserver.m_strDhcpServerMask.isEmpty() ? 293 UIGlobalSettingsNetwork::tr("Not set", "mask") : 294 m_dhcpserver.m_strDhcpServerMask) + 295 strSubHeader.arg(UIGlobalSettingsNetwork::tr("Lower Bound")) 296 .arg(m_dhcpserver.m_strDhcpLowerAddress.isEmpty() ? 297 UIGlobalSettingsNetwork::tr("Not set", "bound") : 298 m_dhcpserver.m_strDhcpLowerAddress) + 299 strSubHeader.arg(UIGlobalSettingsNetwork::tr("Upper Bound")) 300 .arg(m_dhcpserver.m_strDhcpUpperAddress.isEmpty() ? 301 UIGlobalSettingsNetwork::tr("Not set", "bound") : 302 m_dhcpserver.m_strDhcpUpperAddress); 303 } 304 305 /* Assign tool-tip finally: */ 306 setToolTip(0, strToolTip); 278 307 } 279 308 … … 284 313 285 314 /* Host interface validation: */ 286 if (!m_ data.m_interface.m_fDhcpClientEnabled)287 { 288 if (!m_ data.m_interface.m_strInterfaceAddress.trimmed().isEmpty() &&289 ( !RTNetIsIPv4AddrStr(m_ data.m_interface.m_strInterfaceAddress.toUtf8().constData())290 || RTNetStrIsIPv4AddrAny(m_ data.m_interface.m_strInterfaceAddress.toUtf8().constData())))315 if (!m_interface.m_fDhcpClientEnabled) 316 { 317 if (!m_interface.m_strInterfaceAddress.trimmed().isEmpty() && 318 ( !RTNetIsIPv4AddrStr(m_interface.m_strInterfaceAddress.toUtf8().constData()) 319 || RTNetStrIsIPv4AddrAny(m_interface.m_strInterfaceAddress.toUtf8().constData()))) 291 320 { 292 321 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid IPv4 address.").arg(text(0)); 293 322 fPass = false; 294 323 } 295 if (!m_ data.m_interface.m_strInterfaceMask.trimmed().isEmpty() &&296 ( !RTNetIsIPv4AddrStr(m_ data.m_interface.m_strInterfaceMask.toUtf8().constData())297 || RTNetStrIsIPv4AddrAny(m_ data.m_interface.m_strInterfaceMask.toUtf8().constData())))324 if (!m_interface.m_strInterfaceMask.trimmed().isEmpty() && 325 ( !RTNetIsIPv4AddrStr(m_interface.m_strInterfaceMask.toUtf8().constData()) 326 || RTNetStrIsIPv4AddrAny(m_interface.m_strInterfaceMask.toUtf8().constData()))) 298 327 { 299 328 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid IPv4 network mask.").arg(text(0)); 300 329 fPass = false; 301 330 } 302 if (m_ data.m_interface.m_fIpv6Supported)303 { 304 if (!m_ data.m_interface.m_strInterfaceAddress6.trimmed().isEmpty() &&305 ( !RTNetIsIPv6AddrStr(m_ data.m_interface.m_strInterfaceAddress6.toUtf8().constData())306 || RTNetStrIsIPv6AddrAny(m_ data.m_interface.m_strInterfaceAddress6.toUtf8().constData())))331 if (m_interface.m_fIpv6Supported) 332 { 333 if (!m_interface.m_strInterfaceAddress6.trimmed().isEmpty() && 334 ( !RTNetIsIPv6AddrStr(m_interface.m_strInterfaceAddress6.toUtf8().constData()) 335 || RTNetStrIsIPv6AddrAny(m_interface.m_strInterfaceAddress6.toUtf8().constData()))) 307 336 { 308 337 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid IPv6 address.").arg(text(0)); … … 310 339 } 311 340 bool fIsMaskPrefixLengthNumber = false; 312 const int iMaskPrefixLength = m_ data.m_interface.m_strInterfaceMaskLength6.trimmed().toInt(&fIsMaskPrefixLengthNumber);341 const int iMaskPrefixLength = m_interface.m_strInterfaceMaskLength6.trimmed().toInt(&fIsMaskPrefixLengthNumber); 313 342 if ( !fIsMaskPrefixLengthNumber 314 343 || iMaskPrefixLength < 0 … … 322 351 323 352 /* DHCP server validation: */ 324 if (m_d ata.m_dhcpserver.m_fDhcpServerEnabled)325 { 326 if ( !RTNetIsIPv4AddrStr(m_d ata.m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData())327 || RTNetStrIsIPv4AddrAny(m_d ata.m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData()))353 if (m_dhcpserver.m_fDhcpServerEnabled) 354 { 355 if ( !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData()) 356 || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData())) 328 357 { 329 358 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server address.").arg(text(0)); 330 359 fPass = false; 331 360 } 332 if ( !RTNetIsIPv4AddrStr(m_d ata.m_dhcpserver.m_strDhcpServerMask.toUtf8().constData())333 || RTNetStrIsIPv4AddrAny(m_d ata.m_dhcpserver.m_strDhcpServerMask.toUtf8().constData()))361 if ( !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpServerMask.toUtf8().constData()) 362 || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpServerMask.toUtf8().constData())) 334 363 { 335 364 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server mask.").arg(text(0)); 336 365 fPass = false; 337 366 } 338 if ( !RTNetIsIPv4AddrStr(m_d ata.m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData())339 || RTNetStrIsIPv4AddrAny(m_d ata.m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData()))367 if ( !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData()) 368 || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData())) 340 369 { 341 370 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server lower address bound.").arg(text(0)); 342 371 fPass = false; 343 372 } 344 if ( !RTNetIsIPv4AddrStr(m_d ata.m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData())345 || RTNetStrIsIPv4AddrAny(m_d ata.m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData()))373 if ( !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData()) 374 || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData())) 346 375 { 347 376 message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server upper address bound.").arg(text(0)); … … 354 383 } 355 384 356 void UIItemNetworkHost::updateInfo() 357 { 358 /* Compose item name/tool-tip: */ 359 setText(0, m_data.m_interface.m_strName); 360 QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"); 361 QString strSubHeader("<tr><td><nobr> %1: </nobr></td><td><nobr>%2</nobr></td></tr>"); 362 QString strToolTip; 363 364 /* Host interface information: */ 365 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Adapter")) 366 .arg(m_data.m_interface.m_fDhcpClientEnabled ? 367 UIGlobalSettingsNetwork::tr("Automatically configured", "interface") : 368 UIGlobalSettingsNetwork::tr("Manually configured", "interface")); 369 if (!m_data.m_interface.m_fDhcpClientEnabled) 370 { 371 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Address")) 372 .arg(m_data.m_interface.m_strInterfaceAddress.isEmpty() ? 373 UIGlobalSettingsNetwork::tr ("Not set", "address") : 374 m_data.m_interface.m_strInterfaceAddress) + 375 strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Network Mask")) 376 .arg(m_data.m_interface.m_strInterfaceMask.isEmpty() ? 377 UIGlobalSettingsNetwork::tr ("Not set", "mask") : 378 m_data.m_interface.m_strInterfaceMask); 379 if (m_data.m_interface.m_fIpv6Supported) 380 { 381 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Address")) 382 .arg(m_data.m_interface.m_strInterfaceAddress6.isEmpty() ? 383 UIGlobalSettingsNetwork::tr("Not set", "address") : 384 m_data.m_interface.m_strInterfaceAddress6) + 385 strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Network Mask Length")) 386 .arg(m_data.m_interface.m_strInterfaceMaskLength6.isEmpty() ? 387 UIGlobalSettingsNetwork::tr("Not set", "length") : 388 m_data.m_interface.m_strInterfaceMaskLength6); 389 } 390 } 391 392 /* DHCP server information: */ 393 strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("DHCP Server")) 394 .arg(m_data.m_dhcpserver.m_fDhcpServerEnabled ? 395 UIGlobalSettingsNetwork::tr("Enabled", "server") : 396 UIGlobalSettingsNetwork::tr("Disabled", "server")); 397 if (m_data.m_dhcpserver.m_fDhcpServerEnabled) 398 { 399 strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Address")) 400 .arg(m_data.m_dhcpserver.m_strDhcpServerAddress.isEmpty() ? 401 UIGlobalSettingsNetwork::tr("Not set", "address") : 402 m_data.m_dhcpserver.m_strDhcpServerAddress) + 403 strSubHeader.arg(UIGlobalSettingsNetwork::tr("Network Mask")) 404 .arg(m_data.m_dhcpserver.m_strDhcpServerMask.isEmpty() ? 405 UIGlobalSettingsNetwork::tr("Not set", "mask") : 406 m_data.m_dhcpserver.m_strDhcpServerMask) + 407 strSubHeader.arg(UIGlobalSettingsNetwork::tr("Lower Bound")) 408 .arg(m_data.m_dhcpserver.m_strDhcpLowerAddress.isEmpty() ? 409 UIGlobalSettingsNetwork::tr("Not set", "bound") : 410 m_data.m_dhcpserver.m_strDhcpLowerAddress) + 411 strSubHeader.arg(UIGlobalSettingsNetwork::tr("Upper Bound")) 412 .arg(m_data.m_dhcpserver.m_strDhcpUpperAddress.isEmpty() ? 413 UIGlobalSettingsNetwork::tr("Not set", "bound") : 414 m_data.m_dhcpserver.m_strDhcpUpperAddress); 415 } 416 417 /* Assign tool-tip finally: */ 418 setToolTip(0, strToolTip); 419 } 420 385 386 /********************************************************************************************************************************* 387 * Class UIGlobalSettingsNetwork implementation. * 388 *********************************************************************************************************************************/ 421 389 422 390 UIGlobalSettingsNetwork::UIGlobalSettingsNetwork() … … 475 443 /* Load old network data from the cache: */ 476 444 foreach (const UIDataSettingsGlobalNetworkNAT &network, oldNetworkData.m_networksNAT) 477 createTree ItemNetworkNAT(network);445 createTreeWidgetItemForNetworkNAT(network); 478 446 m_pTreeNetworkNAT->sortByColumn(1, Qt::AscendingOrder); 479 447 m_pTreeNetworkNAT->setCurrentItem(m_pTreeNetworkNAT->topLevelItem(0)); 480 448 sltHandleCurrentItemChangeNetworkNAT(); 481 449 foreach (const UIDataSettingsGlobalNetworkHost &network, oldNetworkData.m_networksHost) 482 createTree ItemNetworkHost(network);450 createTreeWidgetItemForNetworkHost(network); 483 451 m_pTreeNetworkHost->sortByColumn(0, Qt::AscendingOrder); 484 452 m_pTreeNetworkHost->setCurrentItem(m_pTreeNetworkHost->topLevelItem(0)); … … 498 466 for (int iNetworkIndex = 0; iNetworkIndex < m_pTreeNetworkNAT->topLevelItemCount(); ++iNetworkIndex) 499 467 { 500 UIDataSettingsGlobalNetworkNAT data; 501 UIItemNetworkNAT *pItem = static_cast<UIItemNetworkNAT*>(m_pTreeNetworkNAT->topLevelItem(iNetworkIndex)); 502 pItem->uploadNetworkData(data); 503 newNetworkData.m_networksNAT << data; 468 const UIItemNetworkNAT *pItem = static_cast<UIItemNetworkNAT*>(m_pTreeNetworkNAT->topLevelItem(iNetworkIndex)); 469 newNetworkData.m_networksNAT << *pItem; 504 470 } 505 471 newNetworkData.m_networksHost.clear(); 506 472 for (int iNetworkIndex = 0; iNetworkIndex < m_pTreeNetworkHost->topLevelItemCount(); ++iNetworkIndex) 507 473 { 508 UIDataSettingsGlobalNetworkHost data; 509 UIItemNetworkHost *pItem = static_cast<UIItemNetworkHost*>(m_pTreeNetworkHost->topLevelItem(iNetworkIndex)); 510 pItem->uploadNetworkData(data); 511 newNetworkData.m_networksHost << data; 474 const UIItemNetworkHost *pItem = static_cast<UIItemNetworkHost*>(m_pTreeNetworkHost->topLevelItem(iNetworkIndex)); 475 newNetworkData.m_networksHost << *pItem; 512 476 } 513 477 … … 685 649 UIDataSettingsGlobalNetworkNAT data; 686 650 loadDataNetworkNAT(network, data); 687 createTree ItemNetworkNAT(data, true);651 createTreeWidgetItemForNetworkNAT(data, true); 688 652 m_pTreeNetworkNAT->sortByColumn(1, Qt::AscendingOrder); 689 653 } … … 696 660 697 661 /* Edit current item data: */ 698 UIDataSettingsGlobalNetworkNAT data; 699 pItem->uploadNetworkData(data); 662 UIDataSettingsGlobalNetworkNAT data = *pItem; 700 663 UIGlobalSettingsNetworkDetailsNAT details(this, data); 701 664 if (details.exec() == QDialog::Accepted) 702 665 { 703 666 /* Put data back: */ 704 pItem->fetchNetworkData(data); 667 pItem->UIDataSettingsGlobalNetworkNAT::operator=(data); 668 pItem->updateFields(); 705 669 sltHandleCurrentItemChangeNetworkNAT(); 706 670 /* Revalidate: */ … … 734 698 735 699 /* Update tree: */ 736 removeTree ItemNetworkNAT(pItem);700 removeTreeWidgetItemOfNetworkNAT(pItem); 737 701 } 738 702 … … 802 766 UIDataSettingsGlobalNetworkHost data; 803 767 loadDataNetworkHost(iface, data); 804 createTree ItemNetworkHost(data, true);768 createTreeWidgetItemForNetworkHost(data, true); 805 769 m_pTreeNetworkHost->sortByColumn(0, Qt::AscendingOrder); 806 770 } … … 813 777 814 778 /* Edit current item data: */ 815 UIDataSettingsGlobalNetworkHost data; 816 pItem->uploadNetworkData(data); 779 UIDataSettingsGlobalNetworkHost data = *pItem; 817 780 UIGlobalSettingsNetworkDetailsHost details(this, data); 818 781 if (details.exec() == QDialog::Accepted) 819 782 { 820 783 /* Put data back: */ 821 pItem->fetchNetworkData(data); 784 pItem->UIDataSettingsGlobalNetworkHost::operator=(data); 785 pItem->updateFields(); 822 786 sltHandleCurrentItemChangeNetworkHost(); 823 787 /* Revalidate: */ … … 864 828 865 829 /* Update tree: */ 866 removeTree ItemNetworkHost(pItem);830 removeTreeWidgetItemOfNetworkHost(pItem); 867 831 } 868 832 … … 906 870 /* Prepare 'NAT Network' tab: */ 907 871 prepareTabNAT(); 908 /* Prepare 'Host -onlyNetwork' tab: */872 /* Prepare 'Host Network' tab: */ 909 873 prepareTabHost(); 910 874 /* Prepare connections: */ … … 986 950 #endif 987 951 988 /* Host -onlyNetwork tree-widget created in the .ui file. */952 /* Host Network tree-widget created in the .ui file. */ 989 953 AssertPtrReturnVoid(m_pTreeNetworkHost); 990 954 { … … 994 958 } 995 959 996 /* Host -onlyNetwork toolbar created in the .ui file. */960 /* Host Network toolbar created in the .ui file. */ 997 961 AssertPtrReturnVoid(m_pToolbarNetworkHost); 998 962 { … … 1002 966 m_pToolbarNetworkHost->setOrientation(Qt::Vertical); 1003 967 1004 /* Create 'Add Host -onlyNetwork' action: */968 /* Create 'Add Host Network' action: */ 1005 969 m_pActionAddNetworkHost = m_pToolbarNetworkHost->addAction(UIIconPool::iconSet(":/add_host_iface_16px.png", 1006 970 ":/add_host_iface_disabled_16px.png"), … … 1012 976 } 1013 977 1014 /* Create 'Edit Host -onlyNetwork' action: */978 /* Create 'Edit Host Network' action: */ 1015 979 m_pActionEditNetworkHost = m_pToolbarNetworkHost->addAction(UIIconPool::iconSet(":/edit_host_iface_16px.png", 1016 980 ":/edit_host_iface_disabled_16px.png"), … … 1022 986 } 1023 987 1024 /* Create 'Remove Host -onlyNetwork' action: */988 /* Create 'Remove Host Network' action: */ 1025 989 m_pActionRemoveNetworkHost = m_pToolbarNetworkHost->addAction(UIIconPool::iconSet(":/remove_host_iface_16px.png", 1026 990 ":/remove_host_iface_disabled_16px.png"), … … 1047 1011 this, SLOT(sltHandleItemChangeNetworkNAT(QTreeWidgetItem *))); 1048 1012 1049 /* Configure 'Host -onlyNetwork' connections: */1013 /* Configure 'Host Network' connections: */ 1050 1014 connect(m_pTreeNetworkHost, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)), 1051 1015 this, SLOT(sltHandleCurrentItemChangeNetworkHost())); … … 1155 1119 } 1156 1120 1157 void UIGlobalSettingsNetwork::createTree ItemNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem)1121 void UIGlobalSettingsNetwork::createTreeWidgetItemForNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem) 1158 1122 { 1159 1123 /* Add new item to the tree: */ 1160 1124 UIItemNetworkNAT *pItem = new UIItemNetworkNAT; 1161 pItem->fetchNetworkData(data); 1125 pItem->UIDataSettingsGlobalNetworkNAT::operator=(data); 1126 pItem->updateFields(); 1162 1127 m_pTreeNetworkNAT->addTopLevelItem(pItem); 1163 1128 /* And choose it as current if necessary: */ … … 1166 1131 } 1167 1132 1168 void UIGlobalSettingsNetwork::removeTree ItemNetworkNAT(UIItemNetworkNAT *pItem)1133 void UIGlobalSettingsNetwork::removeTreeWidgetItemOfNetworkNAT(UIItemNetworkNAT *pItem) 1169 1134 { 1170 1135 /* Delete passed item: */ … … 1280 1245 } 1281 1246 1282 void UIGlobalSettingsNetwork::createTree ItemNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem)1247 void UIGlobalSettingsNetwork::createTreeWidgetItemForNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem) 1283 1248 { 1284 1249 /* Add new item to the tree: */ 1285 1250 UIItemNetworkHost *pItem = new UIItemNetworkHost; 1286 pItem->fetchNetworkData(data); 1251 pItem->UIDataSettingsGlobalNetworkHost::operator=(data); 1252 pItem->updateFields(); 1287 1253 m_pTreeNetworkHost->addTopLevelItem(pItem); 1288 1254 /* And choose it as current if necessary: */ … … 1291 1257 } 1292 1258 1293 void UIGlobalSettingsNetwork::removeTree ItemNetworkHost(UIItemNetworkHost *pItem)1259 void UIGlobalSettingsNetwork::removeTreeWidgetItemOfNetworkHost(UIItemNetworkHost *pItem) 1294 1260 { 1295 1261 /* Delete passed item: */ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.h
r66343 r66612 114 114 void saveDataNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data); 115 115 /** Creates a new item in the NAT network tree on the basis of passed @a data, @a fChooseItem if requested. */ 116 void createTree ItemNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem = false);116 void createTreeWidgetItemForNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem = false); 117 117 /** Removes existing @a pItem from the NAT network tree. */ 118 void removeTree ItemNetworkNAT(UIItemNetworkNAT *pItem);118 void removeTreeWidgetItemOfNetworkNAT(UIItemNetworkNAT *pItem); 119 119 120 120 /** Uploads host @a network data into passed @a data storage unit. */ … … 123 123 void saveDataNetworkHost(const UIDataSettingsGlobalNetworkHost &data); 124 124 /** Creates a new item in the host network tree on the basis of passed @a data, @a fChooseItem if requested. */ 125 void createTree ItemNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem = false);125 void createTreeWidgetItemForNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem = false); 126 126 /** Removes existing @a pItem from the host network tree. */ 127 void removeTree ItemNetworkHost(UIItemNetworkHost *pItem);127 void removeTreeWidgetItemOfNetworkHost(UIItemNetworkHost *pItem); 128 128 129 129 /** Holds the Add NAT network action instance. */
Note:
See TracChangeset
for help on using the changeset viewer.