- Timestamp:
- Oct 20, 2023 4:31:09 PM (12 months ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings
- Files:
-
- 6 edited
-
editors/UINetworkFeaturesEditor.cpp (modified) (8 diffs)
-
editors/UINetworkFeaturesEditor.h (modified) (7 diffs)
-
editors/UINetworkSettingsEditor.cpp (modified) (3 diffs)
-
editors/UINetworkSettingsEditor.h (modified) (3 diffs)
-
machine/UIMachineSettingsNetwork.cpp (modified) (7 diffs)
-
machine/UIMachineSettingsNetwork.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINetworkFeaturesEditor.cpp
r101134 r101529 36 36 37 37 /* GUI includes: */ 38 #include "QIArrowButtonSwitch.h"39 38 #include "QILineEdit.h" 40 39 #include "QIToolButton.h" … … 50 49 UINetworkFeaturesEditor::UINetworkFeaturesEditor(QWidget *pParent /* = 0 */) 51 50 : UIEditor(pParent) 52 , m_fAdvancedButtonExpanded(false)53 51 , m_enmAdapterType(KNetworkAdapterType_Null) 54 52 , m_enmPromiscuousMode(KNetworkAdapterPromiscModePolicy_Max) 55 53 , m_fCableConnected(false) 56 , m_pButtonAdvanced(0)57 , m_pWidgetSettings(0)58 54 , m_pLayoutSettings(0) 59 55 , m_pLabelAdapterType(0) … … 72 68 } 73 69 74 void UINetworkFeaturesEditor::setAdvancedButtonExpanded(bool fExpanded)75 {76 if (m_fAdvancedButtonExpanded != fExpanded)77 {78 m_fAdvancedButtonExpanded = fExpanded;79 if (m_pButtonAdvanced)80 {81 m_pButtonAdvanced->setExpanded(m_fAdvancedButtonExpanded);82 sltHandleAdvancedButtonStateChange();83 }84 }85 }86 87 bool UINetworkFeaturesEditor::advancedButtonExpanded() const88 {89 return m_pButtonAdvanced ? m_pButtonAdvanced->isExpanded() : m_fAdvancedButtonExpanded;90 }91 92 70 void UINetworkFeaturesEditor::setAdapterType(const KNetworkAdapterType &enmType) 93 71 { … … 172 150 { 173 151 return m_portForwardingRules; 174 }175 176 void UINetworkFeaturesEditor::setAdvancedOptionsAvailable(bool fAvailable)177 {178 m_pButtonAdvanced->setEnabled(fAvailable);179 152 } 180 153 … … 241 214 void UINetworkFeaturesEditor::retranslateUi() 242 215 { 243 if (m_pButtonAdvanced)244 {245 m_pButtonAdvanced->setText(tr("A&dvanced"));246 m_pButtonAdvanced->setToolTip(tr("Shows additional network adapter options."));247 }248 249 216 if (m_pLabelAdapterType) 250 217 m_pLabelAdapterType->setText(tr("Adapter &Type:")); … … 301 268 } 302 269 303 void UINetworkFeaturesEditor::sltHandleAdvancedButtonStateChange()304 {305 /* What's the state? */306 const bool fExpanded = m_pButtonAdvanced->isExpanded();307 /* Update widget visibility: */308 m_pWidgetSettings->setVisible(fExpanded);309 /* Notify listeners about the button state change: */310 emit sigAdvancedButtonStateChange(fExpanded);311 }312 313 270 void UINetworkFeaturesEditor::sltOpenPortForwardingDlg() 314 271 { … … 321 278 { 322 279 /* Prepare main layout: */ 323 QVBoxLayout *pLayout = new QVBoxLayout(this); 324 if (pLayout) 325 { 326 pLayout->setContentsMargins(0, 0, 0, 0); 327 328 /* Prepare advanced arrow button: */ 329 m_pButtonAdvanced = new QIArrowButtonSwitch(this); 330 if (m_pButtonAdvanced) 331 { 332 const QStyle *pStyle = QApplication::style(); 333 const int iIconMetric = (int)(pStyle->pixelMetric(QStyle::PM_SmallIconSize) * .625); 334 m_pButtonAdvanced->setIconSize(QSize(iIconMetric, iIconMetric)); 335 m_pButtonAdvanced->setIcons(UIIconPool::iconSet(":/arrow_right_10px.png"), 336 UIIconPool::iconSet(":/arrow_down_10px.png")); 337 338 pLayout->addWidget(m_pButtonAdvanced); 339 } 340 341 /* Prepare advanced settings widget: */ 342 m_pWidgetSettings = new QWidget(this); 343 if (m_pWidgetSettings) 344 { 345 /* Prepare advanced settings layout: */ 346 m_pLayoutSettings = new QGridLayout(m_pWidgetSettings); 347 if (m_pLayoutSettings) 348 { 349 m_pLayoutSettings->setContentsMargins(0, 0, 0, 0); 350 m_pLayoutSettings->setColumnStretch(2, 1); 351 352 /* Prepare adapter type label: */ 353 m_pLabelAdapterType = new QLabel(m_pWidgetSettings); 354 if (m_pLabelAdapterType) 355 { 356 m_pLabelAdapterType->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 357 m_pLayoutSettings->addWidget(m_pLabelAdapterType, 0, 0); 358 } 359 /* Prepare adapter type combo: */ 360 m_pComboAdapterType = new QComboBox(m_pWidgetSettings); 361 if (m_pComboAdapterType) 362 { 363 if (m_pLabelAdapterType) 364 m_pLabelAdapterType->setBuddy(m_pComboAdapterType); 365 m_pLayoutSettings->addWidget(m_pComboAdapterType, 0, 1, 1, 3); 366 } 367 368 /* Prepare promiscuous mode label: */ 369 m_pLabelPromiscuousMode = new QLabel(m_pWidgetSettings); 370 if (m_pLabelPromiscuousMode) 371 { 372 m_pLabelPromiscuousMode->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 373 m_pLayoutSettings->addWidget(m_pLabelPromiscuousMode, 1, 0); 374 } 375 /* Prepare promiscuous mode combo: */ 376 m_pComboPromiscuousMode = new QComboBox(m_pWidgetSettings); 377 if (m_pComboPromiscuousMode) 378 { 379 if (m_pLabelPromiscuousMode) 380 m_pLabelPromiscuousMode->setBuddy(m_pComboPromiscuousMode); 381 m_pLayoutSettings->addWidget(m_pComboPromiscuousMode, 1, 1, 1, 3); 382 } 383 384 /* Prepare MAC label: */ 385 m_pLabelMAC = new QLabel(m_pWidgetSettings); 386 if (m_pLabelMAC) 387 { 388 m_pLabelMAC->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 389 m_pLayoutSettings->addWidget(m_pLabelMAC, 2, 0); 390 } 391 /* Prepare MAC editor: */ 392 m_pEditorMAC = new QILineEdit(m_pWidgetSettings); 393 if (m_pEditorMAC) 394 { 395 if (m_pLabelMAC) 396 m_pLabelMAC->setBuddy(m_pEditorMAC); 397 m_pEditorMAC->setAllowToCopyContentsWhenDisabled(true); 398 m_pEditorMAC->setValidator(new QRegularExpressionValidator(QRegularExpression("[0-9A-Fa-f]{12}"), this)); 399 m_pEditorMAC->setMinimumWidthByText(QString().fill('0', 12)); 400 401 m_pLayoutSettings->addWidget(m_pEditorMAC, 2, 1, 1, 2); 402 } 403 /* Prepare MAC button: */ 404 m_pButtonMAC = new QIToolButton(m_pWidgetSettings); 405 if (m_pButtonMAC) 406 { 407 m_pButtonMAC->setIcon(UIIconPool::iconSet(":/refresh_16px.png")); 408 m_pLayoutSettings->addWidget(m_pButtonMAC, 2, 3); 409 } 410 411 /* Prepare MAC label: */ 412 m_pLabelGenericProperties = new QLabel(m_pWidgetSettings); 413 if (m_pLabelGenericProperties) 414 { 415 m_pLabelGenericProperties->setAlignment(Qt::AlignRight | Qt::AlignTop); 416 m_pLayoutSettings->addWidget(m_pLabelGenericProperties, 3, 0); 417 } 418 /* Prepare MAC editor: */ 419 m_pEditorGenericProperties = new QTextEdit(m_pWidgetSettings); 420 if (m_pEditorGenericProperties) 421 m_pLayoutSettings->addWidget(m_pEditorGenericProperties, 3, 1, 1, 3); 422 423 /* Prepare cable connected check-box: */ 424 m_pCheckBoxCableConnected = new QCheckBox(m_pWidgetSettings); 425 if (m_pCheckBoxCableConnected) 426 m_pLayoutSettings->addWidget(m_pCheckBoxCableConnected, 4, 1, 1, 2); 427 428 /* Prepare port forwarding button: */ 429 m_pButtonPortForwarding = new QPushButton(m_pWidgetSettings); 430 if (m_pButtonPortForwarding) 431 m_pLayoutSettings->addWidget(m_pButtonPortForwarding, 5, 1); 432 } 433 434 pLayout->addWidget(m_pWidgetSettings); 435 } 280 m_pLayoutSettings = new QGridLayout(this); 281 if (m_pLayoutSettings) 282 { 283 m_pLayoutSettings->setContentsMargins(0, 0, 0, 0); 284 m_pLayoutSettings->setColumnStretch(2, 1); 285 286 /* Prepare adapter type label: */ 287 m_pLabelAdapterType = new QLabel(this); 288 if (m_pLabelAdapterType) 289 { 290 m_pLabelAdapterType->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 291 m_pLayoutSettings->addWidget(m_pLabelAdapterType, 0, 0); 292 } 293 /* Prepare adapter type combo: */ 294 m_pComboAdapterType = new QComboBox(this); 295 if (m_pComboAdapterType) 296 { 297 if (m_pLabelAdapterType) 298 m_pLabelAdapterType->setBuddy(m_pComboAdapterType); 299 m_pLayoutSettings->addWidget(m_pComboAdapterType, 0, 1, 1, 3); 300 } 301 302 /* Prepare promiscuous mode label: */ 303 m_pLabelPromiscuousMode = new QLabel(this); 304 if (m_pLabelPromiscuousMode) 305 { 306 m_pLabelPromiscuousMode->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 307 m_pLayoutSettings->addWidget(m_pLabelPromiscuousMode, 1, 0); 308 } 309 /* Prepare promiscuous mode combo: */ 310 m_pComboPromiscuousMode = new QComboBox(this); 311 if (m_pComboPromiscuousMode) 312 { 313 if (m_pLabelPromiscuousMode) 314 m_pLabelPromiscuousMode->setBuddy(m_pComboPromiscuousMode); 315 m_pLayoutSettings->addWidget(m_pComboPromiscuousMode, 1, 1, 1, 3); 316 } 317 318 /* Prepare MAC label: */ 319 m_pLabelMAC = new QLabel(this); 320 if (m_pLabelMAC) 321 { 322 m_pLabelMAC->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 323 m_pLayoutSettings->addWidget(m_pLabelMAC, 2, 0); 324 } 325 /* Prepare MAC editor: */ 326 m_pEditorMAC = new QILineEdit(this); 327 if (m_pEditorMAC) 328 { 329 if (m_pLabelMAC) 330 m_pLabelMAC->setBuddy(m_pEditorMAC); 331 m_pEditorMAC->setAllowToCopyContentsWhenDisabled(true); 332 m_pEditorMAC->setValidator(new QRegularExpressionValidator(QRegularExpression("[0-9A-Fa-f]{12}"), this)); 333 m_pEditorMAC->setMinimumWidthByText(QString().fill('0', 12)); 334 335 m_pLayoutSettings->addWidget(m_pEditorMAC, 2, 1, 1, 2); 336 } 337 /* Prepare MAC button: */ 338 m_pButtonMAC = new QIToolButton(this); 339 if (m_pButtonMAC) 340 { 341 m_pButtonMAC->setIcon(UIIconPool::iconSet(":/refresh_16px.png")); 342 m_pLayoutSettings->addWidget(m_pButtonMAC, 2, 3); 343 } 344 345 /* Prepare MAC label: */ 346 m_pLabelGenericProperties = new QLabel(this); 347 if (m_pLabelGenericProperties) 348 { 349 m_pLabelGenericProperties->setAlignment(Qt::AlignRight | Qt::AlignTop); 350 m_pLayoutSettings->addWidget(m_pLabelGenericProperties, 3, 0); 351 } 352 /* Prepare MAC editor: */ 353 m_pEditorGenericProperties = new QTextEdit(this); 354 if (m_pEditorGenericProperties) 355 m_pLayoutSettings->addWidget(m_pEditorGenericProperties, 3, 1, 1, 3); 356 357 /* Prepare cable connected check-box: */ 358 m_pCheckBoxCableConnected = new QCheckBox(this); 359 if (m_pCheckBoxCableConnected) 360 m_pLayoutSettings->addWidget(m_pCheckBoxCableConnected, 4, 1, 1, 2); 361 362 /* Prepare port forwarding button: */ 363 m_pButtonPortForwarding = new QPushButton(this); 364 if (m_pButtonPortForwarding) 365 m_pLayoutSettings->addWidget(m_pButtonPortForwarding, 5, 1); 436 366 } 437 367 438 368 /* Configure connections: */ 439 if (m_pButtonAdvanced)440 connect(m_pButtonAdvanced, &QIArrowButtonSwitch::sigClicked,441 this, &UINetworkFeaturesEditor::sltHandleAdvancedButtonStateChange);442 369 if (m_pEditorMAC) 443 370 connect(m_pEditorMAC, &QILineEdit::textChanged, … … 450 377 this, &UINetworkFeaturesEditor::sltOpenPortForwardingDlg); 451 378 452 /* Update widget availability: */453 m_pWidgetSettings->setVisible(m_pButtonAdvanced->isExpanded());454 455 379 /* Apply language settings: */ 456 380 retranslateUi(); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINetworkFeaturesEditor.h
r101011 r101529 45 45 class QLabel; 46 46 class QTextEdit; 47 class QIArrowButtonSwitch;48 47 class QILineEdit; 49 48 class QIToolButton; … … 56 55 signals: 57 56 58 /** Notifies about the advanced button state change to @a fExpanded. */59 void sigAdvancedButtonStateChange(bool fExpanded);60 57 /** Notifies about MAC address changed. */ 61 58 void sigMACAddressChanged(); … … 65 62 /** Constructs editor passing @a pParent to the base-class. */ 66 63 UINetworkFeaturesEditor(QWidget *pParent = 0); 67 68 /** Defines whether advanced button @a fExpanded. */69 void setAdvancedButtonExpanded(bool fExpanded);70 /** Returns whether advanced button expanded. */71 bool advancedButtonExpanded() const;72 64 73 65 /** Defines adapter @a enmType. */ … … 101 93 UIPortForwardingDataList portForwardingRules() const; 102 94 103 /** Defines whether advanced options @a fAvailable. */104 void setAdvancedOptionsAvailable(bool fAvailable);105 95 /** Defines whether adapter options @a fAvailable. */ 106 96 void setAdapterOptionsAvailable(bool fAvailable); … … 133 123 private slots: 134 124 135 /** Handles advanced button state change to expanded. */136 void sltHandleAdvancedButtonStateChange();137 125 /** Handles request to open port forwarding dialog. */ 138 126 void sltOpenPortForwardingDlg(); … … 150 138 /** @name Values 151 139 * @{ */ 152 /** Holds whether advanced button expanded. */153 bool m_fAdvancedButtonExpanded;154 140 /** Holds the adapter type to be set. */ 155 141 KNetworkAdapterType m_enmAdapterType; … … 168 154 /** @name Widgets 169 155 * @{ */ 170 /** Holds the advanced button instance. */171 QIArrowButtonSwitch *m_pButtonAdvanced;172 /** Holds the settings widget instance. */173 QWidget *m_pWidgetSettings;174 156 /** Holds the settings layout instance. */ 175 QGridLayout *m_pLayoutSettings;157 QGridLayout *m_pLayoutSettings; 176 158 /** Holds the adapter type label instance. */ 177 QLabel *m_pLabelAdapterType;159 QLabel *m_pLabelAdapterType; 178 160 /** Holds the adapter type editor instance. */ 179 QComboBox *m_pComboAdapterType;161 QComboBox *m_pComboAdapterType; 180 162 /** Holds the promiscuous mode label instance. */ 181 QLabel *m_pLabelPromiscuousMode;163 QLabel *m_pLabelPromiscuousMode; 182 164 /** Holds the promiscuous mode combo instance. */ 183 QComboBox *m_pComboPromiscuousMode;165 QComboBox *m_pComboPromiscuousMode; 184 166 /** Holds the MAC label instance. */ 185 QLabel *m_pLabelMAC;167 QLabel *m_pLabelMAC; 186 168 /** Holds the MAC editor instance. */ 187 QILineEdit *m_pEditorMAC;169 QILineEdit *m_pEditorMAC; 188 170 /** Holds the MAC button instance. */ 189 QIToolButton *m_pButtonMAC;171 QIToolButton *m_pButtonMAC; 190 172 /** Holds the generic properties label instance. */ 191 QLabel *m_pLabelGenericProperties;173 QLabel *m_pLabelGenericProperties; 192 174 /** Holds the generic properties editor instance. */ 193 QTextEdit *m_pEditorGenericProperties;175 QTextEdit *m_pEditorGenericProperties; 194 176 /** Holds the cable connected check-box instance. */ 195 QCheckBox *m_pCheckBoxCableConnected;177 QCheckBox *m_pCheckBoxCableConnected; 196 178 /** Holds the port forwarding button instance. */ 197 QPushButton *m_pButtonPortForwarding;179 QPushButton *m_pButtonPortForwarding; 198 180 /** @} */ 199 181 }; -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINetworkSettingsEditor.cpp
r101511 r101529 103 103 } 104 104 105 void UINetworkSettingsEditor::setAdvancedButtonExpanded(bool fExpanded)106 {107 if (m_pEditorNetworkFeatures)108 m_pEditorNetworkFeatures->setAdvancedButtonExpanded(fExpanded);109 }110 111 bool UINetworkSettingsEditor::advancedButtonExpanded() const112 {113 return m_pEditorNetworkFeatures ? m_pEditorNetworkFeatures->advancedButtonExpanded() : false;114 }115 116 105 void UINetworkSettingsEditor::setAdapterType(const KNetworkAdapterType &enmType) 117 106 { … … 178 167 { 179 168 return m_pEditorNetworkFeatures ? m_pEditorNetworkFeatures->portForwardingRules() : UIPortForwardingDataList(); 180 }181 182 void UINetworkSettingsEditor::setAdvancedOptionsAvailable(bool fAvailable)183 {184 if (m_pEditorNetworkFeatures)185 m_pEditorNetworkFeatures->setAdvancedOptionsAvailable(fAvailable);186 169 } 187 170 … … 344 327 this, &UINetworkSettingsEditor::sigAlternativeNameChanged); 345 328 if (m_pEditorNetworkFeatures) 346 connect(m_pEditorNetworkFeatures, &UINetworkFeaturesEditor::sigAdvancedButtonStateChange,347 this, &UINetworkSettingsEditor::sigAdvancedButtonStateChange);348 if (m_pEditorNetworkFeatures)349 329 connect(m_pEditorNetworkFeatures, &UINetworkFeaturesEditor::sigMACAddressChanged, 350 330 this, &UINetworkSettingsEditor::sigMACAddressChanged); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINetworkSettingsEditor.h
r101511 r101529 63 63 /** @name Features editor stuff 64 64 * @{ */ 65 /** Notifies about the advanced button state change to @a fExpanded. */66 void sigAdvancedButtonStateChange(bool fExpanded);67 65 /** Notifies about MAC address changed. */ 68 66 void sigMACAddressChanged(); … … 105 103 /** @name Features editor stuff 106 104 * @{ */ 107 /** Defines whether advanced button @a fExpanded. */108 void setAdvancedButtonExpanded(bool fExpanded);109 /** Returns whether advanced button expanded. */110 bool advancedButtonExpanded() const;111 112 105 /** Defines adapter @a enmType. */ 113 106 void setAdapterType(const KNetworkAdapterType &enmType); … … 140 133 UIPortForwardingDataList portForwardingRules() const; 141 134 142 /** Defines whether advanced options @a fAvailable. */143 void setAdvancedOptionsAvailable(bool fAvailable);144 135 /** Defines whether adapter options @a fAvailable. */ 145 136 void setAdapterOptionsAvailable(bool fAvailable); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp
r101522 r101529 168 168 void sigAlternativeNameChanged(); 169 169 170 /** Notifies about advanced button state change to @a fExpanded. */171 void sigAdvancedButtonStateChange(bool fExpanded);172 173 170 /** Notifies about validity changed. */ 174 171 void sigValidityChanged(); … … 202 199 /** Reloads tab alternatives. */ 203 200 void reloadAlternatives(); 204 205 /** Defines whether the advanced button is @a fExpanded. */206 void setAdvancedButtonExpanded(bool fExpanded);207 201 208 202 protected: … … 495 489 496 490 /* Advanced stuff: */ 497 m_pEditorNetworkSettings->setAdvancedOptionsAvailable(m_pParentPage->isMachineInValidMode());498 491 m_pEditorNetworkSettings->setAdapterOptionsAvailable(m_pParentPage->isMachineOffline()); 499 492 m_pEditorNetworkSettings->setPromiscuousOptionsAvailable( attachmentType() != KNetworkAttachmentType_Null … … 526 519 } 527 520 528 void UIMachineSettingsNetwork::setAdvancedButtonExpanded(bool fExpanded)529 {530 if (m_pEditorNetworkSettings)531 m_pEditorNetworkSettings->setAdvancedButtonExpanded(fExpanded);532 }533 534 521 void UIMachineSettingsNetwork::retranslateUi() 535 522 { … … 609 596 610 597 /* Advanced connections: */ 611 connect(m_pEditorNetworkSettings, &UINetworkSettingsEditor::sigAdvancedButtonStateChange,612 this, &UIMachineSettingsNetwork::sigAdvancedButtonStateChange);613 598 connect(m_pEditorNetworkSettings, &UINetworkSettingsEditor::sigMACAddressChanged, 614 599 this, &UIMachineSettingsNetwork::sigValidityChanged); … … 896 881 } 897 882 898 void UIMachineSettingsNetworkPage::sltHandleAdvancedButtonStateChange(bool fExpanded)899 {900 /* Sanity check: */901 if (!m_pTabWidget)902 return;903 904 /* Update the advanced button states for all the pages: */905 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot)906 {907 UIMachineSettingsNetwork *pTab = qobject_cast<UIMachineSettingsNetwork*>(m_pTabWidget->widget(iSlot));908 AssertPtrReturnVoid(pTab);909 pTab->setAdvancedButtonExpanded(fExpanded);910 }911 }912 913 883 void UIMachineSettingsNetworkPage::prepare() 914 884 { … … 942 912 connect(pTab, &UIMachineSettingsNetwork::sigAlternativeNameChanged, 943 913 this, &UIMachineSettingsNetworkPage::sltHandleAlternativeNameChange); 944 connect(pTab, &UIMachineSettingsNetwork::sigAdvancedButtonStateChange,945 this, &UIMachineSettingsNetworkPage::sltHandleAdvancedButtonStateChange);946 914 connect(pTab, &UIMachineSettingsNetwork::sigValidityChanged, 947 915 this, &UIMachineSettingsNetworkPage::revalidate); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.h
r101522 r101529 112 112 /** Handles adapter alternative name change. */ 113 113 void sltHandleAlternativeNameChange(); 114 /** Handles whether the advanced button is @a fExpanded. */115 void sltHandleAdvancedButtonStateChange(bool fExpanded);116 114 117 115 private:
Note:
See TracChangeset
for help on using the changeset viewer.

