VirtualBox

Changeset 66612 in vbox


Ignore:
Timestamp:
Apr 19, 2017 3:09:43 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114655
Message:

FE/Qt: Global preferences: Network page: Reworking tree-widget items to handle own data themselves as done for shared folder and USB filter tree-widget items.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/settings/global
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp

    r66593 r66612  
    7575
    7676
    77 /* Global settings / Network page / NAT network item: */
    78 class UIItemNetworkNAT : public QITreeWidgetItem
     77/** Global settings: Network page: NAT network tree-widget item. */
     78class UIItemNetworkNAT : public QITreeWidgetItem, public UIDataSettingsGlobalNetworkNAT
    7979{
    8080public:
    8181
    82     /* Constructor: */
     82    /** Constructs item. */
    8383    UIItemNetworkNAT();
    8484
    85     /* API: Get/return data to/form items: */
    86     void fetchNetworkData(const UIDataSettingsGlobalNetworkNAT &data);
    87     void uploadNetworkData(UIDataSettingsGlobalNetworkNAT &data);
     85    /** Updates item fields from data. */
     86    void updateFields();
     87    /** Updates item data from fields. */
     88    void updateData();
    8889
    8990    /** Performs validation, updates @a messages list if something is wrong. */
    9091    bool validate(UIValidationMessage &messages);
    9192
    92     /* API: Update stuff: */
    93     void updateInfo();
    94     void updateData();
    95 
    96     /* API: Network item getters: */
    97     QString name() const { return m_data.m_strName; }
    98     QString newName() const { return m_data.m_strNewName; }
     93    /** Returns item name. */
     94    QString name() const { return m_strName; }
     95    /** Returns new item name. */
     96    QString newName() const { return m_strNewName; }
     97
     98protected:
    9999
    100100    /** Returns default text. */
    101101    virtual QString defaultText() const /* override */;
    102 
    103 private:
    104 
    105     /* Variable: Network data: */
    106     UIDataSettingsGlobalNetworkNAT m_data;
    107102};
    108103
    109104
    110 /* Global settings / Network page / Host network item: */
    111 class UIItemNetworkHost : public QITreeWidgetItem
     105/** Global settings: Network page: Host network tree-widget item. */
     106class UIItemNetworkHost : public QITreeWidgetItem, public UIDataSettingsGlobalNetworkHost
    112107{
    113108public:
    114109
    115     /* Constructor: */
     110    /** Constructs item. */
    116111    UIItemNetworkHost();
    117112
    118     /* API: Get/return data to/form items: */
    119     void fetchNetworkData(const UIDataSettingsGlobalNetworkHost &data);
    120     void uploadNetworkData(UIDataSettingsGlobalNetworkHost &data);
     113    /** Updates item fields from data. */
     114    void updateFields();
    121115
    122116    /** Performs validation, updates @a messages list if something is wrong. */
    123117    bool validate(UIValidationMessage &messages);
    124118
    125     /* API: Update stuff: */
    126     void updateInfo();
    127 
    128     /* API: Network item getters: */
    129     QString name() const { return m_data.m_interface.m_strName; }
    130 
    131 private:
    132 
    133     /* Variable: Network data: */
    134     UIDataSettingsGlobalNetworkHost m_data;
     119    /** Returns item name. */
     120    QString name() const { return m_interface.m_strName; }
    135121};
    136122
     123
     124/*********************************************************************************************************************************
     125*   Class UIItemNetworkNAT implementation.                                                                                       *
     126*********************************************************************************************************************************/
    137127
    138128UIItemNetworkNAT::UIItemNetworkNAT()
     
    141131}
    142132
    143 void UIItemNetworkNAT::fetchNetworkData(const UIDataSettingsGlobalNetworkNAT &data)
    144 {
    145     /* Get from the cache: */
    146     m_data = data;
    147 
    148     /* Fetch info: */
    149     updateInfo();
    150 }
    151 
    152 void UIItemNetworkNAT::uploadNetworkData(UIDataSettingsGlobalNetworkNAT &data)
    153 {
    154     /* Put to the cache: */
    155     data = m_data;
     133void UIItemNetworkNAT::updateFields()
     134{
     135    /* Compose item name/tool-tip: */
     136    const QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
     137    const QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
     138    QString strToolTip;
     139
     140    /* Item name was not changed: */
     141    setCheckState(0, m_fEnabled ? Qt::Checked : Qt::Unchecked);
     142    if (m_strNewName == m_strName)
     143    {
     144        /* Just use the old one: */
     145        setText(1, m_strName);
     146        strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network Name"), m_strName);
     147    }
     148    /* If name was changed: */
     149    else
     150    {
     151        /* We should explain that: */
     152        const QString oldName = m_strName;
     153        const QString newName = m_strNewName.isEmpty() ? UIGlobalSettingsNetwork::tr("[empty]") : m_strNewName;
     154        setText(1, UIGlobalSettingsNetwork::tr("%1 (renamed from %2)").arg(newName, oldName));
     155        strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Old Network Name"), m_strName);
     156        strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("New Network Name"), m_strNewName);
     157    }
     158
     159    /* Other tool-tip information: */
     160    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network CIDR"), m_strCIDR);
     161    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports DHCP"),
     162                                m_fSupportsDHCP ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));
     163    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports IPv6"),
     164                                m_fSupportsIPv6 ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));
     165    if (m_fSupportsIPv6 && m_fAdvertiseDefaultIPv6Route)
     166        strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Default IPv6 route"), UIGlobalSettingsNetwork::tr("yes"));
     167
     168    /* Assign tool-tip finally: */
     169    setToolTip(1, strToolTip);
     170}
     171
     172void UIItemNetworkNAT::updateData()
     173{
     174    /* Update data: */
     175    m_fEnabled = checkState(0) == Qt::Checked;
    156176}
    157177
     
    163183    /* NAT network name validation: */
    164184    bool fNameValid = true;
    165     if (m_data.m_strNewName.isEmpty())
     185    if (m_strNewName.isEmpty())
    166186    {
    167187        /* Emptiness validation: */
    168         message.second << UIGlobalSettingsNetwork::tr("No new name specified for the NAT network previously called <b>%1</b>.").arg(m_data.m_strName);
     188        message.second << UIGlobalSettingsNetwork::tr("No new name specified for the NAT network previously called <b>%1</b>.").arg(m_strName);
    169189        fNameValid = false;
    170190        fPass = false;
     
    172192
    173193    /* NAT network CIDR validation: */
    174     if (m_data.m_strCIDR.isEmpty())
     194    if (m_strCIDR.isEmpty())
    175195    {
    176196        /* Emptiness validation: */
    177197        if (fNameValid)
    178             message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network <b>%1</b>.").arg(m_data.m_strNewName);
     198            message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network <b>%1</b>.").arg(m_strNewName);
    179199        else
    180             message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network previously called <b>%1</b>.").arg(m_data.m_strName);
     200            message.second << UIGlobalSettingsNetwork::tr("No CIDR specified for the NAT network previously called <b>%1</b>.").arg(m_strName);
    181201        fPass = false;
    182202    }
     
    185205        /* Correctness validation: */
    186206        RTNETADDRIPV4 network, mask;
    187         int rc = RTCidrStrToIPv4(m_data.m_strCIDR.toUtf8().constData(), &network, &mask);
     207        int rc = RTCidrStrToIPv4(m_strCIDR.toUtf8().constData(), &network, &mask);
    188208        if (RT_FAILURE(rc))
    189209        {
    190210            if (fNameValid)
    191211                message.second << UIGlobalSettingsNetwork::tr("Invalid CIDR specified (<i>%1</i>) for the NAT network <b>%2</b>.")
    192                                                               .arg(m_data.m_strCIDR, m_data.m_strNewName);
     212                                                              .arg(m_strCIDR, m_strNewName);
    193213            else
    194214                message.second << UIGlobalSettingsNetwork::tr("Invalid CIDR specified (<i>%1</i>) for the NAT network previously called <b>%2</b>.")
    195                                                               .arg(m_data.m_strCIDR, m_data.m_strName);
     215                                                              .arg(m_strCIDR, m_strName);
    196216            fPass = false;
    197217        }
     
    202222}
    203223
    204 void UIItemNetworkNAT::updateInfo()
    205 {
    206     /* Compose item name/tool-tip: */
    207     QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    208     QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    209     QString strToolTip;
    210 
    211     /* Item name was not changed: */
    212     setCheckState(0, m_data.m_fEnabled ? Qt::Checked : Qt::Unchecked);
    213     if (m_data.m_strNewName == m_data.m_strName)
    214     {
    215         /* Just use the old one: */
    216         setText(1, m_data.m_strName);
    217         strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network Name"), m_data.m_strName);
    218     }
    219     /* If name was changed: */
    220     else
    221     {
    222         /* We should explain that: */
    223         const QString oldName = m_data.m_strName;
    224         const QString newName = m_data.m_strNewName.isEmpty() ? UIGlobalSettingsNetwork::tr("[empty]") : m_data.m_strNewName;
    225         setText(1, UIGlobalSettingsNetwork::tr("%1 (renamed from %2)").arg(newName, oldName));
    226         strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Old Network Name"), m_data.m_strName);
    227         strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("New Network Name"), m_data.m_strNewName);
    228     }
    229 
    230     /* Other tool-tip information: */
    231     strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network CIDR"), m_data.m_strCIDR);
    232     strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports DHCP"),
    233                                 m_data.m_fSupportsDHCP ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));
    234     strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports IPv6"),
    235                                 m_data.m_fSupportsIPv6 ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));
    236     if (m_data.m_fSupportsIPv6 && m_data.m_fAdvertiseDefaultIPv6Route)
    237         strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Default IPv6 route"), UIGlobalSettingsNetwork::tr("yes"));
    238 
    239     /* Assign tool-tip finally: */
    240     setToolTip(1, strToolTip);
    241 }
    242 
    243 void UIItemNetworkNAT::updateData()
    244 {
    245     /* Update data: */
    246     m_data.m_fEnabled = checkState(0) == Qt::Checked;
    247 }
    248 
    249224QString UIItemNetworkNAT::defaultText() const
    250225{
    251     return m_data.m_fEnabled ?
     226    return m_fEnabled ?
    252227           tr("%1, %2", "col.2 text, col.1 name")
    253228             .arg(text(1))
     
    258233
    259234
     235/*********************************************************************************************************************************
     236*   Class UIItemNetworkHost implementation.                                                                                      *
     237*********************************************************************************************************************************/
     238
    260239UIItemNetworkHost::UIItemNetworkHost()
    261240    : QITreeWidgetItem()
     
    263242}
    264243
    265 void UIItemNetworkHost::fetchNetworkData(const UIDataSettingsGlobalNetworkHost &data)
    266 {
    267     /* Get from the cache: */
    268     m_data = data;
    269 
    270     /* Fetch info: */
    271     updateInfo();
    272 }
    273 
    274 void UIItemNetworkHost::uploadNetworkData(UIDataSettingsGlobalNetworkHost &data)
    275 {
    276     /* Put to the cache: */
    277     data = m_data;
     244void UIItemNetworkHost::updateFields()
     245{
     246    /* Compose item name/tool-tip: */
     247    setText(0, m_interface.m_strName);
     248    const QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
     249    const QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
     250    QString strToolTip;
     251
     252    /* Host interface information: */
     253    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Adapter"))
     254                           .arg(m_interface.m_fDhcpClientEnabled ?
     255                                UIGlobalSettingsNetwork::tr("Automatically configured", "interface") :
     256                                UIGlobalSettingsNetwork::tr("Manually configured", "interface"));
     257    if (!m_interface.m_fDhcpClientEnabled)
     258    {
     259        strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Address"))
     260                                  .arg(m_interface.m_strInterfaceAddress.isEmpty() ?
     261                                       UIGlobalSettingsNetwork::tr ("Not set", "address") :
     262                                       m_interface.m_strInterfaceAddress) +
     263                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Network Mask"))
     264                                  .arg(m_interface.m_strInterfaceMask.isEmpty() ?
     265                                       UIGlobalSettingsNetwork::tr ("Not set", "mask") :
     266                                       m_interface.m_strInterfaceMask);
     267        if (m_interface.m_fIpv6Supported)
     268        {
     269            strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Address"))
     270                                      .arg(m_interface.m_strInterfaceAddress6.isEmpty() ?
     271                                           UIGlobalSettingsNetwork::tr("Not set", "address") :
     272                                           m_interface.m_strInterfaceAddress6) +
     273                          strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Network Mask Length"))
     274                                      .arg(m_interface.m_strInterfaceMaskLength6.isEmpty() ?
     275                                           UIGlobalSettingsNetwork::tr("Not set", "length") :
     276                                           m_interface.m_strInterfaceMaskLength6);
     277        }
     278    }
     279
     280    /* DHCP server information: */
     281    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("DHCP Server"))
     282                           .arg(m_dhcpserver.m_fDhcpServerEnabled ?
     283                                UIGlobalSettingsNetwork::tr("Enabled", "server") :
     284                                UIGlobalSettingsNetwork::tr("Disabled", "server"));
     285    if (m_dhcpserver.m_fDhcpServerEnabled)
     286    {
     287        strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Address"))
     288                                  .arg(m_dhcpserver.m_strDhcpServerAddress.isEmpty() ?
     289                                       UIGlobalSettingsNetwork::tr("Not set", "address") :
     290                                       m_dhcpserver.m_strDhcpServerAddress) +
     291                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("Network Mask"))
     292                                  .arg(m_dhcpserver.m_strDhcpServerMask.isEmpty() ?
     293                                       UIGlobalSettingsNetwork::tr("Not set", "mask") :
     294                                       m_dhcpserver.m_strDhcpServerMask) +
     295                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("Lower Bound"))
     296                                  .arg(m_dhcpserver.m_strDhcpLowerAddress.isEmpty() ?
     297                                       UIGlobalSettingsNetwork::tr("Not set", "bound") :
     298                                       m_dhcpserver.m_strDhcpLowerAddress) +
     299                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("Upper Bound"))
     300                                  .arg(m_dhcpserver.m_strDhcpUpperAddress.isEmpty() ?
     301                                       UIGlobalSettingsNetwork::tr("Not set", "bound") :
     302                                       m_dhcpserver.m_strDhcpUpperAddress);
     303    }
     304
     305    /* Assign tool-tip finally: */
     306    setToolTip(0, strToolTip);
    278307}
    279308
     
    284313
    285314    /* Host interface validation: */
    286     if (!m_data.m_interface.m_fDhcpClientEnabled)
    287     {
    288         if (!m_data.m_interface.m_strInterfaceAddress.trimmed().isEmpty() &&
    289             (   !RTNetIsIPv4AddrStr(m_data.m_interface.m_strInterfaceAddress.toUtf8().constData())
    290              || RTNetStrIsIPv4AddrAny(m_data.m_interface.m_strInterfaceAddress.toUtf8().constData())))
     315    if (!m_interface.m_fDhcpClientEnabled)
     316    {
     317        if (!m_interface.m_strInterfaceAddress.trimmed().isEmpty() &&
     318            (   !RTNetIsIPv4AddrStr(m_interface.m_strInterfaceAddress.toUtf8().constData())
     319             || RTNetStrIsIPv4AddrAny(m_interface.m_strInterfaceAddress.toUtf8().constData())))
    291320        {
    292321            message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid IPv4 address.").arg(text(0));
    293322            fPass = false;
    294323        }
    295         if (!m_data.m_interface.m_strInterfaceMask.trimmed().isEmpty() &&
    296             (   !RTNetIsIPv4AddrStr(m_data.m_interface.m_strInterfaceMask.toUtf8().constData())
    297              || RTNetStrIsIPv4AddrAny(m_data.m_interface.m_strInterfaceMask.toUtf8().constData())))
     324        if (!m_interface.m_strInterfaceMask.trimmed().isEmpty() &&
     325            (   !RTNetIsIPv4AddrStr(m_interface.m_strInterfaceMask.toUtf8().constData())
     326             || RTNetStrIsIPv4AddrAny(m_interface.m_strInterfaceMask.toUtf8().constData())))
    298327        {
    299328            message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid IPv4 network mask.").arg(text(0));
    300329            fPass = false;
    301330        }
    302         if (m_data.m_interface.m_fIpv6Supported)
    303         {
    304             if (!m_data.m_interface.m_strInterfaceAddress6.trimmed().isEmpty() &&
    305                 (   !RTNetIsIPv6AddrStr(m_data.m_interface.m_strInterfaceAddress6.toUtf8().constData())
    306                  || RTNetStrIsIPv6AddrAny(m_data.m_interface.m_strInterfaceAddress6.toUtf8().constData())))
     331        if (m_interface.m_fIpv6Supported)
     332        {
     333            if (!m_interface.m_strInterfaceAddress6.trimmed().isEmpty() &&
     334                (   !RTNetIsIPv6AddrStr(m_interface.m_strInterfaceAddress6.toUtf8().constData())
     335                 || RTNetStrIsIPv6AddrAny(m_interface.m_strInterfaceAddress6.toUtf8().constData())))
    307336            {
    308337                message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid IPv6 address.").arg(text(0));
     
    310339            }
    311340            bool fIsMaskPrefixLengthNumber = false;
    312             const int iMaskPrefixLength = m_data.m_interface.m_strInterfaceMaskLength6.trimmed().toInt(&fIsMaskPrefixLengthNumber);
     341            const int iMaskPrefixLength = m_interface.m_strInterfaceMaskLength6.trimmed().toInt(&fIsMaskPrefixLengthNumber);
    313342            if (   !fIsMaskPrefixLengthNumber
    314343                || iMaskPrefixLength < 0
     
    322351
    323352    /* DHCP server validation: */
    324     if (m_data.m_dhcpserver.m_fDhcpServerEnabled)
    325     {
    326         if (   !RTNetIsIPv4AddrStr(m_data.m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData())
    327             || RTNetStrIsIPv4AddrAny(m_data.m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData()))
     353    if (m_dhcpserver.m_fDhcpServerEnabled)
     354    {
     355        if (   !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData())
     356            || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpServerAddress.toUtf8().constData()))
    328357        {
    329358            message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server address.").arg(text(0));
    330359            fPass = false;
    331360        }
    332         if (   !RTNetIsIPv4AddrStr(m_data.m_dhcpserver.m_strDhcpServerMask.toUtf8().constData())
    333             || RTNetStrIsIPv4AddrAny(m_data.m_dhcpserver.m_strDhcpServerMask.toUtf8().constData()))
     361        if (   !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpServerMask.toUtf8().constData())
     362            || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpServerMask.toUtf8().constData()))
    334363        {
    335364            message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server mask.").arg(text(0));
    336365            fPass = false;
    337366        }
    338         if (   !RTNetIsIPv4AddrStr(m_data.m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData())
    339             || RTNetStrIsIPv4AddrAny(m_data.m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData()))
     367        if (   !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData())
     368            || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpLowerAddress.toUtf8().constData()))
    340369        {
    341370            message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server lower address bound.").arg(text(0));
    342371            fPass = false;
    343372        }
    344         if (   !RTNetIsIPv4AddrStr(m_data.m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData())
    345             || RTNetStrIsIPv4AddrAny(m_data.m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData()))
     373        if (   !RTNetIsIPv4AddrStr(m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData())
     374            || RTNetStrIsIPv4AddrAny(m_dhcpserver.m_strDhcpUpperAddress.toUtf8().constData()))
    346375        {
    347376            message.second << UIGlobalSettingsNetwork::tr("Host interface <b>%1</b> does not currently have a valid DHCP server upper address bound.").arg(text(0));
     
    354383}
    355384
    356 void UIItemNetworkHost::updateInfo()
    357 {
    358     /* Compose item name/tool-tip: */
    359     setText(0, m_data.m_interface.m_strName);
    360     QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    361     QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    362     QString strToolTip;
    363 
    364     /* Host interface information: */
    365     strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Adapter"))
    366                            .arg(m_data.m_interface.m_fDhcpClientEnabled ?
    367                                 UIGlobalSettingsNetwork::tr("Automatically configured", "interface") :
    368                                 UIGlobalSettingsNetwork::tr("Manually configured", "interface"));
    369     if (!m_data.m_interface.m_fDhcpClientEnabled)
    370     {
    371         strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Address"))
    372                                   .arg(m_data.m_interface.m_strInterfaceAddress.isEmpty() ?
    373                                        UIGlobalSettingsNetwork::tr ("Not set", "address") :
    374                                        m_data.m_interface.m_strInterfaceAddress) +
    375                       strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Network Mask"))
    376                                   .arg(m_data.m_interface.m_strInterfaceMask.isEmpty() ?
    377                                        UIGlobalSettingsNetwork::tr ("Not set", "mask") :
    378                                        m_data.m_interface.m_strInterfaceMask);
    379         if (m_data.m_interface.m_fIpv6Supported)
    380         {
    381             strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Address"))
    382                                       .arg(m_data.m_interface.m_strInterfaceAddress6.isEmpty() ?
    383                                            UIGlobalSettingsNetwork::tr("Not set", "address") :
    384                                            m_data.m_interface.m_strInterfaceAddress6) +
    385                           strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Network Mask Length"))
    386                                       .arg(m_data.m_interface.m_strInterfaceMaskLength6.isEmpty() ?
    387                                            UIGlobalSettingsNetwork::tr("Not set", "length") :
    388                                            m_data.m_interface.m_strInterfaceMaskLength6);
    389         }
    390     }
    391 
    392     /* DHCP server information: */
    393     strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("DHCP Server"))
    394                            .arg(m_data.m_dhcpserver.m_fDhcpServerEnabled ?
    395                                 UIGlobalSettingsNetwork::tr("Enabled", "server") :
    396                                 UIGlobalSettingsNetwork::tr("Disabled", "server"));
    397     if (m_data.m_dhcpserver.m_fDhcpServerEnabled)
    398     {
    399         strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Address"))
    400                                   .arg(m_data.m_dhcpserver.m_strDhcpServerAddress.isEmpty() ?
    401                                        UIGlobalSettingsNetwork::tr("Not set", "address") :
    402                                        m_data.m_dhcpserver.m_strDhcpServerAddress) +
    403                       strSubHeader.arg(UIGlobalSettingsNetwork::tr("Network Mask"))
    404                                   .arg(m_data.m_dhcpserver.m_strDhcpServerMask.isEmpty() ?
    405                                        UIGlobalSettingsNetwork::tr("Not set", "mask") :
    406                                        m_data.m_dhcpserver.m_strDhcpServerMask) +
    407                       strSubHeader.arg(UIGlobalSettingsNetwork::tr("Lower Bound"))
    408                                   .arg(m_data.m_dhcpserver.m_strDhcpLowerAddress.isEmpty() ?
    409                                        UIGlobalSettingsNetwork::tr("Not set", "bound") :
    410                                        m_data.m_dhcpserver.m_strDhcpLowerAddress) +
    411                       strSubHeader.arg(UIGlobalSettingsNetwork::tr("Upper Bound"))
    412                                   .arg(m_data.m_dhcpserver.m_strDhcpUpperAddress.isEmpty() ?
    413                                        UIGlobalSettingsNetwork::tr("Not set", "bound") :
    414                                        m_data.m_dhcpserver.m_strDhcpUpperAddress);
    415     }
    416 
    417     /* Assign tool-tip finally: */
    418     setToolTip(0, strToolTip);
    419 }
    420 
     385
     386/*********************************************************************************************************************************
     387*   Class UIGlobalSettingsNetwork implementation.                                                                                *
     388*********************************************************************************************************************************/
    421389
    422390UIGlobalSettingsNetwork::UIGlobalSettingsNetwork()
     
    475443    /* Load old network data from the cache: */
    476444    foreach (const UIDataSettingsGlobalNetworkNAT &network, oldNetworkData.m_networksNAT)
    477         createTreeItemNetworkNAT(network);
     445        createTreeWidgetItemForNetworkNAT(network);
    478446    m_pTreeNetworkNAT->sortByColumn(1, Qt::AscendingOrder);
    479447    m_pTreeNetworkNAT->setCurrentItem(m_pTreeNetworkNAT->topLevelItem(0));
    480448    sltHandleCurrentItemChangeNetworkNAT();
    481449    foreach (const UIDataSettingsGlobalNetworkHost &network, oldNetworkData.m_networksHost)
    482         createTreeItemNetworkHost(network);
     450        createTreeWidgetItemForNetworkHost(network);
    483451    m_pTreeNetworkHost->sortByColumn(0, Qt::AscendingOrder);
    484452    m_pTreeNetworkHost->setCurrentItem(m_pTreeNetworkHost->topLevelItem(0));
     
    498466    for (int iNetworkIndex = 0; iNetworkIndex < m_pTreeNetworkNAT->topLevelItemCount(); ++iNetworkIndex)
    499467    {
    500         UIDataSettingsGlobalNetworkNAT data;
    501         UIItemNetworkNAT *pItem = static_cast<UIItemNetworkNAT*>(m_pTreeNetworkNAT->topLevelItem(iNetworkIndex));
    502         pItem->uploadNetworkData(data);
    503         newNetworkData.m_networksNAT << data;
     468        const UIItemNetworkNAT *pItem = static_cast<UIItemNetworkNAT*>(m_pTreeNetworkNAT->topLevelItem(iNetworkIndex));
     469        newNetworkData.m_networksNAT << *pItem;
    504470    }
    505471    newNetworkData.m_networksHost.clear();
    506472    for (int iNetworkIndex = 0; iNetworkIndex < m_pTreeNetworkHost->topLevelItemCount(); ++iNetworkIndex)
    507473    {
    508         UIDataSettingsGlobalNetworkHost data;
    509         UIItemNetworkHost *pItem = static_cast<UIItemNetworkHost*>(m_pTreeNetworkHost->topLevelItem(iNetworkIndex));
    510         pItem->uploadNetworkData(data);
    511         newNetworkData.m_networksHost << data;
     474        const UIItemNetworkHost *pItem = static_cast<UIItemNetworkHost*>(m_pTreeNetworkHost->topLevelItem(iNetworkIndex));
     475        newNetworkData.m_networksHost << *pItem;
    512476    }
    513477
     
    685649    UIDataSettingsGlobalNetworkNAT data;
    686650    loadDataNetworkNAT(network, data);
    687     createTreeItemNetworkNAT(data, true);
     651    createTreeWidgetItemForNetworkNAT(data, true);
    688652    m_pTreeNetworkNAT->sortByColumn(1, Qt::AscendingOrder);
    689653}
     
    696660
    697661    /* Edit current item data: */
    698     UIDataSettingsGlobalNetworkNAT data;
    699     pItem->uploadNetworkData(data);
     662    UIDataSettingsGlobalNetworkNAT data = *pItem;
    700663    UIGlobalSettingsNetworkDetailsNAT details(this, data);
    701664    if (details.exec() == QDialog::Accepted)
    702665    {
    703666        /* Put data back: */
    704         pItem->fetchNetworkData(data);
     667        pItem->UIDataSettingsGlobalNetworkNAT::operator=(data);
     668        pItem->updateFields();
    705669        sltHandleCurrentItemChangeNetworkNAT();
    706670        /* Revalidate: */
     
    734698
    735699    /* Update tree: */
    736     removeTreeItemNetworkNAT(pItem);
     700    removeTreeWidgetItemOfNetworkNAT(pItem);
    737701}
    738702
     
    802766    UIDataSettingsGlobalNetworkHost data;
    803767    loadDataNetworkHost(iface, data);
    804     createTreeItemNetworkHost(data, true);
     768    createTreeWidgetItemForNetworkHost(data, true);
    805769    m_pTreeNetworkHost->sortByColumn(0, Qt::AscendingOrder);
    806770}
     
    813777
    814778    /* Edit current item data: */
    815     UIDataSettingsGlobalNetworkHost data;
    816     pItem->uploadNetworkData(data);
     779    UIDataSettingsGlobalNetworkHost data = *pItem;
    817780    UIGlobalSettingsNetworkDetailsHost details(this, data);
    818781    if (details.exec() == QDialog::Accepted)
    819782    {
    820783        /* Put data back: */
    821         pItem->fetchNetworkData(data);
     784        pItem->UIDataSettingsGlobalNetworkHost::operator=(data);
     785        pItem->updateFields();
    822786        sltHandleCurrentItemChangeNetworkHost();
    823787        /* Revalidate: */
     
    864828
    865829    /* Update tree: */
    866     removeTreeItemNetworkHost(pItem);
     830    removeTreeWidgetItemOfNetworkHost(pItem);
    867831}
    868832
     
    906870        /* Prepare 'NAT Network' tab: */
    907871        prepareTabNAT();
    908         /* Prepare 'Host-only Network' tab: */
     872        /* Prepare 'Host Network' tab: */
    909873        prepareTabHost();
    910874        /* Prepare connections: */
     
    986950#endif
    987951
    988         /* Host-only Network tree-widget created in the .ui file. */
     952        /* Host Network tree-widget created in the .ui file. */
    989953        AssertPtrReturnVoid(m_pTreeNetworkHost);
    990954        {
     
    994958        }
    995959
    996         /* Host-only Network toolbar created in the .ui file. */
     960        /* Host Network toolbar created in the .ui file. */
    997961        AssertPtrReturnVoid(m_pToolbarNetworkHost);
    998962        {
     
    1002966            m_pToolbarNetworkHost->setOrientation(Qt::Vertical);
    1003967
    1004             /* Create 'Add Host-only Network' action: */
     968            /* Create 'Add Host Network' action: */
    1005969            m_pActionAddNetworkHost = m_pToolbarNetworkHost->addAction(UIIconPool::iconSet(":/add_host_iface_16px.png",
    1006970                                                                                           ":/add_host_iface_disabled_16px.png"),
     
    1012976            }
    1013977
    1014             /* Create 'Edit Host-only Network' action: */
     978            /* Create 'Edit Host Network' action: */
    1015979            m_pActionEditNetworkHost = m_pToolbarNetworkHost->addAction(UIIconPool::iconSet(":/edit_host_iface_16px.png",
    1016980                                                                                            ":/edit_host_iface_disabled_16px.png"),
     
    1022986            }
    1023987
    1024             /* Create 'Remove Host-only Network' action: */
     988            /* Create 'Remove Host Network' action: */
    1025989            m_pActionRemoveNetworkHost = m_pToolbarNetworkHost->addAction(UIIconPool::iconSet(":/remove_host_iface_16px.png",
    1026990                                                                                              ":/remove_host_iface_disabled_16px.png"),
     
    10471011            this, SLOT(sltHandleItemChangeNetworkNAT(QTreeWidgetItem *)));
    10481012
    1049     /* Configure 'Host-only Network' connections: */
     1013    /* Configure 'Host Network' connections: */
    10501014    connect(m_pTreeNetworkHost, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
    10511015            this, SLOT(sltHandleCurrentItemChangeNetworkHost()));
     
    11551119}
    11561120
    1157 void UIGlobalSettingsNetwork::createTreeItemNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem)
     1121void UIGlobalSettingsNetwork::createTreeWidgetItemForNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem)
    11581122{
    11591123    /* Add new item to the tree: */
    11601124    UIItemNetworkNAT *pItem = new UIItemNetworkNAT;
    1161     pItem->fetchNetworkData(data);
     1125    pItem->UIDataSettingsGlobalNetworkNAT::operator=(data);
     1126    pItem->updateFields();
    11621127    m_pTreeNetworkNAT->addTopLevelItem(pItem);
    11631128    /* And choose it as current if necessary: */
     
    11661131}
    11671132
    1168 void UIGlobalSettingsNetwork::removeTreeItemNetworkNAT(UIItemNetworkNAT *pItem)
     1133void UIGlobalSettingsNetwork::removeTreeWidgetItemOfNetworkNAT(UIItemNetworkNAT *pItem)
    11691134{
    11701135    /* Delete passed item: */
     
    12801245}
    12811246
    1282 void UIGlobalSettingsNetwork::createTreeItemNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem)
     1247void UIGlobalSettingsNetwork::createTreeWidgetItemForNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem)
    12831248{
    12841249    /* Add new item to the tree: */
    12851250    UIItemNetworkHost *pItem = new UIItemNetworkHost;
    1286     pItem->fetchNetworkData(data);
     1251    pItem->UIDataSettingsGlobalNetworkHost::operator=(data);
     1252    pItem->updateFields();
    12871253    m_pTreeNetworkHost->addTopLevelItem(pItem);
    12881254    /* And choose it as current if necessary: */
     
    12911257}
    12921258
    1293 void UIGlobalSettingsNetwork::removeTreeItemNetworkHost(UIItemNetworkHost *pItem)
     1259void UIGlobalSettingsNetwork::removeTreeWidgetItemOfNetworkHost(UIItemNetworkHost *pItem)
    12941260{
    12951261    /* Delete passed item: */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.h

    r66343 r66612  
    114114    void saveDataNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data);
    115115    /** Creates a new item in the NAT network tree on the basis of passed @a data, @a fChooseItem if requested. */
    116     void createTreeItemNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem = false);
     116    void createTreeWidgetItemForNetworkNAT(const UIDataSettingsGlobalNetworkNAT &data, bool fChooseItem = false);
    117117    /** Removes existing @a pItem from the NAT network tree. */
    118     void removeTreeItemNetworkNAT(UIItemNetworkNAT *pItem);
     118    void removeTreeWidgetItemOfNetworkNAT(UIItemNetworkNAT *pItem);
    119119
    120120    /** Uploads host @a network data into passed @a data storage unit. */
     
    123123    void saveDataNetworkHost(const UIDataSettingsGlobalNetworkHost &data);
    124124    /** Creates a new item in the host network tree on the basis of passed @a data, @a fChooseItem if requested. */
    125     void createTreeItemNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem = false);
     125    void createTreeWidgetItemForNetworkHost(const UIDataSettingsGlobalNetworkHost &data, bool fChooseItem = false);
    126126    /** Removes existing @a pItem from the host network tree. */
    127     void removeTreeItemNetworkHost(UIItemNetworkHost *pItem);
     127    void removeTreeWidgetItemOfNetworkHost(UIItemNetworkHost *pItem);
    128128
    129129    /** Holds the Add NAT network action instance. */
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