VirtualBox

Changeset 101497 in vbox


Ignore:
Timestamp:
Oct 18, 2023 12:19:15 PM (19 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
159569
Message:

FE/Qt: bugref:10513: Proper UIEditor hierarchy for Network and Serial editors having one page with clone tabs.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/settings
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINetworkSettingsEditor.cpp

    r101011 r101497  
    314314                m_pEditorNetworkAttachment = new UINetworkAttachmentEditor(m_pWidgetSettings);
    315315                if (m_pEditorNetworkAttachment)
     316                {
     317                    addEditor(m_pEditorNetworkAttachment);
    316318                    pLayoutAdapterSettings->addWidget(m_pEditorNetworkAttachment);
     319                }
    317320
    318321                /* Prepare advanced settingseditor: */
    319322                m_pEditorNetworkFeatures = new UINetworkFeaturesEditor(m_pWidgetSettings);
    320323                if (m_pEditorNetworkFeatures)
     324                {
     325                    addEditor(m_pEditorNetworkFeatures);
    321326                    pLayoutAdapterSettings->addWidget(m_pEditorNetworkFeatures);
     327                }
    322328            }
    323329
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp

    r101445 r101497  
    159159
    160160/** Machine settings: Network Adapter tab. */
    161 class UIMachineSettingsNetwork : public QIWithRetranslateUI<QWidget>
     161class UIMachineSettingsNetwork : public UIEditor
    162162{
    163163    Q_OBJECT;
     
    176176public:
    177177
    178     /** Constructs tab passing @a pParent to the base-class. */
    179     UIMachineSettingsNetwork(UIMachineSettingsNetworkPage *pParent);
     178    /** Constructs tab passing @a pParent to the base-class.
     179      * @param  pParentPage  Holds the parent page reference allowing to access some of API there. */
     180    UIMachineSettingsNetwork(QITabWidget *pParent, UIMachineSettingsNetworkPage *pParentPage);
    180181
    181182    /** Loads adapter data from @a adapterCache. */
     
    225226
    226227    /** Holds parent page reference. */
    227     UIMachineSettingsNetworkPage *m_pParent;
     228    UIMachineSettingsNetworkPage *m_pParentPage;
    228229
    229230    /** Holds tab slot number. */
     
    239240*********************************************************************************************************************************/
    240241
    241 UIMachineSettingsNetwork::UIMachineSettingsNetwork(UIMachineSettingsNetworkPage *pParent)
    242     : QIWithRetranslateUI<QWidget>(0)
    243     , m_pParent(pParent)
     242UIMachineSettingsNetwork::UIMachineSettingsNetwork(QITabWidget *pParent, UIMachineSettingsNetworkPage *pParentPage)
     243    : UIEditor(pParent)
     244    , m_pParentPage(pParentPage)
    244245    , m_iSlot(-1)
    245246    , m_pEditorNetworkSettings(0)
     
    485486{
    486487    if (   m_pEditorNetworkSettings
    487         && m_pParent)
     488        && m_pParentPage)
    488489    {
    489490        /* General stuff: */
    490         m_pEditorNetworkSettings->setFeatureAvailable(m_pParent->isMachineOffline());
     491        m_pEditorNetworkSettings->setFeatureAvailable(m_pParentPage->isMachineOffline());
    491492
    492493        /* Attachment stuff: */
    493         m_pEditorNetworkSettings->setAttachmentOptionsAvailable(m_pParent->isMachineInValidMode());
     494        m_pEditorNetworkSettings->setAttachmentOptionsAvailable(m_pParentPage->isMachineInValidMode());
    494495
    495496        /* Advanced stuff: */
    496         m_pEditorNetworkSettings->setAdvancedOptionsAvailable(m_pParent->isMachineInValidMode());
    497         m_pEditorNetworkSettings->setAdapterOptionsAvailable(m_pParent->isMachineOffline());
     497        m_pEditorNetworkSettings->setAdvancedOptionsAvailable(m_pParentPage->isMachineInValidMode());
     498        m_pEditorNetworkSettings->setAdapterOptionsAvailable(m_pParentPage->isMachineOffline());
    498499        m_pEditorNetworkSettings->setPromiscuousOptionsAvailable(   attachmentType() != KNetworkAttachmentType_Null
    499500                                                                 && attachmentType() != KNetworkAttachmentType_Generic
    500501                                                                 && attachmentType() != KNetworkAttachmentType_NAT);
    501         m_pEditorNetworkSettings->setMACOptionsAvailable(m_pParent->isMachineOffline());
     502        m_pEditorNetworkSettings->setMACOptionsAvailable(m_pParentPage->isMachineOffline());
    502503        m_pEditorNetworkSettings->setGenericPropertiesAvailable(attachmentType() == KNetworkAttachmentType_Generic);
    503         m_pEditorNetworkSettings->setCableOptionsAvailable(m_pParent->isMachineInValidMode());
     504        m_pEditorNetworkSettings->setCableOptionsAvailable(m_pParentPage->isMachineInValidMode());
    504505        m_pEditorNetworkSettings->setForwardingOptionsAvailable(attachmentType() == KNetworkAttachmentType_NAT);
    505506    }
     
    509510{
    510511    if (   m_pEditorNetworkSettings
    511         && m_pParent)
    512     {
    513         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Bridged, m_pParent->bridgedAdapterList());
    514         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Internal, m_pParent->internalNetworkList());
    515         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_HostOnly, m_pParent->hostInterfaceList());
    516         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Generic, m_pParent->genericDriverList());
    517         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_NATNetwork, m_pParent->natNetworkList());
     512        && m_pParentPage)
     513    {
     514        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Bridged, m_pParentPage->bridgedAdapterList());
     515        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Internal, m_pParentPage->internalNetworkList());
     516        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_HostOnly, m_pParentPage->hostInterfaceList());
     517        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Generic, m_pParentPage->genericDriverList());
     518        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_NATNetwork, m_pParentPage->natNetworkList());
    518519#ifdef VBOX_WITH_CLOUD_NET
    519         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Cloud, m_pParent->cloudNetworkList());
     520        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_Cloud, m_pParentPage->cloudNetworkList());
    520521#endif
    521522#ifdef VBOX_WITH_VMNET
    522         m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_HostOnlyNetwork, m_pParent->hostOnlyNetworkList());
     523        m_pEditorNetworkSettings->setValueNames(KNetworkAttachmentType_HostOnlyNetwork, m_pParentPage->hostOnlyNetworkList());
    523524#endif
    524525    }
     
    586587        m_pEditorNetworkSettings = new UINetworkSettingsEditor(this);
    587588        if (m_pEditorNetworkSettings)
     589        {
     590            addEditor(m_pEditorNetworkSettings);
    588591            pLayout->addWidget(m_pEditorNetworkSettings);
     592        }
    589593
    590594        pLayout->addStretch();
     
    921925            {
    922926                /* Create adapter tab: */
    923                 UIMachineSettingsNetwork *pTab = new UIMachineSettingsNetwork(this);
     927                UIMachineSettingsNetwork *pTab = new UIMachineSettingsNetwork(m_pTabWidget, this);
    924928                if (pTab)
    925929                {
     
    933937
    934938                    /* Add tab into tab-widget: */
     939                    addEditor(pTab);
    935940                    m_pTabWidget->addTab(pTab, pTab->tabTitle());
    936941                }
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp

    r101445 r101497  
    106106
    107107/** Machine settings: Serial Port tab. */
    108 class UIMachineSettingsSerial : public QIWithRetranslateUI<QWidget>
     108class UIMachineSettingsSerial : public UIEditor
    109109{
    110110    Q_OBJECT;
     
    123123public:
    124124
    125     /** Constructs tab passing @a pParent to the base-class. */
    126     UIMachineSettingsSerial(UIMachineSettingsSerialPage *pParent);
     125    /** Constructs tab passing @a pParent to the base-class.
     126      * @param  pParentPage  Holds the parent page reference allowing to access some of API there. */
     127    UIMachineSettingsSerial(QITabWidget *pParent, UIMachineSettingsSerialPage *pParentPage);
    127128
    128129    /** Loads port data from @a portCache. */
     
    166167
    167168    /** Holds the parent page reference. */
    168     UIMachineSettingsSerialPage *m_pParent;
     169    UIMachineSettingsSerialPage *m_pParentPage;
    169170
    170171    /** Holds the port slot number. */
     
    180181*********************************************************************************************************************************/
    181182
    182 UIMachineSettingsSerial::UIMachineSettingsSerial(UIMachineSettingsSerialPage *pParent)
    183     : QIWithRetranslateUI<QWidget>(0)
    184     , m_pParent(pParent)
     183UIMachineSettingsSerial::UIMachineSettingsSerial(QITabWidget *pParent, UIMachineSettingsSerialPage *pParentPage)
     184    : UIEditor(pParent)
     185    , m_pParentPage(pParentPage)
    185186    , m_iSlot(-1)
    186187    , m_pEditorSerialSettings(0)
     
    266267        {
    267268            QVector<QPair<QString, QString> > ports;
    268             if (m_pParent)
    269             {
    270                 ports = m_pParent->ports();
     269            if (m_pParentPage)
     270            {
     271                ports = m_pParentPage->ports();
    271272                ports.removeAt(m_iSlot);
    272273            }
     
    291292            {
    292293                QVector<QString> paths;
    293                 if (m_pParent)
     294                if (m_pParentPage)
    294295                {
    295                     paths = m_pParent->paths();
     296                    paths = m_pParentPage->paths();
    296297                    paths.removeAt(m_iSlot);
    297298                }
     
    347348{
    348349    if (   m_pEditorSerialSettings
    349         && m_pParent)
     350        && m_pParentPage)
    350351    {
    351352        /* Polish port page: */
    352353        const bool fStd = m_pEditorSerialSettings->isPortStandardOne();
    353354        const KPortMode enmMode = m_pEditorSerialSettings->hostMode();
    354         m_pEditorSerialSettings->setPortOptionsAvailable(m_pParent->isMachineOffline());
    355         m_pEditorSerialSettings->setIRQAndIOAddressOptionsAvailable(!fStd && m_pParent->isMachineOffline());
    356         m_pEditorSerialSettings->setHostModeOptionsAvailable(m_pParent->isMachineOffline());
     355        m_pEditorSerialSettings->setPortOptionsAvailable(m_pParentPage->isMachineOffline());
     356        m_pEditorSerialSettings->setIRQAndIOAddressOptionsAvailable(!fStd && m_pParentPage->isMachineOffline());
     357        m_pEditorSerialSettings->setHostModeOptionsAvailable(m_pParentPage->isMachineOffline());
    357358        m_pEditorSerialSettings->setPipeOptionsAvailable(   (enmMode == KPortMode_HostPipe || enmMode == KPortMode_TCP)
    358                                                          && m_pParent->isMachineOffline());
     359                                                         && m_pParentPage->isMachineOffline());
    359360        m_pEditorSerialSettings->setPathOptionsAvailable(   enmMode != KPortMode_Disconnected
    360                                                          && m_pParent->isMachineOffline());
     361                                                         && m_pParentPage->isMachineOffline());
    361362    }
    362363}
     
    388389        m_pEditorSerialSettings = new UISerialSettingsEditor(this);
    389390        if (m_pEditorSerialSettings)
     391        {
     392            addEditor(m_pEditorSerialSettings);
    390393            pLayout->addWidget(m_pEditorSerialSettings);
     394        }
    391395
    392396        pLayout->addStretch();
     
    650654            {
    651655                /* Create port tab: */
    652                 UIMachineSettingsSerial *pTab = new UIMachineSettingsSerial(this);
     656                UIMachineSettingsSerial *pTab = new UIMachineSettingsSerial(m_pTabWidget, this);
    653657                if (pTab)
    654658                {
     
    662666
    663667                    /* Add tab into tab-widget: */
     668                    addEditor(pTab);
    664669                    m_pTabWidget->addTab(pTab, pTab->tabTitle());
    665670                }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette