Changeset 78531 in vbox for trunk/src/VBox
- Timestamp:
- May 15, 2019 1:13:12 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 130575
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
r78521 r78531 386 386 AssertMsg (mCtrType != KStorageControllerType_Null, ("Wrong Controller Type {%d}!\n", mCtrType)); 387 387 388 for (int i = 0; i < State_MAX; ++ i) 389 { 390 mPixmaps << InvalidPixmap; 388 updateBusInfo(); 389 updateTypeInfo(); 390 updatePixmaps(); 391 } 392 393 KStorageBus AbstractControllerType::busType() const 394 { 395 return mBusType; 396 } 397 398 ControllerBusList AbstractControllerType::busTypes() const 399 { 400 return m_buses; 401 } 402 403 KStorageControllerType AbstractControllerType::ctrType() const 404 { 405 return mCtrType; 406 } 407 408 ControllerTypeList AbstractControllerType::ctrTypes() const 409 { 410 return m_types; 411 } 412 413 PixmapType AbstractControllerType::pixmap(ItemState aState) const 414 { 415 return m_pixmaps.at(aState); 416 } 417 418 void AbstractControllerType::setCtrBusType(KStorageBus enmCtrBusType) 419 { 420 mBusType = enmCtrBusType; 421 422 updateBusInfo(); 423 updateTypeInfo(); 424 updatePixmaps(); 425 } 426 427 void AbstractControllerType::setCtrType (KStorageControllerType aCtrType) 428 { 429 mCtrType = aCtrType; 430 } 431 432 DeviceTypeList AbstractControllerType::deviceTypeList() const 433 { 434 return vboxGlobal().virtualBox().GetSystemProperties().GetDeviceTypesForStorageBus (mBusType).toList(); 435 } 436 437 void AbstractControllerType::updateBusInfo() 438 { 439 m_buses.clear(); 440 441 switch (mBusType) 442 { 443 case KStorageBus_IDE: 444 case KStorageBus_SATA: 445 case KStorageBus_SCSI: 446 case KStorageBus_SAS: 447 case KStorageBus_USB: 448 case KStorageBus_PCIe: 449 case KStorageBus_VirtioSCSI: 450 { 451 m_buses << KStorageBus_IDE << KStorageBus_SATA << KStorageBus_SCSI << KStorageBus_SAS 452 << KStorageBus_USB << KStorageBus_PCIe << KStorageBus_VirtioSCSI; 453 m_buses.removeAll(mBusType); 454 } 455 RT_FALL_THRU(); 456 default: 457 { 458 m_buses.prepend(mBusType); 459 break; 460 } 461 } 462 } 463 464 void AbstractControllerType::updateTypeInfo() 465 { 466 m_types.clear(); 467 468 KStorageControllerType enmFirstType = KStorageControllerType_Null; 469 switch (mBusType) 470 { 471 case KStorageBus_IDE: enmFirstType = KStorageControllerType_PIIX3; break; 472 case KStorageBus_SATA: enmFirstType = KStorageControllerType_IntelAhci; break; 473 case KStorageBus_SCSI: enmFirstType = KStorageControllerType_LsiLogic; break; 474 case KStorageBus_Floppy: enmFirstType = KStorageControllerType_I82078; break; 475 case KStorageBus_SAS: enmFirstType = KStorageControllerType_LsiLogicSas; break; 476 case KStorageBus_USB: enmFirstType = KStorageControllerType_USB; break; 477 case KStorageBus_PCIe: enmFirstType = KStorageControllerType_NVMe; break; 478 case KStorageBus_VirtioSCSI: enmFirstType = KStorageControllerType_VirtioSCSI; break; 479 default: break; 480 } 481 AssertMsg(enmFirstType != KStorageControllerType_Null, ("Invalid item type!\n")); 482 483 uint uTypeAmount = 0; 484 switch (mBusType) 485 { 486 case KStorageBus_IDE: uTypeAmount = 3; break; 487 case KStorageBus_SATA: uTypeAmount = 1; break; 488 case KStorageBus_SCSI: uTypeAmount = 2; break; 489 case KStorageBus_Floppy: uTypeAmount = 1; break; 490 case KStorageBus_SAS: uTypeAmount = 1; break; 491 case KStorageBus_USB: uTypeAmount = 1; break; 492 case KStorageBus_PCIe: uTypeAmount = 1; break; 493 case KStorageBus_VirtioSCSI: uTypeAmount = 1; break; 494 default: break; 495 } 496 AssertMsg(uTypeAmount != 0, ("Invalid item type count!\n")); 497 498 for (uint i = enmFirstType; i < enmFirstType + uTypeAmount; ++i) 499 m_types << static_cast<KStorageControllerType>(i); 500 } 501 502 void AbstractControllerType::updatePixmaps() 503 { 504 m_pixmaps.clear(); 505 506 for (int i = 0; i < State_MAX; ++i) 507 { 508 m_pixmaps << InvalidPixmap; 391 509 switch (mBusType) 392 510 { 393 case KStorageBus_IDE: 394 mPixmaps [i] = (PixmapType)(IDEControllerNormal + i); 395 break; 396 case KStorageBus_SATA: 397 mPixmaps [i] = (PixmapType)(SATAControllerNormal + i); 398 break; 399 case KStorageBus_SCSI: 400 mPixmaps [i] = (PixmapType)(SCSIControllerNormal + i); 401 break; 402 case KStorageBus_Floppy: 403 mPixmaps [i] = (PixmapType)(FloppyControllerNormal + i); 404 break; 405 case KStorageBus_SAS: 406 mPixmaps [i] = (PixmapType)(SASControllerNormal + i); 407 break; 408 case KStorageBus_USB: 409 mPixmaps [i] = (PixmapType)(USBControllerNormal + i); 410 break; 411 case KStorageBus_PCIe: 412 mPixmaps [i] = (PixmapType)(NVMeControllerNormal + i); 413 break; 414 case KStorageBus_VirtioSCSI: 415 mPixmaps [i] = (PixmapType)(VirtioSCSIControllerNormal + i); 416 break; 417 default: 418 break; 419 } 420 AssertMsg (mPixmaps [i] != InvalidPixmap, ("Item state pixmap was not set!\n")); 421 } 422 } 423 424 KStorageBus AbstractControllerType::busType() const 425 { 426 return mBusType; 427 } 428 429 KStorageControllerType AbstractControllerType::ctrType() const 430 { 431 return mCtrType; 432 } 433 434 ControllerTypeList AbstractControllerType::ctrTypes() const 435 { 436 ControllerTypeList result; 437 for (uint i = firstType(); i < firstType() + typeAmount(); ++i) 438 result << (KStorageControllerType) i; 439 return result; 440 } 441 442 PixmapType AbstractControllerType::pixmap(ItemState aState) const 443 { 444 return mPixmaps [aState]; 445 } 446 447 void AbstractControllerType::setCtrType (KStorageControllerType aCtrType) 448 { 449 mCtrType = aCtrType; 450 } 451 452 DeviceTypeList AbstractControllerType::deviceTypeList() const 453 { 454 return vboxGlobal().virtualBox().GetSystemProperties().GetDeviceTypesForStorageBus (mBusType).toList(); 455 } 456 457 KStorageControllerType AbstractControllerType::firstType() const 458 { 459 switch (mBusType) 460 { 461 case KStorageBus_IDE: return KStorageControllerType_PIIX3; 462 case KStorageBus_SATA: return KStorageControllerType_IntelAhci; 463 case KStorageBus_SCSI: return KStorageControllerType_LsiLogic; 464 case KStorageBus_Floppy: return KStorageControllerType_I82078; 465 case KStorageBus_SAS: return KStorageControllerType_LsiLogicSas; 466 case KStorageBus_USB: return KStorageControllerType_USB; 467 case KStorageBus_PCIe: return KStorageControllerType_NVMe; 468 case KStorageBus_VirtioSCSI: return KStorageControllerType_VirtioSCSI; 469 default: AssertFailedReturn(KStorageControllerType_Null); 470 } 471 } 472 473 uint AbstractControllerType::typeAmount() const 474 { 475 switch (mBusType) 476 { 477 case KStorageBus_IDE: return 3; 478 case KStorageBus_SATA: return 1; 479 case KStorageBus_SCSI: return 2; 480 case KStorageBus_Floppy: return 1; 481 case KStorageBus_SAS: return 1; 482 case KStorageBus_USB: return 1; 483 case KStorageBus_PCIe: return 1; 484 case KStorageBus_VirtioSCSI: return 1; 485 default: AssertFailedReturn(0); 511 case KStorageBus_IDE: m_pixmaps[i] = static_cast<PixmapType>(IDEControllerNormal + i); break; 512 case KStorageBus_SATA: m_pixmaps[i] = static_cast<PixmapType>(SATAControllerNormal + i); break; 513 case KStorageBus_SCSI: m_pixmaps[i] = static_cast<PixmapType>(SCSIControllerNormal + i); break; 514 case KStorageBus_Floppy: m_pixmaps[i] = static_cast<PixmapType>(FloppyControllerNormal + i); break; 515 case KStorageBus_SAS: m_pixmaps[i] = static_cast<PixmapType>(SASControllerNormal + i); break; 516 case KStorageBus_USB: m_pixmaps[i] = static_cast<PixmapType>(USBControllerNormal + i); break; 517 case KStorageBus_PCIe: m_pixmaps[i] = static_cast<PixmapType>(NVMeControllerNormal + i); break; 518 case KStorageBus_VirtioSCSI: m_pixmaps[i] = static_cast<PixmapType>(VirtioSCSIControllerNormal + i); break; 519 default: break; 520 } 521 AssertMsg(m_pixmaps[i] != InvalidPixmap, ("Invalid item state pixmap!\n")); 486 522 } 487 523 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h
r78520 r78531 51 51 typedef QList <StorageSlot> SlotsList; 52 52 typedef QList <KDeviceType> DeviceTypeList; 53 typedef QList <KStorageBus> ControllerBusList; 53 54 typedef QList <KStorageControllerType> ControllerTypeList; 54 55 Q_DECLARE_METATYPE (SlotsList); 55 56 Q_DECLARE_METATYPE (DeviceTypeList); 57 Q_DECLARE_METATYPE (ControllerBusList); 56 58 Q_DECLARE_METATYPE (ControllerTypeList); 57 59 … … 155 157 156 158 KStorageBus busType() const; 159 ControllerBusList busTypes() const; 157 160 KStorageControllerType ctrType() const; 158 161 ControllerTypeList ctrTypes() const; 159 162 PixmapType pixmap(ItemState aState) const; 160 163 164 void setCtrBusType(KStorageBus enmCtrBusType); 161 165 void setCtrType (KStorageControllerType aCtrType); 162 166 … … 165 169 private: 166 170 167 KStorageControllerType firstType() const; 168 uint typeAmount() const; 171 void updateBusInfo(); 172 void updateTypeInfo(); 173 void updatePixmaps(); 169 174 170 175 KStorageBus mBusType; 171 176 KStorageControllerType mCtrType; 172 QList<PixmapType> mPixmaps; 177 178 ControllerBusList m_buses; 179 ControllerTypeList m_types; 180 QList<PixmapType> m_pixmaps; 173 181 }; 174 182
Note:
See TracChangeset
for help on using the changeset viewer.