VirtualBox

Changeset 91414 in vbox


Ignore:
Timestamp:
Sep 27, 2021 5:46:20 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9340. Setting current medium in the medium selector when it is started from vm window.

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

Legend:

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

    r91365 r91414  
    18501850}
    18511851
    1852 int UICommon::openMediumSelectorDialog(QWidget *pParent, UIMediumDeviceType  enmMediumType, QUuid &inOutUuid,
    1853                                        const QString &strMachineFolder, const QString &strMachineName,
    1854                                        const QString &strMachineGuestOSTypeId, bool fEnableCreate, const QUuid &uMachineID /* = QUuid() */)
     1852int UICommon::openMediumSelectorDialog(QWidget *pParent, UIMediumDeviceType  enmMediumType, const QUuid &uCurrentMediumId,
     1853                                       QUuid &uSelectedMediumUuid, const QString &strMachineFolder, const QString &strMachineName,
     1854                                       const QString &strMachineGuestOSTypeId, bool fEnableCreate, const QUuid &uMachineID)
    18551855{
    18561856    QUuid uMachineOrGlobalId = uMachineID == QUuid() ? gEDataManager->GlobalID : uMachineID;
    18571857
    18581858    QWidget *pDialogParent = windowManager().realParentWindow(pParent);
    1859     QPointer<UIMediumSelector> pSelector = new UIMediumSelector(inOutUuid, enmMediumType, strMachineName,
     1859    QPointer<UIMediumSelector> pSelector = new UIMediumSelector(uCurrentMediumId, enmMediumType, strMachineName,
    18601860                                                                strMachineFolder, strMachineGuestOSTypeId,
    18611861                                                                uMachineOrGlobalId, pDialogParent);
     
    18831883        else
    18841884        {
    1885             inOutUuid = selectedMediumIds[0];
    1886             updateRecentlyUsedMediumListAndFolder(enmMediumType, medium(inOutUuid).location());
     1885            uSelectedMediumUuid = selectedMediumIds[0];
     1886            updateRecentlyUsedMediumListAndFolder(enmMediumType, medium(uSelectedMediumUuid).location());
    18871887        }
    18881888    }
     
    21232123                if (target.type == UIMediumTarget::UIMediumTargetType_WithID)
    21242124                {
    2125                     int iDialogReturn = openMediumSelectorDialog(windowManager().mainWindowShown(), target.mediumType, uMediumID,
     2125                    int iDialogReturn = openMediumSelectorDialog(windowManager().mainWindowShown(), target.mediumType,
     2126                                                                 uCurrentID, uMediumID,
    21262127                                                                 strMachineFolder, comConstMachine.GetName(),
    21272128                                                                 comConstMachine.GetOSTypeId(), true /*fEnableCreate */, comConstMachine.GetId());
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h

    r91365 r91414  
    406406        /** Creates and shows a UIMediumSelector dialog.
    407407          * @param  parent                   Passes the parent of the dialog,
    408           * @param  enmMediumType            Passes the medium type.
    409           * @param  inOutUuid                Passes the currently selected medium id if there is one.
     408          * @param  enmMediumType            Passes the medium type,
     409          * @param  uCurrentMediumId         Passes  the id of the currently selected medium,
     410          * @param  uSelectedMediumUuid      Gets  the selected medium id from selection dialog,
    410411          * @param  strMachineFolder         Passes the machine folder,
    411412          * @param  strMachineName           Passes the name of the machine,
     
    415416          * returns the return code of the UIMediumSelector::ReturnCode as int. In case of a medium selection
    416417          *         UUID of the selected medium is stored in @param inOutUuid.*/
    417         int openMediumSelectorDialog(QWidget *pParent, UIMediumDeviceType  enmMediumType, QUuid &inOutUuid,
     418        int openMediumSelectorDialog(QWidget *pParent, UIMediumDeviceType  enmMediumType, const QUuid &uCurrentMediumId, QUuid &uSelectedMediumUuid,
    418419                                     const QString &strMachineFolder, const QString &strMachineName,
    419                                      const QString &strMachineGuestOSTypeId, bool fEnableCreate, const QUuid &uMachineID = QUuid());
     420                                     const QString &strMachineGuestOSTypeId, bool fEnableCreate, const QUuid &uMachineID);
    420421
    421422        /** Creates and shows a dialog (wizard) to create a medium of type @a enmMediumType.
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp

    r91365 r91414  
    559559    UIMediumItem *pMediumItem = searchItem(0, uMediumID);
    560560    if (pMediumItem)
     561    {
    561562        m_pTreeWidget->setCurrentItem(pMediumItem);
     563        QModelIndex itemIndex = m_pTreeWidget->itemIndex(pMediumItem);
     564        if (itemIndex.isValid())
     565            m_pTreeWidget->scrollTo(itemIndex, QAbstractItemView::EnsureVisible);
     566    }
    562567}
    563568
     
    717722        {
    718723            if (mediumItem->id() == mediumId)
    719             {
    720724                return mediumItem;
    721             }
    722725        }
    723726        UIMediumItem *pResult = searchItem(pChild, mediumId);
     
    726729    }
    727730    return 0;
    728 }
    729 
    730 void UIMediumSelector::scrollToItem(UIMediumItem* pItem)
    731 {
    732     if (!pItem)
    733         return;
    734 
    735     QModelIndex itemIndex = m_pTreeWidget->itemIndex(pItem);
    736     for (int i = 0; i < m_mediumItemList.size(); ++i)
    737     {
    738         QFont font = m_mediumItemList[i]->font(0);
    739         font.setBold(false);
    740         m_mediumItemList[i]->setFont(0, font);
    741     }
    742     QFont font = pItem->font(0);
    743     font.setBold(true);
    744     pItem->setFont(0, font);
    745 
    746     m_pTreeWidget->scrollTo(itemIndex);
    747731}
    748732
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.h

    r91365 r91414  
    122122    void          saveDefaultForeground();
    123123    void          selectMedium(const QUuid &uMediumID);
    124     void          scrollToItem(UIMediumItem* pItem);
    125124    void          setTitle();
    126125    QWidget              *m_pCentralWidget;
     
    154153    QString               m_strMachineGuestOSTypeId;
    155154    QUuid                 m_uMachineID;
     155    QUuid          m_uCurrentMediumId;
    156156};
    157157
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp

    r91365 r91414  
    40024002    const QString strMachineFolder(QFileInfo(m_strMachineSettingsFilePath).absolutePath());
    40034003
    4004     QUuid uMediumId;
     4004
     4005    QUuid uCurrentMediumId;
    40054006    if (m_pMediumIdHolder)
    4006         uMediumId = m_pMediumIdHolder->id();
    4007 
    4008     int iResult = uiCommon().openMediumSelectorDialog(this, m_pMediumIdHolder->type(), uMediumId /* in/out parameter */,
     4007        uCurrentMediumId = m_pMediumIdHolder->id();
     4008    QUuid uSelectedMediumId;
     4009    int iResult = uiCommon().openMediumSelectorDialog(this, m_pMediumIdHolder->type(), uCurrentMediumId, uSelectedMediumId,
    40094010                                                      strMachineFolder, m_strMachineName,
    40104011                                                      m_strMachineGuestOSTypeId,
     
    40124013
    40134014    if (iResult == UIMediumSelector::ReturnCode_Rejected ||
    4014         (iResult == UIMediumSelector::ReturnCode_Accepted && uMediumId.isNull()))
     4015        (iResult == UIMediumSelector::ReturnCode_Accepted && uSelectedMediumId.isNull()))
    40154016        return;
    40164017    if (iResult == static_cast<int>(UIMediumSelector::ReturnCode_LeftEmpty) &&
     
    40184019        return;
    40194020
    4020     m_pMediumIdHolder->setId(uMediumId);
     4021    m_pMediumIdHolder->setId(uSelectedMediumId);
    40214022}
    40224023
     
    52185219
    52195220    QUuid uMediumId;
    5220     int iResult = uiCommon().openMediumSelectorDialog(this, UIMediumDefs::mediumTypeToLocal(enmDeviceType), uMediumId,
     5221    int iResult = uiCommon().openMediumSelectorDialog(this, UIMediumDefs::mediumTypeToLocal(enmDeviceType),
     5222                                                      QUuid() /* current medium Id */, uMediumId,
    52215223                                                      strMachineFolder, m_strMachineName,
    52225224                                                      m_strMachineGuestOSTypeId,
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/firstrun/UIWizardFirstRunPageBasic.cpp

    r82968 r91414  
    4141    /* Get opened vboxMedium id: */
    4242    QUuid uMediumId;
    43     uiCommon().openMediumSelectorDialog(thisImp(), UIMediumDeviceType_DVD, uMediumId, "", "", "", true);
     43    uiCommon().openMediumSelectorDialog(thisImp(), UIMediumDeviceType_DVD, QUuid() /* current medium Id */,
     44                                        uMediumId, "", "", "", true, QUuid() /* Machinie Id */);
    4445    /* Update medium-combo if necessary: */
    4546    if (!uMediumId.isNull())
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMDiskPage.cpp

    r91294 r91414  
    4848    QUuid uMediumId;
    4949    int returnCode = uiCommon().openMediumSelectorDialog(pCaller, UIMediumDeviceType_HardDisk,
     50                                                         QUuid() /* current medium id */,
    5051                                                         uMediumId,
    5152                                                         strMachineFolder,
    5253                                                         strMachineBaseName,
    5354                                                         strOSTypeID,
    54                                                          false /* don't show/enable the create action: */);
     55                                                         false /* don't show/enable the create action: */,
     56                                                         QUuid() /* Machinie Id */);
    5557    if (returnCode != static_cast<int>(UIMediumSelector::ReturnCode_Accepted))
    5658        return QUuid();
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