/* 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); }
void UIMediumEnumerator::createMedium(const UIMedium &medium) { /* Get medium ID: */ QString strMediumID = medium.id(); LogRelFlow(("UIMediumEnumerator: Medium with ID={%s} created.\n", strMediumID.toAscii().constData())); /* Make sure medium doesn't exists already: */ AssertReturnVoid(!m_mediums.contains(strMediumID)); /* Insert medium: */ m_mediums[strMediumID] = medium; /* Notify listener: */ emit sigMediumCreated(strMediumID); }
void UIMediumEnumerator::updateMedium(const UIMedium &medium) { /* Get medium ID: */ QString strMediumID = medium.id(); LogRelFlow(("UIMediumEnumerator: Medium with ID={%s} updated.\n", strMediumID.toAscii().constData())); /* Make sure medium still exists: */ AssertReturnVoid(m_mediums.contains(strMediumID)); /* Update medium: */ m_mediums[strMediumID] = medium; /* Notify listener: */ emit sigMediumUpdated(strMediumID); }
void UIMediumEnumerator::createMedium(const UIMedium &medium) { /* Get medium ID: */ const QString strMediumID = medium.id(); /* Do not create UIMedium(s) with incorrect ID: */ AssertReturnVoid(!strMediumID.isNull()); AssertReturnVoid(strMediumID != UIMedium::nullID()); /* Make sure medium doesn't exists already: */ AssertReturnVoid(!m_mediums.contains(strMediumID)); /* Insert medium: */ m_mediums[strMediumID] = medium; LogRel(("GUI: UIMediumEnumerator: Medium with key={%s} created\n", strMediumID.toUtf8().constData())); /* Notify listener: */ emit sigMediumCreated(strMediumID); }
void UIMediumEnumerator::sltHandleMediumEnumerationTaskComplete(UITask *pTask) { /* Make sure that is one of our tasks: */ if (pTask->type() != UITask::Type_MediumEnumeration) return; AssertReturnVoid(m_tasks.contains(pTask)); /* Get enumerated UIMedium: */ const UIMedium uimedium = pTask->property("medium").value<UIMedium>(); const QString strUIMediumKey = uimedium.key(); LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} enumerated\n", strUIMediumKey.toUtf8().constData())); /* Remove task from internal set: */ m_tasks.remove(pTask); /* Make sure such UIMedium still exists: */ AssertReturnVoid(m_mediums.contains(strUIMediumKey)); /* Check if UIMedium ID was changed: */ const QString strUIMediumID = uimedium.id(); /* UIMedium ID was changed to nullID: */ if (strUIMediumID == UIMedium::nullID()) { /* Delete this medium: */ m_mediums.remove(strUIMediumKey); LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} closed and deleted (after enumeration)\n", strUIMediumKey.toUtf8().constData())); /* And notify listener about delete: */ emit sigMediumDeleted(strUIMediumKey); } /* UIMedium ID was changed to something proper: */ else if (strUIMediumID != strUIMediumKey) { /* We have to reinject enumerated medium: */ m_mediums.remove(strUIMediumKey); m_mediums[strUIMediumID] = uimedium; m_mediums[strUIMediumID].setKey(strUIMediumID); LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} has it changed to {%s}\n", strUIMediumKey.toUtf8().constData(), strUIMediumID.toUtf8().constData())); /* And notify listener about delete/create: */ emit sigMediumDeleted(strUIMediumKey); emit sigMediumCreated(strUIMediumID); } /* UIMedium ID was not changed: */ else { /* Just update enumerated medium: */ m_mediums[strUIMediumID] = uimedium; LogRel2(("GUI: UIMediumEnumerator: Medium with key={%s} updated\n", strUIMediumID.toUtf8().constData())); /* And notify listener about update: */ emit sigMediumEnumerated(strUIMediumID); } /* If there are no more tasks we know about: */ if (m_tasks.isEmpty()) { /* Notify listener: */ LogRel(("GUI: UIMediumEnumerator: Medium-enumeration finished!\n")); m_fMediumEnumerationInProgress = false; emit sigMediumEnumerationFinished(); } }