VirtualBox

Changeset 84569 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
May 27, 2020 3:15:14 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
138299
Message:

FE/Qt: bugref:9653: VirtualBox Manager: Chooser pane: A bit of cleanup; buildTreeForMainRoot function should be able to preserve selection if requested.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp

    r84567 r84569  
    8585    /* Build tree for main root: */
    8686    buildTreeForMainRoot();
    87 
    8887    /* Load last selected-item: */
    8988    loadLastSelectedItem();
     
    947946        firstSelectedItem()->parentItem()->node()->sortNodes();
    948947
    949     /* Remember first selected item definition: */
    950     const QString strDefinition = firstSelectedItem() ? firstSelectedItem()->definition() : QString();
    951 
    952948    /* Rebuild tree for main root: */
    953     buildTreeForMainRoot();
    954 
    955     /* Restore selection if there was some item before: */
    956     if (!strDefinition.isNull())
    957         setSelectedItem(strDefinition);
    958     /* Else make sure at least one item selected: */
    959     else
    960         makeSureAtLeastOneItemSelected();
     949    buildTreeForMainRoot(true /* preserve selection */);
    961950}
    962951
     
    10891078        {
    10901079            /* Rebuild tree for main root: */
    1091             buildTreeForMainRoot();
    1092 
     1080            buildTreeForMainRoot(false /* preserve selection */);
    10931081            /* Select newly added item: */
    10941082            setSelectedItem(root()->searchForItem(uId.toString(),
     
    11121100    if (!fRegistered)
    11131101    {
    1114         /* Remember first selected item definition: */
    1115         const QString strDefinition = firstSelectedItem() ? firstSelectedItem()->definition() : QString();
    1116 
    11171102        /* Rebuild tree for main root: */
    1118         buildTreeForMainRoot();
    1119 
    1120         /* Restore selection if there was some item before: */
    1121         if (!strDefinition.isNull())
    1122             setSelectedItem(strDefinition);
    1123         /* Else make sure at least one item selected: */
    1124         else
    1125             makeSureAtLeastOneItemSelected();
     1103        buildTreeForMainRoot(true /* preserve selection */);
    11261104    }
    11271105    /* New VM registered? */
     
    11291107    {
    11301108        /* Rebuild tree for main root: */
    1131         buildTreeForMainRoot();
    1132 
     1109        buildTreeForMainRoot(false /* preserve selection */);
    11331110        /* Select newly added item: */
    11341111        setSelectedItem(root()->searchForItem(uId.toString(),
     
    11471124    {
    11481125        /* Rebuild tree for main root: */
    1149         buildTreeForMainRoot();
    1150 
     1126        buildTreeForMainRoot(false /* preserve selection */);
    11511127        /* Select newly added item: */
    11521128        setSelectedItem(root()->searchForItem(uId.toString(),
     
    11711147    UIChooserAbstractModel::sltHandleCloudListMachinesTaskComplete(pTask);
    11721148
    1173     /* Remember first selected item definition: */
    1174     const QString strDefinition = firstSelectedItem() ? firstSelectedItem()->definition() : QString();
    1175 
    11761149    /* Rebuild tree for main root: */
    1177     buildTreeForMainRoot();
    1178 
    1179     /* Restore selection if there was some item before: */
    1180     if (!strDefinition.isNull())
    1181         setSelectedItem(strDefinition);
    1182     /* Make sure at least one item selected: */
    1183     if (!currentItem())
    1184         makeSureAtLeastOneItemSelected();
     1150    buildTreeForMainRoot(true /* preserve selection */);
    11851151}
    11861152
     
    15701536}
    15711537
    1572 void UIChooserModel::buildTreeForMainRoot()
    1573 {
     1538void UIChooserModel::buildTreeForMainRoot(bool fPreserveSelection /* = false */)
     1539{
     1540    /* Remember first selected item if requested: */
     1541    QString strSelectedItemDefinition;
     1542    if (fPreserveSelection && firstSelectedItem())
     1543        strSelectedItemDefinition = firstSelectedItem()->definition();
     1544
    15741545    /* Cleanup previous tree if exists: */
    15751546    delete m_pRoot;
     
    15851556    /* Update tree for main root: */
    15861557    updateTreeForMainRoot();
     1558
     1559    /* Restore selection if requested: */
     1560    if (fPreserveSelection)
     1561    {
     1562        setSelectedItem(strSelectedItemDefinition);
     1563        makeSureAtLeastOneItemSelected();
     1564    }
    15871565}
    15881566
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h

    r84567 r84569  
    361361    /** @name Children stuff.
    362362      * @{ */
    363         /** Build tree for main root. */
    364         void buildTreeForMainRoot();
     363        /** [Re]builds tree for main root, preserves selection if requested. */
     364        void buildTreeForMainRoot(bool fPreserveSelection = false);
    365365        /** Update tree for main root. */
    366366        void updateTreeForMainRoot();
Note: See TracChangeset for help on using the changeset viewer.

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