void DeviceProperties::ShowDevice(int row) { if (ui_->icon->count() == 0) { // Only load the icons the first time the dialog is shown QStringList icon_names = QStringList() << "drive-removable-media-usb-pendrive" << "multimedia-player-ipod-mini-blue" << "multimedia-player-ipod-mini-gold" << "multimedia-player-ipod-mini-green" << "multimedia-player-ipod-mini-pink" << "multimedia-player-ipod-mini-silver" << "multimedia-player-ipod-nano-black" << "multimedia-player-ipod-nano-white" << "multimedia-player-ipod-nano-green" << "multimedia-player-ipod-shuffle" << "multimedia-player-ipod-standard-color" << "multimedia-player-ipod-standard-monochrome" << "multimedia-player-ipod-U2-color" << "multimedia-player-ipod-U2-monochrome" << "ipodtouchicon" << "phone" << "phone-google-nexus-one" << "phone-htc-g1-white" << "phone-nokia-n900" << "phone-palm-pre"; for (const QString& icon_name : icon_names) { QListWidgetItem* item = new QListWidgetItem(IconLoader::Load(icon_name, IconLoader::Base), QString(), ui_->icon); item->setData(Qt::UserRole, icon_name); } // Load the transcode formats the first time the dialog is shown for (const TranscoderPreset& preset : Transcoder::GetAllPresets()) { ui_->transcode_format->addItem(preset.name_, preset.type_); } ui_->transcode_format->model()->sort(0); } index_ = manager_->index(row); // Basic information ui_->name->setText(index_.data(DeviceManager::Role_FriendlyName).toString()); // Find the right icon QString icon_name = index_.data(DeviceManager::Role_IconName).toString(); for (int i = 0; i < ui_->icon->count(); ++i) { if (ui_->icon->item(i)->data(Qt::UserRole).toString() == icon_name) { ui_->icon->setCurrentRow(i); break; } } UpdateHardwareInfo(); UpdateFormats(); show(); }
void DeviceProperties::ModelChanged() { if (!isVisible()) return; if (!index_.isValid()) reject(); // Device went away else { UpdateHardwareInfo(); UpdateFormats(); } }