VirtualBox

Changeset 55827 in vbox for trunk


Ignore:
Timestamp:
May 12, 2015 1:31:09 PM (10 years ago)
Author:
vboxsync
Message:

FE/Qt: 7840: Allow attachment hot-plugging for USB storage controller.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp

    r55567 r55827  
    12031203                    ControllerItem *ctr = static_cast <ControllerItem*> (item);
    12041204                    CSystemProperties sp = vboxGlobal().virtualBox().GetSystemProperties();
    1205                     switch (m_configurationAccessLevel)
     1205                    const bool fIsMoreAttachmentsPossible = (ULONG)rowCount(aIndex) <
     1206                                                            (sp.GetMaxPortCountForStorageBus(ctr->ctrBusType()) *
     1207                                                             sp.GetMaxDevicesPerPortForStorageBus(ctr->ctrBusType()));
     1208                    if (fIsMoreAttachmentsPossible)
    12061209                    {
    1207                         case ConfigurationAccessLevel_Full: return ((uint)rowCount(aIndex) < sp.GetMaxPortCountForStorageBus(ctr->ctrBusType()) *
    1208                                                                                              sp.GetMaxDevicesPerPortForStorageBus(ctr->ctrBusType()));
    1209                         case ConfigurationAccessLevel_Runtime: return (ctr->ctrBusType() == KStorageBus_SATA) &&
    1210                                                                       ((uint)rowCount(aIndex) < ctr->portCount());
    1211                         default: break;
     1210                        switch (m_configurationAccessLevel)
     1211                        {
     1212                            case ConfigurationAccessLevel_Full:
     1213                                return true;
     1214                            case ConfigurationAccessLevel_Runtime:
     1215                            {
     1216                                switch (ctr->ctrBusType())
     1217                                {
     1218                                    case KStorageBus_USB:
     1219                                        return true;
     1220                                    case KStorageBus_SATA:
     1221                                        return (uint)rowCount(aIndex) < ctr->portCount();
     1222                                    default:
     1223                                        break;
     1224                                }
     1225                            }
     1226                            default:
     1227                                break;
     1228                        }
    12121229                    }
    1213                     return false;
    12141230                }
    12151231            }
     
    27832799
    27842800                /* Fetch hot-pluggable state: */
    2785                 m_pCheckBoxHotPluggable->setVisible(slt.bus == KStorageBus_SATA);
     2801                m_pCheckBoxHotPluggable->setVisible((slt.bus == KStorageBus_SATA) || (slt.bus == KStorageBus_USB));
    27862802                m_pCheckBoxHotPluggable->setChecked(fIsHotPluggable);
    27872803
     
    37873803                    }
    37883804                }
    3789                 if (controllerBus == KStorageBus_SATA)
     3805                if ((controllerBus == KStorageBus_SATA) || (controllerBus == KStorageBus_USB))
    37903806                {
    37913807                    if (fSuccess && isMachineOffline())
     
    38763892                    }
    38773893                }
    3878                 if (controllerBus == KStorageBus_SATA)
     3894                if ((controllerBus == KStorageBus_SATA) || (controllerBus == KStorageBus_USB))
    38793895                {
    38803896                    if (fSuccess && isMachineOffline())
     
    38903906                /* Show error message: */
    38913907                msgCenter().cannotAttachDevice(m_machine, mediumTypeToLocal(attachmentDeviceType),
    3892                                                  vboxMedium.location(),
    3893                                                  StorageSlot(controllerBus, iAttachmentPort, iAttachmentDevice), this);
     3908                                               vboxMedium.location(),
     3909                                               StorageSlot(controllerBus, iAttachmentPort, iAttachmentDevice), this);
    38943910            }
    38953911        }
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