Fix rename modpack dialog not appearing to take affect 8161/head
authorrubenwardy <rw@rubenwardy.com>
Sun, 3 Feb 2019 01:49:53 +0000 (01:49 +0000)
committerrubenwardy <rw@rubenwardy.com>
Sun, 3 Feb 2019 13:43:00 +0000 (13:43 +0000)
builtin/mainmenu/dlg_rename_modpack.lua
builtin/mainmenu/pkgmgr.lua

index b39be7f701ec02a6784bdafeb391aad1443e35d8..ca76a8cbecc1c1dc2909fe5c8697f5771816378b 100644 (file)
 local function rename_modpack_formspec(dialogdata)
        local retval =
                "size[11.5,4.5,true]" ..
-               "field[2.5,2;7,0.5;te_modpack_name;".. fgettext("Rename Modpack:") .. ";" ..
-               dialogdata.mod.name .. "]" ..
                "button[3.25,3.5;2.5,0.5;dlg_rename_modpack_confirm;"..
                                fgettext("Accept") .. "]" ..
                "button[5.75,3.5;2.5,0.5;dlg_rename_modpack_cancel;"..
                                fgettext("Cancel") .. "]"
 
+       local input_y = 2
+       if dialogdata.mod.is_name_explicit then
+               retval = retval .. "textarea[1,0.2;10,2;;;" ..
+                               fgettext("This modpack has an explicit name given in its modpack.conf " ..
+                                               "which will override any renaming here.") .. "]"
+               input_y = 2.5
+       end
+       retval = retval ..
+               "field[2.5," .. input_y .. ";7,0.5;te_modpack_name;" ..
+               fgettext("Rename Modpack:") .. ";" .. dialogdata.mod.dir_name .. "]"
+
        return retval
 end
 
 --------------------------------------------------------------------------------
 local function rename_modpack_buttonhandler(this, fields)
        if fields["dlg_rename_modpack_confirm"] ~= nil then
-               local oldpath = core.get_modpath() .. DIR_DELIM .. this.data.mod.name
-               local targetpath = core.get_modpath() .. DIR_DELIM .. fields["te_modpack_name"]
+               local oldpath = this.data.mod.path
+               local targetpath = this.data.mod.parent_dir .. DIR_DELIM .. fields["te_modpack_name"]
                os.rename(oldpath, targetpath)
                pkgmgr.refresh_globals()
                pkgmgr.selected_mod = pkgmgr.global_mods:get_current_index(
index 7863f1ca1a893fa65d5bfca93a16a368101d4a56..d85092457dd6f83d7e993bda23afa414b8a61076 100644 (file)
@@ -22,7 +22,10 @@ function get_mods(path,retval,modpack)
        for _, name in ipairs(mods) do
                if name:sub(1, 1) ~= "." then
                        local prefix = path .. DIR_DELIM .. name
-                       local toadd = {}
+                       local toadd = {
+                               dir_name = name,
+                               parent_dir = path,
+                       }
                        retval[#retval + 1] = toadd
 
                        -- Get config file
@@ -35,11 +38,13 @@ function get_mods(path,retval,modpack)
                                mod_conf = Settings(prefix .. DIR_DELIM .. "modpack.conf"):to_table()
                                if mod_conf.name then
                                        name = mod_conf.name
+                                       toadd.is_name_explicit = true
                                end
                        else
                                mod_conf = Settings(prefix .. DIR_DELIM .. "mod.conf"):to_table()
                                if mod_conf.name then
                                        name = mod_conf.name
+                                       toadd.is_name_explicit = true
                                end
                        end