Index: /trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp	(revision 66694)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp	(revision 66695)
@@ -49,4 +49,14 @@
 
 
+/** Tree-widget column tags. */
+enum
+{
+    Column_Name,
+    Column_IPv4,
+    Column_IPv6,
+    Column_Max,
+};
+
+
 /** Host Network Manager: Tree-widget item. */
 class UIItemHostNetwork : public QITreeWidgetItem, public UIDataHostNetwork
@@ -59,4 +69,9 @@
     /** Returns item name. */
     QString name() const { return m_interface.m_strName; }
+
+private:
+
+    /** Returns CIDR for a passed @a strMask. */
+    static int maskToCidr(const QString &strMask);
 };
 
@@ -68,6 +83,11 @@
 void UIItemHostNetwork::updateFields()
 {
-    /* Compose item name/tool-tip: */
-    setText(0, m_interface.m_strName);
+    /* Compose item fields: */
+    setText(Column_Name, m_interface.m_strName);
+    setText(Column_IPv4, QString("%1/%2").arg(m_interface.m_strInterfaceAddress).arg(maskToCidr(m_interface.m_strInterfaceMask)));
+    setText(Column_IPv6, !m_interface.m_fIpv6Supported ? QString() :
+                         QString("%1/%2").arg(m_interface.m_strInterfaceAddress6).arg(maskToCidr(m_interface.m_strInterfaceMaskLength6)));
+
+    /* Compose item tool-tip: */
     const QString strTable("<table cellspacing=5>%1</table>");
     const QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
@@ -124,5 +144,36 @@
 
     /* Assign tool-tip finally: */
-    setToolTip(0, strTable.arg(strToolTip));
+    setToolTip(Column_Name, strTable.arg(strToolTip));
+}
+
+/* static */
+int UIItemHostNetwork::maskToCidr(const QString &strMask)
+{
+    /* Parse passed mask: */
+    QList<int> address;
+    foreach (const QString &strValue, strMask.split('.'))
+        address << strValue.toInt();
+
+    /* Calculate CIDR: */
+    int iCidr = 0;
+    for (int i = 0; i < 4 || i < address.size(); ++i)
+    {
+        switch(address.at(i))
+        {
+            case 0x80: iCidr += 1; break;
+            case 0xC0: iCidr += 2; break;
+            case 0xE0: iCidr += 3; break;
+            case 0xF0: iCidr += 4; break;
+            case 0xF8: iCidr += 5; break;
+            case 0xFC: iCidr += 6; break;
+            case 0xFE: iCidr += 7; break;
+            case 0xFF: iCidr += 8; break;
+            /* Return CIDR prematurelly: */
+            default: return iCidr;
+        }
+    }
+
+    /* Return CIDR: */
+    return iCidr;
 }
 
@@ -214,4 +265,29 @@
         m_pToolBar->updateLayout();
 #endif
+
+    /* Translate tree-widget: */
+    const QStringList fields = QStringList()
+                               << tr("Name")
+                               << tr("IPv4 address/mask")
+                               << tr("IPv6 address/mask");
+    m_pTreeWidget->setHeaderLabels(fields);
+}
+
+void UIHostNetworkManager::resizeEvent(QResizeEvent *pEvent)
+{
+    /* Call to base-class: */
+    QIWithRetranslateUI<QMainWindow>::resizeEvent(pEvent);
+
+    /* Adjust tree-widget: */
+    sltAdjustTreeWidget();
+}
+
+void UIHostNetworkManager::showEvent(QShowEvent *pEvent)
+{
+    /* Call to base-class: */
+    QIWithRetranslateUI<QMainWindow>::showEvent(pEvent);
+
+    /* Adjust tree-widget: */
+    sltAdjustTreeWidget();
 }
 
@@ -264,6 +340,6 @@
             createItemForNetworkHost(data, true);
 
-            /* Sort list by the 1st column: */
-            m_pTreeWidget->sortByColumn(0, Qt::AscendingOrder);
+            /* Adjust tree-widget: */
+            sltAdjustTreeWidget();
         }
     }
@@ -359,4 +435,7 @@
         loadHostNetwork(comInterface, data);
         updateItemForNetworkHost(data, true, pItem);
+
+        /* Adjust tree-widget: */
+        sltAdjustTreeWidget();
     }
 }
@@ -433,8 +512,32 @@
                     /* Remove interface from the tree: */
                     delete pItem;
+
+                    /* Adjust tree-widget: */
+                    sltAdjustTreeWidget();
                 }
             }
         }
     }
+}
+
+void UIHostNetworkManager::sltAdjustTreeWidget()
+{
+    /* Get the tree-widget abstract interface: */
+    QAbstractItemView *pItemView = m_pTreeWidget;
+    /* Get the tree-widget header-view: */
+    QHeaderView *pItemHeader = m_pTreeWidget->header();
+
+    /* Calculate the total tree-widget width: */
+    const int iTotal = m_pTreeWidget->viewport()->width();
+    /* Look for a minimum width hints for non-important columns: */
+    const int iMinWidth1 = qMax(pItemView->sizeHintForColumn(Column_IPv4), pItemHeader->sectionSizeHint(Column_IPv4));
+    const int iMinWidth2 = qMax(pItemView->sizeHintForColumn(Column_IPv6), pItemHeader->sectionSizeHint(Column_IPv6));
+    /* Propose suitable width hints for non-important columns: */
+    const int iWidth1 = iMinWidth1 < iTotal / Column_Max ? iMinWidth1 : iTotal / Column_Max;
+    const int iWidth2 = iMinWidth2 < iTotal / Column_Max ? iMinWidth2 : iTotal / Column_Max;
+    /* Apply the proposal: */
+    m_pTreeWidget->setColumnWidth(Column_IPv4, iWidth1);
+    m_pTreeWidget->setColumnWidth(Column_IPv6, iWidth2);
+    m_pTreeWidget->setColumnWidth(Column_Name, iTotal - iWidth1 - iWidth2);
 }
 
@@ -631,10 +734,11 @@
     {
         /* Configure tree-widget: */
-        m_pTreeWidget->header()->hide();
         m_pTreeWidget->setRootIsDecorated(false);
         m_pTreeWidget->setAlternatingRowColors(true);
         m_pTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
         m_pTreeWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-        m_pTreeWidget->sortItems(0, Qt::AscendingOrder);
+        m_pTreeWidget->setColumnCount(Column_Max);
+        m_pTreeWidget->setSortingEnabled(true);
+        m_pTreeWidget->sortByColumn(Column_Name, Qt::AscendingOrder);
         connect(m_pTreeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
                 this, SLOT(sltHandleCurrentItemChange()));
@@ -707,9 +811,10 @@
             }
 
-        /* Sort list by the 1st column: */
-        m_pTreeWidget->sortByColumn(0, Qt::AscendingOrder);
         /* Choose the 1st item as current initially: */
         m_pTreeWidget->setCurrentItem(m_pTreeWidget->topLevelItem(0));
         sltHandleCurrentItemChange();
+
+        /* Adjust tree-widget: */
+        sltAdjustTreeWidget();
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.h	(revision 66694)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.h	(revision 66695)
@@ -54,6 +54,15 @@
 protected:
 
-    /** Handles translation event. */
-    virtual void retranslateUi() /* override */;
+    /** @name Event-handling stuff.
+     * @{ */
+        /** Handles translation event. */
+        virtual void retranslateUi() /* override */;
+
+        /** Handles resize @a pEvent. */
+        virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
+
+        /** Handles show @a pEvent. */
+        virtual void showEvent(QShowEvent *pEvent) /* override */;
+    /** @} */
 
 private slots:
@@ -71,7 +80,10 @@
     /** @name Tree-widget stuff.
      * @{ */
-        /** Handles host network tree current item change. */
+        /** Handles command to adjust tree-widget. */
+        void sltAdjustTreeWidget();
+
+        /** Handles tree-widget current item change. */
         void sltHandleCurrentItemChange();
-        /** Handles context menu request for @a position of host network tree. */
+        /** Handles context menu request for tree-widget @a position. */
         void sltHandleContextMenuRequest(const QPoint &position);
     /** @} */
