VBoxGlobal.h revision 7d608a79e87ea3c381c3179ad58d902ee0b1b7a2
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync/** @file
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync *
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * VBox frontends: Qt GUI ("VirtualBox"):
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * VBoxGlobal class declaration
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
1b5c0cf2c481eac74a8e534020f8d597e1243dfevboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync/*
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Copyright (C) 2006 InnoTek Systemberatung GmbH
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync *
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * available from http://www.virtualbox.org. This file is free software;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * you can redistribute it and/or modify it under the terms of the GNU
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * General Public License as published by the Free Software Foundation,
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync *
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync * If you received this file as part of a commercial VirtualBox
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * distribution, then only the terms of your commercial VirtualBox
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * license agreement apply instead of the previous paragraph.
ff692be6eee921ab6df4b07f767ee530962db96dvboxsync */
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync
ff692be6eee921ab6df4b07f767ee530962db96dvboxsync#ifndef __VBoxGlobal_h__
ff692be6eee921ab6df4b07f767ee530962db96dvboxsync#define __VBoxGlobal_h__
dff284fc3f44b6795fa0dcc8b0ea62716f9b4a8cvboxsync
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include "COMDefs.h"
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync
dff284fc3f44b6795fa0dcc8b0ea62716f9b4a8cvboxsync#include "VBoxGlobalSettings.h"
dff284fc3f44b6795fa0dcc8b0ea62716f9b4a8cvboxsync
be64e0028fd1621fde0e5973d11a104a85b7301dvboxsync#include <qapplication.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qpixmap.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qiconset.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qcolor.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <quuid.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qthread.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qpopupmenu.h>
be64e0028fd1621fde0e5973d11a104a85b7301dvboxsync#include <qtooltip.h>
be64e0028fd1621fde0e5973d11a104a85b7301dvboxsync#include <qtextedit.h>
be64e0028fd1621fde0e5973d11a104a85b7301dvboxsync
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qptrvector.h>
c1e935608e3d55b6e5465b48d26b99dca51d742fvboxsync#include <qvaluevector.h>
be64e0028fd1621fde0e5973d11a104a85b7301dvboxsync#include <qvaluelist.h>
be64e0028fd1621fde0e5973d11a104a85b7301dvboxsync#include <qdict.h>
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync#include <qintdict.h>
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsyncclass QAction;
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsyncclass QLabel;
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync// Auxiliary types
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync////////////////////////////////////////////////////////////////////////////////
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync/** Simple media descriptor type. */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncstruct VBoxMedia
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync{
9894b4a01ed8e1a02faf20e1a2673c3d58fdbc4cvboxsync enum Status { Unknown, Ok, Error, Inaccessible };
9894b4a01ed8e1a02faf20e1a2673c3d58fdbc4cvboxsync
9894b4a01ed8e1a02faf20e1a2673c3d58fdbc4cvboxsync VBoxMedia() : type (VBoxDefs::InvalidType), status (Ok) {}
9894b4a01ed8e1a02faf20e1a2673c3d58fdbc4cvboxsync
9894b4a01ed8e1a02faf20e1a2673c3d58fdbc4cvboxsync VBoxMedia (const CUnknown &d, VBoxDefs::DiskType t, Status s)
588d72be2e737f3a510dd9ecbd366157827bebdfvboxsync : disk (d), type (t), status (s) {}
588d72be2e737f3a510dd9ecbd366157827bebdfvboxsync
588d72be2e737f3a510dd9ecbd366157827bebdfvboxsync CUnknown disk;
588d72be2e737f3a510dd9ecbd366157827bebdfvboxsync VBoxDefs::DiskType type;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync Status status;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsynctypedef QValueList <VBoxMedia> VBoxMediaList;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync// VirtualBox callback events
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync////////////////////////////////////////////////////////////////////////////////
89835f64f799888da0c5a27d8cb1d29b9ddd78f4vboxsync
89835f64f799888da0c5a27d8cb1d29b9ddd78f4vboxsyncclass VBoxMachineStateChangeEvent : public QEvent
89835f64f799888da0c5a27d8cb1d29b9ddd78f4vboxsync{
89835f64f799888da0c5a27d8cb1d29b9ddd78f4vboxsyncpublic:
89835f64f799888da0c5a27d8cb1d29b9ddd78f4vboxsync VBoxMachineStateChangeEvent (const QUuid &aId, CEnums::MachineState aState)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync : QEvent ((QEvent::Type) VBoxDefs::MachineStateChangeEventType)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync , id (aId), state (aState)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {}
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const QUuid id;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const CEnums::MachineState state;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncclass VBoxMachineDataChangeEvent : public QEvent
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync{
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncpublic:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxMachineDataChangeEvent (const QUuid &aId)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync : QEvent ((QEvent::Type) VBoxDefs::MachineDataChangeEventType)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync , id (aId)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {}
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const QUuid id;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncclass VBoxMachineRegisteredEvent : public QEvent
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync{
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncpublic:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxMachineRegisteredEvent (const QUuid &aId, bool aRegistered)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync : QEvent ((QEvent::Type) VBoxDefs::MachineRegisteredEventType)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync , id (aId), registered (aRegistered)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {}
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const QUuid id;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const bool registered;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncclass VBoxSessionStateChangeEvent : public QEvent
f274d97ed83aeee7260c7f142230c310c411b197vboxsync{
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsyncpublic:
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsync VBoxSessionStateChangeEvent (const QUuid &aId, CEnums::SessionState aState)
f274d97ed83aeee7260c7f142230c310c411b197vboxsync : QEvent ((QEvent::Type) VBoxDefs::SessionStateChangeEventType)
f274d97ed83aeee7260c7f142230c310c411b197vboxsync , id (aId), state (aState)
c1ee7311035c1f27779395f6afa03aaac9e04958vboxsync {}
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsync
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsync const QUuid id;
c1ee7311035c1f27779395f6afa03aaac9e04958vboxsync const CEnums::SessionState state;
c1ee7311035c1f27779395f6afa03aaac9e04958vboxsync};
b4ee030841e483516f370e864f794c63237afa61vboxsync
b4ee030841e483516f370e864f794c63237afa61vboxsyncclass VBoxSnapshotEvent : public QEvent
b4ee030841e483516f370e864f794c63237afa61vboxsync{
b4ee030841e483516f370e864f794c63237afa61vboxsyncpublic:
b4ee030841e483516f370e864f794c63237afa61vboxsync
b4ee030841e483516f370e864f794c63237afa61vboxsync enum What { Taken, Discarded, Changed };
b4ee030841e483516f370e864f794c63237afa61vboxsync
b4ee030841e483516f370e864f794c63237afa61vboxsync VBoxSnapshotEvent (const QUuid &aMachineId, const QUuid &aSnapshotId,
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync What aWhat)
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync : QEvent ((QEvent::Type) VBoxDefs::SnapshotEventType)
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync , what (aWhat)
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync , machineId (aMachineId), snapshotId (aSnapshotId)
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync {}
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync const What what;
5ab9cb7e6a2e3d7ef3523fee5c06deef41f3fb29vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const QUuid machineId;
4bb9f8a174cd3478319589466b852730e195af8bvboxsync const QUuid snapshotId;
4bb9f8a174cd3478319589466b852730e195af8bvboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncclass VBoxTextView : public QTextEdit
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync{
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncQ_OBJECT
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncpublic:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxTextView (QWidget*);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QSize sizeHint() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QSize minimumSizeHint() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsyncpublic slots:
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsync
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsync void setText (const QString &);
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsync};
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsync
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsync// VBoxGlobal
74647afb83e15262e85f00a38b82cdf30b42a0e9vboxsync////////////////////////////////////////////////////////////////////////////////
11d8bc8c43993b7f30843f6e96c57497ac1e21bdvboxsync
11d8bc8c43993b7f30843f6e96c57497ac1e21bdvboxsyncclass VBoxSelectorWnd;
11d8bc8c43993b7f30843f6e96c57497ac1e21bdvboxsyncclass VBoxConsoleWnd;
11d8bc8c43993b7f30843f6e96c57497ac1e21bdvboxsync
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsyncclass VBoxGlobal : public QObject
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync{
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync Q_OBJECT
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsyncpublic:
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync static VBoxGlobal &instance();
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync bool isValid() { return valid; }
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync QString versionString() { return verString; }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync CVirtualBox virtualBox() const { return vbox; }
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync const VBoxGlobalSettings &settings() const { return gset; }
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync bool setSettings (const VBoxGlobalSettings &gs);
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync VBoxSelectorWnd &selectorWnd();
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync VBoxConsoleWnd &consoleWnd();
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync bool isVMConsoleProcess() const { return !vmUuid.isNull(); }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync QUuid managedVMUuid() const { return vmUuid; }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync VBoxDefs::RenderMode vmRenderMode() const { return vm_render_mode; }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync const char *vmRenderModeStr() const { return vm_render_mode_str; }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync#ifdef VBOX_WITH_DEBUGGER_GUI
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync bool isDebuggerEnabled() const { return dbg_enabled; }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync bool isDebuggerVisibleAtStartup() const { return dbg_visible_at_startup; }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync#endif
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync /* VBox enum to/from string/icon/color convertors */
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync QStringList vmGuestOSTypeDescriptions() const;
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync CGuestOSType vmGuestOSType (int index) const;
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsync int vmGuestOSTypeIndex (const CGuestOSType &type) const;
3755b95fd0146c349e04e3ccbbf758967d4f57cdvboxsync QPixmap vmGuestOSTypeIcon (const QString &type) const;
ff692be6eee921ab6df4b07f767ee530962db96dvboxsync
e7b0349acb19798b9ce339edfdf98c4c698d0b84vboxsync QPixmap toIcon (CEnums::MachineState s) const
ff692be6eee921ab6df4b07f767ee530962db96dvboxsync {
ff692be6eee921ab6df4b07f767ee530962db96dvboxsync QPixmap *pm = mStateIcons [s];
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync AssertMsg (pm, ("Icon for VM state %d must be defined", s));
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync return pm ? *pm : QPixmap();
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync }
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync
d4da6b66b8ed77af031e028595fcea8fb1ed83advboxsync const QColor &toColor (CEnums::MachineState s) const
a7ff32e4a1fff63c1df8ce2bb11781e3f4d5cf0avboxsync {
a7ff32e4a1fff63c1df8ce2bb11781e3f4d5cf0avboxsync static const QColor none;
a7ff32e4a1fff63c1df8ce2bb11781e3f4d5cf0avboxsync AssertMsg (vm_state_color [s], ("No color for %d", s));
a7ff32e4a1fff63c1df8ce2bb11781e3f4d5cf0avboxsync return vm_state_color [s] ? *vm_state_color [s] : none;
a7ff32e4a1fff63c1df8ce2bb11781e3f4d5cf0avboxsync }
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync QString toString (CEnums::MachineState s) const
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync {
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync AssertMsg (!machineStates [s].isNull(), ("No text for %d", s));
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync return machineStates [s];
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync }
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync QString toString (CEnums::SessionState s) const
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync {
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync AssertMsg (!sessionStates [s].isNull(), ("No text for %d", s));
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync return sessionStates [s];
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync }
2ae34fd3d9ff18cb1a73c19608637d31424ea17avboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::DiskControllerType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!diskControllerTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return diskControllerTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::HardDiskType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!diskTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return diskTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::HardDiskStorageType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!diskStorageTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return diskStorageTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::VRDPAuthType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!vrdpAuthTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return vrdpAuthTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::USBDeviceFilterAction t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!usbFilterActionTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return usbFilterActionTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::ClipboardMode t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!clipboardTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return clipboardTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CEnums::ClipboardMode toClipboardModeType (const QString &s) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector::const_iterator it =
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync qFind (clipboardTypes.begin(), clipboardTypes.end(), s);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (it != clipboardTypes.end(), ("No value for {%s}", s.latin1()));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return CEnums::ClipboardMode (it - clipboardTypes.begin());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CEnums::VRDPAuthType toVRDPAuthType (const QString &s) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector::const_iterator it =
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync qFind (vrdpAuthTypes.begin(), vrdpAuthTypes.end(), s);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (it != vrdpAuthTypes.end(), ("No value for {%s}", s.latin1()));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return CEnums::VRDPAuthType (it - vrdpAuthTypes.begin());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CEnums::USBDeviceFilterAction toUSBDevFilterAction (const QString &s) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector::const_iterator it =
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync qFind (usbFilterActionTypes.begin(), usbFilterActionTypes.end(), s);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (it != usbFilterActionTypes.end(), ("No value for {%s}", s.latin1()));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return CEnums::USBDeviceFilterAction (it - usbFilterActionTypes.begin());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Similar to toString (CEnums::HardDiskType), but returns 'Differencing'
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * for normal hard disks that have a parent hard disk.
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString hardDiskTypeString (const CHardDisk &aHD) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync if (!aHD.GetParent().isNull())
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync Assert (aHD.GetType() == CEnums::NormalHardDisk);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return tr ("Differencing", "hard disk");
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return toString (aHD.GetType());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::DiskControllerType t, LONG d) const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::DeviceType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!deviceTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return deviceTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CEnums::DeviceType toDeviceType (const QString &s) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector::const_iterator it =
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync qFind (deviceTypes.begin(), deviceTypes.end(), s);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (it != deviceTypes.end(), ("No value for {%s}", s.latin1()));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return CEnums::DeviceType (it - deviceTypes.begin());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringList deviceTypeStrings() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::AudioDriverType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!audioDriverTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return audioDriverTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CEnums::AudioDriverType toAudioDriverType (const QString &s) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector::const_iterator it =
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync qFind (audioDriverTypes.begin(), audioDriverTypes.end(), s);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (it != audioDriverTypes.end(), ("No value for {%s}", s.latin1()));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return CEnums::AudioDriverType (it - audioDriverTypes.begin());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::NetworkAttachmentType t) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!networkAttachmentTypes [t].isNull(), ("No text for %d", t));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return networkAttachmentTypes [t];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CEnums::NetworkAttachmentType toNetworkAttachmentType (const QString &s) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector::const_iterator it =
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync qFind (networkAttachmentTypes.begin(), networkAttachmentTypes.end(), s);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (it != networkAttachmentTypes.end(), ("No value for {%s}", s.latin1()));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return CEnums::NetworkAttachmentType (it - networkAttachmentTypes.begin());
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toString (CEnums::USBDeviceState aState) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync AssertMsg (!USBDeviceStates [aState].isNull(), ("No text for %d", aState));
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return USBDeviceStates [aState];
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QPixmap snapshotIcon (bool online) const
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync {
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync return online ? mOnlineSnapshotIcon : mOfflineSnapshotIcon;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /* details generators */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString details (const CHardDisk &aHD, bool aPredict = false);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString details (const CUSBDevice &aDevice) const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString toolTip (const CUSBDevice &aDevice) const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString prepareFileNameForHTML (const QString &fn) const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString detailsReport (const CMachine &m, bool isNewVM, bool withLinks);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /* VirtualBox helpers */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CSession openSession (const QUuid &id);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool startMachine (const QUuid &id);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void startEnumeratingMedia();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Returns a list of all currently registered media. This list is used
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * to globally track the accessiblity state of all media on a dedicated
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * thread. This the list is initially empty (before the first enumeration
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * process is started using #startEnumeratingMedia()).
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const VBoxMediaList &currentMediaList() const { return media_list; }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /** Returns true if the media enumeration is in progress. */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool isMediaEnumerationStarted() const { return media_enum_thread != NULL; }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void addMedia (const VBoxMedia &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void updateMedia (const VBoxMedia &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void removeMedia (VBoxDefs::DiskType, const QUuid &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool findMedia (const CUnknown &, VBoxMedia &) const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /* various helpers */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool openURL (const QString &aURL);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString languageName() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString languageCountry() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString languageNameEnglish() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString languageCountryEnglish() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString languageTranslators() const;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void languageChange();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /** @internal made public for internal purposes */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void cleanup();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /* public static stuff */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static void fillPixmapBackGrd (QLabel *);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString languageId();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static void loadLanguage (const QString &aLangId = QString::null);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QIconSet iconSet (const char *aNormal,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char *aDisabled = 0,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char *aActive = 0);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QIconSet iconSetEx (const char *aNormal, const char *aSmallNormal,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char *aDisabled = 0, const char *aSmallDisabled = 0,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char *aActive = 0, const char *aSmallActive = 0);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QRect normalizeGeometry (const QRect &aRect, const QRect &aBoundRect,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool aCanResize = true);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static void centerWidget (QWidget *aWidget, QWidget *aRelative,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool aCanResize = true);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QChar decimalSep();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString sizeRegexp();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static Q_UINT64 parseSize (const QString &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString formatSize (Q_UINT64, int aMode = 0);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString highlight (const QString &aStr, bool aToolTip = false);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString systemLanguageId();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString getExistingDirectory (const QString &aDir, QWidget *aParent,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char *aName = 0,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const QString &aCaption = QString::null,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool aDirOnly = TRUE,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool resolveSymlinks = TRUE);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString getOpenFileName (const QString &, const QString &, QWidget*,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char*, const QString &,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString *defaultFilter = 0,
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool resolveSymLinks = true);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync static QString getFirstExistingDir (const QString &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncsignals:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Emitted at the beginning of the enumeration process started
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * by #startEnumeratingMedia().
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void mediaEnumStarted();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Emitted when a new media item from the list has updated
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * its accessibility state.
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void mediaEnumerated (const VBoxMedia &aMedia, int aIndex);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Emitted at the end of the enumeration process started
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * by #startEnumeratingMedia(). The @a aList argument is passed for
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * convenience, it is exactly the same as returned by #currentMediaList().
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void mediaEnumFinished (const VBoxMediaList &aList);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /** Emitted when a new media is added using #addMedia(). */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void mediaAdded (const VBoxMedia &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /** Emitted when the media is updated using #updateMedia(). */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void mediaUpdated (const VBoxMedia &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /** Emitted when the media is removed using #removeMedia(). */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void mediaRemoved (VBoxDefs::DiskType, const QUuid &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync /* signals emitted when the VirtualBox callback is called by the server
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * (not that currently these signals are emitted only when the application
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * is the in the VM selector mode) */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void machineStateChanged (const VBoxMachineStateChangeEvent &e);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void machineDataChanged (const VBoxMachineDataChangeEvent &e);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void machineRegistered (const VBoxMachineRegisteredEvent &e);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void sessionStateChanged (const VBoxSessionStateChangeEvent &e);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void snapshotChanged (const VBoxSnapshotEvent &e);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncprotected:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool event (QEvent *e);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool eventFilter (QObject *, QEvent *);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncprivate:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxGlobal();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync ~VBoxGlobal() {}
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void init();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool valid;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CVirtualBox vbox;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxGlobalSettings gset;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxSelectorWnd *selector_wnd;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxConsoleWnd *console_wnd;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QUuid vmUuid;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QThread *media_enum_thread;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxMediaList media_list;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxDefs::RenderMode vm_render_mode;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const char * vm_render_mode_str;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync#ifdef VBOX_WITH_DEBUGGER_GUI
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool dbg_enabled;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool dbg_visible_at_startup;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync#endif
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync#if defined (Q_WS_WIN32)
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync DWORD dwHTMLHelpCookie;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync#endif
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CVirtualBoxCallback callback;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync typedef QValueVector <QString> QStringVector;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString verString;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QValueVector <CGuestOSType> vm_os_types;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QDict <QPixmap> vm_os_type_icons;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QPtrVector <QColor> vm_state_color;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QIntDict <QPixmap> mStateIcons;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QPixmap mOfflineSnapshotIcon, mOnlineSnapshotIcon;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector machineStates;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector sessionStates;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector deviceTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector diskControllerTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector diskTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector diskStorageTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector vrdpAuthTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector usbFilterActionTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector diskControllerDevices;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector audioDriverTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector networkAttachmentTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector clipboardTypes;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QStringVector USBDeviceStates;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync mutable bool detailReportTemplatesReady;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync friend VBoxGlobal &vboxGlobal();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync friend class VBoxCallback;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncinline VBoxGlobal &vboxGlobal() { return VBoxGlobal::instance(); }
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync/**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * USB Popup Menu class.
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * This class provides the list of USB devices attached to the host.
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncclass VBoxUSBMenu : public QPopupMenu
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync{
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync Q_OBJECT
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncpublic:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync enum { USBDevicesMenuNoDevicesId = 1 };
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxUSBMenu (QWidget *);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync const CUSBDevice& getUSB (int);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void setConsole (const CConsole &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncprivate slots:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void processAboutToShow();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void processHighlighted (int);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncprivate:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QMap <int, CUSBDevice> mUSBDevicesMap;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync CConsole mConsole;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync/**
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * Enable/Disable Menu class.
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync * This class provides enable/disable menu items.
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncclass VBoxSwitchMenu : public QPopupMenu
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync{
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync Q_OBJECT
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncpublic:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync VBoxSwitchMenu (QWidget *, QAction *, bool aInverted = false);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void setToolTip (const QString &);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncprivate slots:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void processAboutToShow();
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync void processActivated (int);
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsyncprivate:
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QAction *mAction;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync QString mTip;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync bool mInverted;
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync};
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync#endif /* __VBoxGlobal_h__ */
f73d4f622845cf2471e94e6d1676a3e6ee1b9e68vboxsync