VirtualBox

Changeset 102935 in vbox


Ignore:
Timestamp:
Jan 17, 2024 5:18:21 PM (14 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161163
Message:

FE/Qt: bugref:10513: VM settings / Storage page: Large cleanup; Coding style, optimizations and lots of paranoia sanity checks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIStorageSettingsEditor.cpp

    r102933 r102935  
    30433043{
    30443044    /* Check whether update is required: */
    3045     if (m_enmConfigurationAccessLevel != enmConfigurationAccessLevel)
    3046     {
    3047         /* Update value and let model know: */
    3048         m_enmConfigurationAccessLevel = enmConfigurationAccessLevel;
    3049         if (m_pModelStorage)
    3050             m_pModelStorage->setConfigurationAccessLevel(enmConfigurationAccessLevel);
    3051 
    3052         /* Check actual level: */
    3053         const bool fMachineOffline = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Full;
    3054         const bool fMachinePoweredOff = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Partial_PoweredOff;
    3055         const bool fMachineSaved = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Partial_Saved;
    3056         const bool fMachineOnline = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Partial_Running;
    3057         const bool fMachineInValidMode = fMachineOffline || fMachinePoweredOff || fMachineSaved || fMachineOnline;
    3058 
    3059         /* Declare required variables: */
    3060         const QModelIndex index = m_pTreeViewStorage->currentIndex();
    3061         const KDeviceType enmDeviceType = m_pModelStorage->data(index, StorageModel::R_AttDevice).value<KDeviceType>();
    3062 
    3063         /* Polish left pane availability: */
    3064         m_pLabelSeparatorLeftPane->setEnabled(fMachineInValidMode);
    3065         m_pTreeViewStorage->setEnabled(fMachineInValidMode);
    3066 
    3067         /* Polish empty information pane availability: */
    3068         m_pLabelSeparatorEmpty->setEnabled(fMachineInValidMode);
    3069         m_pLabelInfo->setEnabled(fMachineInValidMode);
    3070 
    3071         /* Polish controllers pane availability: */
    3072         m_pLabelSeparatorParameters->setEnabled(fMachineInValidMode);
    3073         m_pLabelName->setEnabled(fMachineOffline);
    3074         m_pEditorName->setEnabled(fMachineOffline);
    3075         m_pLabelType->setEnabled(fMachineOffline);
    3076         m_pComboType->setEnabled(fMachineOffline);
    3077         m_pLabelPortCount->setEnabled(fMachineOffline);
    3078         m_pSpinboxPortCount->setEnabled(fMachineOffline);
    3079         m_pCheckBoxIoCache->setEnabled(fMachineOffline);
    3080 
    3081         /* Polish attachments pane availability: */
    3082         m_pLabelSeparatorAttributes->setEnabled(fMachineInValidMode);
    3083         m_pLabelMedium->setEnabled(fMachineOffline || (fMachineOnline && enmDeviceType != KDeviceType_HardDisk));
    3084         m_pComboSlot->setEnabled(fMachineOffline);
    3085         m_pToolButtonOpen->setEnabled(fMachineOffline || (fMachineOnline && enmDeviceType != KDeviceType_HardDisk));
    3086         m_pCheckBoxPassthrough->setEnabled(fMachineOffline);
    3087         m_pCheckBoxTempEject->setEnabled(fMachineInValidMode);
    3088         m_pCheckBoxNonRotational->setEnabled(fMachineOffline);
    3089         m_pCheckBoxHotPluggable->setEnabled(fMachineOffline);
    3090         m_pLabelSeparatorInformation->setEnabled(fMachineInValidMode);
    3091         m_pLabelHDFormat->setEnabled(fMachineInValidMode);
    3092         m_pFieldHDFormat->setEnabled(fMachineInValidMode);
    3093         m_pLabelCDFDType->setEnabled(fMachineInValidMode);
    3094         m_pFieldCDFDType->setEnabled(fMachineInValidMode);
    3095         m_pLabelHDVirtualSize->setEnabled(fMachineInValidMode);
    3096         m_pFieldHDVirtualSize->setEnabled(fMachineInValidMode);
    3097         m_pLabelHDActualSize->setEnabled(fMachineInValidMode);
    3098         m_pFieldHDActualSize->setEnabled(fMachineInValidMode);
    3099         m_pLabelCDFDSize->setEnabled(fMachineInValidMode);
    3100         m_pFieldCDFDSize->setEnabled(fMachineInValidMode);
    3101         m_pLabelHDDetails->setEnabled(fMachineInValidMode);
    3102         m_pFieldHDDetails->setEnabled(fMachineInValidMode);
    3103         m_pLabelLocation->setEnabled(fMachineInValidMode);
    3104         m_pFieldLocation->setEnabled(fMachineInValidMode);
    3105         m_pLabelUsage->setEnabled(fMachineInValidMode);
    3106         m_pFieldUsage->setEnabled(fMachineInValidMode);
    3107         m_pLabelEncryption->setEnabled(fMachineInValidMode);
    3108         m_pFieldEncryption->setEnabled(fMachineInValidMode);
    3109 
    3110         /* Update remaining stuff: */
    3111         sltUpdateActionStates();
    3112         sltGetInformation();
    3113     }
     3045    if (m_enmConfigurationAccessLevel == enmConfigurationAccessLevel)
     3046        return;
     3047
     3048    /* Update the value: */
     3049    m_enmConfigurationAccessLevel = enmConfigurationAccessLevel;
     3050
     3051    /* Propagate value to storage model as well: */
     3052    AssertPtrReturnVoid(m_pModelStorage);
     3053    m_pModelStorage->setConfigurationAccessLevel(enmConfigurationAccessLevel);
     3054
     3055    /* Acquire various options: */
     3056    const bool fMachineOffline = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Full;
     3057    const bool fMachinePoweredOff = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Partial_PoweredOff;
     3058    const bool fMachineSaved = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Partial_Saved;
     3059    const bool fMachineOnline = m_enmConfigurationAccessLevel == ConfigurationAccessLevel_Partial_Running;
     3060    const bool fMachineInValidMode = fMachineOffline || fMachinePoweredOff || fMachineSaved || fMachineOnline;
     3061    const QModelIndex index = m_pTreeViewStorage->currentIndex();
     3062    const KDeviceType enmDeviceType = m_pModelStorage->data(index, StorageModel::R_AttDevice).value<KDeviceType>();
     3063
     3064    /* Polish left pane availability: */
     3065    m_pLabelSeparatorLeftPane->setEnabled(fMachineInValidMode);
     3066    m_pTreeViewStorage->setEnabled(fMachineInValidMode);
     3067
     3068    /* Polish empty information pane availability: */
     3069    m_pLabelSeparatorEmpty->setEnabled(fMachineInValidMode);
     3070    m_pLabelInfo->setEnabled(fMachineInValidMode);
     3071
     3072    /* Polish controllers pane availability: */
     3073    m_pLabelSeparatorParameters->setEnabled(fMachineInValidMode);
     3074    m_pLabelName->setEnabled(fMachineOffline);
     3075    m_pEditorName->setEnabled(fMachineOffline);
     3076    m_pLabelType->setEnabled(fMachineOffline);
     3077    m_pComboType->setEnabled(fMachineOffline);
     3078    m_pLabelPortCount->setEnabled(fMachineOffline);
     3079    m_pSpinboxPortCount->setEnabled(fMachineOffline);
     3080    m_pCheckBoxIoCache->setEnabled(fMachineOffline);
     3081
     3082    /* Polish attachments pane availability: */
     3083    m_pLabelSeparatorAttributes->setEnabled(fMachineInValidMode);
     3084    m_pLabelMedium->setEnabled(fMachineOffline || (fMachineOnline && enmDeviceType != KDeviceType_HardDisk));
     3085    m_pComboSlot->setEnabled(fMachineOffline);
     3086    m_pToolButtonOpen->setEnabled(fMachineOffline || (fMachineOnline && enmDeviceType != KDeviceType_HardDisk));
     3087    m_pCheckBoxPassthrough->setEnabled(fMachineOffline);
     3088    m_pCheckBoxTempEject->setEnabled(fMachineInValidMode);
     3089    m_pCheckBoxNonRotational->setEnabled(fMachineOffline);
     3090    m_pCheckBoxHotPluggable->setEnabled(fMachineOffline);
     3091    m_pLabelSeparatorInformation->setEnabled(fMachineInValidMode);
     3092    m_pLabelHDFormat->setEnabled(fMachineInValidMode);
     3093    m_pFieldHDFormat->setEnabled(fMachineInValidMode);
     3094    m_pLabelCDFDType->setEnabled(fMachineInValidMode);
     3095    m_pFieldCDFDType->setEnabled(fMachineInValidMode);
     3096    m_pLabelHDVirtualSize->setEnabled(fMachineInValidMode);
     3097    m_pFieldHDVirtualSize->setEnabled(fMachineInValidMode);
     3098    m_pLabelHDActualSize->setEnabled(fMachineInValidMode);
     3099    m_pFieldHDActualSize->setEnabled(fMachineInValidMode);
     3100    m_pLabelCDFDSize->setEnabled(fMachineInValidMode);
     3101    m_pFieldCDFDSize->setEnabled(fMachineInValidMode);
     3102    m_pLabelHDDetails->setEnabled(fMachineInValidMode);
     3103    m_pFieldHDDetails->setEnabled(fMachineInValidMode);
     3104    m_pLabelLocation->setEnabled(fMachineInValidMode);
     3105    m_pFieldLocation->setEnabled(fMachineInValidMode);
     3106    m_pLabelUsage->setEnabled(fMachineInValidMode);
     3107    m_pFieldUsage->setEnabled(fMachineInValidMode);
     3108    m_pLabelEncryption->setEnabled(fMachineInValidMode);
     3109    m_pFieldEncryption->setEnabled(fMachineInValidMode);
     3110
     3111    /* Update remaining stuff: */
     3112    sltUpdateActionStates();
     3113    sltGetInformation();
    31143114}
    31153115
    31163116void UIStorageSettingsEditor::setChipsetType(KChipsetType enmType)
    31173117{
    3118     if (m_pModelStorage)
    3119     {
    3120         /* Make sure chipset type has changed: */
    3121         if (m_pModelStorage->chipsetType() != enmType)
    3122         {
    3123             /* Update chipset type value: */
    3124             m_pModelStorage->setChipsetType(enmType);
    3125             sltUpdateActionStates();
    3126 
    3127             /* Notify listeners: */
    3128             emit sigValueChanged();
    3129         }
    3130     }
     3118    /* Check whether update is required: */
     3119    AssertPtrReturnVoid(m_pModelStorage);
     3120    if (m_pModelStorage->chipsetType() == enmType)
     3121        return;
     3122
     3123    /* Update chipset type value: */
     3124    m_pModelStorage->setChipsetType(enmType);
     3125    sltUpdateActionStates();
     3126
     3127    /* Notify listeners: */
     3128    emit sigValueChanged();
    31313129}
    31323130
    31333131KChipsetType UIStorageSettingsEditor::chipsetType() const
    31343132{
    3135     return m_pModelStorage ? m_pModelStorage->chipsetType() : KChipsetType_Null;
     3133    AssertPtrReturn(m_pModelStorage, KChipsetType_Null);
     3134    return m_pModelStorage->chipsetType();
    31363135}
    31373136
    31383137QMap<KStorageBus, int> UIStorageSettingsEditor::currentControllerTypes() const
    31393138{
     3139    AssertPtr(m_pModelStorage);
    31403140    return m_pModelStorage ? m_pModelStorage->currentControllerTypes() : QMap<KStorageBus, int>();
    31413141}
     
    31433143QMap<KStorageBus, int> UIStorageSettingsEditor::maximumControllerTypes() const
    31443144{
     3145    AssertPtr(m_pModelStorage);
    31453146    return m_pModelStorage ? m_pModelStorage->maximumControllerTypes() : QMap<KStorageBus, int>();
    31463147}
     
    31503151{
    31513152    /* Clear model initially: */
     3153    AssertPtrReturnVoid(m_pModelStorage);
    31523154    m_pModelStorage->clear();
    31533155
     
    32003202{
    32013203    /* For each controller: */
     3204    AssertPtrReturnVoid(m_pModelStorage);
    32023205    const QModelIndex rootIndex = m_pModelStorage->root();
    32033206    for (int iControllerIndex = 0; iControllerIndex < m_pModelStorage->rowCount(rootIndex); ++iControllerIndex)
     
    33393342void UIStorageSettingsEditor::sltHandleMediumEnumerated(const QUuid &uMediumId)
    33403343{
     3344    /* Acquire newly recached medium: */
     3345    const UIMedium medium = uiCommon().medium(uMediumId);
     3346
    33413347    /* Search for corresponding medium: */
    3342     const UIMedium medium = uiCommon().medium(uMediumId);
    3343 
     3348    AssertPtrReturnVoid(m_pModelStorage);
    33443349    const QModelIndex rootIndex = m_pModelStorage->root();
    33453350    for (int i = 0; i < m_pModelStorage->rowCount(rootIndex); ++i)
     
    33633368void UIStorageSettingsEditor::sltHandleMediumDeleted(const QUuid &uMediumId)
    33643369{
     3370    /* Search for corresponding medium: */
     3371    AssertPtrReturnVoid(m_pModelStorage);
    33653372    QModelIndex rootIndex = m_pModelStorage->root();
    33663373    for (int i = 0; i < m_pModelStorage->rowCount(rootIndex); ++i)
     
    34593466void UIStorageSettingsEditor::sltRemoveController()
    34603467{
     3468    AssertPtrReturnVoid(m_pTreeViewStorage);
    34613469    const QModelIndex index = m_pTreeViewStorage->currentIndex();
    3462     if (!m_pModelStorage->data(index, StorageModel::R_IsController).toBool())
    3463         return;
    3464 
     3470    AssertPtrReturnVoid(m_pModelStorage);
     3471    AssertReturnVoid(m_pModelStorage->data(index, StorageModel::R_IsController).toBool());
     3472
     3473    /* Remove controller: */
    34653474    m_pModelStorage->delController(m_pModelStorage->data(index, StorageModel::R_ItemId).toUuid());
    34663475
     
    34713480void UIStorageSettingsEditor::sltAddAttachment()
    34723481{
     3482    AssertPtrReturnVoid(m_pTreeViewStorage);
    34733483    const QModelIndex index = m_pTreeViewStorage->currentIndex();
    3474     Assert(m_pModelStorage->data(index, StorageModel::R_IsController).toBool());
    3475 
    3476     const DeviceTypeList deviceTypeList(m_pModelStorage->data(index, StorageModel::R_CtrDevices).value<DeviceTypeList>());
     3484    AssertPtrReturnVoid(m_pModelStorage);
     3485    AssertReturnVoid(m_pModelStorage->data(index, StorageModel::R_IsController).toBool());
     3486
     3487    /* Prepare menu: */
     3488    const DeviceTypeList deviceTypeList = m_pModelStorage->data(index, StorageModel::R_CtrDevices).value<DeviceTypeList>();
    34773489    const bool fJustTrigger = deviceTypeList.size() == 1;
    34783490    const bool fShowMenu = deviceTypeList.size() > 1;
     
    35253537void UIStorageSettingsEditor::sltRemoveAttachment()
    35263538{
     3539    AssertPtrReturnVoid(m_pTreeViewStorage);
    35273540    const QModelIndex index = m_pTreeViewStorage->currentIndex();
    3528 
     3541    AssertPtrReturnVoid(m_pModelStorage);
     3542    AssertReturnVoid(m_pModelStorage->data(index, StorageModel::R_IsAttachment).toBool());
     3543    const QModelIndex parentIndex = index.parent();
     3544    AssertReturnVoid(m_pModelStorage->data(parentIndex, StorageModel::R_IsController).toBool());
     3545
     3546    /* Check if this would be the last DVD. If so let the user confirm this again. */
    35293547    const KDeviceType enmDeviceType = m_pModelStorage->data(index, StorageModel::R_AttDevice).value<KDeviceType>();
    3530     /* Check if this would be the last DVD. If so let the user confirm this again. */
    35313548    if (   enmDeviceType == KDeviceType_DVD
    3532         && deviceCount(KDeviceType_DVD) == 1)
    3533     {
    3534         if (!msgCenter().confirmRemovingOfLastDVDDevice(this))
    3535             return;
    3536     }
    3537 
    3538     const QModelIndex parentIndex = index.parent();
    3539     if (!index.isValid() || !parentIndex.isValid() ||
    3540         !m_pModelStorage->data(index, StorageModel::R_IsAttachment).toBool() ||
    3541         !m_pModelStorage->data(parentIndex, StorageModel::R_IsController).toBool())
     3549        && deviceCount(KDeviceType_DVD) == 1
     3550        && !msgCenter().confirmRemovingOfLastDVDDevice(this))
    35423551        return;
    35433552
     3553    /* Remove attachment: */
    35443554    m_pModelStorage->delAttachment(m_pModelStorage->data(parentIndex, StorageModel::R_ItemId).toUuid(),
    35453555                                   m_pModelStorage->data(index, StorageModel::R_ItemId).toUuid());
     
    35533563    m_fLoadingInProgress = true;
    35543564
     3565    AssertPtrReturnVoid(m_pTreeViewStorage);
    35553566    const QModelIndex index = m_pTreeViewStorage->currentIndex();
     3567    AssertPtrReturnVoid(m_pModelStorage);
    35563568    if (!index.isValid() || index == m_pModelStorage->root())
    35573569    {
    3558         /* Showing Initial Page: */
     3570        /* Showing initial page: */
    35593571        m_pStackRightPane->setCurrentIndex(0);
    35603572    }
     
    35653577            case AbstractItem::Type_ControllerItem:
    35663578            {
    3567                 /* Getting Controller Name: */
     3579                /* Getting controller name: */
    35683580                const QString strCtrName = m_pModelStorage->data(index, StorageModel::R_CtrName).toString();
    35693581                if (m_pEditorName->text() != strCtrName)
     
    35773589                {
    35783590                    /* Getting controller types: */
    3579                     const ControllerTypeList controllerTypeList(m_pModelStorage->data(index, m_pModelStorage->busToRole(enmCurrentBus)).value<ControllerTypeList>());
     3591                    const ControllerTypeList controllerTypeList(m_pModelStorage->data(index, StorageModel::busToRole(enmCurrentBus)).value<ControllerTypeList>());
    35803592                    foreach (const KStorageControllerType &enmCurrentType, controllerTypeList)
    35813593                    {
     
    36003612                m_pCheckBoxIoCache->setChecked(fUseIoCache);
    36013613
    3602                 /* Showing Controller Page: */
     3614                /* Showing controller page: */
    36033615                m_pStackRightPane->setCurrentIndex(1);
    36043616                break;
     
    36063618            case AbstractItem::Type_AttachmentItem:
    36073619            {
    3608                 /* Getting Attachment Slot: */
     3620                /* Getting attachment slot: */
    36093621                m_pComboSlot->clear();
    36103622                const SlotsList slotsList(m_pModelStorage->data(index, StorageModel::R_AttSlots).value<SlotsList>());
     
    36163628                m_pComboSlot->setToolTip(m_pComboSlot->itemText(m_pComboSlot->currentIndex()));
    36173629
    3618                 /* Getting Attachment Medium: */
     3630                /* Getting attachment medium: */
    36193631                const KDeviceType enmDeviceType = m_pModelStorage->data(index, StorageModel::R_AttDevice).value<KDeviceType>();
    36203632                switch (enmDeviceType)
     
    36623674                m_pToolButtonOpen->setEnabled(fIsEditable);
    36633675
    3664                 /* Getting Passthrough state: */
     3676                /* Getting passthrough state: */
    36653677                const bool fHostDrive = m_pModelStorage->data(index, StorageModel::R_AttIsHostDrive).toBool();
    36663678                m_pCheckBoxPassthrough->setVisible(enmDeviceType == KDeviceType_DVD && fHostDrive);
    36673679                m_pCheckBoxPassthrough->setChecked(fHostDrive && m_pModelStorage->data(index, StorageModel::R_AttIsPassthrough).toBool());
    36683680
    3669                 /* Getting TempEject state: */
     3681                /* Getting temp-eject state: */
    36703682                m_pCheckBoxTempEject->setVisible(enmDeviceType == KDeviceType_DVD && !fHostDrive);
    36713683                m_pCheckBoxTempEject->setChecked(!fHostDrive && m_pModelStorage->data(index, StorageModel::R_AttIsTempEject).toBool());
    36723684
    3673                 /* Getting NonRotational state: */
     3685                /* Getting non-rotational state: */
    36743686                m_pCheckBoxNonRotational->setVisible(enmDeviceType == KDeviceType_HardDisk);
    36753687                m_pCheckBoxNonRotational->setChecked(m_pModelStorage->data(index, StorageModel::R_AttIsNonRotational).toBool());
     
    36953707                m_pFieldEncryption->setVisible(enmDeviceType == KDeviceType_HardDisk);
    36963708
    3697                 /* Getting Other Information: */
     3709                /* Getting other information: */
    36983710                m_pFieldHDFormat->setText(compressText(m_pModelStorage->data(index, StorageModel::R_AttFormat).toString()));
    36993711                m_pFieldCDFDType->setText(compressText(m_pModelStorage->data(index, StorageModel::R_AttFormat).toString()));
     
    37063718                m_pFieldEncryption->setText(compressText(m_pModelStorage->data(index, StorageModel::R_AttEncryptionPasswordID).toString()));
    37073719
    3708                 /* Showing Attachment Page: */
     3720                /* Showing attachment page: */
    37093721                m_pStackRightPane->setCurrentIndex(2);
    37103722                break;
     
    37233735void UIStorageSettingsEditor::sltSetInformation()
    37243736{
     3737    AssertPtrReturnVoid(m_pTreeViewStorage);
    37253738    const QModelIndex index = m_pTreeViewStorage->currentIndex();
     3739    AssertPtrReturnVoid(m_pModelStorage);
    37263740    if (m_fLoadingInProgress || !index.isValid() || index == m_pModelStorage->root())
    37273741        return;
     
    37323746        case AbstractItem::Type_ControllerItem:
    37333747        {
    3734             /* Setting Controller Name: */
     3748            /* Setting controller name: */
    37353749            if (pSender == m_pEditorName)
    37363750                m_pModelStorage->setData(index, m_pEditorName->text(), StorageModel::R_CtrName);
    3737             /* Setting Controller Sub-Type: */
     3751            /* Setting controller sub-type: */
    37383752            else if (pSender == m_pComboType)
    37393753            {
     
    37533767        case AbstractItem::Type_AttachmentItem:
    37543768        {
    3755             /* Setting Attachment Slot: */
     3769            /* Setting attachment slot: */
    37563770            if (pSender == m_pComboSlot)
    37573771            {
     
    37633777                m_pTreeViewStorage->setCurrentIndex(theSameIndexAtNewPosition);
    37643778            }
    3765             /* Setting Attachment Medium: */
     3779            /* Setting attachment medium: */
    37663780            else if (pSender == m_pMediumIdHolder)
    37673781                m_pModelStorage->setData(index, m_pMediumIdHolder->id(), StorageModel::R_AttMediumId);
     
    39253939void UIStorageSettingsEditor::sltUpdateActionStates()
    39263940{
     3941    AssertPtrReturnVoid(m_pTreeViewStorage);
    39273942    const QModelIndex index = m_pTreeViewStorage->currentIndex();
    39283943
     3944    /* Acquire options: */
     3945    AssertPtrReturnVoid(m_pModelStorage);
    39293946    const bool fIDEPossible = m_pModelStorage->data(index, StorageModel::R_IsMoreIDEControllersPossible).toBool();
    39303947    const bool fSATAPossible = m_pModelStorage->data(index, StorageModel::R_IsMoreSATAControllersPossible).toBool();
     
    39353952    const bool fNVMePossible = m_pModelStorage->data(index, StorageModel::R_IsMoreNVMeControllersPossible).toBool();
    39363953    const bool fVirtioSCSIPossible = m_pModelStorage->data(index, StorageModel::R_IsMoreVirtioSCSIControllersPossible).toBool();
    3937 
    39383954    const bool fController = m_pModelStorage->data(index, StorageModel::R_IsController).toBool();
    39393955    const bool fAttachment = m_pModelStorage->data(index, StorageModel::R_IsAttachment).toBool();
     
    39753991void UIStorageSettingsEditor::sltHandleRowInsertion(const QModelIndex &parentIndex, int iPosition)
    39763992{
     3993    AssertPtrReturnVoid(m_pModelStorage);
     3994    AssertPtrReturnVoid(m_pTreeViewStorage);
    39773995    const QModelIndex index = m_pModelStorage->index(iPosition, 0, parentIndex);
    39783996
     
    40024020void UIStorageSettingsEditor::sltHandleRowRemoval()
    40034021{
    4004     if (m_pModelStorage->rowCount (m_pModelStorage->root()) == 0)
    4005         m_pTreeViewStorage->setCurrentIndex (m_pModelStorage->root());
     4022    /* If no items left => just choose the root to be currnt: */
     4023    AssertPtrReturnVoid(m_pModelStorage);
     4024    AssertPtrReturnVoid(m_pTreeViewStorage);
     4025    if (m_pModelStorage->rowCount(m_pModelStorage->root()) == 0)
     4026        m_pTreeViewStorage->setCurrentIndex(m_pModelStorage->root());
    40064027
    40074028    sltUpdateActionStates();
     
    40204041    m_mousePressPosition = QPoint();
    40214042
     4043    AssertPtrReturnVoid(m_pTreeViewStorage);
    40224044    const QModelIndex index = m_pTreeViewStorage->indexAt(position);
    40234045    if (!index.isValid())
     
    40254047
    40264048    QMenu menu;
     4049    AssertPtrReturnVoid(m_pModelStorage);
    40274050    switch (m_pModelStorage->data(index, StorageModel::R_ItemType).value<AbstractItem::ItemType>())
    40284051    {
     
    40644087void UIStorageSettingsEditor::sltHandleDrawItemBranches(QPainter *pPainter, const QRect &rect, const QModelIndex &index)
    40654088{
     4089    /* Make sure we are painting branches for attachments only,
     4090     * i.e. for items which have parent which have parent as well: */
    40664091    if (!index.parent().isValid() || !index.parent().parent().isValid())
    40674092        return;
     
    40694094    pPainter->save();
    40704095    QStyleOption options;
     4096    AssertPtrReturnVoid(m_pTreeViewStorage);
    40714097    options.initFrom(m_pTreeViewStorage);
    40724098    options.rect = rect;
    40734099    options.state |= QStyle::State_Item;
     4100    AssertPtrReturnVoid(m_pModelStorage);
    40744101    if (index.row() < m_pModelStorage->rowCount(index.parent()) - 1)
    40754102        options.state |= QStyle::State_Sibling;
     
    40914118    const QPoint lPos = pEvent->position().toPoint();
    40924119
     4120    AssertPtrReturnVoid(m_pTreeViewStorage);
    40934121    const QModelIndex index = m_pTreeViewStorage->indexAt(lPos);
    40944122    const QRect indexRect = m_pTreeViewStorage->visualRect(index);
    40954123
    40964124    /* Expander tool-tip: */
     4125    AssertPtrReturnVoid(m_pModelStorage);
    40974126    if (m_pModelStorage->data(index, StorageModel::R_IsController).toBool())
    40984127    {
     
    42214250
    42224251    /* Acquire indexes: */
     4252    AssertPtrReturnVoid(m_pTreeViewStorage);
    42234253    const QModelIndex currentIndex = m_pTreeViewStorage->currentIndex();
    42244254    const QModelIndex index = m_pTreeViewStorage->indexAt(lPos);
     
    42304260
    42314261    /* Expander icon: */
     4262    AssertPtrReturnVoid(m_pModelStorage);
    42324263    if (m_pModelStorage->data(index, StorageModel::R_IsController).toBool())
    42334264    {
     
    50545085{
    50555086#ifdef RT_STRICT
     5087    AssertPtrReturnVoid(m_pTreeViewStorage);
    50565088    const QModelIndex index = m_pTreeViewStorage->currentIndex();
    50575089    switch (enmBus)
     
    50865118#endif
    50875119
     5120    /* Add controller: */
     5121    AssertPtrReturnVoid(m_pModelStorage);
    50885122    m_pModelStorage->addController(strName, enmBus, enmType);
     5123
     5124    /* Notify listeners: */
    50895125    emit sigValueChanged();
    50905126}
     
    50925128void UIStorageSettingsEditor::addAttachmentWrapper(KDeviceType enmDeviceType)
    50935129{
     5130    AssertPtrReturnVoid(m_pTreeViewStorage);
    50945131    const QModelIndex index = m_pTreeViewStorage->currentIndex();
    50955132    Assert(m_pModelStorage->data(index, StorageModel::R_IsController).toBool());
     
    51155152        return;
    51165153
     5154    /* Add attachment: */
     5155    AssertPtrReturnVoid(m_pModelStorage);
    51175156    m_pModelStorage->addAttachment(m_pModelStorage->data(index, StorageModel::R_ItemId).toUuid(), enmDeviceType, uMediumId);
    51185157    m_pModelStorage->sort();
     
    51245163QString UIStorageSettingsEditor::generateUniqueControllerName(const QString &strTemplate) const
    51255164{
     5165    AssertPtrReturn(m_pModelStorage, QString());
    51265166    int iMaxNumber = 0;
    51275167    const QModelIndex rootIndex = m_pModelStorage->root();
     
    51435183uint32_t UIStorageSettingsEditor::deviceCount(KDeviceType enmType) const
    51445184{
     5185    AssertPtrReturn(m_pModelStorage, 0);
    51455186    uint32_t cDevices = 0;
    51465187    const QModelIndex rootIndex = m_pModelStorage->root();
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