Changeset 93884 in vbox
- Timestamp:
- Feb 22, 2022 11:17:24 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 150102
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/networkmanager
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UIDetailsWidgetNATNetwork.cpp
r93115 r93884 19 19 #include <QCheckBox> 20 20 #include <QFontMetrics> 21 #include <QGroupBox>22 21 #include <QLabel> 23 22 #include <QPushButton> … … 48 47 , m_pLabelNetworkName(0) 49 48 , m_pEditorNetworkName(0) 50 , m_pGroupBoxIPv4(0)51 49 , m_pLabelNetworkIPv4Prefix(0) 52 50 , m_pEditorNetworkIPv4Prefix(0) 53 51 , m_pCheckboxSupportsDHCP(0) 54 , m_p GroupBoxIPv6(0)52 , m_pCheckboxIPv6(0) 55 53 , m_pLabelNetworkIPv6Prefix(0) 56 54 , m_pEditorNetworkIPv6Prefix(0) … … 158 156 m_pEditorNetworkName->setToolTip(tr("Holds the name for this network.")); 159 157 if (m_pLabelNetworkIPv4Prefix) 160 m_pLabelNetworkIPv4Prefix->setText(tr(" Pref&ix:"));158 m_pLabelNetworkIPv4Prefix->setText(tr("IPv&4 Prefix:")); 161 159 if (m_pEditorNetworkIPv4Prefix) 162 160 m_pEditorNetworkIPv4Prefix->setToolTip(tr("Holds the IPv4 prefix for this network.")); 163 161 if (m_pLabelNetworkIPv6Prefix) 164 m_pLabelNetworkIPv6Prefix->setText(tr(" Prefi&x:"));162 m_pLabelNetworkIPv6Prefix->setText(tr("IPv&6 Prefix:")); 165 163 if (m_pEditorNetworkIPv6Prefix) 166 164 m_pEditorNetworkIPv6Prefix->setToolTip(tr("Holds the IPv6 prefix for this network.")); … … 170 168 m_pCheckboxSupportsDHCP->setToolTip(tr("When checked, this network will support DHCP.")); 171 169 } 172 if (m_pGroupBoxIPv4) 173 m_pGroupBoxIPv4->setTitle(tr("IPv&4")); 174 if (m_pGroupBoxIPv6) 175 { 176 m_pGroupBoxIPv6->setTitle(tr("IPv&6")); 177 m_pGroupBoxIPv6->setToolTip(tr("When checked, this network will support IPv6.")); 170 if (m_pCheckboxIPv6) 171 { 172 m_pCheckboxIPv6->setText(tr("&Enable IPv6")); 173 m_pCheckboxIPv6->setToolTip(tr("When checked, this network will support IPv6.")); 178 174 } 179 175 if (m_pCheckboxAdvertiseDefaultIPv6Route) … … 215 211 setToolTip(tr("Apply Changes (%1)").arg(m_pButtonBoxForwarding->button(QDialogButtonBox::Ok)->shortcut().toString())); 216 212 } 217 218 // WORKAROUND:219 // Adjust name layout indent:220 int iLeft, iTop, iRight, iBottom;221 // We assume that IPv4 group-box has the same margin as IPv6 one:222 m_pGroupBoxIPv4->layout()->getContentsMargins(&iLeft, &iTop, &iRight, &iBottom);223 // We assume that IPv4 label has the same text as IPv6 one:224 QFontMetrics fm(m_pLabelNetworkIPv4Prefix->font());225 const int iIndent = iLeft + 1 /* group-box frame width */226 + fm.width(m_pLabelNetworkIPv4Prefix->text().remove('&'));227 m_pLayoutName->setColumnMinimumWidth(0, iIndent);228 213 } 229 214 … … 348 333 { 349 334 /* Prepare 'Options' layout: */ 350 Q VBoxLayout *pLayoutOptions = new QVBoxLayout(pTabOptions);335 QGridLayout *pLayoutOptions = new QGridLayout(pTabOptions); 351 336 if (pLayoutOptions) 352 337 { 338 pLayoutOptions->setColumnStretch(0, 0); 339 pLayoutOptions->setColumnStretch(1, 0); 340 pLayoutOptions->setColumnStretch(2, 1); 341 pLayoutOptions->setColumnStretch(3, 1); 353 342 #ifdef VBOX_WS_MAC 354 343 pLayoutOptions->setSpacing(10); … … 356 345 #endif 357 346 358 /* Prepare name widget layout: */ 359 m_pLayoutName = new QGridLayout; 360 if (m_pLayoutName) 361 { 362 /* Prepare network name label: */ 363 m_pLabelNetworkName = new QLabel(pTabOptions); 347 /* Prepare network name label: */ 348 m_pLabelNetworkName = new QLabel(pTabOptions); 349 if (m_pLabelNetworkName) 350 { 351 m_pLabelNetworkName->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 352 pLayoutOptions->addWidget(m_pLabelNetworkName, 0, 0, 1, 2); 353 } 354 /* Prepare network name editor: */ 355 m_pEditorNetworkName = new QLineEdit(pTabOptions); 356 if (m_pEditorNetworkName) 357 { 364 358 if (m_pLabelNetworkName) 365 { 366 m_pLabelNetworkName->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 367 m_pLayoutName->addWidget(m_pLabelNetworkName, 0, 0); 368 } 369 /* Prepare network name editor: */ 370 m_pEditorNetworkName = new QLineEdit(pTabOptions); 371 if (m_pEditorNetworkName) 372 { 373 if (m_pLabelNetworkName) 374 m_pLabelNetworkName->setBuddy(m_pEditorNetworkName); 375 connect(m_pEditorNetworkName, &QLineEdit::textEdited, 376 this, &UIDetailsWidgetNATNetwork::sltNetworkNameChanged); 377 378 m_pLayoutName->addWidget(m_pEditorNetworkName, 0, 1); 379 } 380 381 pLayoutOptions->addLayout(m_pLayoutName); 382 } 383 384 /* Prepare IPv4 group-box: */ 385 m_pGroupBoxIPv4 = new QGroupBox(pTabOptions); 386 if (m_pGroupBoxIPv4) 387 { 388 /* Prepare settings widget layout: */ 389 QGridLayout *pLayoutSettings = new QGridLayout(m_pGroupBoxIPv4); 390 if (pLayoutSettings) 391 { 392 pLayoutSettings->setColumnStretch(2, 1); 393 394 /* Prepare network IPv4 prefix label: */ 395 m_pLabelNetworkIPv4Prefix = new QLabel(pTabOptions); 396 if (m_pLabelNetworkIPv4Prefix) 397 { 398 m_pLabelNetworkIPv4Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 399 pLayoutSettings->addWidget(m_pLabelNetworkIPv4Prefix, 1, 0); 400 } 401 /* Prepare network IPv4 prefix editor: */ 402 m_pEditorNetworkIPv4Prefix = new QLineEdit(pTabOptions); 403 if (m_pEditorNetworkIPv4Prefix) 404 { 405 if (m_pLabelNetworkIPv4Prefix) 406 m_pLabelNetworkIPv4Prefix->setBuddy(m_pEditorNetworkIPv4Prefix); 407 connect(m_pEditorNetworkIPv4Prefix, &QLineEdit::textEdited, 408 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv4PrefixChanged); 409 410 pLayoutSettings->addWidget(m_pEditorNetworkIPv4Prefix, 1, 1, 1, 2); 411 } 412 413 /* Prepare 'supports DHCP' check-box: */ 414 m_pCheckboxSupportsDHCP = new QCheckBox(pTabOptions); 415 if (m_pCheckboxSupportsDHCP) 416 { 417 connect(m_pCheckboxSupportsDHCP, &QCheckBox::toggled, 418 this, &UIDetailsWidgetNATNetwork::sltSupportsDHCPChanged); 419 pLayoutSettings->addWidget(m_pCheckboxSupportsDHCP, 2, 1); 420 } 421 } 422 423 pLayoutOptions->addWidget(m_pGroupBoxIPv4); 424 } 425 426 /* Prepare IPv6 group-box: */ 427 m_pGroupBoxIPv6 = new QGroupBox(pTabOptions); 428 if (m_pGroupBoxIPv6) 429 { 430 m_pGroupBoxIPv6->setCheckable(true); 431 connect(m_pGroupBoxIPv6, &QGroupBox::toggled, 359 m_pLabelNetworkName->setBuddy(m_pEditorNetworkName); 360 connect(m_pEditorNetworkName, &QLineEdit::textEdited, 361 this, &UIDetailsWidgetNATNetwork::sltNetworkNameChanged); 362 363 pLayoutOptions->addWidget(m_pEditorNetworkName, 0, 2, 1, 2); 364 } 365 366 /* Prepare network IPv4 prefix label: */ 367 m_pLabelNetworkIPv4Prefix = new QLabel(pTabOptions); 368 if (m_pLabelNetworkIPv4Prefix) 369 { 370 m_pLabelNetworkIPv4Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 371 pLayoutOptions->addWidget(m_pLabelNetworkIPv4Prefix, 1, 0, 1, 2); 372 } 373 /* Prepare network IPv4 prefix editor: */ 374 m_pEditorNetworkIPv4Prefix = new QLineEdit(pTabOptions); 375 if (m_pEditorNetworkIPv4Prefix) 376 { 377 if (m_pLabelNetworkIPv4Prefix) 378 m_pLabelNetworkIPv4Prefix->setBuddy(m_pEditorNetworkIPv4Prefix); 379 connect(m_pEditorNetworkIPv4Prefix, &QLineEdit::textEdited, 380 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv4PrefixChanged); 381 382 pLayoutOptions->addWidget(m_pEditorNetworkIPv4Prefix, 1, 2, 1, 2); 383 } 384 /* Prepare 'supports DHCP' check-box: */ 385 m_pCheckboxSupportsDHCP = new QCheckBox(pTabOptions); 386 if (m_pCheckboxSupportsDHCP) 387 { 388 connect(m_pCheckboxSupportsDHCP, &QCheckBox::toggled, 389 this, &UIDetailsWidgetNATNetwork::sltSupportsDHCPChanged); 390 pLayoutOptions->addWidget(m_pCheckboxSupportsDHCP, 2, 2); 391 } 392 393 /* Prepare IPv6 check-box: */ 394 m_pCheckboxIPv6 = new QCheckBox(pTabOptions); 395 if (m_pCheckboxIPv6) 396 { 397 connect(m_pCheckboxIPv6, &QCheckBox::toggled, 432 398 this, &UIDetailsWidgetNATNetwork::sltSupportsIPv6Changed); 433 434 /* Prepare settings widget layout: */ 435 QGridLayout *pLayoutSettings = new QGridLayout(m_pGroupBoxIPv6); 436 if (pLayoutSettings) 437 { 438 pLayoutSettings->setColumnStretch(2, 1); 439 440 /* Prepare network IPv6 prefix label: */ 441 m_pLabelNetworkIPv6Prefix = new QLabel(pTabOptions); 442 if (m_pLabelNetworkIPv6Prefix) 443 { 444 m_pLabelNetworkIPv6Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 445 pLayoutSettings->addWidget(m_pLabelNetworkIPv6Prefix, 0, 0); 446 } 447 /* Prepare network IPv6 prefix editor: */ 448 m_pEditorNetworkIPv6Prefix = new QLineEdit(pTabOptions); 449 if (m_pEditorNetworkIPv6Prefix) 450 { 451 if (m_pLabelNetworkIPv6Prefix) 452 m_pLabelNetworkIPv6Prefix->setBuddy(m_pEditorNetworkIPv6Prefix); 453 connect(m_pEditorNetworkIPv6Prefix, &QLineEdit::textEdited, 454 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv6PrefixChanged); 455 456 pLayoutSettings->addWidget(m_pEditorNetworkIPv6Prefix, 0, 1, 1, 2); 457 } 458 459 /* Prepare 'advertise default IPv6 route' check-box: */ 460 m_pCheckboxAdvertiseDefaultIPv6Route = new QCheckBox(pTabOptions); 461 if (m_pCheckboxAdvertiseDefaultIPv6Route) 462 { 463 connect(m_pCheckboxAdvertiseDefaultIPv6Route, &QCheckBox::toggled, 464 this, &UIDetailsWidgetNATNetwork::sltAdvertiseDefaultIPv6RouteChanged); 465 pLayoutSettings->addWidget(m_pCheckboxAdvertiseDefaultIPv6Route, 1, 1, 1, 2); 466 } 467 } 468 469 pLayoutOptions->addWidget(m_pGroupBoxIPv6); 399 pLayoutOptions->addWidget(m_pCheckboxIPv6, 3, 0, 1, 3); 400 } 401 /* Prepare shifting spacer: */ 402 QSpacerItem *pSpacer = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum); 403 if (pSpacer) 404 pLayoutOptions->addWidget(m_pLabelNetworkIPv6Prefix, 4, 0); 405 /* Prepare network IPv6 prefix label: */ 406 m_pLabelNetworkIPv6Prefix = new QLabel(pTabOptions); 407 if (m_pLabelNetworkIPv6Prefix) 408 { 409 m_pLabelNetworkIPv6Prefix->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 410 pLayoutOptions->addWidget(m_pLabelNetworkIPv6Prefix, 4, 1); 411 } 412 /* Prepare network IPv6 prefix editor: */ 413 m_pEditorNetworkIPv6Prefix = new QLineEdit(pTabOptions); 414 if (m_pEditorNetworkIPv6Prefix) 415 { 416 if (m_pLabelNetworkIPv6Prefix) 417 m_pLabelNetworkIPv6Prefix->setBuddy(m_pEditorNetworkIPv6Prefix); 418 connect(m_pEditorNetworkIPv6Prefix, &QLineEdit::textEdited, 419 this, &UIDetailsWidgetNATNetwork::sltNetworkIPv6PrefixChanged); 420 421 pLayoutOptions->addWidget(m_pEditorNetworkIPv6Prefix, 4, 2, 1, 2); 422 } 423 /* Prepare 'advertise default IPv6 route' check-box: */ 424 m_pCheckboxAdvertiseDefaultIPv6Route = new QCheckBox(pTabOptions); 425 if (m_pCheckboxAdvertiseDefaultIPv6Route) 426 { 427 connect(m_pCheckboxAdvertiseDefaultIPv6Route, &QCheckBox::toggled, 428 this, &UIDetailsWidgetNATNetwork::sltAdvertiseDefaultIPv6RouteChanged); 429 pLayoutOptions->addWidget(m_pCheckboxAdvertiseDefaultIPv6Route, 5, 2); 470 430 } 471 431 … … 480 440 connect(m_pButtonBoxOptions, &QIDialogButtonBox::clicked, this, &UIDetailsWidgetNATNetwork::sltHandleButtonBoxClick); 481 441 482 pLayoutOptions->addWidget(m_pButtonBoxOptions );442 pLayoutOptions->addWidget(m_pButtonBoxOptions, 7, 0, 1, 4); 483 443 } 484 444 } … … 561 521 m_pLabelNetworkName->setEnabled(fIsNetworkExists); 562 522 m_pEditorNetworkName->setEnabled(fIsNetworkExists); 563 m_pGroupBoxIPv4->setEnabled(fIsNetworkExists);564 523 m_pLabelNetworkIPv4Prefix->setEnabled(fIsNetworkExists); 565 524 m_pEditorNetworkIPv4Prefix->setEnabled(fIsNetworkExists); 566 525 m_pCheckboxSupportsDHCP->setEnabled(fIsNetworkExists); 567 m_p GroupBoxIPv6->setEnabled(fIsNetworkExists);526 m_pCheckboxIPv6->setEnabled(fIsNetworkExists); 568 527 m_pLabelNetworkIPv6Prefix->setEnabled(fIsNetworkExists && fIsIPv6Supported); 569 528 m_pEditorNetworkIPv6Prefix->setEnabled(fIsNetworkExists && fIsIPv6Supported); … … 574 533 m_pEditorNetworkIPv4Prefix->setText(m_newData.m_strPrefixIPv4); 575 534 m_pCheckboxSupportsDHCP->setChecked(m_newData.m_fSupportsDHCP); 576 m_p GroupBoxIPv6->setChecked(m_newData.m_fSupportsIPv6);535 m_pCheckboxIPv6->setChecked(m_newData.m_fSupportsIPv6); 577 536 m_pEditorNetworkIPv6Prefix->setText(m_newData.m_strPrefixIPv6); 578 537 m_pCheckboxAdvertiseDefaultIPv6Route->setChecked(m_newData.m_fAdvertiseDefaultIPv6Route); -
trunk/src/VBox/Frontends/VirtualBox/src/networkmanager/UIDetailsWidgetNATNetwork.h
r93115 r93884 33 33 class QAbstractButton; 34 34 class QCheckBox; 35 class QGridLayout;36 class QGroupBox;37 35 class QLabel; 38 36 class QLineEdit; … … 211 209 /** @name Network variables. 212 210 * @{ */ 213 /** Holds the name layout instance. */214 QGridLayout *m_pLayoutName;215 211 /** Holds the network name label instance. */ 216 212 QLabel *m_pLabelNetworkName; 217 213 /** Holds the network name editor instance. */ 218 214 QLineEdit *m_pEditorNetworkName; 219 /** Holds the IPv4 group-box instance. */220 QGroupBox *m_pGroupBoxIPv4;221 215 /** Holds the network IPv4 prefix label instance. */ 222 216 QLabel *m_pLabelNetworkIPv4Prefix; … … 226 220 QCheckBox *m_pCheckboxSupportsDHCP; 227 221 /** Holds the IPv4 group-box instance. */ 228 Q GroupBox *m_pGroupBoxIPv6;222 QCheckBox *m_pCheckboxIPv6; 229 223 /** Holds the network IPv6 prefix label instance. */ 230 224 QLabel *m_pLabelNetworkIPv6Prefix;
Note:
See TracChangeset
for help on using the changeset viewer.