Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 108506)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 108532)
@@ -585,5 +585,5 @@
 	src/manager/UIToolPane.h \
 	src/manager/UIVirtualBoxManager.h \
-	src/manager/UIVirtualBoxManagerAdvancedWidget.h \
+	src/manager/UIVirtualBoxWidget.h \
 	src/manager/UIVirtualMachineItem.h \
 	src/manager/UIVirtualMachineItemCloud.h \
@@ -1107,5 +1107,5 @@
 	src/manager/UIToolPane.cpp \
 	src/manager/UIVirtualBoxManager.cpp \
-	src/manager/UIVirtualBoxManagerAdvancedWidget.cpp \
+	src/manager/UIVirtualBoxWidget.cpp \
 	src/manager/UIVirtualMachineItem.cpp \
 	src/manager/UIVirtualMachineItemCloud.cpp \
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp	(revision 108506)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp	(revision 108532)
@@ -39,5 +39,4 @@
 #include "UITools.h"
 #include "UIVirtualBoxEventHandler.h"
-#include "UIVirtualBoxManagerAdvancedWidget.h"
 #include "UIVirtualMachineItem.h"
 
@@ -46,5 +45,5 @@
 
 
-UIGlobalToolsWidget::UIGlobalToolsWidget(UIVirtualBoxManagerAdvancedWidget *pParent, UIActionPool *pActionPool)
+UIGlobalToolsWidget::UIGlobalToolsWidget(QWidget *pParent, UIActionPool *pActionPool)
     : QWidget(pParent)
     , m_pActionPool(pActionPool)
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.h	(revision 108506)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.h	(revision 108532)
@@ -46,5 +46,4 @@
 class UIToolPane;
 class UITools;
-class UIVirtualBoxManagerAdvancedWidget;
 class UIVirtualMachineItem;
 
@@ -69,5 +68,5 @@
     /** Constructs Global Tools Widget passing @a pParent to the base-class.
       * @param  pActionPool  Brings the action-pool reference.  */
-    UIGlobalToolsWidget(UIVirtualBoxManagerAdvancedWidget *pParent, UIActionPool *pActionPool);
+    UIGlobalToolsWidget(QWidget *pParent, UIActionPool *pActionPool);
 
     /** @name Common stuff.
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 108506)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 108532)
@@ -80,5 +80,5 @@
 #include "UITranslationEventListener.h"
 #include "UIVirtualBoxManager.h"
-#include "UIVirtualBoxManagerAdvancedWidget.h"
+#include "UIVirtualBoxWidget.h"
 #include "UIVirtualMachineItemCloud.h"
 #include "UIVirtualMachineItemLocal.h"
@@ -2459,5 +2459,5 @@
 {
     /* Prepare central-widget: */
-    m_pWidget = new UIVirtualBoxManagerAdvancedWidget(this);
+    m_pWidget = new UIVirtualBoxWidget(this);
     if (m_pWidget)
         setCentralWidget(m_pWidget);
@@ -2479,31 +2479,31 @@
 
     /* Widget connections: */
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigChooserPaneIndexChange,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigChooserPaneIndexChange,
             this, &UIVirtualBoxManager::sltHandleChooserPaneIndexChange);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigStartOrShowRequest,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigStartOrShowRequest,
             this, &UIVirtualBoxManager::sltPerformStartOrShowMachine);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigToolTypeChangeGlobal,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigToolTypeChangeGlobal,
             this, &UIVirtualBoxManager::sltHandleGlobalToolTypeChange);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigToolTypeChangeMachine,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigToolTypeChangeMachine,
             this, &UIVirtualBoxManager::sltHandleMachineToolTypeChange);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigCreateMedium,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigCreateMedium,
             this, &UIVirtualBoxManager::sltCreateMedium);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigCopyMedium,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigCopyMedium,
             this, &UIVirtualBoxManager::sltCopyMedium);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigMachineSettingsLinkClicked,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigMachineSettingsLinkClicked,
             this, &UIVirtualBoxManager::sltOpenSettingsDialog);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigDetachToolPane,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigDetachToolPane,
             this, &UIVirtualBoxManager::sltDetachToolPane);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigGroupSavingStateChanged,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigGroupSavingStateChanged,
             this, &UIVirtualBoxManager::sltHandleUpdateActionAppearanceRequest);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigCloudUpdateStateChanged,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigCloudUpdateStateChanged,
             this, &UIVirtualBoxManager::sltHandleUpdateActionAppearanceRequest);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigCloudMachineStateChange,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigCloudMachineStateChange,
             this, &UIVirtualBoxManager::sltHandleUpdateActionAppearanceRequest);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigCurrentSnapshotItemChange,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigCurrentSnapshotItemChange,
             this, &UIVirtualBoxManager::sltHandleUpdateActionAppearanceRequest);
 
     connect(menuBar(), &QMenuBar::customContextMenuRequested,
-            m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sltHandleToolBarContextMenuRequest);
+            m_pWidget, &UIVirtualBoxWidget::sltHandleToolBarContextMenuRequest);
 
     /* Global VBox event handlers: */
@@ -2574,5 +2574,5 @@
     connect(actionPool()->action(UIActionIndexMN_M_Group_T_Search), &UIAction::toggled,
             this, &UIVirtualBoxManager::sltPerformMachineSearchWidgetVisibilityToggling);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigMachineSearchWidgetVisibilityChanged,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigMachineSearchWidgetVisibilityChanged,
             actionPool()->action(UIActionIndexMN_M_Group_T_Search), &QAction::setChecked);
 
@@ -2616,5 +2616,5 @@
     connect(actionPool()->action(UIActionIndexMN_M_Machine_T_Search), &UIAction::toggled,
             this, &UIVirtualBoxManager::sltPerformMachineSearchWidgetVisibilityToggling);
-    connect(m_pWidget, &UIVirtualBoxManagerAdvancedWidget::sigMachineSearchWidgetVisibilityChanged,
+    connect(m_pWidget, &UIVirtualBoxWidget::sigMachineSearchWidgetVisibilityChanged,
             actionPool()->action(UIActionIndexMN_M_Machine_T_Search), &QAction::setChecked);
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 108506)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 108532)
@@ -52,5 +52,5 @@
 class UINativeWizard;
 struct UIUnattendedInstallData;
-class UIVirtualBoxManagerAdvancedWidget;
+class UIVirtualBoxWidget;
 class UIVirtualMachineItem;
 class CCloudMachine;
@@ -513,5 +513,5 @@
 
     /** Holds the central-widget instance. */
-    UIVirtualBoxManagerAdvancedWidget *m_pWidget;
+    UIVirtualBoxWidget *m_pWidget;
 
     /** Holds the geometry save timer ID. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerAdvancedWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerAdvancedWidget.cpp	(revision 108506)
+++ 	(revision )
@@ -1,735 +1,0 @@
-/* $Id$ */
-/** @file
- * VBox Qt GUI - UIVirtualBoxManagerAdvancedWidget class implementation.
- */
-
-/*
- * Copyright (C) 2006-2024 Oracle and/or its affiliates.
- *
- * This file is part of VirtualBox base platform packages, as
- * available from https://www.virtualbox.org.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, in version 3 of the
- * License.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <https://www.gnu.org/licenses>.
- *
- * SPDX-License-Identifier: GPL-3.0-only
- */
-
-/* Qt includes: */
-#include <QApplication>
-#include <QStyle>
-#include <QToolButton>
-#include <QVBoxLayout>
-
-/* GUI includes: */
-#include "QIToolBar.h"
-#include "UIActionPoolManager.h"
-#include "UIChooser.h"
-#include "UICommon.h"
-#include "UIExtraDataManager.h"
-#include "UIGlobalToolsWidget.h"
-#include "UIMachineToolsWidget.h"
-#include "UINotificationCenter.h"
-#include "UIToolPane.h"
-#include "UIVirtualBoxManager.h"
-#include "UIVirtualBoxManagerAdvancedWidget.h"
-#if defined(VBOX_WS_MAC) && (defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32))
-# include "UIGlobalSession.h"
-# include "UIIconPool.h"
-# include "UIVersion.h"
-#endif /* VBOX_WS_MAC && (RT_ARCH_ARM64 || RT_ARCH_ARM32) */
-
-/* COM includes: */
-#if defined(VBOX_WS_MAC) && (defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32))
-# include "CSystemProperties.h"
-#endif /* VBOX_WS_MAC && (RT_ARCH_ARM64 || RT_ARCH_ARM32) */
-
-
-UIVirtualBoxManagerAdvancedWidget::UIVirtualBoxManagerAdvancedWidget(UIVirtualBoxManager *pParent)
-    : m_pActionPool(pParent->actionPool())
-    , m_pToolBar(0)
-    , m_pGlobalToolsWidget(0)
-{
-    prepare();
-}
-
-UIVirtualBoxManagerAdvancedWidget::~UIVirtualBoxManagerAdvancedWidget()
-{
-    cleanup();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::updateToolBarMenuButtons(bool fSeparateMenuSection)
-{
-    QAction *pAction = actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow);
-    AssertPtrReturnVoid(pAction);
-    QToolButton *pButton = qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(pAction));
-    if (pButton)
-        pButton->setPopupMode(fSeparateMenuSection ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);
-}
-
-UIVirtualMachineItem *UIVirtualBoxManagerAdvancedWidget::currentItem() const
-{
-    AssertPtrReturn(chooser(), 0);
-    return chooser()->currentItem();
-}
-
-QList<UIVirtualMachineItem*> UIVirtualBoxManagerAdvancedWidget::currentItems() const
-{
-    AssertPtrReturn(chooser(), QList<UIVirtualMachineItem*>());
-    return chooser()->currentItems();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isGroupItemSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isGroupItemSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isMachineItemSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isMachineItemSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isLocalMachineItemSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isLocalMachineItemSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isCloudMachineItemSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isCloudMachineItemSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isSingleGroupSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isSingleGroupSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isSingleLocalGroupSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isSingleLocalGroupSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isSingleCloudProviderGroupSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isSingleCloudProviderGroupSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isSingleCloudProfileGroupSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isSingleCloudProfileGroupSelected();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isAllItemsOfOneGroupSelected() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isAllItemsOfOneGroupSelected();
-}
-
-QString UIVirtualBoxManagerAdvancedWidget::fullGroupName() const
-{
-    AssertPtrReturn(chooser(), QString());
-    return chooser()->fullGroupName();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isGroupSavingInProgress() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isGroupSavingInProgress();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isCloudProfileUpdateInProgress() const
-{
-    AssertPtrReturn(chooser(), false);
-    return chooser()->isCloudProfileUpdateInProgress();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::openGroupNameEditor()
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->openGroupNameEditor();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::disbandGroup()
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->disbandGroup();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::removeMachine()
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->removeMachine();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::moveMachineToGroup(const QString &strName /* = QString() */)
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->moveMachineToGroup(strName);
-}
-
-QStringList UIVirtualBoxManagerAdvancedWidget::possibleGroupsForMachineToMove(const QUuid &uId)
-{
-    AssertPtrReturn(chooser(), QStringList());
-    return chooser()->possibleGroupsForMachineToMove(uId);
-}
-
-QStringList UIVirtualBoxManagerAdvancedWidget::possibleGroupsForGroupToMove(const QString &strFullName)
-{
-    AssertPtrReturn(chooser(), QStringList());
-    return chooser()->possibleGroupsForGroupToMove(strFullName);
-}
-
-void UIVirtualBoxManagerAdvancedWidget::refreshMachine()
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->refreshMachine();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::sortGroup()
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->sortGroup();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::setMachineSearchWidgetVisibility(bool fVisible)
-{
-    AssertPtrReturnVoid(chooser());
-    chooser()->setMachineSearchWidgetVisibility(fVisible);
-}
-
-void UIVirtualBoxManagerAdvancedWidget::setToolsTypeGlobal(UIToolType enmType, bool)
-{
-    AssertPtrReturnVoid(globalToolsWidget());
-    globalToolsWidget()->setMenuToolType(enmType);
-}
-
-UIToolType UIVirtualBoxManagerAdvancedWidget::toolsTypeGlobal() const
-{
-    AssertPtrReturn(globalToolsWidget(), UIToolType_Invalid);
-    return globalToolsWidget()->menuToolType();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::setToolsTypeMachine(UIToolType enmType)
-{
-    AssertPtrReturnVoid(machineToolsWidget());
-    machineToolsWidget()->setMenuToolType(enmType);
-}
-
-UIToolType UIVirtualBoxManagerAdvancedWidget::toolsTypeMachine() const
-{
-    AssertPtrReturn(machineToolsWidget(), UIToolType_Invalid);
-    return machineToolsWidget()->menuToolType();
-}
-
-UIToolType UIVirtualBoxManagerAdvancedWidget::currentGlobalTool() const
-{
-    AssertPtrReturn(globalToolsWidget(), UIToolType_Invalid);
-    return globalToolsWidget()->toolType();
-}
-
-UIToolType UIVirtualBoxManagerAdvancedWidget::currentMachineTool() const
-{
-    AssertPtrReturn(machineToolsWidget(), UIToolType_Invalid);
-    return machineToolsWidget()->toolType();
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isGlobalToolOpened(UIToolType enmType) const
-{
-    AssertPtrReturn(globalToolsWidget(), false);
-    return globalToolsWidget()->isToolOpened(enmType);
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isMachineToolOpened(UIToolType enmType) const
-{
-    AssertPtrReturn(machineToolsWidget(), false);
-    return machineToolsWidget()->isToolOpened(enmType);
-}
-
-void UIVirtualBoxManagerAdvancedWidget::closeGlobalTool(UIToolType enmType)
-{
-    AssertPtrReturnVoid(globalToolsWidget());
-    globalToolsWidget()->closeTool(enmType);
-}
-
-void UIVirtualBoxManagerAdvancedWidget::closeMachineTool(UIToolType enmType)
-{
-    AssertPtrReturnVoid(machineToolsWidget());
-    machineToolsWidget()->closeTool(enmType);
-}
-
-bool UIVirtualBoxManagerAdvancedWidget::isCurrentStateItemSelected() const
-{
-    AssertPtrReturn(machineToolPane(), false);
-    return machineToolPane()->isCurrentStateItemSelected();
-}
-
-QUuid UIVirtualBoxManagerAdvancedWidget::currentSnapshotId()
-{
-    AssertPtrReturn(machineToolPane(), QUuid());
-    return machineToolPane()->currentSnapshotId();
-}
-
-QString UIVirtualBoxManagerAdvancedWidget::currentHelpKeyword() const
-{
-    AssertPtrReturn(globalToolsWidget(), QString());
-    return globalToolsWidget()->currentHelpKeyword();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::sltHandleToolBarContextMenuRequest(const QPoint &position)
-{
-    /* Populate toolbar actions: */
-    QList<QAction*> actions;
-    /* Add 'Show Toolbar Text' action: */
-    QAction *pShowToolBarText = new QAction(UIVirtualBoxManager::tr("Show Toolbar Text"), 0);
-    if (pShowToolBarText)
-    {
-        pShowToolBarText->setCheckable(true);
-        pShowToolBarText->setChecked(m_pToolBar->toolButtonStyle() == Qt::ToolButtonTextUnderIcon);
-        actions << pShowToolBarText;
-    }
-
-    /* Prepare the menu position: */
-    QPoint globalPosition = position;
-    QWidget *pSender = qobject_cast<QWidget*>(sender());
-    if (pSender)
-        globalPosition = pSender->mapToGlobal(position);
-
-    /* Execute the menu: */
-    QAction *pResult = QMenu::exec(actions, globalPosition);
-
-    /* Handle the menu execution result: */
-    if (pResult == pShowToolBarText)
-    {
-        m_pToolBar->setUseTextLabels(pResult->isChecked());
-        gEDataManager->setSelectorWindowToolBarTextVisible(pResult->isChecked());
-    }
-}
-
-void UIVirtualBoxManagerAdvancedWidget::sltHandleCommitData()
-{
-    cleanupConnections();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar()
-{
-    /* Update toolbar to show/hide corresponding actions: */
-    updateToolbar();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::prepare()
-{
-    /* Prepare everything: */
-    prepareWidgets();
-    prepareConnections();
-
-    /* Load settings: */
-    loadSettings();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::prepareWidgets()
-{
-    /* Create layout: */
-    QVBoxLayout *pLayout = new QVBoxLayout(this);
-    if(pLayout)
-    {
-        /* Configure layout: */
-        pLayout->setContentsMargins(0, 0, 0, 0);
-        pLayout->setSpacing(0);
-
-        /* Create Global Tools Widget: */
-        m_pGlobalToolsWidget = new UIGlobalToolsWidget(this, actionPool());
-        if (globalToolsWidget())
-        {
-            /* Add into layout: */
-            pLayout->addWidget(globalToolsWidget());
-        }
-
-        /* Create Main toolbar: */
-        m_pToolBar = new QIToolBar(this);
-        if (m_pToolBar)
-        {
-            /* Configure toolbar: */
-            const int iIconMetric = QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize);
-            m_pToolBar->setIconSize(QSize(iIconMetric, iIconMetric));
-            m_pToolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
-            m_pToolBar->setContextMenuPolicy(Qt::CustomContextMenu);
-            m_pToolBar->setUseTextLabels(true);
-
-#if defined(VBOX_WS_MAC) && (defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32))
-            /* Check whether we should show Dev Preview tag: */
-            bool fShowDevPreviewTag = false;
-            const CVirtualBox comVBox = gpGlobalSession->virtualBox();
-            if (comVBox.isNotNull())
-            {
-                const CSystemProperties comSystemProps = comVBox.GetSystemProperties();
-                if (comVBox.isOk() && comSystemProps.isNotNull())
-                    fShowDevPreviewTag =
-                        comSystemProps.GetSupportedPlatformArchitectures().contains(KPlatformArchitecture_x86);
-            }
-            /* Enable Dev Preview tag: */
-            if (fShowDevPreviewTag)
-            {
-                m_pToolBar->emulateMacToolbar();
-                m_pToolBar->enableBranding(UIIconPool::iconSet(":/explosion_hazard_32px.png"),
-                                           "Dev Preview", // do we need to make it NLS?
-                                           QColor(246, 179, 0),
-                                           74 /* width of BETA label */);
-            }
-#endif /* VBOX_WS_MAC && (RT_ARCH_ARM64 || RT_ARCH_ARM32) */
-
-            /* Add toolbar into layout: */
-            m_pGlobalToolsWidget->addToolBar(m_pToolBar);
-        }
-    }
-
-    /* Create notification-center: */
-    UINotificationCenter::create(this);
-
-    /* Update toolbar finally: */
-    updateToolbar();
-
-    /* Bring the VM list to the focus: */
-    chooser()->setFocus();
-}
-
-void UIVirtualBoxManagerAdvancedWidget::prepareConnections()
-{
-    /* UICommon connections: */
-    connect(&uiCommon(), &UICommon::sigAskToCommitData,
-            this, &UIVirtualBoxManagerAdvancedWidget::sltHandleCommitData);
-
-    /* Global COM event handlers: */
-    connect(gEDataManager, &UIExtraDataManager::sigSettingsExpertModeChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-
-    /* Tool-bar connections: */
-    connect(m_pToolBar, &QIToolBar::customContextMenuRequested,
-            this, &UIVirtualBoxManagerAdvancedWidget::sltHandleToolBarContextMenuRequest);
-
-    /* Global Tools Widget connections: */
-    connect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-    connect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigToolTypeChangeGlobal);
-    /* Global Tool Pane connections: */
-    connect(globalToolPane(), &UIToolPane::sigCreateMedium,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigCreateMedium);
-    connect(globalToolPane(), &UIToolPane::sigCopyMedium,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigCopyMedium);
-
-    /* Machine Tools Widget connections: */
-    connect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-    connect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigToolTypeChangeMachine);
-    connect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneIndexChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigChooserPaneIndexChange);
-    connect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneSelectionChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-    connect(machineToolsWidget(), &UIMachineToolsWidget::sigCloudMachineStateChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigCloudMachineStateChange);
-    /* Machine Tool Pane connections: */
-    connect(machineToolPane(), &UIToolPane::sigLinkClicked,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigMachineSettingsLinkClicked);
-    connect(machineToolPane(), &UIToolPane::sigCurrentSnapshotItemChange,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigCurrentSnapshotItemChange);
-    connect(machineToolPane(), &UIToolPane::sigDetachToolPane,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigDetachToolPane);
-
-    /* Chooser-pane connections: */
-    connect(chooser(), &UIChooser::sigGroupSavingStateChanged,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigGroupSavingStateChanged);
-    connect(chooser(), &UIChooser::sigCloudUpdateStateChanged,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigCloudUpdateStateChanged);
-    connect(chooser(), &UIChooser::sigStartOrShowRequest,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigStartOrShowRequest);
-    connect(chooser(), &UIChooser::sigMachineSearchWidgetVisibilityChanged,
-            this, &UIVirtualBoxManagerAdvancedWidget::sigMachineSearchWidgetVisibilityChanged);
-}
-
-void UIVirtualBoxManagerAdvancedWidget::loadSettings()
-{
-    /* Make sure stuff exists: */
-    AssertPtrReturnVoid(m_pToolBar);
-    m_pToolBar->setUseTextLabels(gEDataManager->selectorWindowToolBarTextVisible());
-}
-
-void UIVirtualBoxManagerAdvancedWidget::updateToolbar()
-{
-    /* Make sure stuff exists: */
-    AssertPtrReturnVoid(m_pToolBar);
-    AssertPtrReturnVoid(globalToolsWidget());
-    AssertPtrReturnVoid(machineToolsWidget());
-
-    /* Clear toolbar initially: */
-    m_pToolBar->clear();
-
-    switch (globalToolsWidget()->toolType())
-    {
-        case UIToolType_Home:
-        {
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Home_S_New));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Home_S_Add));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Application_S_Preferences));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ImportAppliance));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ExportAppliance));
-            break;
-        }
-        case UIToolType_Machines:
-        {
-            switch (machineToolsWidget()->toolType())
-            {
-                case UIToolType_Details:
-                {
-                    if (isSingleGroupSelected())
-                    {
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New));
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add));
-                        m_pToolBar->addSeparator();
-                        if (isSingleLocalGroupSelected())
-                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard));
-                        else if (   isSingleCloudProviderGroupSelected()
-                                 || isSingleCloudProfileGroupSelected())
-                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_Stop_S_Terminate));
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow));
-                    }
-                    else
-                    {
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
-                        m_pToolBar->addSeparator();
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
-                        if (isLocalMachineItemSelected())
-                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
-                        else if (isCloudMachineItemSelected())
-                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop_S_Terminate));
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
-                    }
-                    break;
-                }
-                case UIToolType_Snapshots:
-                {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Take));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Delete));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Restore));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_T_Properties));
-                    if (gEDataManager->isSettingsInExpertMode())
-                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Clone));
-                    m_pToolBar->addSeparator();
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
-                    break;
-                }
-                case UIToolType_Logs:
-                {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Save));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Find));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Filter));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Bookmark));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Preferences));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Refresh));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Reload));
-                    m_pToolBar->addSeparator();
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
-                    break;
-                }
-                case UIToolType_VMActivity:
-                {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_Export));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_ToVMActivityOverview));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_T_Preferences));
-                    m_pToolBar->addSeparator();
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
-                    break;
-                }
-                case UIToolType_FileManager:
-                {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_FileManager_T_Preferences));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_FileManager_T_Operations));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_FileManager_T_Log));
-                    m_pToolBar->addSeparator();
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
-                    break;
-                }
-                case UIToolType_Error:
-                {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
-                    m_pToolBar->addSeparator();
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));
-                    break;
-                }
-                default:
-                    break;
-            }
-            break;
-        }
-        case UIToolType_Extensions:
-        {
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Install));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Uninstall));
-            break;
-        }
-        case UIToolType_Media:
-        {
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Add));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Create));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Copy));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Move));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Remove));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Release));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Clear));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Search));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Details));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Refresh));
-            break;
-        }
-        case UIToolType_Network:
-        {
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Create));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Remove));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_T_Details));
-            //m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Refresh));
-            break;
-        }
-        case UIToolType_Cloud:
-        {
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Add));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Import));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Remove));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_T_Details));
-            m_pToolBar->addSeparator();
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_TryPage));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Help));
-            break;
-        }
-        case UIToolType_Activities:
-        {
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns));
-            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_S_SwitchToMachineActivity));
-            QToolButton *pButton =
-                qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns)));
-            if (pButton)
-            {
-                pButton->setPopupMode(QToolButton::InstantPopup);
-                pButton->setAutoRaise(true);
-            }
-            break;
-        }
-        default:
-            break;
-    }
-}
-
-void UIVirtualBoxManagerAdvancedWidget::cleanupConnections()
-{
-    /* Global COM event handlers: */
-    disconnect(gEDataManager, &UIExtraDataManager::sigSettingsExpertModeChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-
-    /* Tool-bar connections: */
-    disconnect(m_pToolBar, &QIToolBar::customContextMenuRequested,
-               this, &UIVirtualBoxManagerAdvancedWidget::sltHandleToolBarContextMenuRequest);
-
-    /* Global Tools Widget connections: */
-    disconnect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-    disconnect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigToolTypeChangeGlobal);
-    /* Global Tool Pane connections: */
-    disconnect(globalToolPane(), &UIToolPane::sigCreateMedium,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigCreateMedium);
-    disconnect(globalToolPane(), &UIToolPane::sigCopyMedium,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigCopyMedium);
-
-    /* Machine Tools Widget connections: */
-    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigToolTypeChangeMachine);
-    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneIndexChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigChooserPaneIndexChange);
-    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneSelectionChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sltUpdateToolbar);
-    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigCloudMachineStateChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigCloudMachineStateChange);
-    /* Machine Tool Pane connections: */
-    disconnect(machineToolPane(), &UIToolPane::sigLinkClicked,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigMachineSettingsLinkClicked);
-    disconnect(machineToolPane(), &UIToolPane::sigCurrentSnapshotItemChange,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigCurrentSnapshotItemChange);
-    disconnect(machineToolPane(), &UIToolPane::sigDetachToolPane,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigDetachToolPane);
-
-    /* Chooser-pane connections: */
-    disconnect(chooser(), &UIChooser::sigGroupSavingStateChanged,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigGroupSavingStateChanged);
-    disconnect(chooser(), &UIChooser::sigCloudUpdateStateChanged,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigCloudUpdateStateChanged);
-    disconnect(chooser(), &UIChooser::sigStartOrShowRequest,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigStartOrShowRequest);
-    disconnect(chooser(), &UIChooser::sigMachineSearchWidgetVisibilityChanged,
-               this, &UIVirtualBoxManagerAdvancedWidget::sigMachineSearchWidgetVisibilityChanged);
-}
-
-void UIVirtualBoxManagerAdvancedWidget::cleanup()
-{
-    /* Destroy notification-center: */
-    UINotificationCenter::destroy();
-}
-
-UIGlobalToolsWidget *UIVirtualBoxManagerAdvancedWidget::globalToolsWidget() const
-{
-    return m_pGlobalToolsWidget;
-}
-
-UIToolPane *UIVirtualBoxManagerAdvancedWidget::globalToolPane() const
-{
-    return globalToolsWidget()->toolPane();
-}
-
-UIMachineToolsWidget *UIVirtualBoxManagerAdvancedWidget::machineToolsWidget() const
-{
-    return globalToolsWidget()->machineToolsWidget();
-}
-
-UIToolPane *UIVirtualBoxManagerAdvancedWidget::machineToolPane() const
-{
-    return machineToolsWidget()->toolPane();
-}
-
-UIChooser *UIVirtualBoxManagerAdvancedWidget::chooser() const
-{
-    return machineToolsWidget()->chooser();
-}
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerAdvancedWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerAdvancedWidget.h	(revision 108506)
+++ 	(revision )
@@ -1,294 +1,0 @@
-/* $Id$ */
-/** @file
- * VBox Qt GUI - UIVirtualBoxManagerAdvancedWidget class declaration.
- */
-
-/*
- * Copyright (C) 2006-2024 Oracle and/or its affiliates.
- *
- * This file is part of VirtualBox base platform packages, as
- * available from https://www.virtualbox.org.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, in version 3 of the
- * License.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <https://www.gnu.org/licenses>.
- *
- * SPDX-License-Identifier: GPL-3.0-only
- */
-
-#ifndef FEQT_INCLUDED_SRC_manager_UIVirtualBoxManagerAdvancedWidget_h
-#define FEQT_INCLUDED_SRC_manager_UIVirtualBoxManagerAdvancedWidget_h
-#ifndef RT_WITHOUT_PRAGMA_ONCE
-# pragma once
-#endif
-
-/* Qt includes: */
-#include <QUuid>
-#include <QWidget>
-
-/* GUI includes: */
-#include "UIExtraDataDefs.h"
-
-/* Forward declarations: */
-class QIToolBar;
-class UIActionPool;
-class UIChooser;
-class UIGlobalToolsWidget;
-class UIMachineToolsWidget;
-class UIToolPane;
-class UIVirtualBoxManager;
-class UIVirtualMachineItem;
-
-/** QWidget extension used as VirtualBox Manager Widget instance. */
-class UIVirtualBoxManagerAdvancedWidget : public QWidget
-{
-    Q_OBJECT;
-
-signals:
-
-    /** @name Chooser pane stuff.
-      * @{ */
-        /** Notifies about Chooser-pane index change. */
-        void sigChooserPaneIndexChange();
-        /** Notifies about Chooser-pane group saving change. */
-        void sigGroupSavingStateChanged();
-        /** Notifies about Chooser-pane cloud update change. */
-        void sigCloudUpdateStateChanged();
-
-        /** Notifies about state change for cloud machine with certain @a uId. */
-        void sigCloudMachineStateChange(const QUuid &uId);
-
-        /** Notify listeners about start or show request. */
-        void sigStartOrShowRequest();
-        /** Notifies listeners about machine search widget visibility changed to @a fVisible. */
-        void sigMachineSearchWidgetVisibilityChanged(bool fVisible);
-    /** @} */
-
-    /** @name Tools pane stuff.
-      * @{ */
-        /** Notifies about Global Tool type change. */
-        void sigToolTypeChangeGlobal();
-        /** Notifies about Machine Tool type change. */
-        void sigToolTypeChangeMachine();
-    /** @} */
-
-    /** @name Tools / Media pane stuff.
-      * @{ */
-        /** Notifies listeners about creation procedure was requested. */
-        void sigCreateMedium();
-        /** Notifies listeners about copy procedure was requested for medium with specified @a uMediumId. */
-        void sigCopyMedium(const QUuid &uMediumId);
-    /** @} */
-
-    /** @name Tools / Details pane stuff.
-      * @{ */
-        /** Notifies aboud Details-pane link clicked. */
-        void sigMachineSettingsLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &uId);
-    /** @} */
-
-    /** @name Tools / Snapshots pane stuff.
-      * @{ */
-        /** Notifies listeners about current Snapshots pane item change. */
-        void sigCurrentSnapshotItemChange();
-    /** @} */
-
-    /** @name Tools / Generic pane stuff.
-      * @{ */
-        /** Notifies listeners about request to detach pane with tool type @p enmToolType. */
-        void sigDetachToolPane(UIToolType enmToolType);
-    /** @} */
-
-public:
-
-    /** Constructs VirtualBox Manager widget. */
-    UIVirtualBoxManagerAdvancedWidget(UIVirtualBoxManager *pParent);
-    /** Destructs VirtualBox Manager widget. */
-    virtual ~UIVirtualBoxManagerAdvancedWidget() RT_OVERRIDE;
-
-    /** @name Common stuff.
-      * @{ */
-        /** Returns the action-pool instance. */
-        UIActionPool *actionPool() const { return m_pActionPool; }
-    /** @} */
-
-    /** @name Tool-bar stuff.
-      * @{ */
-        /** Updates tool-bar menu buttons. */
-        void updateToolBarMenuButtons(bool fSeparateMenuSection);
-    /** @} */
-
-    /** @name Chooser pane stuff.
-      * @{ */
-        /** Returns current-item. */
-        UIVirtualMachineItem *currentItem() const;
-        /** Returns a list of current-items. */
-        QList<UIVirtualMachineItem*> currentItems() const;
-
-        /** Returns whether group item is selected. */
-        bool isGroupItemSelected() const;
-        /** Returns whether machine item is selected. */
-        bool isMachineItemSelected() const;
-        /** Returns whether local machine item is selected. */
-        bool isLocalMachineItemSelected() const;
-        /** Returns whether cloud machine item is selected. */
-        bool isCloudMachineItemSelected() const;
-
-        /** Returns whether single group is selected. */
-        bool isSingleGroupSelected() const;
-        /** Returns whether single local group is selected. */
-        bool isSingleLocalGroupSelected() const;
-        /** Returns whether single cloud provider group is selected. */
-        bool isSingleCloudProviderGroupSelected() const;
-        /** Returns whether single cloud profile group is selected. */
-        bool isSingleCloudProfileGroupSelected() const;
-        /** Returns whether all items of one group are selected. */
-        bool isAllItemsOfOneGroupSelected() const;
-
-        /** Returns full name of currently selected group. */
-        QString fullGroupName() const;
-
-        /** Returns whether group saving is in progress. */
-        bool isGroupSavingInProgress() const;
-        /** Returns whether at least one cloud profile currently being updated. */
-        bool isCloudProfileUpdateInProgress() const;
-
-        /** Opens group name editor. */
-        void openGroupNameEditor();
-        /** Disbands group. */
-        void disbandGroup();
-        /** Removes machine. */
-        void removeMachine();
-        /** Moves machine to a group with certain @a strName. */
-        void moveMachineToGroup(const QString &strName = QString());
-        /** Returns possible groups for machine with passed @a uId to move to. */
-        QStringList possibleGroupsForMachineToMove(const QUuid &uId);
-        /** Returns possible groups for group with passed @a strFullName to move to. */
-        QStringList possibleGroupsForGroupToMove(const QString &strFullName);
-        /** Refreshes machine. */
-        void refreshMachine();
-        /** Sorts group. */
-        void sortGroup();
-        /** Toggle machine search widget to be @a fVisible. */
-        void setMachineSearchWidgetVisibility(bool fVisible);
-    /** @} */
-
-    /** @name Tools pane stuff.
-      * @{ */
-        /** Defines Global tools @a enmType and @a fMakeSureItsVisible if requested. */
-        void setToolsTypeGlobal(UIToolType enmType, bool fMakeSureItsVisible = false);
-        /** Returns Global tools type. */
-        UIToolType toolsTypeGlobal() const;
-
-        /** Defines Machine tools @a enmType. */
-        void setToolsTypeMachine(UIToolType enmType);
-        /** Returns Machine tools type. */
-        UIToolType toolsTypeMachine() const;
-
-        /** Returns a type of curent Global tool. */
-        UIToolType currentGlobalTool() const;
-        /** Returns a type of curent Machine tool. */
-        UIToolType currentMachineTool() const;
-        /** Returns whether Global tool of passed @a enmType is opened. */
-        bool isGlobalToolOpened(UIToolType enmType) const;
-        /** Returns whether Machine tool of passed @a enmType is opened. */
-        bool isMachineToolOpened(UIToolType enmType) const;
-        /** Closes Global tool of passed @a enmType. */
-        void closeGlobalTool(UIToolType enmType);
-        /** Closes Machine tool of passed @a enmType. */
-        void closeMachineTool(UIToolType enmType);
-    /** @} */
-
-    /** @name Tools / Snapshot pane stuff.
-      * @{ */
-        /** Returns whether current-state item of Snapshot pane is selected. */
-        bool isCurrentStateItemSelected() const;
-
-        /** Returns currently selected snapshot ID if any. */
-        QUuid currentSnapshotId();
-    /** @} */
-
-    /** @name Help browser stuff.
-      * @{ */
-        /** Returns the current help key word. */
-        QString currentHelpKeyword() const;
-    /** @} */
-
-public slots:
-
-    /** @name Tool-bar stuff.
-      * @{ */
-        /** Handles tool-bar context-menu request for passed @a position. */
-        void sltHandleToolBarContextMenuRequest(const QPoint &position);
-    /** @} */
-
-private slots:
-
-    /** @name General stuff.
-      * @{ */
-        /** Handles request to commit data. */
-        void sltHandleCommitData();
-    /** @} */
-
-    /** @name Tool-bar stuff.
-      * @{ */
-        /** Updates tool-bar. */
-        void sltUpdateToolbar();
-    /** @} */
-
-private:
-
-    /** @name Prepare/Cleanup cascade.
-      * @{ */
-        /** Prepares all. */
-        void prepare();
-        /** Prepares widgets. */
-        void prepareWidgets();
-        /** Prepares connections. */
-        void prepareConnections();
-        /** Loads settings. */
-        void loadSettings();
-
-        /** Updates toolbar. */
-        void updateToolbar();
-
-        /** Cleanups connections. */
-        void cleanupConnections();
-        /** Cleanups all. */
-        void cleanup();
-    /** @} */
-
-    /** @name Tools stuff.
-      * @{ */
-        /** Returns Global Tools Widget instance. */
-        UIGlobalToolsWidget *globalToolsWidget() const;
-        /** Returns Global Tool Pane reference. */
-        UIToolPane *globalToolPane() const;
-
-        /** Returns Machine Tools Widget reference. */
-        UIMachineToolsWidget *machineToolsWidget() const;
-        /** Returns Machine Tool Pane reference. */
-        UIToolPane *machineToolPane() const;
-        /** Returns Machine Chooser Pane reference. */
-        UIChooser *chooser() const;
-    /** @} */
-
-    /** Holds the action-pool reference. */
-    UIActionPool *m_pActionPool;
-
-    /** Holds the main toolbar instance. */
-    QIToolBar *m_pToolBar;
-
-    /** Holds the Global Tools Widget instance. */
-    UIGlobalToolsWidget *m_pGlobalToolsWidget;
-};
-
-#endif /* !FEQT_INCLUDED_SRC_manager_UIVirtualBoxManagerAdvancedWidget_h */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp	(revision 108532)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp	(revision 108532)
@@ -0,0 +1,735 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIVirtualBoxWidget class implementation.
+ */
+
+/*
+ * Copyright (C) 2006-2024 Oracle and/or its affiliates.
+ *
+ * This file is part of VirtualBox base platform packages, as
+ * available from https://www.virtualbox.org.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, in version 3 of the
+ * License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses>.
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+/* Qt includes: */
+#include <QApplication>
+#include <QStyle>
+#include <QToolButton>
+#include <QVBoxLayout>
+
+/* GUI includes: */
+#include "QIToolBar.h"
+#include "UIActionPoolManager.h"
+#include "UIChooser.h"
+#include "UICommon.h"
+#include "UIExtraDataManager.h"
+#include "UIGlobalToolsWidget.h"
+#include "UIMachineToolsWidget.h"
+#include "UINotificationCenter.h"
+#include "UIToolPane.h"
+#include "UIVirtualBoxManager.h"
+#include "UIVirtualBoxWidget.h"
+#if defined(VBOX_WS_MAC) && (defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32))
+# include "UIGlobalSession.h"
+# include "UIIconPool.h"
+# include "UIVersion.h"
+#endif /* VBOX_WS_MAC && (RT_ARCH_ARM64 || RT_ARCH_ARM32) */
+
+/* COM includes: */
+#if defined(VBOX_WS_MAC) && (defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32))
+# include "CSystemProperties.h"
+#endif /* VBOX_WS_MAC && (RT_ARCH_ARM64 || RT_ARCH_ARM32) */
+
+
+UIVirtualBoxWidget::UIVirtualBoxWidget(UIVirtualBoxManager *pParent)
+    : m_pActionPool(pParent->actionPool())
+    , m_pToolBar(0)
+    , m_pGlobalToolsWidget(0)
+{
+    prepare();
+}
+
+UIVirtualBoxWidget::~UIVirtualBoxWidget()
+{
+    cleanup();
+}
+
+void UIVirtualBoxWidget::updateToolBarMenuButtons(bool fSeparateMenuSection)
+{
+    QAction *pAction = actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow);
+    AssertPtrReturnVoid(pAction);
+    QToolButton *pButton = qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(pAction));
+    if (pButton)
+        pButton->setPopupMode(fSeparateMenuSection ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);
+}
+
+UIVirtualMachineItem *UIVirtualBoxWidget::currentItem() const
+{
+    AssertPtrReturn(chooser(), 0);
+    return chooser()->currentItem();
+}
+
+QList<UIVirtualMachineItem*> UIVirtualBoxWidget::currentItems() const
+{
+    AssertPtrReturn(chooser(), QList<UIVirtualMachineItem*>());
+    return chooser()->currentItems();
+}
+
+bool UIVirtualBoxWidget::isGroupItemSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isGroupItemSelected();
+}
+
+bool UIVirtualBoxWidget::isMachineItemSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isMachineItemSelected();
+}
+
+bool UIVirtualBoxWidget::isLocalMachineItemSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isLocalMachineItemSelected();
+}
+
+bool UIVirtualBoxWidget::isCloudMachineItemSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isCloudMachineItemSelected();
+}
+
+bool UIVirtualBoxWidget::isSingleGroupSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isSingleGroupSelected();
+}
+
+bool UIVirtualBoxWidget::isSingleLocalGroupSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isSingleLocalGroupSelected();
+}
+
+bool UIVirtualBoxWidget::isSingleCloudProviderGroupSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isSingleCloudProviderGroupSelected();
+}
+
+bool UIVirtualBoxWidget::isSingleCloudProfileGroupSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isSingleCloudProfileGroupSelected();
+}
+
+bool UIVirtualBoxWidget::isAllItemsOfOneGroupSelected() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isAllItemsOfOneGroupSelected();
+}
+
+QString UIVirtualBoxWidget::fullGroupName() const
+{
+    AssertPtrReturn(chooser(), QString());
+    return chooser()->fullGroupName();
+}
+
+bool UIVirtualBoxWidget::isGroupSavingInProgress() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isGroupSavingInProgress();
+}
+
+bool UIVirtualBoxWidget::isCloudProfileUpdateInProgress() const
+{
+    AssertPtrReturn(chooser(), false);
+    return chooser()->isCloudProfileUpdateInProgress();
+}
+
+void UIVirtualBoxWidget::openGroupNameEditor()
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->openGroupNameEditor();
+}
+
+void UIVirtualBoxWidget::disbandGroup()
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->disbandGroup();
+}
+
+void UIVirtualBoxWidget::removeMachine()
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->removeMachine();
+}
+
+void UIVirtualBoxWidget::moveMachineToGroup(const QString &strName /* = QString() */)
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->moveMachineToGroup(strName);
+}
+
+QStringList UIVirtualBoxWidget::possibleGroupsForMachineToMove(const QUuid &uId)
+{
+    AssertPtrReturn(chooser(), QStringList());
+    return chooser()->possibleGroupsForMachineToMove(uId);
+}
+
+QStringList UIVirtualBoxWidget::possibleGroupsForGroupToMove(const QString &strFullName)
+{
+    AssertPtrReturn(chooser(), QStringList());
+    return chooser()->possibleGroupsForGroupToMove(strFullName);
+}
+
+void UIVirtualBoxWidget::refreshMachine()
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->refreshMachine();
+}
+
+void UIVirtualBoxWidget::sortGroup()
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->sortGroup();
+}
+
+void UIVirtualBoxWidget::setMachineSearchWidgetVisibility(bool fVisible)
+{
+    AssertPtrReturnVoid(chooser());
+    chooser()->setMachineSearchWidgetVisibility(fVisible);
+}
+
+void UIVirtualBoxWidget::setToolsTypeGlobal(UIToolType enmType, bool)
+{
+    AssertPtrReturnVoid(globalToolsWidget());
+    globalToolsWidget()->setMenuToolType(enmType);
+}
+
+UIToolType UIVirtualBoxWidget::toolsTypeGlobal() const
+{
+    AssertPtrReturn(globalToolsWidget(), UIToolType_Invalid);
+    return globalToolsWidget()->menuToolType();
+}
+
+void UIVirtualBoxWidget::setToolsTypeMachine(UIToolType enmType)
+{
+    AssertPtrReturnVoid(machineToolsWidget());
+    machineToolsWidget()->setMenuToolType(enmType);
+}
+
+UIToolType UIVirtualBoxWidget::toolsTypeMachine() const
+{
+    AssertPtrReturn(machineToolsWidget(), UIToolType_Invalid);
+    return machineToolsWidget()->menuToolType();
+}
+
+UIToolType UIVirtualBoxWidget::currentGlobalTool() const
+{
+    AssertPtrReturn(globalToolsWidget(), UIToolType_Invalid);
+    return globalToolsWidget()->toolType();
+}
+
+UIToolType UIVirtualBoxWidget::currentMachineTool() const
+{
+    AssertPtrReturn(machineToolsWidget(), UIToolType_Invalid);
+    return machineToolsWidget()->toolType();
+}
+
+bool UIVirtualBoxWidget::isGlobalToolOpened(UIToolType enmType) const
+{
+    AssertPtrReturn(globalToolsWidget(), false);
+    return globalToolsWidget()->isToolOpened(enmType);
+}
+
+bool UIVirtualBoxWidget::isMachineToolOpened(UIToolType enmType) const
+{
+    AssertPtrReturn(machineToolsWidget(), false);
+    return machineToolsWidget()->isToolOpened(enmType);
+}
+
+void UIVirtualBoxWidget::closeGlobalTool(UIToolType enmType)
+{
+    AssertPtrReturnVoid(globalToolsWidget());
+    globalToolsWidget()->closeTool(enmType);
+}
+
+void UIVirtualBoxWidget::closeMachineTool(UIToolType enmType)
+{
+    AssertPtrReturnVoid(machineToolsWidget());
+    machineToolsWidget()->closeTool(enmType);
+}
+
+bool UIVirtualBoxWidget::isCurrentStateItemSelected() const
+{
+    AssertPtrReturn(machineToolPane(), false);
+    return machineToolPane()->isCurrentStateItemSelected();
+}
+
+QUuid UIVirtualBoxWidget::currentSnapshotId()
+{
+    AssertPtrReturn(machineToolPane(), QUuid());
+    return machineToolPane()->currentSnapshotId();
+}
+
+QString UIVirtualBoxWidget::currentHelpKeyword() const
+{
+    AssertPtrReturn(globalToolsWidget(), QString());
+    return globalToolsWidget()->currentHelpKeyword();
+}
+
+void UIVirtualBoxWidget::sltHandleToolBarContextMenuRequest(const QPoint &position)
+{
+    /* Populate toolbar actions: */
+    QList<QAction*> actions;
+    /* Add 'Show Toolbar Text' action: */
+    QAction *pShowToolBarText = new QAction(UIVirtualBoxManager::tr("Show Toolbar Text"), 0);
+    if (pShowToolBarText)
+    {
+        pShowToolBarText->setCheckable(true);
+        pShowToolBarText->setChecked(m_pToolBar->toolButtonStyle() == Qt::ToolButtonTextUnderIcon);
+        actions << pShowToolBarText;
+    }
+
+    /* Prepare the menu position: */
+    QPoint globalPosition = position;
+    QWidget *pSender = qobject_cast<QWidget*>(sender());
+    if (pSender)
+        globalPosition = pSender->mapToGlobal(position);
+
+    /* Execute the menu: */
+    QAction *pResult = QMenu::exec(actions, globalPosition);
+
+    /* Handle the menu execution result: */
+    if (pResult == pShowToolBarText)
+    {
+        m_pToolBar->setUseTextLabels(pResult->isChecked());
+        gEDataManager->setSelectorWindowToolBarTextVisible(pResult->isChecked());
+    }
+}
+
+void UIVirtualBoxWidget::sltHandleCommitData()
+{
+    cleanupConnections();
+}
+
+void UIVirtualBoxWidget::sltUpdateToolbar()
+{
+    /* Update toolbar to show/hide corresponding actions: */
+    updateToolbar();
+}
+
+void UIVirtualBoxWidget::prepare()
+{
+    /* Prepare everything: */
+    prepareWidgets();
+    prepareConnections();
+
+    /* Load settings: */
+    loadSettings();
+}
+
+void UIVirtualBoxWidget::prepareWidgets()
+{
+    /* Create layout: */
+    QVBoxLayout *pLayout = new QVBoxLayout(this);
+    if(pLayout)
+    {
+        /* Configure layout: */
+        pLayout->setContentsMargins(0, 0, 0, 0);
+        pLayout->setSpacing(0);
+
+        /* Create Global Tools Widget: */
+        m_pGlobalToolsWidget = new UIGlobalToolsWidget(this, actionPool());
+        if (globalToolsWidget())
+        {
+            /* Add into layout: */
+            pLayout->addWidget(globalToolsWidget());
+        }
+
+        /* Create Main toolbar: */
+        m_pToolBar = new QIToolBar(this);
+        if (m_pToolBar)
+        {
+            /* Configure toolbar: */
+            const int iIconMetric = QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize);
+            m_pToolBar->setIconSize(QSize(iIconMetric, iIconMetric));
+            m_pToolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+            m_pToolBar->setContextMenuPolicy(Qt::CustomContextMenu);
+            m_pToolBar->setUseTextLabels(true);
+
+#if defined(VBOX_WS_MAC) && (defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32))
+            /* Check whether we should show Dev Preview tag: */
+            bool fShowDevPreviewTag = false;
+            const CVirtualBox comVBox = gpGlobalSession->virtualBox();
+            if (comVBox.isNotNull())
+            {
+                const CSystemProperties comSystemProps = comVBox.GetSystemProperties();
+                if (comVBox.isOk() && comSystemProps.isNotNull())
+                    fShowDevPreviewTag =
+                        comSystemProps.GetSupportedPlatformArchitectures().contains(KPlatformArchitecture_x86);
+            }
+            /* Enable Dev Preview tag: */
+            if (fShowDevPreviewTag)
+            {
+                m_pToolBar->emulateMacToolbar();
+                m_pToolBar->enableBranding(UIIconPool::iconSet(":/explosion_hazard_32px.png"),
+                                           "Dev Preview", // do we need to make it NLS?
+                                           QColor(246, 179, 0),
+                                           74 /* width of BETA label */);
+            }
+#endif /* VBOX_WS_MAC && (RT_ARCH_ARM64 || RT_ARCH_ARM32) */
+
+            /* Add toolbar into layout: */
+            m_pGlobalToolsWidget->addToolBar(m_pToolBar);
+        }
+    }
+
+    /* Create notification-center: */
+    UINotificationCenter::create(this);
+
+    /* Update toolbar finally: */
+    updateToolbar();
+
+    /* Bring the VM list to the focus: */
+    chooser()->setFocus();
+}
+
+void UIVirtualBoxWidget::prepareConnections()
+{
+    /* UICommon connections: */
+    connect(&uiCommon(), &UICommon::sigAskToCommitData,
+            this, &UIVirtualBoxWidget::sltHandleCommitData);
+
+    /* Global COM event handlers: */
+    connect(gEDataManager, &UIExtraDataManager::sigSettingsExpertModeChange,
+            this, &UIVirtualBoxWidget::sltUpdateToolbar);
+
+    /* Tool-bar connections: */
+    connect(m_pToolBar, &QIToolBar::customContextMenuRequested,
+            this, &UIVirtualBoxWidget::sltHandleToolBarContextMenuRequest);
+
+    /* Global Tools Widget connections: */
+    connect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
+            this, &UIVirtualBoxWidget::sltUpdateToolbar);
+    connect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
+            this, &UIVirtualBoxWidget::sigToolTypeChangeGlobal);
+    /* Global Tool Pane connections: */
+    connect(globalToolPane(), &UIToolPane::sigCreateMedium,
+            this, &UIVirtualBoxWidget::sigCreateMedium);
+    connect(globalToolPane(), &UIToolPane::sigCopyMedium,
+            this, &UIVirtualBoxWidget::sigCopyMedium);
+
+    /* Machine Tools Widget connections: */
+    connect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
+            this, &UIVirtualBoxWidget::sltUpdateToolbar);
+    connect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
+            this, &UIVirtualBoxWidget::sigToolTypeChangeMachine);
+    connect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneIndexChange,
+            this, &UIVirtualBoxWidget::sigChooserPaneIndexChange);
+    connect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneSelectionChange,
+            this, &UIVirtualBoxWidget::sltUpdateToolbar);
+    connect(machineToolsWidget(), &UIMachineToolsWidget::sigCloudMachineStateChange,
+            this, &UIVirtualBoxWidget::sigCloudMachineStateChange);
+    /* Machine Tool Pane connections: */
+    connect(machineToolPane(), &UIToolPane::sigLinkClicked,
+            this, &UIVirtualBoxWidget::sigMachineSettingsLinkClicked);
+    connect(machineToolPane(), &UIToolPane::sigCurrentSnapshotItemChange,
+            this, &UIVirtualBoxWidget::sigCurrentSnapshotItemChange);
+    connect(machineToolPane(), &UIToolPane::sigDetachToolPane,
+            this, &UIVirtualBoxWidget::sigDetachToolPane);
+
+    /* Chooser-pane connections: */
+    connect(chooser(), &UIChooser::sigGroupSavingStateChanged,
+            this, &UIVirtualBoxWidget::sigGroupSavingStateChanged);
+    connect(chooser(), &UIChooser::sigCloudUpdateStateChanged,
+            this, &UIVirtualBoxWidget::sigCloudUpdateStateChanged);
+    connect(chooser(), &UIChooser::sigStartOrShowRequest,
+            this, &UIVirtualBoxWidget::sigStartOrShowRequest);
+    connect(chooser(), &UIChooser::sigMachineSearchWidgetVisibilityChanged,
+            this, &UIVirtualBoxWidget::sigMachineSearchWidgetVisibilityChanged);
+}
+
+void UIVirtualBoxWidget::loadSettings()
+{
+    /* Make sure stuff exists: */
+    AssertPtrReturnVoid(m_pToolBar);
+    m_pToolBar->setUseTextLabels(gEDataManager->selectorWindowToolBarTextVisible());
+}
+
+void UIVirtualBoxWidget::updateToolbar()
+{
+    /* Make sure stuff exists: */
+    AssertPtrReturnVoid(m_pToolBar);
+    AssertPtrReturnVoid(globalToolsWidget());
+    AssertPtrReturnVoid(machineToolsWidget());
+
+    /* Clear toolbar initially: */
+    m_pToolBar->clear();
+
+    switch (globalToolsWidget()->toolType())
+    {
+        case UIToolType_Home:
+        {
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Home_S_New));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Home_S_Add));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Application_S_Preferences));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ImportAppliance));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ExportAppliance));
+            break;
+        }
+        case UIToolType_Machines:
+        {
+            switch (machineToolsWidget()->toolType())
+            {
+                case UIToolType_Details:
+                {
+                    if (isSingleGroupSelected())
+                    {
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New));
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add));
+                        m_pToolBar->addSeparator();
+                        if (isSingleLocalGroupSelected())
+                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard));
+                        else if (   isSingleCloudProviderGroupSelected()
+                                 || isSingleCloudProfileGroupSelected())
+                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_Stop_S_Terminate));
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow));
+                    }
+                    else
+                    {
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
+                        m_pToolBar->addSeparator();
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
+                        if (isLocalMachineItemSelected())
+                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
+                        else if (isCloudMachineItemSelected())
+                            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop_S_Terminate));
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
+                    }
+                    break;
+                }
+                case UIToolType_Snapshots:
+                {
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Take));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Delete));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Restore));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_T_Properties));
+                    if (gEDataManager->isSettingsInExpertMode())
+                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Clone));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
+                    break;
+                }
+                case UIToolType_Logs:
+                {
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Save));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Find));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Filter));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Bookmark));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Preferences));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Refresh));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Reload));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
+                    break;
+                }
+                case UIToolType_VMActivity:
+                {
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_Export));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_ToVMActivityOverview));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_T_Preferences));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
+                    break;
+                }
+                case UIToolType_FileManager:
+                {
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_FileManager_T_Preferences));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_FileManager_T_Operations));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_FileManager_T_Log));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
+                    break;
+                }
+                case UIToolType_Error:
+                {
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));
+                    break;
+                }
+                default:
+                    break;
+            }
+            break;
+        }
+        case UIToolType_Extensions:
+        {
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Install));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Uninstall));
+            break;
+        }
+        case UIToolType_Media:
+        {
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Add));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Create));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Copy));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Move));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Remove));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Release));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Clear));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Search));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Details));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Refresh));
+            break;
+        }
+        case UIToolType_Network:
+        {
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Create));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Remove));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_T_Details));
+            //m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Refresh));
+            break;
+        }
+        case UIToolType_Cloud:
+        {
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Add));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Import));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Remove));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_T_Details));
+            m_pToolBar->addSeparator();
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_TryPage));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Help));
+            break;
+        }
+        case UIToolType_Activities:
+        {
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns));
+            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_S_SwitchToMachineActivity));
+            QToolButton *pButton =
+                qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns)));
+            if (pButton)
+            {
+                pButton->setPopupMode(QToolButton::InstantPopup);
+                pButton->setAutoRaise(true);
+            }
+            break;
+        }
+        default:
+            break;
+    }
+}
+
+void UIVirtualBoxWidget::cleanupConnections()
+{
+    /* Global COM event handlers: */
+    disconnect(gEDataManager, &UIExtraDataManager::sigSettingsExpertModeChange,
+               this, &UIVirtualBoxWidget::sltUpdateToolbar);
+
+    /* Tool-bar connections: */
+    disconnect(m_pToolBar, &QIToolBar::customContextMenuRequested,
+               this, &UIVirtualBoxWidget::sltHandleToolBarContextMenuRequest);
+
+    /* Global Tools Widget connections: */
+    disconnect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
+               this, &UIVirtualBoxWidget::sltUpdateToolbar);
+    disconnect(globalToolsWidget(), &UIGlobalToolsWidget::sigToolTypeChange,
+               this, &UIVirtualBoxWidget::sigToolTypeChangeGlobal);
+    /* Global Tool Pane connections: */
+    disconnect(globalToolPane(), &UIToolPane::sigCreateMedium,
+               this, &UIVirtualBoxWidget::sigCreateMedium);
+    disconnect(globalToolPane(), &UIToolPane::sigCopyMedium,
+               this, &UIVirtualBoxWidget::sigCopyMedium);
+
+    /* Machine Tools Widget connections: */
+    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
+               this, &UIVirtualBoxWidget::sltUpdateToolbar);
+    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigToolTypeChange,
+               this, &UIVirtualBoxWidget::sigToolTypeChangeMachine);
+    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneIndexChange,
+               this, &UIVirtualBoxWidget::sigChooserPaneIndexChange);
+    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigChooserPaneSelectionChange,
+               this, &UIVirtualBoxWidget::sltUpdateToolbar);
+    disconnect(machineToolsWidget(), &UIMachineToolsWidget::sigCloudMachineStateChange,
+               this, &UIVirtualBoxWidget::sigCloudMachineStateChange);
+    /* Machine Tool Pane connections: */
+    disconnect(machineToolPane(), &UIToolPane::sigLinkClicked,
+               this, &UIVirtualBoxWidget::sigMachineSettingsLinkClicked);
+    disconnect(machineToolPane(), &UIToolPane::sigCurrentSnapshotItemChange,
+               this, &UIVirtualBoxWidget::sigCurrentSnapshotItemChange);
+    disconnect(machineToolPane(), &UIToolPane::sigDetachToolPane,
+               this, &UIVirtualBoxWidget::sigDetachToolPane);
+
+    /* Chooser-pane connections: */
+    disconnect(chooser(), &UIChooser::sigGroupSavingStateChanged,
+               this, &UIVirtualBoxWidget::sigGroupSavingStateChanged);
+    disconnect(chooser(), &UIChooser::sigCloudUpdateStateChanged,
+               this, &UIVirtualBoxWidget::sigCloudUpdateStateChanged);
+    disconnect(chooser(), &UIChooser::sigStartOrShowRequest,
+               this, &UIVirtualBoxWidget::sigStartOrShowRequest);
+    disconnect(chooser(), &UIChooser::sigMachineSearchWidgetVisibilityChanged,
+               this, &UIVirtualBoxWidget::sigMachineSearchWidgetVisibilityChanged);
+}
+
+void UIVirtualBoxWidget::cleanup()
+{
+    /* Destroy notification-center: */
+    UINotificationCenter::destroy();
+}
+
+UIGlobalToolsWidget *UIVirtualBoxWidget::globalToolsWidget() const
+{
+    return m_pGlobalToolsWidget;
+}
+
+UIToolPane *UIVirtualBoxWidget::globalToolPane() const
+{
+    return globalToolsWidget()->toolPane();
+}
+
+UIMachineToolsWidget *UIVirtualBoxWidget::machineToolsWidget() const
+{
+    return globalToolsWidget()->machineToolsWidget();
+}
+
+UIToolPane *UIVirtualBoxWidget::machineToolPane() const
+{
+    return machineToolsWidget()->toolPane();
+}
+
+UIChooser *UIVirtualBoxWidget::chooser() const
+{
+    return machineToolsWidget()->chooser();
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.h	(revision 108532)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.h	(revision 108532)
@@ -0,0 +1,294 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIVirtualBoxWidget class declaration.
+ */
+
+/*
+ * Copyright (C) 2006-2024 Oracle and/or its affiliates.
+ *
+ * This file is part of VirtualBox base platform packages, as
+ * available from https://www.virtualbox.org.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, in version 3 of the
+ * License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses>.
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+#ifndef FEQT_INCLUDED_SRC_manager_UIVirtualBoxWidget_h
+#define FEQT_INCLUDED_SRC_manager_UIVirtualBoxWidget_h
+#ifndef RT_WITHOUT_PRAGMA_ONCE
+# pragma once
+#endif
+
+/* Qt includes: */
+#include <QUuid>
+#include <QWidget>
+
+/* GUI includes: */
+#include "UIExtraDataDefs.h"
+
+/* Forward declarations: */
+class QIToolBar;
+class UIActionPool;
+class UIChooser;
+class UIGlobalToolsWidget;
+class UIMachineToolsWidget;
+class UIToolPane;
+class UIVirtualBoxManager;
+class UIVirtualMachineItem;
+
+/** QWidget extension used as VirtualBox Manager Widget instance. */
+class UIVirtualBoxWidget : public QWidget
+{
+    Q_OBJECT;
+
+signals:
+
+    /** @name Chooser pane stuff.
+      * @{ */
+        /** Notifies about Chooser-pane index change. */
+        void sigChooserPaneIndexChange();
+        /** Notifies about Chooser-pane group saving change. */
+        void sigGroupSavingStateChanged();
+        /** Notifies about Chooser-pane cloud update change. */
+        void sigCloudUpdateStateChanged();
+
+        /** Notifies about state change for cloud machine with certain @a uId. */
+        void sigCloudMachineStateChange(const QUuid &uId);
+
+        /** Notify listeners about start or show request. */
+        void sigStartOrShowRequest();
+        /** Notifies listeners about machine search widget visibility changed to @a fVisible. */
+        void sigMachineSearchWidgetVisibilityChanged(bool fVisible);
+    /** @} */
+
+    /** @name Tools pane stuff.
+      * @{ */
+        /** Notifies about Global Tool type change. */
+        void sigToolTypeChangeGlobal();
+        /** Notifies about Machine Tool type change. */
+        void sigToolTypeChangeMachine();
+    /** @} */
+
+    /** @name Tools / Media pane stuff.
+      * @{ */
+        /** Notifies listeners about creation procedure was requested. */
+        void sigCreateMedium();
+        /** Notifies listeners about copy procedure was requested for medium with specified @a uMediumId. */
+        void sigCopyMedium(const QUuid &uMediumId);
+    /** @} */
+
+    /** @name Tools / Details pane stuff.
+      * @{ */
+        /** Notifies aboud Details-pane link clicked. */
+        void sigMachineSettingsLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &uId);
+    /** @} */
+
+    /** @name Tools / Snapshots pane stuff.
+      * @{ */
+        /** Notifies listeners about current Snapshots pane item change. */
+        void sigCurrentSnapshotItemChange();
+    /** @} */
+
+    /** @name Tools / Generic pane stuff.
+      * @{ */
+        /** Notifies listeners about request to detach pane with tool type @p enmToolType. */
+        void sigDetachToolPane(UIToolType enmToolType);
+    /** @} */
+
+public:
+
+    /** Constructs VirtualBox Widget. */
+    UIVirtualBoxWidget(UIVirtualBoxManager *pParent);
+    /** Destructs VirtualBox Widget. */
+    virtual ~UIVirtualBoxWidget() RT_OVERRIDE;
+
+    /** @name Common stuff.
+      * @{ */
+        /** Returns the action-pool instance. */
+        UIActionPool *actionPool() const { return m_pActionPool; }
+    /** @} */
+
+    /** @name Tool-bar stuff.
+      * @{ */
+        /** Updates tool-bar menu buttons. */
+        void updateToolBarMenuButtons(bool fSeparateMenuSection);
+    /** @} */
+
+    /** @name Chooser pane stuff.
+      * @{ */
+        /** Returns current-item. */
+        UIVirtualMachineItem *currentItem() const;
+        /** Returns a list of current-items. */
+        QList<UIVirtualMachineItem*> currentItems() const;
+
+        /** Returns whether group item is selected. */
+        bool isGroupItemSelected() const;
+        /** Returns whether machine item is selected. */
+        bool isMachineItemSelected() const;
+        /** Returns whether local machine item is selected. */
+        bool isLocalMachineItemSelected() const;
+        /** Returns whether cloud machine item is selected. */
+        bool isCloudMachineItemSelected() const;
+
+        /** Returns whether single group is selected. */
+        bool isSingleGroupSelected() const;
+        /** Returns whether single local group is selected. */
+        bool isSingleLocalGroupSelected() const;
+        /** Returns whether single cloud provider group is selected. */
+        bool isSingleCloudProviderGroupSelected() const;
+        /** Returns whether single cloud profile group is selected. */
+        bool isSingleCloudProfileGroupSelected() const;
+        /** Returns whether all items of one group are selected. */
+        bool isAllItemsOfOneGroupSelected() const;
+
+        /** Returns full name of currently selected group. */
+        QString fullGroupName() const;
+
+        /** Returns whether group saving is in progress. */
+        bool isGroupSavingInProgress() const;
+        /** Returns whether at least one cloud profile currently being updated. */
+        bool isCloudProfileUpdateInProgress() const;
+
+        /** Opens group name editor. */
+        void openGroupNameEditor();
+        /** Disbands group. */
+        void disbandGroup();
+        /** Removes machine. */
+        void removeMachine();
+        /** Moves machine to a group with certain @a strName. */
+        void moveMachineToGroup(const QString &strName = QString());
+        /** Returns possible groups for machine with passed @a uId to move to. */
+        QStringList possibleGroupsForMachineToMove(const QUuid &uId);
+        /** Returns possible groups for group with passed @a strFullName to move to. */
+        QStringList possibleGroupsForGroupToMove(const QString &strFullName);
+        /** Refreshes machine. */
+        void refreshMachine();
+        /** Sorts group. */
+        void sortGroup();
+        /** Toggle machine search widget to be @a fVisible. */
+        void setMachineSearchWidgetVisibility(bool fVisible);
+    /** @} */
+
+    /** @name Tools pane stuff.
+      * @{ */
+        /** Defines Global tools @a enmType and @a fMakeSureItsVisible if requested. */
+        void setToolsTypeGlobal(UIToolType enmType, bool fMakeSureItsVisible = false);
+        /** Returns Global tools type. */
+        UIToolType toolsTypeGlobal() const;
+
+        /** Defines Machine tools @a enmType. */
+        void setToolsTypeMachine(UIToolType enmType);
+        /** Returns Machine tools type. */
+        UIToolType toolsTypeMachine() const;
+
+        /** Returns a type of curent Global tool. */
+        UIToolType currentGlobalTool() const;
+        /** Returns a type of curent Machine tool. */
+        UIToolType currentMachineTool() const;
+        /** Returns whether Global tool of passed @a enmType is opened. */
+        bool isGlobalToolOpened(UIToolType enmType) const;
+        /** Returns whether Machine tool of passed @a enmType is opened. */
+        bool isMachineToolOpened(UIToolType enmType) const;
+        /** Closes Global tool of passed @a enmType. */
+        void closeGlobalTool(UIToolType enmType);
+        /** Closes Machine tool of passed @a enmType. */
+        void closeMachineTool(UIToolType enmType);
+    /** @} */
+
+    /** @name Tools / Snapshot pane stuff.
+      * @{ */
+        /** Returns whether current-state item of Snapshot pane is selected. */
+        bool isCurrentStateItemSelected() const;
+
+        /** Returns currently selected snapshot ID if any. */
+        QUuid currentSnapshotId();
+    /** @} */
+
+    /** @name Help browser stuff.
+      * @{ */
+        /** Returns the current help key word. */
+        QString currentHelpKeyword() const;
+    /** @} */
+
+public slots:
+
+    /** @name Tool-bar stuff.
+      * @{ */
+        /** Handles tool-bar context-menu request for passed @a position. */
+        void sltHandleToolBarContextMenuRequest(const QPoint &position);
+    /** @} */
+
+private slots:
+
+    /** @name General stuff.
+      * @{ */
+        /** Handles request to commit data. */
+        void sltHandleCommitData();
+    /** @} */
+
+    /** @name Tool-bar stuff.
+      * @{ */
+        /** Updates tool-bar. */
+        void sltUpdateToolbar();
+    /** @} */
+
+private:
+
+    /** @name Prepare/Cleanup cascade.
+      * @{ */
+        /** Prepares all. */
+        void prepare();
+        /** Prepares widgets. */
+        void prepareWidgets();
+        /** Prepares connections. */
+        void prepareConnections();
+        /** Loads settings. */
+        void loadSettings();
+
+        /** Updates toolbar. */
+        void updateToolbar();
+
+        /** Cleanups connections. */
+        void cleanupConnections();
+        /** Cleanups all. */
+        void cleanup();
+    /** @} */
+
+    /** @name Tools stuff.
+      * @{ */
+        /** Returns Global Tools Widget instance. */
+        UIGlobalToolsWidget *globalToolsWidget() const;
+        /** Returns Global Tool Pane reference. */
+        UIToolPane *globalToolPane() const;
+
+        /** Returns Machine Tools Widget reference. */
+        UIMachineToolsWidget *machineToolsWidget() const;
+        /** Returns Machine Tool Pane reference. */
+        UIToolPane *machineToolPane() const;
+        /** Returns Machine Chooser Pane reference. */
+        UIChooser *chooser() const;
+    /** @} */
+
+    /** Holds the action-pool reference. */
+    UIActionPool *m_pActionPool;
+
+    /** Holds the main toolbar instance. */
+    QIToolBar *m_pToolBar;
+
+    /** Holds the Global Tools Widget instance. */
+    UIGlobalToolsWidget *m_pGlobalToolsWidget;
+};
+
+#endif /* !FEQT_INCLUDED_SRC_manager_UIVirtualBoxWidget_h */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 108506)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 108532)
@@ -52,5 +52,4 @@
 #include "UIModalWindowManager.h"
 #include "UINotificationCenter.h"
-#include "UIVirtualBoxManagerAdvancedWidget.h"
 #include "UIVirtualMachineItemCloud.h"
 #include "UIVirtualMachineItemLocal.h"
