VirtualBox

Changeset 6364 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jan 16, 2008 4:28:15 PM (17 years ago)
Author:
vboxsync
Message:

1905: Add GUI support for internal network name:

Done (checked under win&lin).

Location:
trunk/src/VBox/Frontends/VirtualBox/ui
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMNetworkSettings.ui

    r5999 r6364  
    66
    77     Copyright (C) 2006-2007 innotek GmbH
    8    
     8
    99     This file is part of VirtualBox Open Source Edition (OSE), as
    1010     available from http://www.virtualbox.org. This file is free software;
     
    9797                            </property>
    9898                        </widget>
    99                         <widget class="QLineEdit" row="2" column="1">
     99                        <widget class="QLabel" row="2" column="0">
     100                            <property name="name">
     101                                <cstring>txInternalNetwork_WIN</cstring>
     102                            </property>
     103                            <property name="sizePolicy">
     104                                <sizepolicy>
     105                                    <hsizetype>0</hsizetype>
     106                                    <vsizetype>5</vsizetype>
     107                                    <horstretch>0</horstretch>
     108                                    <verstretch>0</verstretch>
     109                                </sizepolicy>
     110                            </property>
     111                            <property name="text">
     112                                <string>&amp;Network Name</string>
     113                            </property>
     114                            <property name="buddy" stdset="0">
     115                                <cstring>cbInternalNetworkName_WIN</cstring>
     116                            </property>
     117                        </widget>
     118                        <widget class="QLineEdit" row="3" column="1">
    100119                            <property name="name">
    101120                                <cstring>leMACAddress</cstring>
     
    127146                            </property>
    128147                        </widget>
    129                         <widget class="QToolButton" row="2" column="2">
     148                        <widget class="QToolButton" row="3" column="2">
    130149                            <property name="name">
    131150                                <cstring>pbGenerateMAC</cstring>
     
    168187                            </property>
    169188                        </widget>
    170                         <widget class="QLabel" row="2" column="0">
     189                        <widget class="QLabel" row="3" column="0">
    171190                            <property name="name">
    172191                                <cstring>txMACAddress</cstring>
     
    193212                            <property name="whatsThis" stdset="0">
    194213                                <string>Displays the name of the host interface selected for this adapter.</string>
     214                            </property>
     215                        </widget>
     216                        <widget class="QComboBox" row="2" column="1" rowspan="1" colspan="2">
     217                            <property name="name">
     218                                <cstring>cbInternalNetworkName_WIN</cstring>
     219                            </property>
     220                            <property name="editable">
     221                                <bool>true</bool>
     222                            </property>
     223                            <property name="insertionPolicy">
     224                                <enum>NoInsertion</enum>
     225                            </property>
     226                            <property name="autoCompletion">
     227                                <bool>true</bool>
     228                            </property>
     229                            <property name="duplicatesEnabled">
     230                                <bool>false</bool>
     231                            </property>
     232                            <property name="whatsThis" stdset="0">
     233                                <string>Displays the name of the internal network selected for this adapter.</string>
    195234                            </property>
    196235                        </widget>
     
    528567            </vbox>
    529568        </widget>
     569        <widget class="QGroupBox">
     570            <property name="name">
     571                <cstring>grbIntNet</cstring>
     572            </property>
     573            <property name="title">
     574                <string>Internal Network Settings</string>
     575            </property>
     576            <property name="flat">
     577                <bool>false</bool>
     578            </property>
     579            <hbox>
     580                <property name="name">
     581                    <cstring>unnamed</cstring>
     582                </property>
     583                <widget class="QLabel">
     584                    <property name="name">
     585                        <cstring>txInternalNetwork_X11</cstring>
     586                    </property>
     587                    <property name="text">
     588                        <string>&amp;Network Name</string>
     589                    </property>
     590                    <property name="buddy" stdset="0">
     591                        <cstring>cbInternalNetworkName_X11</cstring>
     592                    </property>
     593                </widget>
     594                <widget class="QComboBox">
     595                    <property name="name">
     596                        <cstring>cbInternalNetworkName_X11</cstring>
     597                    </property>
     598                    <property name="editable">
     599                        <bool>true</bool>
     600                    </property>
     601                    <property name="insertionPolicy">
     602                        <enum>NoInsertion</enum>
     603                    </property>
     604                    <property name="autoCompletion">
     605                        <bool>true</bool>
     606                    </property>
     607                    <property name="duplicatesEnabled">
     608                        <bool>false</bool>
     609                    </property>
     610                </widget>
     611            </hbox>
     612        </widget>
     613        <spacer>
     614            <property name="name">
     615                <cstring>spacer5</cstring>
     616            </property>
     617            <property name="orientation">
     618                <enum>Vertical</enum>
     619            </property>
     620            <property name="sizeType">
     621                <enum>Expanding</enum>
     622            </property>
     623            <property name="sizeHint">
     624                <size>
     625                    <width>0</width>
     626                    <height>0</height>
     627                </size>
     628            </property>
     629        </spacer>
    530630    </vbox>
    531631</widget>
     
    559659    <tabstop>cbNetworkAttachment</tabstop>
    560660    <tabstop>cbHostInterfaceName</tabstop>
     661    <tabstop>cbInternalNetworkName_WIN</tabstop>
    561662    <tabstop>leMACAddress</tabstop>
    562663</tabstops>
     
    583684<functions>
    584685    <function access="private" specifier="non virtual">init()</function>
    585     <function returnType="bool">isPageValid( const QStringList &amp; )</function>
    586     <function>loadList( const QStringList &amp;, const QString &amp; )</function>
     686    <function returnType="int">checkPage( const QStringList &amp; )</function>
     687    <function>loadInterfaceList( const QStringList &amp;, const QString &amp; )</function>
     688    <function>loadNetworksList( const QStringList &amp; )</function>
    587689    <function>getFromAdapter( const CNetworkAdapter &amp; )</function>
    588690    <function>putBackToAdapter()</function>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMNetworkSettings.ui.h

    r5999 r6364  
    5050    /* disable unused interface name UI */
    5151    grbTAP->setHidden (true);
     52    grbIntNet->setHidden (true);
    5253    connect (grbEnabled, SIGNAL (toggled (bool)),
    5354             this, SLOT (grbEnabledToggled (bool)));
     
    5657    txHostInterface_WIN->setHidden (true);
    5758    cbHostInterfaceName->setHidden (true);
     59    txInternalNetwork_WIN->setHidden (true);
     60    cbInternalNetworkName_WIN->setHidden (true);
    5861    /* setup iconsets */
    5962    pbTAPSetup->setIconSet (VBoxGlobal::iconSet ("select_file_16px.png",
     
    7376}
    7477
    75 bool VBoxVMNetworkSettings::isPageValid (const QStringList &aList)
    76 {
    77 #if defined Q_WS_WIN
     78int VBoxVMNetworkSettings::checkPage (const QStringList &aList)
     79{
    7880    CEnums::NetworkAttachmentType type =
    7981        vboxGlobal().toNetworkAttachmentType (cbNetworkAttachment->currentText());
    80 
    81     return !(type == CEnums::HostInterfaceNetworkAttachment &&
    82              isInterfaceInvalid (aList, cbHostInterfaceName->currentText()));
     82#if defined Q_WS_WIN
     83    if (type == CEnums::HostInterfaceNetworkAttachment &&
     84        isInterfaceInvalid (aList, cbHostInterfaceName->currentText()))
     85        return 1;
     86    else if (type == CEnums::InternalNetworkAttachment &&
     87             cbInternalNetworkName_WIN->currentText().isEmpty())
     88        return 2;
     89    else
     90        return 0;
    8391#else
    8492    NOREF (aList);
    85     return true;
    86 #endif
    87 }
    88 
    89 void VBoxVMNetworkSettings::loadList (const QStringList &aList,
    90                                       const QString &aNillItem)
     93    if (type == CEnums::InternalNetworkAttachment &&
     94        cbInternalNetworkName_X11->currentText().isEmpty())
     95        return 2;
     96    else
     97        return 0;
     98#endif
     99}
     100
     101void VBoxVMNetworkSettings::loadInterfaceList (const QStringList &aList,
     102                                               const QString &aNillItem)
    91103{
    92104#if defined Q_WS_WIN
     
    112124    NOREF (aNillItem);
    113125#endif
     126}
     127
     128void VBoxVMNetworkSettings::loadNetworksList (const QStringList &aList)
     129{
     130    QComboBox *cbNetworkName = 0;
     131#if defined Q_WS_WIN
     132    cbNetworkName = cbInternalNetworkName_WIN;
     133#else
     134    cbNetworkName = cbInternalNetworkName_X11;
     135#endif
     136    Assert (cbNetworkName);
     137    cbNetworkName->clear();
     138    cbNetworkName->clearEdit();
     139    cbNetworkName->insertStringList (aList);
    114140}
    115141
     
    144170    if (cbHostInterfaceName->currentItem() == -1)
    145171        cbHostInterfaceName->setCurrentText (name);
     172    cbInternalNetworkName_WIN->setCurrentText (adapter.GetInternalNetwork());
    146173#else
    147174    leHostInterface->setText (adapter.GetHostInterface());
     175    cbInternalNetworkName_X11->setCurrentText (adapter.GetInternalNetwork());
    148176#endif
    149177
     
    201229#endif
    202230    }
     231    else if (type == CEnums::InternalNetworkAttachment)
     232    {
     233#if defined Q_WS_WIN
     234        if (!cbInternalNetworkName_WIN->currentText().isEmpty())
     235            cadapter.SetInternalNetwork (cbInternalNetworkName_WIN->currentText());
     236#else
     237        if (!cbInternalNetworkName_X11->currentText().isEmpty())
     238            cadapter.SetInternalNetwork (cbInternalNetworkName_X11->currentText());
     239#endif
     240    }
    203241}
    204242
     
    230268    bool enableHostIf = vboxGlobal().toNetworkAttachmentType (aString) ==
    231269                        CEnums::HostInterfaceNetworkAttachment;
     270    bool enableIntNet = vboxGlobal().toNetworkAttachmentType (aString) ==
     271                        CEnums::InternalNetworkAttachment;
    232272#if defined Q_WS_WIN
    233273    txHostInterface_WIN->setEnabled (enableHostIf);
    234274    cbHostInterfaceName->setEnabled (enableHostIf);
     275    txInternalNetwork_WIN->setEnabled (enableIntNet);
     276    cbInternalNetworkName_WIN->setEnabled (enableIntNet);
    235277#else
    236278    grbTAP->setEnabled (enableHostIf);
     279    grbIntNet->setEnabled (enableIntNet);
    237280#endif
    238281}
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui

    r5999 r6364  
    66
    77     Copyright (C) 2006-2007 innotek GmbH
    8    
     8
    99     This file is part of VirtualBox Open Source Edition (OSE), as
    1010     available from http://www.virtualbox.org. This file is free software;
     
    32043204    <variable access="private">CMachine cmachine;</variable>
    32053205    <variable access="private">QStringList mInterfaceList;</variable>
     3206    <variable access="private">QStringList mNetworksList;</variable>
    32063207    <variable access="private">QWidgetStack *wstUSBFilters;</variable>
    32073208    <variable access="private">bool mUSBFilterListModified;</variable>
     
    32743275    <function access="private" returnType="QString">getHdInfo( QGroupBox*, QUuid )</function>
    32753276    <function access="private">loadInterfacesList()</function>
     3277    <function access="private">loadNetworksList()</function>
    32763278</functions>
    32773279<pixmapinproject/>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h

    r6076 r6364  
    878878
    879879    loadInterfacesList();
     880    loadNetworksList();
    880881
    881882    /*
     
    10201021}
    10211022
     1023void VBoxVMSettingsDlg::loadNetworksList()
     1024{
     1025    /* clear inner list */
     1026    mNetworksList.clear();
     1027    /* loading internal networks list */
     1028    CVirtualBox vbox = vboxGlobal().virtualBox();
     1029    ulong count = vbox.GetSystemProperties().GetNetworkAdapterCount();
     1030    CMachineEnumerator en = vbox.GetMachines().Enumerate();
     1031    while (en.HasMore())
     1032    {
     1033        CMachine machine = en.GetNext();
     1034        for (ulong slot = 0; slot < count; ++ slot)
     1035        {
     1036            CNetworkAdapter adapter = machine.GetNetworkAdapter (slot);
     1037            if (adapter.GetAttachmentType() == CEnums::InternalNetworkAttachment &&
     1038                !mNetworksList.contains (adapter.GetInternalNetwork()))
     1039                mNetworksList << adapter.GetInternalNetwork();
     1040        }
     1041    }
     1042}
     1043
    10221044void VBoxVMSettingsDlg::hostInterfaceAdd()
    10231045{
     
    11431165#if defined Q_WS_WIN
    11441166    VBoxVMNetworkSettings *set = static_cast<VBoxVMNetworkSettings*> (aWidget);
    1145     set->loadList (mInterfaceList, mNoInterfaces);
     1167    set->loadInterfaceList (mInterfaceList, mNoInterfaces);
    11461168    set->revalidate();
    11471169#endif
     
    14951517    {
    14961518        QWidget *tab = NULL;
     1519        int error = 0;
    14971520        for (int index = 0; index < tbwNetwork->count(); ++ index)
    14981521        {
     
    15001523            VBoxVMNetworkSettings *page =
    15011524                static_cast <VBoxVMNetworkSettings *> (tab);
    1502             valid = page->isPageValid (mInterfaceList);
     1525            error = page->checkPage (mInterfaceList);
     1526            valid = !error;
    15031527            if (!valid) break;
    15041528        }
     
    15061530        {
    15071531            Assert (tab);
    1508             warningText = tr ("Incorrect host network interface is selected");
     1532            warningText = error == 1 ?
     1533                tr ("Incorrect host network interface is selected") : error == 2 ?
     1534                tr ("Internal network name should be defined") : QString::null;
    15091535            pageTitle += ": " + tbwNetwork->tabLabel (tab);
    15101536        }
     
    23072333{
    23082334    VBoxVMNetworkSettings *page = new VBoxVMNetworkSettings();
    2309     page->loadList (mInterfaceList, mNoInterfaces);
     2335    page->loadInterfaceList (mInterfaceList, mNoInterfaces);
     2336    page->loadNetworksList (mNetworksList);
    23102337    page->getFromAdapter (aAdapter);
    23112338    QString pageTitle = QString (tr ("Adapter %1", "network"))
     
    23192346
    23202347    /* setup validation */
     2348    QComboBox *cbNetworkName = 0;
     2349#ifdef Q_WS_WIN
     2350    cbNetworkName = page->cbInternalNetworkName_WIN;
     2351#else
     2352    cbNetworkName = page->cbInternalNetworkName_X11;
     2353#endif
     2354    Assert (cbNetworkName);
     2355
    23212356    QIWidgetValidator *wval =
    23222357        new QIWidgetValidator (QString ("%1: %2")
     
    23252360    connect (page->grbEnabled, SIGNAL (toggled (bool)), wval, SLOT (revalidate()));
    23262361    connect (page->cbNetworkAttachment, SIGNAL (activated (const QString &)),
     2362             wval, SLOT (revalidate()));
     2363    connect (cbNetworkName, SIGNAL (activated (const QString &)),
     2364             wval, SLOT (revalidate()));
     2365    connect (cbNetworkName, SIGNAL (textChanged (const QString &)),
    23272366             wval, SLOT (revalidate()));
    23282367    connect (wval, SIGNAL (validityChanged (const QIWidgetValidator *)),
Note: See TracChangeset for help on using the changeset viewer.

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