Index: /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 73117)
+++ /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 73118)
@@ -700,9 +700,9 @@
 	src/widgets/UIApplianceImportEditorWidget.h \
 	src/widgets/UIEmptyFilePathSelector.h \
+	src/widgets/UIGuestOSTypeSelectionButton.h \
 	src/widgets/UILineTextEdit.h \
 	src/widgets/UISlidingWidget.h \
 	src/widgets/UITabBar.h \
 	src/widgets/UIMenuToolBar.h \
-	src/widgets/VBoxOSTypeSelectorButton.h \
 	src/widgets/graphics/UIGraphicsButton.h \
 	src/widgets/graphics/UIGraphicsRotatorButton.h \
@@ -1345,9 +1345,9 @@
 	src/widgets/UIApplianceImportEditorWidget.cpp \
 	src/widgets/UIEmptyFilePathSelector.cpp \
+	src/widgets/UIGuestOSTypeSelectionButton.cpp \
 	src/widgets/UILineTextEdit.cpp \
 	src/widgets/UISlidingWidget.cpp \
 	src/widgets/UITabBar.cpp \
 	src/widgets/UIMenuToolBar.cpp \
-	src/widgets/VBoxOSTypeSelectorButton.cpp \
 	src/widgets/graphics/UIGraphicsButton.cpp \
 	src/widgets/graphics/UIGraphicsRotatorButton.cpp \
Index: /trunk/src/VBox/Frontends/VirtualBox/src/precomp.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/precomp.h	(revision 73117)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/precomp.h	(revision 73118)
@@ -643,5 +643,5 @@
 #include "VBoxLicenseViewer.h"
 #include "UIMediaComboBox.h"
-#include "VBoxOSTypeSelectorButton.h"
+#include "UIGuestOSTypeSelectionButton.h"
 #include "UISettingsSelector.h"
 #include "UISnapshotDetailsWidget.h"
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp	(revision 73117)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp	(revision 73118)
@@ -34,5 +34,5 @@
 # include "QITreeView.h"
 # include "VBoxGlobal.h"
-# include "VBoxOSTypeSelectorButton.h"
+# include "UIGuestOSTypeSelectionButton.h"
 # include "UIApplianceEditorWidget.h"
 # include "UIConverter.h"
@@ -591,5 +591,5 @@
             case KVirtualSystemDescriptionType_OS:
             {
-                VBoxOSTypeSelectorButton *pButton = new VBoxOSTypeSelectorButton(pParent);
+                UIGuestOSTypeSelectionButton *pButton = new UIGuestOSTypeSelectionButton(pParent);
                 /* Fill the background with the highlight color in the case
                  * the button hasn't a rectangle shape. This prevents the
@@ -722,5 +722,5 @@
         case KVirtualSystemDescriptionType_OS:
         {
-            if (VBoxOSTypeSelectorButton *pButton = qobject_cast<VBoxOSTypeSelectorButton*>(pEditor))
+            if (UIGuestOSTypeSelectionButton *pButton = qobject_cast<UIGuestOSTypeSelectionButton*>(pEditor))
             {
                 pButton->setOSTypeId(m_strConfigValue);
@@ -818,5 +818,5 @@
         case KVirtualSystemDescriptionType_OS:
         {
-            if (VBoxOSTypeSelectorButton *pButton = qobject_cast<VBoxOSTypeSelectorButton*>(pEditor))
+            if (UIGuestOSTypeSelectionButton *pButton = qobject_cast<UIGuestOSTypeSelectionButton*>(pEditor))
             {
                 m_strConfigValue = pButton->osTypeId();
@@ -1284,5 +1284,5 @@
          * the popup menu is shown. Prevent this here, cause otherwise the new
          * selected OS will not be updated. */
-        VBoxOSTypeSelectorButton *pButton = qobject_cast<VBoxOSTypeSelectorButton*>(pObject);
+        UIGuestOSTypeSelectionButton *pButton = qobject_cast<UIGuestOSTypeSelectionButton*>(pObject);
         if (pButton && pButton->isMenuShown())
             return false;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIGuestOSTypeSelectionButton.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIGuestOSTypeSelectionButton.cpp	(revision 73118)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIGuestOSTypeSelectionButton.cpp	(revision 73118)
@@ -0,0 +1,103 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIGuestOSTypeSelectionButton class implementation.
+ */
+
+/*
+ * Copyright (C) 2009-2018 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.
+ */
+
+#ifdef VBOX_WITH_PRECOMPILED_HEADERS
+# include <precomp.h>
+#else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+/* Qt includes */
+# include <QMenu>
+# include <QSignalMapper>
+# include <QStyle>
+
+/* GUI includes */
+# include "VBoxGlobal.h"
+# include "UIGuestOSTypeSelectionButton.h"
+
+#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+
+UIGuestOSTypeSelectionButton::UIGuestOSTypeSelectionButton(QWidget *pParent)
+    : QIWithRetranslateUI<QPushButton>(pParent)
+{
+    /* Determine icon metric: */
+    const int iIconMetric = QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize);
+    setIconSize(QSize(iIconMetric, iIconMetric));
+
+    /* We have to make sure that the button has strong focus, otherwise
+     * the editing is ended when the menu is shown: */
+    setFocusPolicy(Qt::StrongFocus);
+
+    /* Create a signal mapper so that we not have to react to
+     * every single menu activation ourself: */
+    m_pSignalMapper = new QSignalMapper(this);
+    if (m_pSignalMapper)
+        connect(m_pSignalMapper, static_cast<void(QSignalMapper::*)(const QString &)>(&QSignalMapper::mapped),
+                this, &UIGuestOSTypeSelectionButton::setOSTypeId);
+
+    /* Create main menu: */
+    m_pMainMenu = new QMenu(pParent);
+    if (m_pMainMenu)
+        setMenu(m_pMainMenu);
+
+    /* Apply language settings: */
+    retranslateUi();
+}
+
+bool UIGuestOSTypeSelectionButton::isMenuShown() const
+{
+    return m_pMainMenu->isVisible();
+}
+
+void UIGuestOSTypeSelectionButton::setOSTypeId(const QString &strOSTypeId)
+{
+    m_strOSTypeId = strOSTypeId;
+    CGuestOSType enmType = vboxGlobal().vmGuestOSType(strOSTypeId);
+
+#ifndef VBOX_WS_MAC
+    /* Looks ugly on the Mac: */
+    setIcon(vboxGlobal().vmGuestOSTypePixmapDefault(enmType.GetId()));
+#endif
+
+    setText(enmType.GetDescription());
+}
+
+void UIGuestOSTypeSelectionButton::retranslateUi()
+{
+    populateMenu();
+}
+
+void UIGuestOSTypeSelectionButton::populateMenu()
+{
+    m_pMainMenu->clear();
+
+    /* Create a list of all possible OS types */
+    QList<CGuestOSType> families = vboxGlobal().vmGuestOSFamilyList();
+    foreach(const CGuestOSType &comFamily, families)
+    {
+        QMenu *pSubMenu = m_pMainMenu->addMenu(comFamily.GetFamilyDescription());
+        QList<CGuestOSType> types = vboxGlobal().vmGuestOSTypeList(comFamily.GetFamilyId());
+        foreach (const CGuestOSType &comType, types)
+        {
+            QAction *pAction = pSubMenu->addAction(vboxGlobal().vmGuestOSTypePixmapDefault(comType.GetId()),
+                                                   comType.GetDescription());
+            connect(pAction, &QAction::triggered,
+                    m_pSignalMapper, static_cast<void(QSignalMapper::*)(void)>(&QSignalMapper::map));
+            m_pSignalMapper->setMapping(pAction, comType.GetId());
+        }
+    }
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIGuestOSTypeSelectionButton.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIGuestOSTypeSelectionButton.h	(revision 73118)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIGuestOSTypeSelectionButton.h	(revision 73118)
@@ -0,0 +1,71 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIGuestOSTypeSelectionButton class declaration.
+ */
+
+/*
+ * Copyright (C) 2009-2018 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 ___UIGuestOSTypeSelectionButton_h___
+#define ___UIGuestOSTypeSelectionButton_h___
+
+/* Qt includes: */
+#include <QPushButton>
+
+/* GUI includes: */
+#include "QIWithRetranslateUI.h"
+
+/* Forward declarations: */
+class QMenu;
+class QSignalMapper;
+
+/** QPushButton sub-class for choosing guest OS family/type inside appliance editor widget. */
+class UIGuestOSTypeSelectionButton : public QIWithRetranslateUI<QPushButton>
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs a button passing @a pParent to the base-class. */
+    UIGuestOSTypeSelectionButton(QWidget *pParent);
+
+    /** Returns whether the menu is shown. */
+    bool isMenuShown() const;
+
+    /** Returns current guest OS type ID. */
+    QString osTypeId() const { return m_strOSTypeId; }
+
+public slots:
+
+    /** Defines current guest @a strOSTypeId. */
+    void setOSTypeId(const QString &strOSTypeId);
+
+protected:
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */;
+
+private:
+
+    /** Populates menu. */
+    void populateMenu();
+
+    /** Holds the current guest OS type ID. */
+    QString  m_strOSTypeId;
+
+    /** Holds the menu instance. */
+    QMenu         *m_pMainMenu;
+    /** Holds the signal mapper instance. */
+    QSignalMapper *m_pSignalMapper;
+};
+
+#endif /* !___UIGuestOSTypeSelectionButton_h___ */
Index: unk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.cpp	(revision 73117)
+++ 	(revision )
@@ -1,94 +1,0 @@
-/* $Id$ */
-/** @file
- * VBox Qt GUI - VBoxOSTypeSelectorButton class implementation.
- */
-
-/*
- * Copyright (C) 2009-2017 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.
- */
-
-#ifdef VBOX_WITH_PRECOMPILED_HEADERS
-# include <precomp.h>
-#else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
-
-/* Qt includes */
-# include <QMenu>
-# include <QSignalMapper>
-# include <QStyle>
-
-/* GUI includes */
-# include "VBoxOSTypeSelectorButton.h"
-# include "VBoxGlobal.h"
-
-#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
-
-
-VBoxOSTypeSelectorButton::VBoxOSTypeSelectorButton (QWidget *aParent)
-  : QIWithRetranslateUI <QPushButton> (aParent)
-{
-    /* Determine icon metric: */
-    const QStyle *pStyle = QApplication::style();
-    const int iIconMetric = pStyle->pixelMetric(QStyle::PM_SmallIconSize);
-    /* We have to make sure that the button has strong focus, otherwise the
-     * editing is ended when the menu is shown */
-    setFocusPolicy (Qt::StrongFocus);
-    setIconSize (QSize (iIconMetric, iIconMetric));
-    /* Create a signal mapper so that we not have to react to every single
-     * menu activation ourself. */
-    mSignalMapper = new QSignalMapper (this);
-    connect (mSignalMapper, SIGNAL (mapped (const QString &)),
-             this, SLOT (setOSTypeId (const QString &)));
-    mMainMenu = new QMenu (aParent);
-    setMenu (mMainMenu);
-
-    retranslateUi();
-}
-
-void VBoxOSTypeSelectorButton::setOSTypeId (const QString& aOSTypeId)
-{
-    mOSTypeId = aOSTypeId;
-    CGuestOSType type = vboxGlobal().vmGuestOSType (aOSTypeId);
-    /* Looks ugly on the Mac */
-#ifndef VBOX_WS_MAC
-    setIcon (vboxGlobal().vmGuestOSTypePixmapDefault (type.GetId()));
-#endif /* VBOX_WS_MAC */
-    setText (type.GetDescription());
-}
-
-bool VBoxOSTypeSelectorButton::isMenuShown() const
-{
-    return mMainMenu->isVisible();
-}
-
-void VBoxOSTypeSelectorButton::retranslateUi()
-{
-    populateMenu();
-}
-
-void VBoxOSTypeSelectorButton::populateMenu()
-{
-    mMainMenu->clear();
-    /* Create a list of all possible OS types */
-    QList <CGuestOSType> families = vboxGlobal().vmGuestOSFamilyList();
-    foreach (const CGuestOSType& family, families)
-    {
-        QMenu *subMenu = mMainMenu->addMenu (family.GetFamilyDescription());
-        QList <CGuestOSType> types = vboxGlobal().vmGuestOSTypeList (family.GetFamilyId());
-        foreach (const CGuestOSType& type, types)
-        {
-            QAction *a = subMenu->addAction (vboxGlobal().vmGuestOSTypePixmapDefault (type.GetId()), type.GetDescription());
-            connect(a, SIGNAL (triggered()),
-                    mSignalMapper, SLOT(map()));
-            mSignalMapper->setMapping (a, type.GetId());
-        }
-    }
-}
-
Index: unk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorButton.h	(revision 73117)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/* $Id$ */
-/** @file
- * VBox Qt GUI - VBoxOSTypeSelectorButton class declaration.
- */
-
-/*
- * Copyright (C) 2009-2017 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 __VBoxOSTypeSelectorButton_h__
-#define __VBoxOSTypeSelectorButton_h__
-
-/* VBox includes */
-#include "QIWithRetranslateUI.h"
-
-/* Qt includes */
-#include <QPushButton>
-
-class QSignalMapper;
-
-class VBoxOSTypeSelectorButton: public QIWithRetranslateUI<QPushButton>
-{
-    Q_OBJECT;
-
-public:
-    VBoxOSTypeSelectorButton (QWidget *aParent);
-    QString osTypeId() const { return mOSTypeId; }
-
-    bool isMenuShown() const;
-
-    void retranslateUi();
-
-public slots:
-    void setOSTypeId (const QString& aOSTypeId);
-
-private:
-    void populateMenu();
-
-    /* Private member vars */
-    QString mOSTypeId;
-    QMenu *mMainMenu;
-    QSignalMapper *mSignalMapper;
-};
-
-#endif /* __VBoxOSTypeSelectorButton_h__ */
-
