@@ -1463,14 +1463,16 @@ void ViewDialog::populateLists()
14631463 // remove duplicates in list of occuring regions (optional)
14641464 QList<QString> occuringRegions = cultureRegionMap.values ();
14651465 std::sort (occuringRegions.begin (), occuringRegions.end ());
1466- occuringRegions.erase (std::unique (occuringRegions.begin (), occuringRegions.end ()));
1466+ occuringRegions.resize (std::distance (occuringRegions. begin (), std:: unique (occuringRegions.begin (), occuringRegions.end () )));
14671467
14681468 QStringList sortedOccuringRegions;
1469+ int occuringRegionsCounter = 0 ;
14691470 for (const auto & region : sortedRegions)
14701471 {
14711472 if (occuringRegions.contains (region))
14721473 {
14731474 sortedOccuringRegions.append (region);
1475+ occuringRegionsCounter++;
14741476 }
14751477 }
14761478
@@ -1479,6 +1481,10 @@ void ViewDialog::populateLists()
14791481 {
14801482 l->addItem (new SeparatorListWidgetItem (region));
14811483 }
1484+ if (occuringRegions.size () > occuringRegionsCounter)
1485+ {
1486+ l->addItem (new SeparatorListWidgetItem (" Other" ));
1487+ }
14821488
14831489 // find the earliest beginTime of all cultures (needed in initSkyCultureTime)
14841490 // ---> evaluate it here so we don't need to iterate over all cultures multiple times
@@ -1494,8 +1500,16 @@ void ViewDialog::populateLists()
14941500 {
14951501 globalBeginTime = cultureTimeLimitMap.value (cultureRegionIt.key ()).first ;
14961502 }
1497-
1498- l->insertItem (l->row (l->findItems (cultureRegionIt.value (), Qt::MatchContains).at (0 )) + 1 , item);
1503+ if (l->findItems (cultureRegionIt.value (), Qt::MatchContains).empty ())
1504+ {
1505+ // region is unknown (non UN-geoscheme), insert item under "other" separator
1506+ l->insertItem (l->row (l->findItems (" Other" , Qt::MatchContains).at (0 )) + 1 , item);
1507+ }
1508+ else
1509+ {
1510+ // insert item under respective region separator
1511+ l->insertItem (l->row (l->findItems (cultureRegionIt.value (), Qt::MatchContains).at (0 )) + 1 , item);
1512+ }
14991513 }
15001514 ui->skyCultureCurrentTimeSpinBox ->setMinimum (globalBeginTime);
15011515 l->setCurrentItem (l->findItems (app.getSkyCultureMgr ().getCurrentSkyCultureNameI18 (), Qt::MatchExactly).at (0 ));
0 commit comments