Fixed/hacked 'no parameter' for 0.2.7 keyword compatability;

Added 'just_header' flag to make stylesheet list load faster;
Added versioning and dependency support to packages

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@320 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-05-05 23:19:52 +00:00
parent e7bc7438b8
commit 6feef4feb0
11 changed files with 146 additions and 22 deletions
+16 -2
View File
@@ -58,7 +58,7 @@ void PackageManager::init() {
data_directory += _("/data");
}
PackagedP PackageManager::openAny(const String& name) {
PackagedP PackageManager::openAny(const String& name, bool just_header) {
wxFileName fn(
(wxFileName(name).IsRelative() ? data_directory + _("/") : wxString(wxEmptyString))
+ name);
@@ -79,7 +79,7 @@ PackagedP PackageManager::openAny(const String& name) {
else {
throw PackageError(_("Unrecognized package type: '") + fn.GetExt() + _("'\nwhile trying to open: ") + name);
}
p->open(filename);
p->open(filename, just_header);
return p;
}
}
@@ -101,6 +101,20 @@ InputStreamP PackageManager::openFileFromPackage(const String& name) {
return p->openIn(n.substr(pos+1));
}
bool PackageManager::checkDependency(const PackageDependency& dep, bool report_errors) {
String name = data_directory + _("/") + dep.package;
if (!wxFileExists(name) && !wxDirExists(name)) {
handle_warning(_ERROR_1_("package not found", dep.package),false);
return false;
}
PackagedP package = openAny(dep.package, true);
if (package->version < dep.version) {
handle_warning(_ERROR_3_("package out of date", dep.package, package->version.toString(), dep.version.toString()),false);
return false;
}
return true;
}
void PackageManager::destroy() {
loaded_packages.clear();
}