|
@@ -501,6 +501,7 @@ void SelectionTab::filter(int size, bool selectFirst)
|
|
|
auto folder = std::make_shared<ElementInfo>();
|
|
|
folder->isFolder = true;
|
|
|
folder->folderName = folderName;
|
|
|
+ folder->isAutoSaveFolder = boost::starts_with(baseFolder, "Autosave/") && folderName != "Autosave";
|
|
|
auto itemIt = boost::range::find_if(curItems, [folder](std::shared_ptr<ElementInfo> e) { return e->folderName == folder->folderName; });
|
|
|
if (itemIt == curItems.end() && folderName != "") {
|
|
|
curItems.push_back(folder);
|
|
@@ -561,7 +562,11 @@ void SelectionTab::sort()
|
|
|
|
|
|
int firstMapIndex = boost::range::find_if(curItems, [](std::shared_ptr<ElementInfo> e) { return !e->isFolder; }) - curItems.begin();
|
|
|
if(!sortModeAscending)
|
|
|
+ {
|
|
|
+ if(firstMapIndex)
|
|
|
+ std::reverse(std::next(curItems.begin(), boost::starts_with(curItems[0]->folderName, "..") ? 1 : 0), std::next(curItems.begin(), firstMapIndex - 1));
|
|
|
std::reverse(std::next(curItems.begin(), firstMapIndex), curItems.end());
|
|
|
+ }
|
|
|
|
|
|
updateListItems();
|
|
|
redraw();
|
|
@@ -903,7 +908,7 @@ SelectionTab::ListItem::ListItem(Point position)
|
|
|
{
|
|
|
OBJECT_CONSTRUCTION;
|
|
|
pictureEmptyLine = std::make_shared<CPicture>(ImagePath::builtin("camcust"), Rect(25, 121, 349, 26), -8, -14);
|
|
|
- labelName = std::make_shared<CLabel>(184, 0, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, "", 185);
|
|
|
+ labelName = std::make_shared<CLabel>(LABEL_POS_X, 0, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, "", 185);
|
|
|
labelName->setAutoRedraw(false);
|
|
|
labelAmountOfPlayers = std::make_shared<CLabel>(8, 0, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE);
|
|
|
labelAmountOfPlayers->setAutoRedraw(false);
|
|
@@ -947,6 +952,16 @@ void SelectionTab::ListItem::updateItem(std::shared_ptr<ElementInfo> info, bool
|
|
|
labelNumberOfCampaignMaps->disable();
|
|
|
labelName->enable();
|
|
|
labelName->setMaxWidth(316);
|
|
|
+ if(info->isAutoSaveFolder) // align autosave folder left (starting timestamps in list should be in one line)
|
|
|
+ {
|
|
|
+ labelName->alignment = ETextAlignment::CENTERLEFT;
|
|
|
+ labelName->moveTo(Point(pos.x + 95, labelName->pos.y));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ labelName->alignment = ETextAlignment::CENTER;
|
|
|
+ labelName->moveTo(Point(pos.x + LABEL_POS_X, labelName->pos.y));
|
|
|
+ }
|
|
|
labelName->setText(info->folderName);
|
|
|
labelName->setColor(color);
|
|
|
return;
|
|
@@ -968,6 +983,8 @@ void SelectionTab::ListItem::updateItem(std::shared_ptr<ElementInfo> info, bool
|
|
|
labelNumberOfCampaignMaps->setText(ostr.str());
|
|
|
labelNumberOfCampaignMaps->setColor(color);
|
|
|
labelName->setMaxWidth(316);
|
|
|
+ labelName->alignment = ETextAlignment::CENTER;
|
|
|
+ labelName->moveTo(Point(pos.x + LABEL_POS_X, labelName->pos.y));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -989,6 +1006,8 @@ void SelectionTab::ListItem::updateItem(std::shared_ptr<ElementInfo> info, bool
|
|
|
iconLossCondition->enable();
|
|
|
iconLossCondition->setFrame(info->mapHeader->defeatIconIndex, 0);
|
|
|
labelName->setMaxWidth(185);
|
|
|
+ labelName->alignment = ETextAlignment::CENTER;
|
|
|
+ labelName->moveTo(Point(pos.x + LABEL_POS_X, labelName->pos.y));
|
|
|
}
|
|
|
labelName->setText(info->name);
|
|
|
labelName->setColor(color);
|