summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2013-12-27 22:28:25 +0100
committerkrzys-h <krzys_h@interia.pl>2013-12-27 22:28:25 +0100
commit0ff7e55b3343fbca959fb11236a009fb3790b652 (patch)
tree196b9cec76ac2dea901c680af10bc306841f6b1f /src/ui
parent1b7389367897b858781790f2ada63203b4035ada (diff)
downloadcolobot-0ff7e55b3343fbca959fb11236a009fb3790b652.tar.gz
colobot-0ff7e55b3343fbca959fb11236a009fb3790b652.tar.bz2
colobot-0ff7e55b3343fbca959fb11236a009fb3790b652.zip
Fix for #177 - save list sorting
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/maindialog.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp
index 4726933..f3eca3a 100644
--- a/src/ui/maindialog.cpp
+++ b/src/ui/maindialog.cpp
@@ -53,6 +53,7 @@
#include <string.h>
#include <sstream>
#include <iomanip>
+#include <vector>
#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
@@ -4332,8 +4333,8 @@ void CMainDialog::IOReadName()
}
time(&now);
- TimeToAscii(now, line);
- sprintf(name, "%s %d - %s", resume, m_sel[m_index]+1, line);
+ TimeToAsciiClean(now, line);
+ sprintf(name, "%s - %s %d", line, resume, m_sel[m_index]+1);
pe->SetText(name);
pe->SetCursor(strlen(name), 0);
pe->SetFocus(true);
@@ -4349,7 +4350,7 @@ void CMainDialog::IOReadList()
char line[500];
char name[100];
int i;
- fs::directory_iterator end_iter;
+ std::vector<fs::path> v;
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5));
if ( pw == 0 ) return;
@@ -4363,12 +4364,14 @@ void CMainDialog::IOReadList()
if (fs::exists(saveDir) && fs::is_directory(saveDir))
{
- for( fs::directory_iterator dir_iter(saveDir) ; dir_iter != end_iter ; ++dir_iter)
+ copy(fs::directory_iterator(saveDir), fs::directory_iterator(), back_inserter(v));
+ std::sort(v.begin(), v.end());
+ for( std::vector<fs::path>::iterator iter = v.begin(); iter != v.end(); ++iter)
{
- if ( fs::is_directory(dir_iter->status()) && fs::exists(dir_iter->path() / "data.sav") )
+ if ( fs::is_directory(*iter) && fs::exists(*iter / "data.sav") )
{
- file = fopen((dir_iter->path() / "data.sav").make_preferred().string().c_str(), "r");
+ file = fopen((*iter / "data.sav").make_preferred().string().c_str(), "r");
if ( file == NULL ) continue;
while ( fgets(line, 500, file) != NULL )
@@ -4392,7 +4395,7 @@ void CMainDialog::IOReadList()
fclose(file);
pl->SetItemName(m_saveList.size(), name);
- m_saveList.push_back(dir_iter->path());
+ m_saveList.push_back(*iter);
}
}
}