Index: /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 80356)
+++ /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 80357)
@@ -736,4 +736,5 @@
 	src/runtime/information/UIInformationRuntime.h \
 	src/runtime/information/UIInformationView.h \
+	src/runtime/information/UIInformationWidget.h \
 	src/runtime/information/UIPerformanceMonitor.h \
 	src/runtime/information/UIVMInformationDialog.h \
@@ -1203,4 +1204,5 @@
 	src/runtime/information/UIInformationRuntime.cpp \
 	src/runtime/information/UIInformationView.cpp \
+	src/runtime/information/UIInformationWidget.cpp \
 	src/runtime/information/UIPerformanceMonitor.cpp \
 	src/runtime/information/UIVMInformationDialog.cpp \
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.cpp	(revision 80356)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.cpp	(revision 80357)
@@ -23,5 +23,4 @@
 #include <QTableWidget>
 #include <QTextDocument>
-#include <QVBoxLayout>
 
 /* GUI includes: */
@@ -34,20 +33,9 @@
 
 UIInformationConfiguration::UIInformationConfiguration(QWidget *pParent, const CMachine &machine, const CConsole &console)
-    : QIWithRetranslateUI<QWidget>(pParent)
-    , m_machine(machine)
-    , m_console(console)
-    , m_pMainLayout(0)
-    , m_pTableWidget(0)
-    , m_iColumCount(3)
-    , m_iRowLeftMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin))
-    , m_iRowTopMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutTopMargin))
-    , m_iRowRightMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutRightMargin))
-    , m_iRowBottomMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutBottomMargin))
+    : UIInformationWidget(pParent, machine, console)
+
 {
-    /* Prepare view: */
-    prepareObjects();
     retranslateUi();
     createTableItems();
-
     connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigMachineDataChange,
             this, &UIInformationConfiguration::sltMachineDataChanged);
@@ -58,8 +46,4 @@
     resetTable();
     createTableItems();
-}
-
-UIInformationConfiguration::~UIInformationConfiguration()
-{
 }
 
@@ -77,23 +61,4 @@
 }
 
-void UIInformationConfiguration::prepareObjects()
-{
-    /* Create layout: */
-    m_pMainLayout = new QVBoxLayout(this);
-    if (!m_pMainLayout)
-        return;
-    m_pMainLayout->setSpacing(0);
-
-    m_pTableWidget = new QTableWidget;
-    if (m_pTableWidget)
-    {
-        /* Configure the table by hiding the headers etc.: */
-        m_pTableWidget->setColumnCount(m_iColumCount);
-        m_pTableWidget->verticalHeader()->hide();
-        m_pTableWidget->horizontalHeader()->hide();
-        m_pTableWidget->setShowGrid(false);
-        m_pMainLayout->addWidget(m_pTableWidget);
-    }
-}
 
 void UIInformationConfiguration::createTableItems()
@@ -165,57 +130,2 @@
     m_pTableWidget->resizeColumnToContents(2);
 }
-
-void UIInformationConfiguration::insertInfoRows(const UITextTable &table, const QFontMetrics &fontMetrics,
-                                                QTextDocument &textDocument, int &iMaxColumn1Length)
-{
-    foreach (const UITextTableLine &line, table)
-    {
-        textDocument.setHtml(line.string2());
-        insertInfoRow(line.string1(), textDocument.toPlainText(), fontMetrics, iMaxColumn1Length);
-    }
-}
-
-void UIInformationConfiguration::insertTitleRow(const QString &strTitle, const QIcon &icon, const QFontMetrics &fontMetrics)
-{
-    int iRow = m_pTableWidget->rowCount();
-    m_pTableWidget->insertRow(iRow);
-    QSize iconSize;
-    icon.actualSize(iconSize);
-    m_pTableWidget->setRowHeight(iRow,
-                                 qMax(fontMetrics.height() + m_iRowTopMargin + m_iRowBottomMargin, iconSize.height()));
-    QTableWidgetItem *pIconItem = new QTableWidgetItem(icon, "");
-    m_pTableWidget->setItem(iRow, 0, pIconItem);
-    QTableWidgetItem *pTitleItem = new QTableWidgetItem(strTitle);
-    QFont font = pTitleItem->font();
-    font.setBold(true);
-    pTitleItem->setFont(font);
-
-    m_pTableWidget->setItem(iRow, 1, pTitleItem);
-    m_tableItems << pIconItem;
-    m_tableItems << pTitleItem;
-}
-
-void UIInformationConfiguration::insertInfoRow(const QString strText1, const QString &strText2,
-                                               const QFontMetrics &fontMetrics, int &iMaxColumn1Length)
-{
-    int iRow = m_pTableWidget->rowCount();
-    m_pTableWidget->insertRow(iRow);
-    m_pTableWidget->setRowHeight(iRow, fontMetrics.height() + m_iRowTopMargin + m_iRowBottomMargin);
-    iMaxColumn1Length = qMax(iMaxColumn1Length, fontMetrics.width(strText1));
-    QTableWidgetItem *pCol1 = new QTableWidgetItem(strText1);
-    QTableWidgetItem *pCol2 = new QTableWidgetItem(strText2);
-    m_tableItems << pCol1;
-    m_tableItems << pCol2;
-    m_pTableWidget->setItem(iRow, 1, pCol1);
-    m_pTableWidget->setItem(iRow, 2, pCol2);
-}
-
-void UIInformationConfiguration::resetTable()
-{
-    if (m_pTableWidget)
-    {
-        m_pTableWidget->clear();
-        m_pTableWidget->setRowCount(0);
-        m_pTableWidget->setColumnCount(m_iColumCount);
-    }
-}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.h	(revision 80356)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationConfiguration.h	(revision 80357)
@@ -28,15 +28,12 @@
 #include "COMEnums.h"
 #include "CGuest.h"
-
 #include "CMachine.h"
 #include "CConsole.h"
 
 /* GUI includes: */
-#include "QIWithRetranslateUI.h"
 #include "UITextTable.h"
+#include "UIInformationWidget.h"
 
 /* Forward declarations: */
-class QVBoxLayout;
-class QTableWidget;
 class QTableWidgetItem;
 class QTextDocument;
@@ -45,5 +42,5 @@
 /** QWidget extension
   * providing GUI with configuration-information tab in session-information window. */
-class UIInformationConfiguration : public QIWithRetranslateUI<QWidget>
+class UIInformationConfiguration : public UIInformationWidget
 {
     Q_OBJECT;
@@ -55,5 +52,4 @@
       * @param console is machine console reference. */
     UIInformationConfiguration(QWidget *pParent, const CMachine &machine, const CConsole &console);
-    ~UIInformationConfiguration();
 
 protected:
@@ -67,23 +63,6 @@
 private:
 
-    void prepareObjects();
     void createTableItems();
 
-    void insertTitleRow(const QString &strTitle, const QIcon &icon, const QFontMetrics &fontMetrics);
-    void insertInfoRows(const UITextTable &table, const QFontMetrics &fontMetrics,
-                        QTextDocument &textDocument, int &iMaxColumn1Length);
-    void insertInfoRow(const QString strText1, const QString &strText2,
-                       const QFontMetrics &fontMetrics, int &iMaxColumn1Length);
-
-    void resetTable();
-    /** Holds the machine instance. */
-    CMachine m_machine;
-    /** Holds the console instance. */
-    CConsole m_console;
-    /** Holds the instance of layout we create. */
-    QVBoxLayout *m_pMainLayout;
-    QTableWidget *m_pTableWidget;
-    //QMap<TableRow, UIInformationTableRow*> m_rows;
-    QList<QTableWidgetItem*> m_tableItems;
    /** @name Cached translated string.
       * @{ */
@@ -98,9 +77,4 @@
         QString m_strSharedFoldersTitle;
     /** @} */
-    const int m_iColumCount;
-    const int m_iRowLeftMargin;
-    const int m_iRowTopMargin;
-    const int m_iRowRightMargin;
-    const int m_iRowBottomMargin;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationRuntime.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationRuntime.h	(revision 80356)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationRuntime.h	(revision 80357)
@@ -74,3 +74,2 @@
 
 #endif /* !FEQT_INCLUDED_SRC_runtime_information_UIInformationRuntime_h */
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationWidget.cpp	(revision 80357)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationWidget.cpp	(revision 80357)
@@ -0,0 +1,114 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIInformationWidget class implementation.
+ */
+
+/*
+ * Copyright (C) 2016-2019 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+/* Qt includes: */
+#include <QHeaderView>
+#include <QTableWidget>
+#include <QTextDocument>
+#include <QVBoxLayout>
+
+/* GUI includes: */
+#include "UIInformationWidget.h"
+#include "UIInformationItem.h"
+
+
+UIInformationWidget::UIInformationWidget(QWidget *pParent, const CMachine &machine, const CConsole &console)
+    : QIWithRetranslateUI<QWidget>(pParent)
+    , m_machine(machine)
+    , m_console(console)
+    , m_pMainLayout(0)
+    , m_pTableWidget(0)
+    , m_iColumCount(3)
+    , m_iRowLeftMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin))
+    , m_iRowTopMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutTopMargin))
+    , m_iRowRightMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutRightMargin))
+    , m_iRowBottomMargin(0.2 * qApp->style()->pixelMetric(QStyle::PM_LayoutBottomMargin))
+{
+    prepareObjects();
+}
+
+void UIInformationWidget::prepareObjects()
+{
+    /* Create layout: */
+    m_pMainLayout = new QVBoxLayout(this);
+    if (!m_pMainLayout)
+        return;
+    m_pMainLayout->setSpacing(0);
+
+    m_pTableWidget = new QTableWidget;
+    if (m_pTableWidget)
+    {
+        /* Configure the table by hiding the headers etc.: */
+        m_pTableWidget->setColumnCount(m_iColumCount);
+        m_pTableWidget->verticalHeader()->hide();
+        m_pTableWidget->horizontalHeader()->hide();
+        m_pTableWidget->setShowGrid(false);
+        m_pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
+        m_pTableWidget->setFocusPolicy(Qt::NoFocus);
+        m_pTableWidget->setSelectionMode(QAbstractItemView::NoSelection);
+        m_pMainLayout->addWidget(m_pTableWidget);
+    }
+}
+
+
+
+void UIInformationWidget::insertInfoRows(const UITextTable &table, const QFontMetrics &fontMetrics,
+                                                QTextDocument &textDocument, int &iMaxColumn1Length)
+{
+    foreach (const UITextTableLine &line, table)
+    {
+        textDocument.setHtml(line.string2());
+        insertInfoRow(line.string1(), textDocument.toPlainText(), fontMetrics, iMaxColumn1Length);
+    }
+}
+
+void UIInformationWidget::insertTitleRow(const QString &strTitle, const QIcon &icon, const QFontMetrics &fontMetrics)
+{
+    int iRow = m_pTableWidget->rowCount();
+    m_pTableWidget->insertRow(iRow);
+    QSize iconSize;
+    icon.actualSize(iconSize);
+    m_pTableWidget->setRowHeight(iRow,
+                                 qMax(fontMetrics.height() + m_iRowTopMargin + m_iRowBottomMargin, iconSize.height()));
+    m_pTableWidget->setItem(iRow, 0, new QTableWidgetItem(icon, ""));
+    QTableWidgetItem *pTitleItem = new QTableWidgetItem(strTitle);
+    QFont font = pTitleItem->font();
+    font.setBold(true);
+    pTitleItem->setFont(font);
+    m_pTableWidget->setItem(iRow, 1, pTitleItem);
+}
+
+void UIInformationWidget::insertInfoRow(const QString strText1, const QString &strText2,
+                                               const QFontMetrics &fontMetrics, int &iMaxColumn1Length)
+{
+    int iRow = m_pTableWidget->rowCount();
+    m_pTableWidget->insertRow(iRow);
+    m_pTableWidget->setRowHeight(iRow, fontMetrics.height() + m_iRowTopMargin + m_iRowBottomMargin);
+    iMaxColumn1Length = qMax(iMaxColumn1Length, fontMetrics.width(strText1));
+    m_pTableWidget->setItem(iRow, 1, new QTableWidgetItem(strText1));
+    m_pTableWidget->setItem(iRow, 2, new QTableWidgetItem(strText2));
+}
+
+void UIInformationWidget::resetTable()
+{
+    if (m_pTableWidget)
+    {
+        m_pTableWidget->clear();
+        m_pTableWidget->setRowCount(0);
+        m_pTableWidget->setColumnCount(m_iColumCount);
+    }
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationWidget.h	(revision 80357)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationWidget.h	(revision 80357)
@@ -0,0 +1,76 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIInformationWidget class declaration.
+ */
+
+/*
+ * Copyright (C) 2016-2019 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifndef FEQT_INCLUDED_SRC_runtime_information_UIInformationWidget_h
+#define FEQT_INCLUDED_SRC_runtime_information_UIInformationWidget_h
+#ifndef RT_WITHOUT_PRAGMA_ONCE
+# pragma once
+#endif
+
+/* Qt includes: */
+#include <QWidget>
+
+/* COM includes: */
+#include "COMEnums.h"
+#include "CGuest.h"
+#include "CMachine.h"
+#include "CConsole.h"
+
+/* GUI includes: */
+#include "QIWithRetranslateUI.h"
+#include "UITextTable.h"
+
+/* Forward declarations: */
+class QTableWidget;
+class QVBoxLayout;
+
+/** An abstract base class for showing tabular data in Session Information dialog. */
+class UIInformationWidget  : public QIWithRetranslateUI<QWidget>
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs information-view passing @a pParent to the base-class. */
+    UIInformationWidget(QWidget *pParent, const CMachine &machine, const CConsole &console);
+
+protected:
+
+    virtual void retranslateUi() /* override */ = 0;
+    void insertTitleRow(const QString &strTitle, const QIcon &icon, const QFontMetrics &fontMetrics);
+    void insertInfoRows(const UITextTable &table, const QFontMetrics &fontMetrics,
+                        QTextDocument &textDocument, int &iMaxColumn1Length);
+    void insertInfoRow(const QString strText1, const QString &strText2,
+                       const QFontMetrics &fontMetrics, int &iMaxColumn1Length);
+    void resetTable();
+
+    CMachine m_machine;
+    CConsole m_console;
+    QVBoxLayout *m_pMainLayout;
+    QTableWidget *m_pTableWidget;
+    const int m_iColumCount;
+
+private:
+    void prepareObjects();
+
+    const int m_iRowLeftMargin;
+    const int m_iRowTopMargin;
+    const int m_iRowRightMargin;
+    const int m_iRowBottomMargin;
+};
+
+#endif /* !FEQT_INCLUDED_SRC_runtime_information_UIInformationWidget_h */
