diff --git a/src/util/io/package.cpp b/src/util/io/package.cpp index 78df3cd8..cefe35a8 100644 --- a/src/util/io/package.cpp +++ b/src/util/io/package.cpp @@ -567,6 +567,7 @@ template <> void Writer::handle(const PackageDependency& dep) { IMPLEMENT_REFLECTION(Packaged) { REFLECT(short_name); REFLECT(full_name); + REFLECT(folder_name); REFLECT_N("icon", icon_filename); REFLECT_NO_SCRIPT(position_hint); REFLECT(installer_group); @@ -648,11 +649,12 @@ void Packaged::saveCopy(const String& package) { } void Packaged::validate(Version) { + folder_name = name(); // a default for the short name if (short_name.empty()) { if (!full_name.empty()) short_name = full_name; - short_name = name(); - } + else short_name = folder_name; + } // check dependencies FOR_EACH(dep, dependencies) { package_manager.checkDependency(*dep, true); diff --git a/src/util/io/package.hpp b/src/util/io/package.hpp index eee03149..4a009dd7 100644 --- a/src/util/io/package.hpp +++ b/src/util/io/package.hpp @@ -271,6 +271,7 @@ public: String installer_group; ///< Group to place this package in in the installer String short_name; ///< Short name of this package String full_name; ///< Name of this package, for menus etc. + String folder_name; ///< Name of the folder this package is loaded from. String icon_filename; ///< Filename of icon to use in package lists vector dependencies; ///< Dependencies of this package int position_hint; ///< A hint for the package list