VirtualBox

Ignore:
Timestamp:
Sep 4, 2013 2:34:13 PM (11 years ago)
Author:
vboxsync
Message:

FE/Qt: 6909: Medium-enumeration cleanup/rework (part 9).

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r48264 r48269  
    964964{
    965965    /* Search for corresponding UI medium: */
    966     UIMedium uimedium;
    967     if (!medium(cmedium, uimedium))
    968     {
    969         /* UI medium may be new and not in medium list, request enumeration: */
     966    UIMedium uimedium = cmedium.isNull() ? UIMedium() : medium(cmedium.GetId());
     967    if (!cmedium.isNull() && uimedium.isNull())
     968    {
     969        /* UI medium may be new and not in medium-list, request enumeration: */
    970970        startMediumEnumeration();
    971971
    972972        /* Search for corresponding UI medium again: */
    973         if (!medium(cmedium, uimedium))
     973        uimedium = medium(cmedium.GetId());
     974        if (uimedium.isNull())
    974975        {
    975976            /* Medium might be deleted already, return null string: */
     
    18001801}
    18011802
    1802 bool VBoxGlobal::medium(const CMedium &cmedium, UIMedium &uimedium) const
    1803 {
    1804     for (VBoxMediaList::ConstIterator it = m_mediums.begin(); it != m_mediums.end(); ++it)
    1805     {
    1806         if (((*it).medium().isNull() && cmedium.isNull()) ||
    1807             (!(*it).medium().isNull() && !cmedium.isNull() && (*it).medium().GetId() == cmedium.GetId()))
    1808         {
    1809             uimedium = (*it);
    1810             return true;
    1811         }
    1812     }
    1813     return false;
    1814 }
    1815 
    1816 UIMedium VBoxGlobal::medium(const QString &strMediumID) const
    1817 {
    1818     for (VBoxMediaList::ConstIterator it = m_mediums.begin(); it != m_mediums.end(); ++it)
    1819         if ((*it).id() == strMediumID)
    1820             return *it;
    1821     return UIMedium();
    1822 }
    1823 
    18241803/* Open some external medium using file open dialog
    18251804 * and temporary cache (enumerate) it in GUI inner mediums cache: */
     
    19381917    {
    19391918        /* Prepare vbox medium wrapper: */
    1940         UIMedium uimedium;
     1919        UIMedium uimedium = medium(cmedium.GetId());
    19411920
    19421921        /* First of all we should test if that medium already opened: */
    1943         if (!vboxGlobal().medium(cmedium, uimedium))
     1922        if (uimedium.isNull())
    19441923        {
    19451924            /* And create new otherwise: */
     
    20362015
    20372016    /* Make sure enumeration is not already started: */
    2038     if (m_pMediumEnumerationThread)
     2017    if (isMediumEnumerationInProgress())
    20392018        return;
    20402019
     
    21142093}
    21152094
     2095UIMedium VBoxGlobal::medium(const QString &strMediumID) const
     2096{
     2097    for (VBoxMediaList::ConstIterator it = m_mediums.begin(); it != m_mediums.end(); ++it)
     2098        if ((*it).id() == strMediumID)
     2099            return *it;
     2100    return UIMedium();
     2101}
     2102
    21162103/**
    21172104 *  Native language name of the currently installed translation.
     
    21902177    Assert (!mErrorIcon.isNull());
    21912178
    2192     /* refresh media properties since they contain some translations too  */
    2193     for (VBoxMediaList::iterator it = m_mediums.begin();
    2194          it != m_mediums.end(); ++ it)
    2195         it->refresh();
     2179    /* Re-enumerate uimedium since they contain some translations too: */
     2180    if (mValid)
     2181        startMediumEnumeration();
    21962182
    21972183#ifdef Q_WS_X11
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h

    r48264 r48269  
    246246    void updateMedium(const UIMedium &medium);
    247247    void deleteMedium(const QString &strMediumID);
    248     bool medium(const CMedium &cmedium, UIMedium &uimedium) const;
    249     UIMedium medium(const QString &strMediumID) const;
     248    QString openMediumWithFileOpenDialog(UIMediumType mediumType, QWidget *pParent = 0,
     249                                         const QString &strDefaultFolder = QString(), bool fUseLastFolder = true);
     250    QString openMedium(UIMediumType mediumType, QString strMediumLocation, QWidget *pParent = 0);
    250251
    251252    /* API: Medium-enumeration stuff: */
    252253    void startMediumEnumeration(bool fForceStart = true);
    253254    bool agressiveCaching() const { return mAgressiveCaching; }
    254     bool isMediaEnumerationStarted() const { return !!m_pMediumEnumerationThread; }
     255    bool isMediumEnumerationInProgress() const { return !!m_pMediumEnumerationThread; }
     256    UIMedium medium(const QString &strMediumID) const;
    255257    const VBoxMediaList &currentMediaList() const { return m_mediums; }
    256 
    257     QString openMediumWithFileOpenDialog(UIMediumType mediumType, QWidget *pParent = 0,
    258                                          const QString &strDefaultFolder = QString(), bool fUseLastFolder = true);
    259     QString openMedium(UIMediumType mediumType, QString strMediumLocation, QWidget *pParent = 0);
    260258
    261259    /* various helpers */
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp

    r48264 r48269  
    332332    /* If the media enumeration process is not started we have to select the
    333333     * newly added item as the current one for the case of new image was added or created */
    334     if (!vboxGlobal().isMediaEnumerationStarted())
     334    if (!vboxGlobal().isMediumEnumerationInProgress())
    335335        setCurrentItem(treeWidget(medium.type()), pMediumItem);
    336336
     
    680680
    681681    /* Update action availability: */
    682     bool fNotInEnumeration = !vboxGlobal().isMediaEnumerationStarted();
     682    bool fNotInEnumeration = !vboxGlobal().isMediumEnumerationInProgress();
    683683    bool fActionEnabledCopy    = currentTreeWidgetType() == UIMediumType_HardDisk &&
    684684                                 fNotInEnumeration && pMediumItem && checkMediumFor(pMediumItem, Action_Copy);
     
    11501150{
    11511151    /* If refresh was requested and enumeration was not yet started: */
    1152     if (m_fRefresh && !vboxGlobal().isMediaEnumerationStarted())
     1152    if (m_fRefresh && !vboxGlobal().isMediumEnumerationInProgress())
    11531153    {
    11541154        /* Just start medium-enumeration: */
     
    11721172        /* Finally, emulate enumeration finish,
    11731173         * if enumeration already finished or wasn't started: */
    1174         if (!vboxGlobal().isMediaEnumerationStarted())
     1174        if (!vboxGlobal().isMediumEnumerationInProgress())
    11751175            sltHandleMediumEnumerationFinish();
    11761176    }
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp

    r48264 r48269  
    19621962                    storageAttachmentData.m_fAttachmentNonRotational = attachment.GetNonRotational();
    19631963                    CMedium cmedium = attachment.GetMedium();
    1964                     UIMedium uimedium;
    1965                     vboxGlobal().medium(cmedium, uimedium);
     1964                    UIMedium uimedium = cmedium.isNull() ? UIMedium() : vboxGlobal().medium(cmedium.GetId());
    19661965                    storageAttachmentData.m_strAttachmentMediumId = uimedium.id();
    19671966                }
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp

    r48265 r48269  
    8989void VBoxMediaComboBox::repopulate()
    9090{
    91     if (!vboxGlobal().isMediaEnumerationStarted())
     91    if (!vboxGlobal().isMediumEnumerationInProgress())
    9292        vboxGlobal().startMediumEnumeration();
    9393    else
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette