diff options
author | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2021-11-28 16:25:03 +0000 |
---|---|---|
committer | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2021-11-28 16:25:03 +0000 |
commit | a16d65184951a302f2ca688eb374bf7c7c9e727c (patch) | |
tree | a2b5620e60124d38cc59881e5bb7af6b9c0c8142 | |
parent | cb8d95a203928a0b2cae4e74d97ccbabab0c1450 (diff) | |
download | VirtualBox-svn-a16d65184951a302f2ca688eb374bf7c7c9e727c.tar.gz |
FE/Qt: bugref:9371. Adding file manager as a new machine tool type.
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@92615 cfe28804-0f27-0410-a406-dd0f0b0b656f
7 files changed, 71 insertions, 6 deletions
diff --git a/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp b/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp index 2f805202ab3..2332e9c117f 100644 --- a/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp +++ b/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp @@ -112,10 +112,8 @@ void UIVMActivityToolWidget::setMachines(const QVector<QUuid> &machineIds) } m_machineIds = machineIds; - //hide(); removeTabs(unselectedMachines); addTabs(newSelections); - //show(); } void UIVMActivityToolWidget::prepareActions() diff --git a/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp b/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp index 4a5750d0342..1511c6ef295 100644 --- a/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp +++ b/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp @@ -1618,6 +1618,7 @@ template<> QString toInternalString(const UIToolType &enmToolType) case UIToolType_Snapshots: strResult = "Snapshots"; break; case UIToolType_Logs: strResult = "Logs"; break; case UIToolType_VMActivity: strResult = "Activity"; break; + case UIToolType_FileManager: strResult = "FileManager"; break; default: { AssertMsgFailed(("No text for tool type=%d", enmToolType)); @@ -1644,6 +1645,7 @@ template<> UIToolType fromInternalString<UIToolType>(const QString &strToolType) keys << "Snapshots"; values << UIToolType_Snapshots; keys << "Logs"; values << UIToolType_Logs; keys << "Activity"; values << UIToolType_VMActivity; + keys << "FileManager"; values << UIToolType_FileManager; /* Invalid type for unknown words: */ if (!keys.contains(strToolType, Qt::CaseInsensitive)) return UIToolType_Invalid; diff --git a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h index 563801802c4..88d9a12ffb8 100644 --- a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h +++ b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h @@ -933,7 +933,8 @@ enum UIToolType UIToolType_Details, UIToolType_Snapshots, UIToolType_Logs, - UIToolType_VMActivity + UIToolType_VMActivity, + UIToolType_FileManager }; Q_DECLARE_METATYPE(UIToolType); diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp index 29f3a2b1448..8ddab149841 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp @@ -1904,6 +1904,40 @@ protected: } }; +/** Simple action extension, used as 'Show File Manager' action class. */ +class UIActionToggleManagerToolsMachineShowFileManager : public UIActionToggle +{ + Q_OBJECT; + +public: + + /** Constructs action passing @a pParent to the base-class. */ + UIActionToggleManagerToolsMachineShowFileManager(UIActionPool *pParent) + : UIActionToggle(pParent) + { + setProperty("UIToolType", QVariant::fromValue(UIToolType_FileManager)); + /// @todo use icons with check-boxes + setIcon(UIIconPool::iconSetFull(":/file_manager_24px.png", ":/file_manager_16px.png", + ":/file_manager_disabled_24px.png", ":/file_manager_disabled_16px.png")); + } + +protected: + + /** Returns shortcut extra-data ID. */ + virtual QString shortcutExtraDataID() const /* override */ + { + return QString("ToolsMachineFileManager"); + } + + /** Handles translation event. */ + virtual void retranslateUi() /* override */ + { + setName(QApplication::translate("UIActionPool", "&File Manager")); + setStatusTip(QApplication::translate("UIActionPool", "Open the File Manager")); + } +}; + + /** Menu action extension, used as 'Snapshot' menu class. */ class UIActionMenuManagerSnapshot : public UIActionMenu { @@ -3540,6 +3574,7 @@ void UIActionPoolManager::preparePool() m_pool[UIActionIndexMN_M_Group_M_Tools_T_Snapshots] = new UIActionToggleManagerToolsMachineShowSnapshots(this); m_pool[UIActionIndexMN_M_Group_M_Tools_T_Logs] = new UIActionToggleManagerToolsMachineShowLogs(this); m_pool[UIActionIndexMN_M_Group_M_Tools_T_Activity] = new UIActionToggleManagerToolsMachineShowActivity(this); + m_pool[UIActionIndexMN_M_Group_M_Tools_T_FileManager] = new UIActionToggleManagerToolsMachineShowFileManager(this); m_pool[UIActionIndexMN_M_Group_S_Discard] = new UIActionSimpleManagerCommonPerformDiscard(this); m_pool[UIActionIndexMN_M_Group_S_ShowLogDialog] = new UIActionSimpleManagerCommonShowMachineLogs(this); m_pool[UIActionIndexMN_M_Group_S_ShowLogDialog] = new UIActionSimpleManagerCommonShowMachineLogs(this); @@ -3585,6 +3620,7 @@ void UIActionPoolManager::preparePool() m_pool[UIActionIndexMN_M_Machine_M_Tools_T_Snapshots] = new UIActionToggleManagerToolsMachineShowSnapshots(this); m_pool[UIActionIndexMN_M_Machine_M_Tools_T_Logs] = new UIActionToggleManagerToolsMachineShowLogs(this); m_pool[UIActionIndexMN_M_Machine_M_Tools_T_Activity] = new UIActionToggleManagerToolsMachineShowActivity(this); + m_pool[UIActionIndexMN_M_Machine_M_Tools_T_FileManager] = new UIActionToggleManagerToolsMachineShowFileManager(this); m_pool[UIActionIndexMN_M_Machine_S_Discard] = new UIActionSimpleManagerCommonPerformDiscard(this); m_pool[UIActionIndexMN_M_Machine_S_ShowLogDialog] = new UIActionSimpleManagerCommonShowMachineLogs(this); m_pool[UIActionIndexMN_M_Machine_S_Refresh] = new UIActionSimpleManagerCommonPerformRefresh(this); diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h index c18b099517a..aec4d918da8 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h @@ -83,6 +83,7 @@ enum UIActionIndexMN UIActionIndexMN_M_Group_M_Tools_T_Snapshots, UIActionIndexMN_M_Group_M_Tools_T_Logs, UIActionIndexMN_M_Group_M_Tools_T_Activity, + UIActionIndexMN_M_Group_M_Tools_T_FileManager, UIActionIndexMN_M_Group_S_Discard, UIActionIndexMN_M_Group_S_ShowLogDialog, UIActionIndexMN_M_Group_S_Refresh, @@ -127,6 +128,7 @@ enum UIActionIndexMN UIActionIndexMN_M_Machine_M_Tools_T_Snapshots, UIActionIndexMN_M_Machine_M_Tools_T_Logs, UIActionIndexMN_M_Machine_M_Tools_T_Activity, + UIActionIndexMN_M_Machine_M_Tools_T_FileManager, UIActionIndexMN_M_Machine_S_Discard, UIActionIndexMN_M_Machine_S_ShowLogDialog, UIActionIndexMN_M_Machine_S_Refresh, diff --git a/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp b/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp index 5cd00a2481c..dfcf347756c 100644 --- a/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp +++ b/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp @@ -24,15 +24,17 @@ /* GUI includes */ #include "UIActionPoolManager.h" -#include "UIErrorPane.h" #include "UIDetails.h" +#include "UIErrorPane.h" +#include "UIFileManager.h" #include "UIIconPool.h" -#include "UIVMActivityToolWidget.h" #include "UISnapshotPane.h" #include "UIToolPaneMachine.h" #include "UIVirtualMachineItem.h" +#include "UIVMActivityToolWidget.h" #include "UIVMLogViewerWidget.h" + /* Other VBox includes: */ #include <iprt/assert.h> @@ -47,6 +49,7 @@ UIToolPaneMachine::UIToolPaneMachine(UIActionPool *pActionPool, QWidget *pParent , m_pPaneSnapshots(0) , m_pPaneLogViewer(0) , m_pPaneVMActivityMonitor(0) + , m_pPaneFileManager(0) , m_fActive(false) { /* Prepare: */ @@ -211,6 +214,27 @@ void UIToolPaneMachine::openTool(UIToolType enmType) this, &UIToolPaneMachine::sigSwitchToActivityOverviewPane); break; } + case UIToolType_FileManager: + { + m_pPaneFileManager = 0; + + // UIFileManager::UIFileManager(EmbedTo enmEmbedding, UIActionPool *pActionPool, + // const CGuest &comGuest, QWidget *pParent, bool fShowToolbar /* = true */) + + AssertPtrReturnVoid(m_pPaneFileManager); +#ifndef VBOX_WS_MAC + const int iMargin = qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin) / 4; + m_pPaneFileManager->setContentsMargins(iMargin, 0, iMargin, 0); +#endif + + /* Configure pane: */ + m_pPaneFileManager->setProperty("ToolType", QVariant::fromValue(UIToolType_FileManager)); + //m_pPaneFileManager->setSelectedVMListItems(m_items); + /* Add into layout: */ + m_pLayout->addWidget(m_pPaneFileManager); + m_pLayout->setCurrentWidget(m_pPaneFileManager); + break; + } default: AssertFailedReturnVoid(); } diff --git a/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h b/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h index a300ca27bcb..bf8d44fc74b 100644 --- a/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h +++ b/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h @@ -42,7 +42,7 @@ class UIVMActivityToolWidget; class UISnapshotPane; class UIVirtualMachineItem; class UIVMLogViewerWidget; - +class UIFileManager; /** QWidget subclass representing container for tool panes. */ class UIToolPaneMachine : public QWidget @@ -133,6 +133,8 @@ private: UIVMLogViewerWidget *m_pPaneLogViewer; /** Holds the Performance Monitor pane instance. */ UIVMActivityToolWidget *m_pPaneVMActivityMonitor; + /** Holds the File Manager pane instance. */ + UIFileManager *m_pPaneFileManager; /** Holds whether this pane is active. */ bool m_fActive; |