Fix buttons and labels of pages>1 in file picker
This commit is contained in:
@@ -1826,6 +1826,47 @@ class cFilePicker {
|
||||
cStack& stk = get_stack();
|
||||
int num_pages = ceil((float)save_file_mtimes.size() / parties_per_page);
|
||||
stk.setPageCount(num_pages);
|
||||
// HACK: For some reason which should be fixed, the buttons and labels on subsequent pages
|
||||
// aren't getting text on the static buttons and labels
|
||||
std::string save_button_text = me["save1"].getText();
|
||||
std::string ext_label_text = me["file1-extension-label"].getText();
|
||||
std::string load_button_text = me["load1"].getText();
|
||||
std::string auto_button_text = me["auto1"].getText();
|
||||
std::string newer_label_text = me["auto1-more-recent"].getText();
|
||||
for(int i = 0; i < stk.getPageCount(); ++i){
|
||||
stk.setPage(i);
|
||||
if(saving){
|
||||
me["title-load"].hide();
|
||||
me["title-auto"].hide();
|
||||
me["file1"].setText(""); // Keep the frame
|
||||
me["file1-extension-label"].setText(ext_label_text);
|
||||
for(int i = 0; i < SLOTS_PER_PAGE; ++i){
|
||||
me["save" + std::to_string(i+1)].setText(save_button_text);
|
||||
me["load" + std::to_string(i+1)].hide();
|
||||
}
|
||||
}else{
|
||||
if(picking_auto){
|
||||
me["title-load"].hide();
|
||||
std::string title = me["title-auto"].getText();
|
||||
fs::path party_name = save_folder.filename();
|
||||
party_name.replace_extension();
|
||||
boost::replace_first(title, "{Folder}", party_name.string());
|
||||
me["title-auto"].setText(title);
|
||||
}else{
|
||||
me["title-auto"].hide();
|
||||
}
|
||||
me["title-save"].hide();
|
||||
me["file1-field"].hide();
|
||||
me["file1-extension-label"].hide();
|
||||
for(int i = 0; i < SLOTS_PER_PAGE; ++i){
|
||||
me["save" + std::to_string(i+1)].hide();
|
||||
me["load" + std::to_string(i+1)].setText(load_button_text);
|
||||
me["auto" + std::to_string(i+1)].setText(auto_button_text);
|
||||
me["auto" + std::to_string(i+1) + "-more-recent"].setText(newer_label_text);
|
||||
}
|
||||
}
|
||||
}
|
||||
stk.setPage(0);
|
||||
}
|
||||
|
||||
void empty_slot(int idx) {
|
||||
@@ -2083,32 +2124,6 @@ public:
|
||||
fs::path run() {
|
||||
template_info_str = me["info1"].getText();
|
||||
|
||||
if(saving){
|
||||
me["title-load"].hide();
|
||||
me["title-auto"].hide();
|
||||
me["file1"].setText(""); // Keep the frame
|
||||
for(int i = 0; i < SLOTS_PER_PAGE; ++i){
|
||||
me["load" + std::to_string(i+1)].hide();
|
||||
}
|
||||
}else{
|
||||
if(picking_auto){
|
||||
me["title-load"].hide();
|
||||
std::string title = me["title-auto"].getText();
|
||||
fs::path party_name = save_folder.filename();
|
||||
party_name.replace_extension();
|
||||
boost::replace_first(title, "{Folder}", party_name.string());
|
||||
me["title-auto"].setText(title);
|
||||
}else{
|
||||
me["title-auto"].hide();
|
||||
}
|
||||
me["title-save"].hide();
|
||||
me["file1-field"].hide();
|
||||
me["file1-extension-label"].hide();
|
||||
for(int i = 0; i < SLOTS_PER_PAGE; ++i){
|
||||
me["save" + std::to_string(i+1)].hide();
|
||||
}
|
||||
}
|
||||
|
||||
me["cancel"].attachClickHandler(std::bind(&cFilePicker::doCancel, this));
|
||||
me["find"].attachClickHandler(std::bind(&cFilePicker::doFileBrowser, this));
|
||||
// Since it would be crazy to record and replay the metadata shown on a player's save picker
|
||||
|
Reference in New Issue
Block a user