# HG changeset patch # User Wuzzy # Date 1521464849 -3600 # Node ID dd054edd56df229d90f48abb8b9ca48a66a5e4e2 # Parent 5200231eb12082206ffb866a9f9b89ad67042190 Fix map type combo box being disabled for good when you select image or mission map diff -r 5200231eb120 -r dd054edd56df QTfrontend/ui/widget/mapContainer.cpp --- a/QTfrontend/ui/widget/mapContainer.cpp Mon Mar 19 13:35:13 2018 +0100 +++ b/QTfrontend/ui/widget/mapContainer.cpp Mon Mar 19 14:07:29 2018 +0100 @@ -333,6 +333,27 @@ cType->setEnabled(isMaster()); } +void HWMapContainer::setImage(const QPixmap &newImage, bool showHHLimit) +{ + if (showHHLimit) + { + addInfoToPreview(newImage); + } + else + { + QIcon mapPreviewIcon = QIcon(); + mapPreviewIcon.addPixmap(newImage, QIcon::Normal); + mapPreviewIcon.addPixmap(newImage, QIcon::Disabled); + mapPreview->setIcon(mapPreviewIcon); + mapPreview->setIconSize(newImage.size()); + } + + pMap = 0; + + cType->setEnabled(isMaster()); +} + + void HWMapContainer::setHHLimit(int newHHLimit) { hhLimit = newHHLimit; @@ -776,12 +797,9 @@ switch(m_mapInfo.type) { case MapModel::Invalid: + // Map error image failPixmap = QPixmap(":/res/missingMap.png"); - failIcon = QIcon(); - failIcon.addPixmap(failPixmap, QIcon::Normal); - failIcon.addPixmap(failPixmap, QIcon::Disabled); - mapPreview->setIcon(failIcon); - mapPreview->setIconSize(failPixmap.size()); + setImage(failPixmap, false); lblDesc->clear(); break; case MapModel::GeneratedMap: @@ -792,30 +810,30 @@ askForGeneratedPreview(); break; default: + // For maps loaded from image if(m_missingMap) { + // Map error image due to missing map failPixmap = QPixmap(":/res/missingMap.png"); - failIcon = QIcon(); - failIcon.addPixmap(failPixmap, QIcon::Normal); - failIcon.addPixmap(failPixmap, QIcon::Disabled); - mapPreview->setIcon(failIcon); - mapPreview->setIconSize(failPixmap.size()); + setImage(failPixmap, false); lblDesc->clear(); break; } else { + // Draw map preview QPixmap mapImage; bool success = mapImage.load("physfs://Maps/" + m_mapInfo.name + "/preview.png"); if(!success) { - mapPreview->setIcon(QIcon()); + // Missing preview image + setImage(QPixmap()); return; } - hhLimit = m_mapInfo.limit; - addInfoToPreview(mapImage); + setHHLimit(m_mapInfo.limit); + setImage(mapImage); } } } diff -r 5200231eb120 -r dd054edd56df QTfrontend/ui/widget/mapContainer.h --- a/QTfrontend/ui/widget/mapContainer.h Mon Mar 19 13:35:13 2018 +0100 +++ b/QTfrontend/ui/widget/mapContainer.h Mon Mar 19 14:07:29 2018 +0100 @@ -177,6 +177,7 @@ void intSetFeatureSize(int size); void setMissingTheme(const QString & name); void mapChanged(const QModelIndex & map, int type, const QModelIndex & old = QModelIndex()); + void setImage(const QPixmap & newImage, bool showHHLimit); void setMapInfo(MapModel::MapInfo mapInfo); void changeMapType(MapModel::MapType type, const QModelIndex & newMap = QModelIndex()); void updateHelpTexts(MapModel::MapType type);