void updateAppearance() { const CMachine &machine = m_session.GetMachine(); QString strToolTip = QApplication::translate("UIIndicatorsPool", "<p style='white-space:pre'><nobr>Indicates the activity " "of the virtual hard disks:</nobr>%1</p>", "HDD tooltip"); QString strFullData; bool fAttachmentsPresent = false; const CStorageControllerVector &controllers = machine.GetStorageControllers(); foreach (const CStorageController &controller, controllers) { QString strAttData; const CMediumAttachmentVector &attachments = machine.GetMediumAttachmentsOfController(controller.GetName()); foreach (const CMediumAttachment &attachment, attachments) { if (attachment.GetType() != KDeviceType_HardDisk) continue; strAttData += QString("<br> <nobr>%1: %2</nobr>") .arg(gpConverter->toString(StorageSlot(controller.GetBus(), attachment.GetPort(), attachment.GetDevice()))) .arg(UIMedium(attachment.GetMedium(), UIMediumType_HardDisk).location()); fAttachmentsPresent = true; } if (!strAttData.isNull()) strFullData += QString("<br><nobr><b>%1</b></nobr>").arg(controller.GetName()) + strAttData; }
UIMedium UIMediumEnumerator::medium(const QString &strMediumID) { /* Search through current medium-map for the medium with passed ID: */ if (m_mediums.contains(strMediumID)) return m_mediums[strMediumID]; /* Return NULL medium otherwise: */ return UIMedium(); }
bool UIWizardNewVD::createVirtualDisk() { /* Gather attributes: */ CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>(); qulonglong uVariant = field("mediumVariant").toULongLong(); QString strMediumPath = field("mediumPath").toString(); qulonglong uSize = field("mediumSize").toULongLong(); /* Check attributes: */ AssertReturn(!strMediumPath.isNull(), false); AssertReturn(uSize > 0, false); /* Get VBox object: */ CVirtualBox vbox = vboxGlobal().virtualBox(); /* Create new virtual hard-disk: */ CMedium virtualDisk = vbox.CreateMedium(mediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk); if (!vbox.isOk()) { msgCenter().cannotCreateHardDiskStorage(vbox, strMediumPath, this); return false; } /* Compose medium-variant: */ QVector<KMediumVariant> variants(sizeof(qulonglong)*8); for (int i = 0; i < variants.size(); ++i) { qulonglong temp = uVariant; temp &= UINT64_C(1)<<i; variants[i] = (KMediumVariant)temp; } /* Create base storage for the new virtual-disk: */ CProgress progress = virtualDisk.CreateBaseStorage(uSize, variants); if (!virtualDisk.isOk()) { msgCenter().cannotCreateHardDiskStorage(virtualDisk, strMediumPath, this); return false; } /* Show creation progress: */ msgCenter().showModalProgressDialog(progress, windowTitle(), ":/progress_media_create_90px.png", this); if (progress.GetCanceled()) return false; if (!progress.isOk() || progress.GetResultCode() != 0) { msgCenter().cannotCreateHardDiskStorage(progress, strMediumPath, this); return false; } /* Remember created virtual-disk: */ m_virtualDisk = virtualDisk; /* Inform VBoxGlobal about it: */ vboxGlobal().createMedium(UIMedium(m_virtualDisk, UIMediumType_HardDisk, KMediumState_Created)); return true; }
/* Insert hard-disks to the passed uimedium map. * Get existing one from the previous map if any. */ foreach (CMedium medium, inputMediums) { /* If VBoxGlobal is cleaning up, abort immediately: */ if (vboxGlobal().isCleaningUp()) break; /* Prepare uimedium on the basis of current medium: */ QString strMediumID = medium.GetId(); UIMedium uimedium = m_mediums.contains(strMediumID) ? m_mediums[strMediumID] : UIMedium(medium, mediumType); /* Insert uimedium into map: */ outputMediums.insert(uimedium.id(), uimedium); }
bool UIWizardNewVD::createVirtualDisk() { /* Gather attributes: */ CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>(); qulonglong uVariant = field("mediumVariant").toULongLong(); QString strMediumPath = field("mediumPath").toString(); qulonglong uSize = field("mediumSize").toULongLong(); /* Check attributes: */ AssertReturn(!strMediumPath.isNull(), false); AssertReturn(uSize > 0, false); /* Get vbox object: */ CVirtualBox vbox = vboxGlobal().virtualBox(); /* Create new virtual disk: */ CMedium virtualDisk = vbox.CreateHardDisk(mediumFormat.GetName(), strMediumPath); CProgress progress; if (!vbox.isOk()) { msgCenter().cannotCreateHardDiskStorage(this, vbox, strMediumPath, virtualDisk, progress); return false; } /* Create base storage for the new hard disk: */ progress = virtualDisk.CreateBaseStorage(uSize, uVariant); if (!virtualDisk.isOk()) { msgCenter().cannotCreateHardDiskStorage(this, vbox, strMediumPath, virtualDisk, progress); return false; } /* Show creation progress: */ msgCenter().showModalProgressDialog(progress, windowTitle(), ":/progress_media_create_90px.png", this, true); if (progress.GetCanceled()) return false; if (!progress.isOk() || progress.GetResultCode() != 0) { msgCenter().cannotCreateHardDiskStorage(this, vbox, strMediumPath, virtualDisk, progress); return false; } /* Remember created virtual-disk: */ m_virtualDisk = virtualDisk; /* Inform everybody there is a new medium: */ vboxGlobal().addMedium(UIMedium(m_virtualDisk, UIMediumType_HardDisk, KMediumState_Created)); return true; }
void UIMediumEnumerator::addNullMediumToMap(UIMediumMap &mediums) { /* Insert NULL uimedium to the passed uimedium map. * Get existing one from the previous map if any. */ QString strNullMediumID = UIMedium::nullID(); UIMedium uimedium = m_mediums.contains(strNullMediumID) ? m_mediums[strNullMediumID] : UIMedium(); mediums.insert(strNullMediumID, uimedium); }