VBoxGlobal.h revision df30dbdfdbce7bc58d1a71d98772953017bc3269
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd * VBox frontends: Qt GUI ("VirtualBox"):
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd * VBoxGlobal class declaration
4f372d1b10414884e2526724169d6027468ea473gryzor * Copyright (C) 2006-2007 innotek GmbH
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc * This file is part of VirtualBox Open Source Edition (OSE), as
4f372d1b10414884e2526724169d6027468ea473gryzor * available from http://www.virtualbox.org. This file is free software;
4f372d1b10414884e2526724169d6027468ea473gryzor * you can redistribute it and/or modify it under the terms of the GNU
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * General Public License (GPL) as published by the Free Software
2e545ce2450a9953665f701bb05350f0d3f26275nd * Foundation, in version 2 as it comes in the "COPYING" file of the
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4f372d1b10414884e2526724169d6027468ea473gryzor// Auxiliary types
4f372d1b10414884e2526724169d6027468ea473gryzor////////////////////////////////////////////////////////////////////////////////
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar/** Simple media descriptor type. */
4f372d1b10414884e2526724169d6027468ea473gryzor VBoxMedia() : type (VBoxDefs::InvalidType), status (Ok) {}
4f372d1b10414884e2526724169d6027468ea473gryzor VBoxMedia (const CUnknown &d, VBoxDefs::DiskType t, Status s)
4f372d1b10414884e2526724169d6027468ea473gryzor// VirtualBox callback events
4f372d1b10414884e2526724169d6027468ea473gryzor////////////////////////////////////////////////////////////////////////////////
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VBoxMachineStateChangeEvent (const QUuid &aId, KMachineState aState)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar : QEvent ((QEvent::Type) VBoxDefs::MachineStateChangeEventType)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar : QEvent ((QEvent::Type) VBoxDefs::MachineDataChangeEventType)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VBoxMachineRegisteredEvent (const QUuid &aId, bool aRegistered)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar : QEvent ((QEvent::Type) VBoxDefs::MachineRegisteredEventType)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VBoxSessionStateChangeEvent (const QUuid &aId, KSessionState aState)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar : QEvent ((QEvent::Type) VBoxDefs::SessionStateChangeEventType)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VBoxSnapshotEvent (const QUuid &aMachineId, const QUuid &aSnapshotId,
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar : QEvent ((QEvent::Type) VBoxDefs::CanShowRegDlgEventType)
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar const bool mCanShow;
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar// VBoxGlobal
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar////////////////////////////////////////////////////////////////////////////////
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar const VBoxGlobalSettings &settings() const { return gset; }
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar bool isVMConsoleProcess() const { return !vmUuid.isNull(); }
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar VBoxDefs::RenderMode vmRenderMode() const { return vm_render_mode; }
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar const char *vmRenderModeStr() const { return vm_render_mode_str; }
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar bool isDebuggerVisibleAtStartup() const { return dbg_visible_at_startup; }
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar QString vmGuestOSTypeDescription (const QString &aId) const;
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar AssertMsg (pm, ("Icon for VM state %d must be defined", s));
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar AssertMsg (vm_state_color [s], ("No color for %d", s));
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar return vm_state_color [s] ? *vm_state_color [s] : none;
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar AssertMsg (!machineStates [s].isNull(), ("No text for %d", s));
0237f43ab925775250e266e479d0a337ff374a4btakashi AssertMsg (!sessionStates [s].isNull(), ("No text for %d", s));
0237f43ab925775250e266e479d0a337ff374a4btakashi AssertMsg (!storageBuses [t].isNull(), ("No text for %d", t));
0237f43ab925775250e266e479d0a337ff374a4btakashi QString toString (KStorageBus t, LONG c, LONG d) const;
0237f43ab925775250e266e479d0a337ff374a4btakashi AssertMsg (!diskTypes [t].isNull(), ("No text for %d", t));
0237f43ab925775250e266e479d0a337ff374a4btakashi AssertMsg (!diskStorageTypes [t].isNull(), ("No text for %d", t));
0237f43ab925775250e266e479d0a337ff374a4btakashi AssertMsg (!vrdpAuthTypes [t].isNull(), ("No text for %d", t));
e3e52ec6993de04bb0100e098ce0a569c7001382lgentis AssertMsg (!portModeTypes [t].isNull(), ("No text for %d", t));
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (!usbFilterActionTypes [t].isNull(), ("No text for %d", t));
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (!clipboardTypes [t].isNull(), ("No text for %d", t));
e3e52ec6993de04bb0100e098ce0a569c7001382lgentis KClipboardMode toClipboardModeType (const QString &s) const
4f372d1b10414884e2526724169d6027468ea473gryzor qFind (clipboardTypes.begin(), clipboardTypes.end(), s);
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (it != clipboardTypes.end(), ("No value for {%s}", s.latin1()));
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (!ideControllerTypes [t].isNull(), ("No text for %d", t));
4f372d1b10414884e2526724169d6027468ea473gryzor KIDEControllerType toIDEControllerType (const QString &s) const
4f372d1b10414884e2526724169d6027468ea473gryzor qFind (ideControllerTypes.begin(), ideControllerTypes.end(), s);
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (it != ideControllerTypes.end(), ("No value for {%s}", s.latin1()));
4f372d1b10414884e2526724169d6027468ea473gryzor return KIDEControllerType (it - ideControllerTypes.begin());
4f372d1b10414884e2526724169d6027468ea473gryzor KVRDPAuthType toVRDPAuthType (const QString &s) const
4f372d1b10414884e2526724169d6027468ea473gryzor qFind (vrdpAuthTypes.begin(), vrdpAuthTypes.end(), s);
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (it != vrdpAuthTypes.end(), ("No value for {%s}", s.latin1()));
4f372d1b10414884e2526724169d6027468ea473gryzor qFind (portModeTypes.begin(), portModeTypes.end(), s);
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (it != portModeTypes.end(), ("No value for {%s}", s.latin1()));
4aa603e6448b99f9371397d439795c91a93637eand KUSBDeviceFilterAction toUSBDevFilterAction (const QString &s) const
4f372d1b10414884e2526724169d6027468ea473gryzor qFind (usbFilterActionTypes.begin(), usbFilterActionTypes.end(), s);
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (it != usbFilterActionTypes.end(), ("No value for {%s}", s.latin1()));
4f372d1b10414884e2526724169d6027468ea473gryzor return KUSBDeviceFilterAction (it - usbFilterActionTypes.begin());
4f372d1b10414884e2526724169d6027468ea473gryzor * Similar to toString (KHardDiskType), but returns 'Differencing'
4f372d1b10414884e2526724169d6027468ea473gryzor * for normal hard disks that have a parent hard disk.
4f372d1b10414884e2526724169d6027468ea473gryzor QString hardDiskTypeString (const CHardDisk &aHD) const
4f372d1b10414884e2526724169d6027468ea473gryzor AssertMsg (!deviceTypes [t].isNull(), ("No text for %d", t));
d5d58e8346ef3553dfd7d5f51078a9b268729b3frbowen AssertMsg (it != deviceTypes.end(), ("No value for {%s}", s.latin1()));
e3e52ec6993de04bb0100e098ce0a569c7001382lgentis AssertMsg (!audioDriverTypes [t].isNull(), ("No text for %d", t));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis KAudioDriverType toAudioDriverType (const QString &s) const
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd qFind (audioDriverTypes.begin(), audioDriverTypes.end(), s);
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd AssertMsg (it != audioDriverTypes.end(), ("No value for {%s}", s.latin1()));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis return KAudioDriverType (it - audioDriverTypes.begin());
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis AssertMsg (!audioControllerTypes [t].isNull(), ("No text for %d", t));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis KAudioControllerType toAudioControllerType (const QString &s) const
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd qFind (audioControllerTypes.begin(), audioControllerTypes.end(), s);
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis AssertMsg (it != audioControllerTypes.end(), ("No value for {%s}", s.latin1()));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis return KAudioControllerType (it - audioControllerTypes.begin());
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd AssertMsg (!networkAdapterTypes [t].isNull(), ("No text for %d", t));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis KNetworkAdapterType toNetworkAdapterType (const QString &s) const
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis qFind (networkAdapterTypes.begin(), networkAdapterTypes.end(), s);
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis AssertMsg (it != networkAdapterTypes.end(), ("No value for {%s}", s.latin1()));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis return KNetworkAdapterType (it - networkAdapterTypes.begin());
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd AssertMsg (!networkAttachmentTypes [t].isNull(), ("No text for %d", t));
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd KNetworkAttachmentType toNetworkAttachmentType (const QString &s) const
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis qFind (networkAttachmentTypes.begin(), networkAttachmentTypes.end(), s);
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis AssertMsg (it != networkAttachmentTypes.end(), ("No value for {%s}", s.latin1()));
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis return KNetworkAttachmentType (it - networkAttachmentTypes.begin());
5fdb24f8db17ad5766598c7c0ecb8163a28f7a69lgentis AssertMsg (!USBDeviceStates [aState].isNull(), ("No text for %d", aState));
4f372d1b10414884e2526724169d6027468ea473gryzor QString toCOMPortName (ulong aIRQ, ulong aIOBase) const;
4f372d1b10414884e2526724169d6027468ea473gryzor bool toCOMPortNumbers (const QString &aName, ulong &aIRQ, ulong &aIOBase) const;
4f372d1b10414884e2526724169d6027468ea473gryzor QString toLPTPortName (ulong aIRQ, ulong aIOBase) const;
4f372d1b10414884e2526724169d6027468ea473gryzor bool toLPTPortNumbers (const QString &aName, ulong &aIRQ, ulong &aIOBase) const;
4f372d1b10414884e2526724169d6027468ea473gryzor return online ? mOnlineSnapshotIcon : mOfflineSnapshotIcon;
4f372d1b10414884e2526724169d6027468ea473gryzor /* details generators */
4f372d1b10414884e2526724169d6027468ea473gryzor QString details (const CHardDisk &aHD, bool aPredict = false,
e3e52ec6993de04bb0100e098ce0a569c7001382lgentis bool aDoRefresh = true);
4f372d1b10414884e2526724169d6027468ea473gryzor QString prepareFileNameForHTML (const QString &fn) const;
4f372d1b10414884e2526724169d6027468ea473gryzor QString detailsReport (const CMachine &m, bool isNewVM, bool withLinks,
4f372d1b10414884e2526724169d6027468ea473gryzor bool aDoRefresh = true);
4f372d1b10414884e2526724169d6027468ea473gryzor /* VirtualBox helpers */
4f372d1b10414884e2526724169d6027468ea473gryzor CSession openSession (const QUuid &aId, bool aExisting = false);
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung /** Shortcut to openSession (aId, true). */
727872d18412fc021f03969b8641810d8896820bhumbedooh CSession openExistingSession (const QUuid &aId) { return openSession (aId, true); }
0d0ba3a410038e179b695446bb149cce6264e0abnd * Returns a list of all currently registered media. This list is used
0d0ba3a410038e179b695446bb149cce6264e0abnd * to globally track the accessiblity state of all media on a dedicated
0d0ba3a410038e179b695446bb149cce6264e0abnd * thread. This the list is initially empty (before the first enumeration
ac082aefa89416cbdc9a1836eaf3bed9698201c8humbedooh * process is started using #startEnumeratingMedia()).
0d0ba3a410038e179b695446bb149cce6264e0abnd const VBoxMediaList ¤tMediaList() const { return media_list; }
727872d18412fc021f03969b8641810d8896820bhumbedooh /** Returns true if the media enumeration is in progress. */
0d0ba3a410038e179b695446bb149cce6264e0abnd bool isMediaEnumerationStarted() const { return media_enum_thread != NULL; }
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen void removeMedia (VBoxDefs::DiskType, const QUuid &);
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd /* various helpers */
void languageChange();
void cleanup();
const char *aDisabled = 0,
const char *aActive = 0);
bool aCanResize = true);
bool aCanResize = true);
const char *aName = 0,
const char*, const QString &,
bool resolveSymLinks = true);
bool aRecursive = false);
void mediaEnumStarted();
VBoxGlobal();
~VBoxGlobal() {}
void init();
bool mValid;
#ifdef VBOX_WITH_REGISTRATION
const char * vm_render_mode_str;
#ifdef VBOX_WITH_DEBUGGER_GUI
bool dbg_enabled;
bool dbg_visible_at_startup;
#if defined (Q_WS_WIN32)
void post()
void processAboutToShow();
void processHighlighted (int);
void processAboutToShow();
void processActivated (int);
bool mInverted;