16
16
17
17
#include " supertux/menu/editor_delete_level_menu.hpp"
18
18
#include < physfs.h>
19
+ #include < boost/format.hpp>
19
20
#include " supertux/levelset.hpp"
20
21
#include " supertux/level_parser.hpp"
21
22
#include " supertux/level.hpp"
27
28
#include " gui/dialog.hpp"
28
29
EditorDeleteLevelMenu::EditorDeleteLevelMenu (std::unique_ptr<Levelset>& levelset, EditorLevelSelectMenu* level_select_menu, EditorLevelsetSelectMenu* levelset_select_menu) :
29
30
m_level_full_paths(),
31
+ m_level_names(),
30
32
m_level_select_menu(level_select_menu),
31
33
m_levelset_select_menu(levelset_select_menu)
32
34
{
@@ -37,7 +39,9 @@ EditorDeleteLevelMenu::EditorDeleteLevelMenu(std::unique_ptr<Levelset>& levelset
37
39
std::string filename = levelset->get_level_filename (i);
38
40
std::string fullpath = FileSystem::join (Editor::current ()->get_world ()->get_basedir (),filename);
39
41
m_level_full_paths.push_back (fullpath);
40
- add_entry (i, LevelParser::get_level_name (fullpath));
42
+ const std::string& level_name = LevelParser::get_level_name (fullpath);
43
+ m_level_names.push_back (level_name);
44
+ add_entry (i, level_name);
41
45
}
42
46
add_hl ();
43
47
add_back (_ (" Back" ));
@@ -53,12 +57,15 @@ EditorDeleteLevelMenu::menu_action(MenuItem& item)
53
57
Dialog::show_message (_ (" You cannot delete level that you are editing!" ));
54
58
else
55
59
{
56
- PHYSFS_delete (m_level_full_paths[id].c_str ());
57
- delete_item (id + 2 );
58
- m_level_full_paths.erase (m_level_full_paths.begin () + id);
59
- m_level_select_menu->reload_menu ();
60
- if (!Editor::current ()->is_level_loaded ())
61
- m_levelset_select_menu->reload_menu ();
60
+ Dialog::show_confirmation (str (boost::format (_ (" You are about to delete level \" %s\" . Are you sure?" )) % m_level_names[id]), [this , id]()
61
+ {
62
+ PHYSFS_delete (m_level_full_paths[id].c_str ());
63
+ delete_item (id + 2 );
64
+ m_level_full_paths.erase (m_level_full_paths.begin () + id);
65
+ m_level_select_menu->reload_menu ();
66
+ if (!Editor::current ()->is_level_loaded ())
67
+ m_levelset_select_menu->reload_menu ();
68
+ });
62
69
}
63
70
}
64
71
}
0 commit comments