Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.cpp	(revision 80340)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.cpp	(revision 80341)
@@ -16,19 +16,81 @@
  */
 
+/* COM includes: */
+
 /* Qt includes: */
+#include <QApplication>
+#include <QHeaderView>
+#include <QTableWidget>
 #include <QVBoxLayout>
-#include <QApplication>
 
 /* GUI includes: */
+#include "UICommon.h"
+#include "UIExtraDataManager.h"
+#include "UIIconPool.h"
 #include "UIInformationConfiguration.h"
 #include "UIInformationDataItem.h"
 #include "UIInformationItem.h"
 #include "UIInformationView.h"
-#include "UIExtraDataManager.h"
 #include "UIInformationModel.h"
 
 
+const unsigned iColumCount = 3;
+
+class UIInformationTableRow
+{
+public:
+
+    UIInformationTableRow(UIInformationConfiguration::TableRow row);
+    ~UIInformationTableRow();
+
+    QTableWidgetItem *addItem(unsigned iColumn, const QIcon &icon, const QString &strText);
+    QTableWidgetItem *addItem(unsigned iColumn, const QString &strText);
+
+private:
+
+    QList<QTableWidgetItem*> m_items;
+    UIInformationConfiguration::TableRow m_enmRow;
+};
+
+UIInformationTableRow::UIInformationTableRow(UIInformationConfiguration::TableRow enmRow)
+    : m_enmRow(enmRow)
+{
+    m_items.reserve(iColumCount);
+}
+
+UIInformationTableRow::~UIInformationTableRow()
+{
+    for (int i = 0; i < m_items.size(); ++i)
+        delete m_items[i];
+    m_items.clear();
+}
+
+
+QTableWidgetItem *UIInformationTableRow::addItem(unsigned iColumn, const QIcon &icon, const QString &strText)
+{
+    if (iColumn >= iColumCount)
+        return 0;
+    /* Deallocate first if we have something on the column already: */
+    if (m_items.size() > (int)iColumn && m_items[iColumn])
+        delete m_items[iColumn];
+    QTableWidgetItem *pItem = new QTableWidgetItem(icon, strText);
+    m_items.insert(iColumn, pItem);
+    return pItem;
+}
+
+QTableWidgetItem *UIInformationTableRow::addItem(unsigned iColumn, const QString &strText)
+{
+    if (iColumn >= iColumCount)
+        return 0;
+    /* Deallocate first if we have something on the column already: */
+    if (m_items.size() > (int)iColumn && m_items[iColumn])
+        delete m_items[iColumn];
+    QTableWidgetItem *pItem = new QTableWidgetItem(strText);
+    m_items.insert(iColumn, pItem);
+    return pItem;
+}
+
 UIInformationConfiguration::UIInformationConfiguration(QWidget *pParent, const CMachine &machine, const CConsole &console)
-    : QWidget(pParent)
+    : QIWithRetranslateUI<QWidget>(pParent)
     , m_machine(machine)
     , m_console(console)
@@ -36,24 +98,28 @@
     , m_pModel(0)
     , m_pView(0)
-{
-    /* Prepare layout: */
-    prepareLayout();
-
+    , m_pTableWidget(0)
+{
     /* Prepare model: */
     prepareModel();
 
     /* Prepare view: */
-    prepareView();
-}
-
-void UIInformationConfiguration::prepareLayout()
-{
-    /* Create layout: */
-    m_pMainLayout = new QVBoxLayout(this);
-    AssertPtrReturnVoid(m_pMainLayout);
-    {
-        /* Configure layout: */
-        m_pMainLayout->setSpacing(0);
-    }
+    prepareObjects();
+    retranslateUi();
+    createTableItems();
+}
+
+UIInformationConfiguration::~UIInformationConfiguration()
+{
+    qDeleteAll(m_rows);
+    m_rows.clear();
+}
+
+void UIInformationConfiguration::retranslateUi()
+{
+    m_strGeneralTitle = QApplication::translate("UIVMInformationDialog", "General");
+    m_strGeneralName = QApplication::translate("UIVMInformationDialog", "Name");
+    m_strGeneralOSType = QApplication::translate("UIVMInformationDialog", "Operating System");
+    m_strSystemTitle = QApplication::translate("UIVMInformationDialog", "System");
+    m_strError = QApplication::translate("UIVMInformationDialog", "Not Detected");
 }
 
@@ -138,6 +204,13 @@
 }
 
-void UIInformationConfiguration::prepareView()
-{
+void UIInformationConfiguration::prepareObjects()
+{
+    /* Create layout: */
+    m_pMainLayout = new QVBoxLayout(this);
+    if (!m_pMainLayout)
+        return;
+    m_pMainLayout->setSpacing(0);
+
+
     /* Create information-view: */
     m_pView = new UIInformationView;
@@ -162,3 +235,75 @@
         m_pMainLayout->addWidget(m_pView);
     }
-}
+
+    m_pTableWidget = new QTableWidget;
+
+    if (m_pTableWidget)
+    {
+        /* Configure the table by hiding the headers etc.: */
+        m_pTableWidget->setRowCount(TableRow_Max);
+        m_pTableWidget->setColumnCount(3);
+        m_pTableWidget->verticalHeader()->hide();
+        m_pTableWidget->horizontalHeader()->hide();
+        //m_pTableWidget->setShowGrid(false);
+        m_pMainLayout->addWidget(m_pTableWidget);
+        m_pTableWidget->hide();
+    }
+}
+
+void UIInformationConfiguration::updateTable()
+{
+}
+
+void UIInformationConfiguration::createTableItems()
+{
+    if (!m_pTableWidget)
+        return;
+    QFontMetrics fontMetrics(m_pTableWidget->font());
+
+    int iMaxColumn1Length = 0;
+
+    /* General Section: */
+    insertTitleRow(TableRow_General_Title, m_strGeneralTitle, UIIconPool::iconSet(":/machine_16px.png"));
+    QString strMachineName = m_machine.isNull() ? m_strError : m_machine.GetName();
+    insertInfoRow(TableRow_General_Name, m_strGeneralName, strMachineName, fontMetrics, iMaxColumn1Length);
+    QString strOSTypeName;
+    if (!m_console.isNull())
+    {
+        CGuest comGuest = m_console.GetGuest();
+        if (!comGuest.isNull())
+            strOSTypeName = uiCommon().vmGuestOSTypeDescription(comGuest.GetOSTypeId());
+    }
+    if (strOSTypeName.isEmpty())
+        strOSTypeName = m_strError;
+    insertInfoRow(TableRow_General_OSType, m_strGeneralOSType, strOSTypeName, fontMetrics, iMaxColumn1Length);
+    insertTitleRow(TableRow_System_Title, m_strSystemTitle, UIIconPool::iconSet(":/chipset_16px.png"));
+
+
+    m_pTableWidget->resizeColumnToContents(0);
+    //m_pTableWidget->resizeColumnToContents(1);
+    m_pTableWidget->setColumnWidth(1, 1.5 * iMaxColumn1Length);
+    m_pTableWidget->resizeColumnToContents(2);
+
+}
+
+void UIInformationConfiguration::insertTitleRow(TableRow enmRow, const QString &strTitle, const QIcon &icon)
+{
+    UIInformationTableRow *pRow = new UIInformationTableRow(enmRow);
+    m_rows.insert(enmRow, pRow);
+    m_pTableWidget->setItem(enmRow, 0, pRow->addItem(0, icon, ""));
+    QTableWidgetItem *pItem = pRow->addItem(1, strTitle);
+    QFont font = pItem->font();
+    font.setBold(true);
+    pItem->setFont(font);
+    m_pTableWidget->setItem(enmRow, 1, pItem);
+}
+
+void UIInformationConfiguration::insertInfoRow(TableRow enmRow, const QString &strColumn1, const QString &strColumn2,
+                                               QFontMetrics &fontMetrics, int &iMaxColumn1Length)
+{
+    UIInformationTableRow *pRow = new UIInformationTableRow(enmRow);
+    m_rows.insert(enmRow, pRow);
+    m_pTableWidget->setItem(enmRow, 1, pRow->addItem(1, strColumn1));
+    m_pTableWidget->setItem(enmRow, 2, pRow->addItem(1, strColumn2));
+    iMaxColumn1Length = qMax(iMaxColumn1Length, fontMetrics.width(strColumn1));
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.h	(revision 80340)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.h	(revision 80341)
@@ -27,6 +27,11 @@
 /* COM includes: */
 #include "COMEnums.h"
+#include "CGuest.h"
+
 #include "CMachine.h"
 #include "CConsole.h"
+
+/* GUI includes: */
+#include "QIWithRetranslateUI.h"
 
 /* Forward declarations: */
@@ -34,9 +39,11 @@
 class UIInformationView;
 class UIInformationModel;
-
+class QTableWidget;
+class QTableWidgetItem;
+class UIInformationTableRow;
 
 /** QWidget extension
   * providing GUI with configuration-information tab in session-information window. */
-class UIInformationConfiguration : public QWidget
+class UIInformationConfiguration : public QIWithRetranslateUI<QWidget>
 {
     Q_OBJECT;
@@ -44,19 +51,33 @@
 public:
 
+    enum TableRow
+    {
+        TableRow_General_Title = 0,
+        TableRow_General_Name,
+        TableRow_General_OSType,
+        TableRow_System_Title,
+        TableRow_Max
+    };
+
     /** Constructs information-tab passing @a pParent to the QWidget base-class constructor.
       * @param machine is machine reference.
       * @param console is machine console reference. */
     UIInformationConfiguration(QWidget *pParent, const CMachine &machine, const CConsole &console);
+    ~UIInformationConfiguration();
+
+protected:
+
+    void retranslateUi() /* override */;
 
 private:
-
-    /** Prepares layout. */
-    void prepareLayout();
-
     /** Prepares model. */
     void prepareModel();
+    void prepareObjects();
+    void createTableItems();
 
-    /** Prepares view. */
-    void prepareView();
+    void updateTable();
+    void insertTitleRow(TableRow enmRow, const QString &strTitle, const QIcon &icon);
+    void insertInfoRow(TableRow enmRow, const QString &strColumn1, const QString &strColumn2,
+                       QFontMetrics &fontMetrics, int &iMaxColumn1Length);
 
     /** Holds the machine instance. */
@@ -70,6 +91,21 @@
     /** Holds the instance of view we create. */
     UIInformationView *m_pView;
+    QTableWidget *m_pTableWidget;
+    QMap<TableRow, UIInformationTableRow*> m_rows;
+
+   /** @name Cached translated string.
+      * @{ */
+        QString m_strError;
+
+        /** General section. */
+        QString m_strGeneralTitle;
+        QString m_strGeneralName;
+        QString m_strGeneralOSType;
+        /** System section. */
+        QString m_strSystemTitle;
+
+    /** @} */
+
 };
 
 #endif /* !FEQT_INCLUDED_SRC_runtime_information_UIInformationConfiguration_h */
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.h	(revision 80340)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.h	(revision 80341)
@@ -139,5 +139,5 @@
     /** @} */
 
-    /** @name These metric names are used for map keys to identify metrics.
+    /** @name Cached translated string.
       * @{ */
         /** CPU info label strings. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.cpp	(revision 80340)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.cpp	(revision 80341)
@@ -271,5 +271,5 @@
 
         /* Set Runtime Information tab as default: */
-        m_pTabWidget->setCurrentIndex(1);
+        m_pTabWidget->setCurrentIndex(0);
 
         /* Assign tab-widget page change handler: */
