Changeset 87622 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Feb 5, 2021 10:23:56 AM (4 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/networkmanager
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UIDetailsWidgetNATNetwork.cpp
r87565 r87622 18 18 /* Qt includes: */ 19 19 #include <QCheckBox> 20 #include <QFontMetrics> 21 #include <QGroupBox> 20 22 #include <QLabel> 21 23 #include <QPushButton> … … 45 47 , m_pLabelNetworkName(0) 46 48 , m_pEditorNetworkName(0) 49 , m_pGroupBoxIPv4(0) 47 50 , m_pLabelNetworkIPv4Prefix(0) 48 51 , m_pEditorNetworkIPv4Prefix(0) 52 , m_pCheckboxSupportsDHCP(0) 53 , m_pGroupBoxIPv6(0) 49 54 , m_pLabelNetworkIPv6Prefix(0) 50 55 , m_pEditorNetworkIPv6Prefix(0) 51 , m_pLabelExtended(0)52 , m_pCheckboxSupportsDHCP(0)53 , m_pCheckboxSupportsIPv6(0)54 56 , m_pCheckboxAdvertiseDefaultIPv6Route(0) 55 57 , m_pButtonBoxOptions(0) … … 151 153 152 154 if (m_pLabelNetworkName) 153 m_pLabelNetworkName->setText(tr(" &Name:"));155 m_pLabelNetworkName->setText(tr("N&ame:")); 154 156 if (m_pEditorNetworkName) 155 157 m_pEditorNetworkName->setToolTip(tr("Holds the name for this network.")); 156 158 if (m_pLabelNetworkIPv4Prefix) 157 m_pLabelNetworkIPv4Prefix->setText(tr(" IPv&4 Prefix:"));159 m_pLabelNetworkIPv4Prefix->setText(tr("Pref&ix:")); 158 160 if (m_pEditorNetworkIPv4Prefix) 159 161 m_pEditorNetworkIPv4Prefix->setToolTip(tr("Holds the IPv4 prefix for this network.")); 160 162 if (m_pLabelNetworkIPv6Prefix) 161 m_pLabelNetworkIPv6Prefix->setText(tr(" IPv&6 Prefix:"));163 m_pLabelNetworkIPv6Prefix->setText(tr("Prefi&x:")); 162 164 if (m_pEditorNetworkIPv6Prefix) 163 165 m_pEditorNetworkIPv6Prefix->setToolTip(tr("Holds the IPv6 prefix for this network.")); 164 if (m_pLabelExtended)165 m_pLabelExtended->setText(tr("Extended Features:"));166 166 if (m_pCheckboxSupportsDHCP) 167 167 { 168 m_pCheckboxSupportsDHCP->setText(tr(" Supports&DHCP"));168 m_pCheckboxSupportsDHCP->setText(tr("Enable &DHCP")); 169 169 m_pCheckboxSupportsDHCP->setToolTip(tr("When checked, this network will support DHCP.")); 170 170 } 171 if (m_pCheckboxSupportsIPv6) 172 { 173 m_pCheckboxSupportsIPv6->setText(tr("Supports &IPv6")); 174 m_pCheckboxSupportsIPv6->setToolTip(tr("When checked, this network will support IPv6.")); 171 if (m_pGroupBoxIPv4) 172 m_pGroupBoxIPv4->setTitle(tr("IPv&4")); 173 if (m_pGroupBoxIPv6) 174 { 175 m_pGroupBoxIPv6->setTitle(tr("IPv&6")); 176 m_pGroupBoxIPv6->setToolTip(tr("When checked, this network will support IPv6.")); 175 177 } 176 178 if (m_pCheckboxAdvertiseDefaultIPv6Route) … … 212 214 setToolTip(tr("Apply Changes (%1)").arg(m_pButtonBoxForwarding->button(QDialogButtonBox::Ok)->shortcut().toString())); 213 215 } 216 217 // WORKAROUND: 218 // Adjust name layout indent: 219 int iLeft, iTop, iRight, iBottom; 220 // We assume that IPv4 group-box has the same margin as IPv6 one: 221 m_pGroupBoxIPv4->layout()->getContentsMargins(&iLeft, &iTop, &iRight, &iBottom); 222 // We assume that IPv4 label has the same text as IPv6 one: 223 QFontMetrics fm(m_pLabelNetworkIPv4Prefix->font()); 224 const int iIndent = iLeft + 1 /* group-box frame width */ 225 + fm.width(m_pLabelNetworkIPv4Prefix->text().remove('&')); 226 m_pLayoutName->setColumnMinimumWidth(0, iIndent); 214 227 } 215 228 … … 241 254 { 242 255 m_newData.m_fSupportsIPv6 = fChecked; 256 loadDataForOptions(); 243 257 updateButtonStates(); 244 258 } … … 341 355 #endif 342 356 343 /* Prepare settingswidget layout: */344 QGridLayout *pLayoutSettings= new QGridLayout;345 if ( pLayoutSettings)357 /* Prepare name widget layout: */ 358 m_pLayoutName = new QGridLayout; 359 if (m_pLayoutName) 346 360 { 347 pLayoutSettings->setContentsMargins(0, 0, 0, 0);348 pLayoutSettings->setColumnStretch(3, 1);349 350 361 /* Prepare network name label: */ 351 362 m_pLabelNetworkName = new QLabel(pTabOptions); … … 353 364 { 354 365 m_pLabelNetworkName->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 355 pLayoutSettings->addWidget(m_pLabelNetworkName, 0, 0);366 m_pLayoutName->addWidget(m_pLabelNetworkName, 0, 0); 356 367 } 357 368 /* Prepare network name editor: */ … … 364 375 this, &UIDetailsWidgetNATNetwork::sltNetworkNameChanged); 365 376 366 pLayoutSettings->addWidget(m_pEditorNetworkName, 0, 1, 1, 3); 367 } 368 369 /* Prepare network IPv4 prefix label: */ 370 m_pLabelNetworkIPv4Prefix = new QLabel(pTabOptions); 371 if (m_pLabelNetworkIPv4Prefix) 372 { 373 m_pLabelNetworkIPv4Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 374 pLayoutSettings->addWidget(m_pLabelNetworkIPv4Prefix, 1, 0); 375 } 376 /* Prepare network IPv4 prefix editor: */ 377 m_pEditorNetworkIPv4Prefix = new QLineEdit(pTabOptions); 378 if (m_pEditorNetworkIPv4Prefix) 379 { 377 m_pLayoutName->addWidget(m_pEditorNetworkName, 0, 1); 378 } 379 380 pLayoutOptions->addLayout(m_pLayoutName); 381 } 382 383 /* Prepare IPv4 group-box: */ 384 m_pGroupBoxIPv4 = new QGroupBox(pTabOptions); 385 if (m_pGroupBoxIPv4) 386 { 387 /* Prepare settings widget layout: */ 388 QGridLayout *pLayoutSettings = new QGridLayout(m_pGroupBoxIPv4); 389 if (pLayoutSettings) 390 { 391 pLayoutSettings->setColumnStretch(2, 1); 392 393 /* Prepare network IPv4 prefix label: */ 394 m_pLabelNetworkIPv4Prefix = new QLabel(pTabOptions); 380 395 if (m_pLabelNetworkIPv4Prefix) 381 m_pLabelNetworkIPv4Prefix->setBuddy(m_pEditorNetworkIPv4Prefix); 382 connect(m_pEditorNetworkIPv4Prefix, &QLineEdit::textEdited, 383 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv4PrefixChanged); 384 385 pLayoutSettings->addWidget(m_pEditorNetworkIPv4Prefix, 1, 1, 1, 3); 386 } 387 388 /* Prepare network IPv6 prefix label: */ 389 m_pLabelNetworkIPv6Prefix = new QLabel(pTabOptions); 390 if (m_pLabelNetworkIPv6Prefix) 391 { 392 m_pLabelNetworkIPv6Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 393 pLayoutSettings->addWidget(m_pLabelNetworkIPv6Prefix, 2, 0); 394 } 395 /* Prepare network IPv6 prefix editor: */ 396 m_pEditorNetworkIPv6Prefix = new QLineEdit(pTabOptions); 397 if (m_pEditorNetworkIPv6Prefix) 398 { 396 { 397 m_pLabelNetworkIPv4Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 398 pLayoutSettings->addWidget(m_pLabelNetworkIPv4Prefix, 1, 0); 399 } 400 /* Prepare network IPv4 prefix editor: */ 401 m_pEditorNetworkIPv4Prefix = new QLineEdit(pTabOptions); 402 if (m_pEditorNetworkIPv4Prefix) 403 { 404 if (m_pLabelNetworkIPv4Prefix) 405 m_pLabelNetworkIPv4Prefix->setBuddy(m_pEditorNetworkIPv4Prefix); 406 connect(m_pEditorNetworkIPv4Prefix, &QLineEdit::textEdited, 407 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv4PrefixChanged); 408 409 pLayoutSettings->addWidget(m_pEditorNetworkIPv4Prefix, 1, 1, 1, 2); 410 } 411 412 /* Prepare 'supports DHCP' check-box: */ 413 m_pCheckboxSupportsDHCP = new QCheckBox(pTabOptions); 414 if (m_pCheckboxSupportsDHCP) 415 { 416 connect(m_pCheckboxSupportsDHCP, &QCheckBox::toggled, 417 this, &UIDetailsWidgetNATNetwork::sltSupportsDHCPChanged); 418 pLayoutSettings->addWidget(m_pCheckboxSupportsDHCP, 2, 1); 419 } 420 } 421 422 pLayoutOptions->addWidget(m_pGroupBoxIPv4); 423 } 424 425 /* Prepare IPv6 group-box: */ 426 m_pGroupBoxIPv6 = new QGroupBox(pTabOptions); 427 if (m_pGroupBoxIPv6) 428 { 429 m_pGroupBoxIPv6->setCheckable(true); 430 connect(m_pGroupBoxIPv6, &QGroupBox::toggled, 431 this, &UIDetailsWidgetNATNetwork::sltSupportsIPv6Changed); 432 433 /* Prepare settings widget layout: */ 434 QGridLayout *pLayoutSettings = new QGridLayout(m_pGroupBoxIPv6); 435 if (pLayoutSettings) 436 { 437 pLayoutSettings->setColumnStretch(2, 1); 438 439 /* Prepare network IPv6 prefix label: */ 440 m_pLabelNetworkIPv6Prefix = new QLabel(pTabOptions); 399 441 if (m_pLabelNetworkIPv6Prefix) 400 m_pLabelNetworkIPv6Prefix->setBuddy(m_pEditorNetworkIPv6Prefix); 401 connect(m_pEditorNetworkIPv6Prefix, &QLineEdit::textEdited, 402 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv6PrefixChanged); 403 404 pLayoutSettings->addWidget(m_pEditorNetworkIPv6Prefix, 2, 1, 1, 3); 405 } 406 407 /* Prepare extended label: */ 408 m_pLabelExtended = new QLabel(pTabOptions); 409 if (m_pLabelExtended) 410 { 411 m_pLabelExtended->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 412 pLayoutSettings->addWidget(m_pLabelExtended, 3, 0); 413 } 414 /* Prepare 'supports DHCP' check-box: */ 415 m_pCheckboxSupportsDHCP = new QCheckBox(pTabOptions); 416 if (m_pCheckboxSupportsDHCP) 417 { 418 connect(m_pCheckboxSupportsDHCP, &QCheckBox::toggled, 419 this, &UIDetailsWidgetNATNetwork::sltSupportsDHCPChanged); 420 pLayoutSettings->addWidget(m_pCheckboxSupportsDHCP, 3, 1, 1, 2); 421 } 422 /* Prepare 'supports IPv6' check-box: */ 423 m_pCheckboxSupportsIPv6 = new QCheckBox(pTabOptions); 424 if (m_pCheckboxSupportsIPv6) 425 { 426 connect(m_pCheckboxSupportsIPv6, &QCheckBox::toggled, 427 this, &UIDetailsWidgetNATNetwork::sltSupportsIPv6Changed); 428 pLayoutSettings->addWidget(m_pCheckboxSupportsIPv6, 4, 1, 1, 2); 429 } 430 /* Prepare 'advertise default IPv6 route' check-box: */ 431 m_pCheckboxAdvertiseDefaultIPv6Route = new QCheckBox(pTabOptions); 432 if (m_pCheckboxAdvertiseDefaultIPv6Route) 433 { 434 connect(m_pCheckboxAdvertiseDefaultIPv6Route, &QCheckBox::toggled, 435 this, &UIDetailsWidgetNATNetwork::sltAdvertiseDefaultIPv6RouteChanged); 436 pLayoutSettings->addWidget(m_pCheckboxAdvertiseDefaultIPv6Route, 5, 1, 1, 2); 437 } 438 439 pLayoutOptions->addLayout(pLayoutSettings); 442 { 443 m_pLabelNetworkIPv6Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 444 pLayoutSettings->addWidget(m_pLabelNetworkIPv6Prefix, 0, 0); 445 } 446 /* Prepare network IPv6 prefix editor: */ 447 m_pEditorNetworkIPv6Prefix = new QLineEdit(pTabOptions); 448 if (m_pEditorNetworkIPv6Prefix) 449 { 450 if (m_pLabelNetworkIPv6Prefix) 451 m_pLabelNetworkIPv6Prefix->setBuddy(m_pEditorNetworkIPv6Prefix); 452 connect(m_pEditorNetworkIPv6Prefix, &QLineEdit::textEdited, 453 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv6PrefixChanged); 454 455 pLayoutSettings->addWidget(m_pEditorNetworkIPv6Prefix, 0, 1, 1, 2); 456 } 457 458 /* Prepare 'advertise default IPv6 route' check-box: */ 459 m_pCheckboxAdvertiseDefaultIPv6Route = new QCheckBox(pTabOptions); 460 if (m_pCheckboxAdvertiseDefaultIPv6Route) 461 { 462 connect(m_pCheckboxAdvertiseDefaultIPv6Route, &QCheckBox::toggled, 463 this, &UIDetailsWidgetNATNetwork::sltAdvertiseDefaultIPv6RouteChanged); 464 pLayoutSettings->addWidget(m_pCheckboxAdvertiseDefaultIPv6Route, 1, 1, 1, 2); 465 } 466 } 467 468 pLayoutOptions->addWidget(m_pGroupBoxIPv6); 440 469 } 441 470 … … 526 555 /* Check whether network exists and enabled: */ 527 556 const bool fIsNetworkExists = m_newData.m_fExists; 557 const bool fIsIPv6Supported = m_newData.m_fSupportsIPv6; 528 558 529 559 /* Update 'Options' field availability: */ 530 560 m_pLabelNetworkName->setEnabled(fIsNetworkExists); 531 561 m_pEditorNetworkName->setEnabled(fIsNetworkExists); 562 m_pGroupBoxIPv4->setEnabled(fIsNetworkExists); 532 563 m_pLabelNetworkIPv4Prefix->setEnabled(fIsNetworkExists); 533 564 m_pEditorNetworkIPv4Prefix->setEnabled(fIsNetworkExists); 534 m_pLabelNetworkIPv6Prefix->setEnabled(fIsNetworkExists);535 m_pEditorNetworkIPv6Prefix->setEnabled(fIsNetworkExists);536 m_pLabelExtended->setEnabled(fIsNetworkExists);537 565 m_pCheckboxSupportsDHCP->setEnabled(fIsNetworkExists); 538 m_pCheckboxSupportsIPv6->setEnabled(fIsNetworkExists); 539 m_pCheckboxAdvertiseDefaultIPv6Route->setEnabled(fIsNetworkExists); 566 m_pGroupBoxIPv6->setEnabled(fIsNetworkExists); 567 m_pLabelNetworkIPv6Prefix->setEnabled(fIsNetworkExists && fIsIPv6Supported); 568 m_pEditorNetworkIPv6Prefix->setEnabled(fIsNetworkExists && fIsIPv6Supported); 569 m_pCheckboxAdvertiseDefaultIPv6Route->setEnabled(fIsNetworkExists && fIsIPv6Supported); 540 570 541 571 /* Load 'Options' fields: */ 542 572 m_pEditorNetworkName->setText(m_newData.m_strName); 543 573 m_pEditorNetworkIPv4Prefix->setText(m_newData.m_strPrefixIPv4); 574 m_pCheckboxSupportsDHCP->setChecked(m_newData.m_fSupportsDHCP); 575 m_pGroupBoxIPv6->setChecked(m_newData.m_fSupportsIPv6); 544 576 m_pEditorNetworkIPv6Prefix->setText(m_newData.m_strPrefixIPv6); 545 m_pCheckboxSupportsDHCP->setChecked(m_newData.m_fSupportsDHCP);546 m_pCheckboxSupportsIPv6->setChecked(m_newData.m_fSupportsIPv6);547 577 m_pCheckboxAdvertiseDefaultIPv6Route->setChecked(m_newData.m_fAdvertiseDefaultIPv6Route); 548 578 } -
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UIDetailsWidgetNATNetwork.h
r87565 r87622 33 33 class QAbstractButton; 34 34 class QCheckBox; 35 class QGridLayout; 36 class QGroupBox; 35 37 class QLabel; 36 38 class QLineEdit; … … 209 211 /** @name Network variables. 210 212 * @{ */ 213 /** Holds the name layout instance. */ 214 QGridLayout *m_pLayoutName; 211 215 /** Holds the network name label instance. */ 212 216 QLabel *m_pLabelNetworkName; 213 217 /** Holds the network name editor instance. */ 214 218 QLineEdit *m_pEditorNetworkName; 219 /** Holds the IPv4 group-box instance. */ 220 QGroupBox *m_pGroupBoxIPv4; 215 221 /** Holds the network IPv4 prefix label instance. */ 216 222 QLabel *m_pLabelNetworkIPv4Prefix; 217 223 /** Holds the network IPv4 prefix editor instance. */ 218 224 QLineEdit *m_pEditorNetworkIPv4Prefix; 225 /** Holds the 'supports DHCP' check-box instance. */ 226 QCheckBox *m_pCheckboxSupportsDHCP; 227 /** Holds the IPv4 group-box instance. */ 228 QGroupBox *m_pGroupBoxIPv6; 219 229 /** Holds the network IPv6 prefix label instance. */ 220 230 QLabel *m_pLabelNetworkIPv6Prefix; 221 231 /** Holds the network IPv6 prefix editor instance. */ 222 232 QLineEdit *m_pEditorNetworkIPv6Prefix; 223 /** Holds the extended label instance. */224 QLabel *m_pLabelExtended;225 /** Holds the 'supports DHCP' check-box instance. */226 QCheckBox *m_pCheckboxSupportsDHCP;227 /** Holds the 'supports IPv6' check-box instance. */228 QCheckBox *m_pCheckboxSupportsIPv6;229 233 /** Holds the 'advertise default IPv6 route' check-box instance. */ 230 234 QCheckBox *m_pCheckboxAdvertiseDefaultIPv6Route;
Note:
See TracChangeset
for help on using the changeset viewer.