void AssetsWindow::AddAsset(AssetPtr asset) { ///\todo Check that the asset doesn't already exists AssetItem *item = new AssetItem(asset); AddChildren(asset, item); connect(asset.get(), SIGNAL(Loaded(AssetPtr)), SLOT(HandleAssetLoaded(AssetPtr))); connect(asset.get(), SIGNAL(Unloaded(IAsset *)), SLOT(HandleAssetUnloaded(IAsset *))); bool storageFound = false; AssetStoragePtr storage = asset->GetAssetStorage(); if (storage) for(int i = 0; i < treeWidget->topLevelItemCount(); ++i) { QTreeWidgetItem *storageItem = treeWidget->topLevelItem(i); if (storageItem->text(0) == storage->ToString()) { storageItem->addChild(item); storageFound = true; break; } } if (!storageFound) noProviderItem->addChild(item); noProviderItem->setHidden(noProviderItem->childCount() == 0); }
AssetStorageItem::AssetStorageItem(const AssetStoragePtr &storage, QTreeWidgetItem *parent) : QTreeWidgetItem(parent), assetStorage(storage) { setText(0, storage->ToString() + (!storage->Writable() ? QApplication::translate("AssetStorageItem", " (Read-only)") : QString())); }