VirtualBox

Ignore:
Timestamp:
Oct 8, 2013 9:57:15 PM (11 years ago)
Author:
vboxsync
Message:

Main,Frontends: Support for the USB storage controller

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp

    r48587 r48983  
    446446        case KStorageControllerType_I82078:      return QApplication::translate("VBoxGlobal", "I82078", "StorageControllerType");
    447447        case KStorageControllerType_LsiLogicSas: return QApplication::translate("VBoxGlobal", "LsiLogic SAS", "StorageControllerType");
     448        case KStorageControllerType_USB:         return QApplication::translate("VBoxGlobal", "USB", "StorageControllerType");
    448449        AssertMsgFailed(("No text for %d", type)); break;
    449450    }
     
    598599    list.insert(QApplication::translate("VBoxGlobal", "I82078", "StorageControllerType"),       KStorageControllerType_I82078);
    599600    list.insert(QApplication::translate("VBoxGlobal", "LsiLogic SAS", "StorageControllerType"), KStorageControllerType_LsiLogicSas);
     601    list.insert(QApplication::translate("VBoxGlobal", "USB", "StorageControllerType"),          KStorageControllerType_USB);
    600602    if (!list.contains(strType))
    601603    {
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp

    r48826 r48983  
    171171            }
    172172            strResult = QApplication::translate("VBoxGlobal", "Floppy Device %1", "StorageSlot").arg(storageSlot.device);
     173            break;
     174        }
     175        case KStorageBus_USB:
     176        {
     177            int iMaxPort = vboxGlobal().virtualBox().GetSystemProperties().GetMaxPortCountForStorageBus(storageSlot.bus);
     178            if (storageSlot.port < 0 || storageSlot.port > iMaxPort)
     179            {
     180                AssertMsgFailed(("No text for bus=%d & port=%d", storageSlot.bus, storageSlot.port));
     181                break;
     182            }
     183            if (storageSlot.device != 0)
     184            {
     185                AssertMsgFailed(("No text for bus=%d & port=%d & device=%d", storageSlot.bus, storageSlot.port, storageSlot.device));
     186                break;
     187            }
     188            strResult = QApplication::translate("VBoxGlobal", "USB Port %1", "StorageSlot").arg(storageSlot.port);
    173189            break;
    174190        }
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp

    r48577 r48983  
    156156                mPixmaps [i] = (PixmapPool::PixmapType) (PixmapPool::SATAControllerNormal + i);
    157157                break;
     158            case KStorageBus_USB:
     159                mPixmaps [i] = (PixmapPool::PixmapType) (PixmapPool::SATAControllerNormal + i);
     160                break;
    158161            default:
    159162                break;
     
    275278    return 1;
    276279}
     280
     281/* USB Controller Type */
     282USBStorageControllerType::USBStorageControllerType (KStorageControllerType aSubType)
     283    : AbstractControllerType (KStorageBus_USB, aSubType)
     284{
     285}
     286
     287KStorageControllerType USBStorageControllerType::first() const
     288{
     289    return KStorageControllerType_USB;
     290}
     291
     292uint USBStorageControllerType::size() const
     293{
     294    return 1;
     295}
     296
    277297
    278298/* Abstract Item */
     
    416436            mCtrType = new SASControllerType (aControllerType);
    417437            break;
     438        case KStorageBus_USB:
     439            mCtrType = new USBStorageControllerType (aControllerType);
     440            break;
     441
    418442        default:
    419443            AssertMsgFailed (("Wrong Controller Type {%d}!\n", aBusType));
     
    10171041                    vboxGlobal().virtualBox().GetSystemProperties().GetMaxInstancesOfStorageBus(chipsetType(), KStorageBus_SAS));
    10181042        }
     1043        case R_IsMoreUSBControllersPossible:
     1044        {
     1045            return (m_dialogType == SettingsDialogType_Offline) &&
     1046                   (static_cast<RootItem*>(mRootItem)->childCount(KStorageBus_USB) <
     1047                    vboxGlobal().virtualBox().GetSystemProperties().GetMaxInstancesOfStorageBus(chipsetType(), KStorageBus_USB));
     1048        }
    10191049        case R_IsMoreAttachmentsPossible:
    10201050        {
     
    15521582{
    15531583    QMap<KStorageBus, int> currentMap;
    1554     for (int iStorageBusType = KStorageBus_IDE; iStorageBusType <= KStorageBus_SAS; ++iStorageBusType)
     1584    for (int iStorageBusType = KStorageBus_IDE; iStorageBusType <= KStorageBus_USB; ++iStorageBusType)
    15551585    {
    15561586        currentMap.insert((KStorageBus)iStorageBusType,
     
    15631593{
    15641594    QMap<KStorageBus, int> maximumMap;
    1565     for (int iStorageBusType = KStorageBus_IDE; iStorageBusType <= KStorageBus_SAS; ++iStorageBusType)
     1595    for (int iStorageBusType = KStorageBus_IDE; iStorageBusType <= KStorageBus_USB; ++iStorageBusType)
    15661596    {
    15671597        maximumMap.insert((KStorageBus)iStorageBusType,
     
    17221752    : mStorageModel(0)
    17231753    , mAddCtrAction(0), mDelCtrAction(0)
    1724     , mAddIDECtrAction(0), mAddSATACtrAction(0), mAddSCSICtrAction(0), mAddSASCtrAction(0), mAddFloppyCtrAction(0)
     1754    , mAddIDECtrAction(0), mAddSATACtrAction(0), mAddSCSICtrAction(0), mAddSASCtrAction(0), mAddFloppyCtrAction(0), mAddUSBCtrAction(0)
    17251755    , mAddAttAction(0), mDelAttAction(0)
    17261756    , mAddHDAttAction(0), mAddCDAttAction(0), mAddFDAttAction(0)
     
    17641794    mAddSASCtrAction = new QAction (this);
    17651795    mAddSASCtrAction->setIcon(UIIconPool::iconSet(PixmapPool::pool()->pixmap (PixmapPool::SATAControllerAddEn),
     1796                                                  PixmapPool::pool()->pixmap (PixmapPool::SATAControllerAddDis)));
     1797
     1798    mAddUSBCtrAction = new QAction (this);
     1799    mAddUSBCtrAction->setIcon(UIIconPool::iconSet(PixmapPool::pool()->pixmap (PixmapPool::SATAControllerAddEn),
    17661800                                                  PixmapPool::pool()->pixmap (PixmapPool::SATAControllerAddDis)));
    17671801
     
    18441878    connect (mAddSASCtrAction, SIGNAL (triggered (bool)), this, SLOT (addSASController()));
    18451879    connect (mAddFloppyCtrAction, SIGNAL (triggered (bool)), this, SLOT (addFloppyController()));
     1880    connect (mAddUSBCtrAction, SIGNAL (triggered (bool)), this, SLOT (addUSBController()));
    18461881    connect (mDelCtrAction, SIGNAL (triggered (bool)), this, SLOT (delController()));
    18471882    connect (mAddAttAction, SIGNAL (triggered (bool)), this, SLOT (addAttachment()));
     
    21682203    QMap<KStorageBus, int> currentType = mStorageModel->currentControllerTypes();
    21692204    QMap<KStorageBus, int> maximumType = mStorageModel->maximumControllerTypes();
    2170     for (int iStorageBusType = KStorageBus_IDE; iStorageBusType <= KStorageBus_SAS; ++iStorageBusType)
     2205    for (int iStorageBusType = KStorageBus_IDE; iStorageBusType <= KStorageBus_USB; ++iStorageBusType)
    21712206    {
    21722207        if (currentType[(KStorageBus)iStorageBusType] > maximumType[(KStorageBus)iStorageBusType])
     
    22142249    mAddSASCtrAction->setText (tr ("Add SAS Controller"));
    22152250    mAddFloppyCtrAction->setText (tr ("Add Floppy Controller"));
     2251    mAddUSBCtrAction->setText (tr ("Add USB Controller"));
    22162252    mDelCtrAction->setText (tr ("Remove Controller"));
    22172253    mAddAttAction->setText (tr ("Add Attachment"));
     
    23232359    menu.addAction (mAddSASCtrAction);
    23242360    menu.addAction (mAddFloppyCtrAction);
     2361    menu.addAction (mAddUSBCtrAction);
    23252362    menu.exec (QCursor::pos());
    23262363}
     
    23492386{
    23502387    addControllerWrapper (generateUniqueName ("SAS"), KStorageBus_SAS, KStorageControllerType_LsiLogicSas);
     2388}
     2389
     2390void UIMachineSettingsStorage::addUSBController()
     2391{
     2392    addControllerWrapper (generateUniqueName ("USB"), KStorageBus_USB, KStorageControllerType_USB);
    23512393}
    23522394
     
    24742516                KStorageBus bus = mStorageModel->data (index, StorageModel::R_CtrBusType).value <KStorageBus>();
    24752517                mLbPortCount->setVisible (bus == KStorageBus_SATA);
    2476                 mSbPortCount->setVisible (bus == KStorageBus_SATA);
     2518                mSbPortCount->setVisible (bus == KStorageBus_SATA || bus == KStorageBus_SAS);
    24772519                uint uPortCount = mStorageModel->data (index, StorageModel::R_CtrPortCount).toUInt();
    24782520                mSbPortCount->setValue (uPortCount);
     
    27552797    bool isFloppyPossible = mStorageModel->data (index, StorageModel::R_IsMoreFloppyControllersPossible).toBool();
    27562798    bool isSASPossible = mStorageModel->data (index, StorageModel::R_IsMoreSASControllersPossible).toBool();
     2799    bool isUSBPossible = mStorageModel->data (index, StorageModel::R_IsMoreUSBControllersPossible).toBool();
    27572800
    27582801    bool isController = mStorageModel->data (index, StorageModel::R_IsController).toBool();
     
    27602803    bool isAttachmentsPossible = mStorageModel->data (index, StorageModel::R_IsMoreAttachmentsPossible).toBool();
    27612804
    2762     mAddCtrAction->setEnabled (isIDEPossible || isSATAPossible || isSCSIPossible || isFloppyPossible || isSASPossible);
     2805    mAddCtrAction->setEnabled (isIDEPossible || isSATAPossible || isSCSIPossible || isFloppyPossible || isSASPossible || isUSBPossible);
    27632806    mAddIDECtrAction->setEnabled (isIDEPossible);
    27642807    mAddSATACtrAction->setEnabled (isSATAPossible);
     
    27662809    mAddFloppyCtrAction->setEnabled (isFloppyPossible);
    27672810    mAddSASCtrAction->setEnabled (isSASPossible);
     2811    mAddUSBCtrAction->setEnabled (isUSBPossible);
    27682812
    27692813    mAddAttAction->setEnabled (isController && isAttachmentsPossible);
     
    30493093        case KStorageBus_Floppy:
    30503094            Assert (mStorageModel->data (index, StorageModel::R_IsMoreFloppyControllersPossible).toBool());
     3095            break;
     3096        case KStorageBus_USB:
     3097            Assert (mStorageModel->data (index, StorageModel::R_IsMoreUSBControllersPossible).toBool());
    30513098            break;
    30523099        default:
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h

    r48264 r48983  
    229229};
    230230
     231/* USB Controller Type */
     232class USBStorageControllerType : public AbstractControllerType
     233{
     234public:
     235
     236    USBStorageControllerType (KStorageControllerType aSubType);
     237
     238private:
     239
     240    KStorageControllerType first() const;
     241    uint size() const;
     242};
     243
    231244/* Abstract Item */
    232245class AbstractItem
     
    436449        R_IsMoreFloppyControllersPossible,
    437450        R_IsMoreSASControllersPossible,
     451        R_IsMoreUSBControllersPossible,
    438452        R_IsMoreAttachmentsPossible,
    439453
     
    692706    void addFloppyController();
    693707    void addSASController();
     708    void addUSBController();
    694709    void delController();
    695710
     
    770785    QAction *mAddSASCtrAction;
    771786    QAction *mAddFloppyCtrAction;
     787    QAction *mAddUSBCtrAction;
    772788    QAction *mAddAttAction;
    773789    QAction *mDelAttAction;
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