// Type: 0 = static, 1 = mission void HWMapContainer::mapChanged(const QModelIndex & map, int type, const QModelIndex & old) { QListView * mapList; if (type == 0) mapList = staticMapList; else if (type == 1) mapList = missionMapList; else return; // Make sure it is a valid index if (!map.isValid()) { if (old.isValid()) { mapList->setCurrentIndex(old); mapList->scrollTo(old); } else { m_mapInfo.type = MapModel::Invalid; updatePreview(); } return; } // If map changed, update list selection if (mapList->currentIndex() != map) { mapList->setCurrentIndex(map); mapList->scrollTo(map); } if (map.data(Qt::UserRole + 1).canConvert<MapModel::MapInfo>()) setMapInfo(map.data(Qt::UserRole + 1).value<MapModel::MapInfo>()); else Q_ASSERT(false); // Houston, we have a problem. }