diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-07-28 08:40:15 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-07-28 08:40:15 +0200 |
commit | 9d99b539bfaabe45a43948edf37e900401288f65 (patch) | |
tree | b583a7649dfa59597f352a41ed641b373f130436 /libmultimc/src/library.cpp | |
parent | a7a84d4dbb58565f108cb0886da6cb786e34d10d (diff) | |
download | PrismLauncher-9d99b539bfaabe45a43948edf37e900401288f65.tar.gz PrismLauncher-9d99b539bfaabe45a43948edf37e900401288f65.tar.bz2 PrismLauncher-9d99b539bfaabe45a43948edf37e900401288f65.zip |
Parsing the version files, part IV
Also, start of big refactors.
Diffstat (limited to 'libmultimc/src/library.cpp')
-rw-r--r-- | libmultimc/src/library.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/libmultimc/src/library.cpp b/libmultimc/src/library.cpp index 9d4cc6e3..691786e8 100644 --- a/libmultimc/src/library.cpp +++ b/libmultimc/src/library.cpp @@ -34,4 +34,48 @@ OpSys OpSys_fromString(QString name) return Os_OSX; return Os_Other; } + +void Library::finalize() +{ + QStringList parts = m_name.split ( ':' ); + QString relative = parts[0]; + relative.replace ( '.','/' ); + relative += '/' + parts[1] + '/' + parts[2] + '/' + parts[1] + '-' + parts[2]; + if ( !m_is_native ) + relative += ".jar"; + else + { + if ( m_native_suffixes.contains ( currentSystem ) ) + { + relative += "-" + m_native_suffixes[currentSystem] + ".jar"; + } + else + { + // really, bad. + relative += ".jar"; + } + } + m_storage_path = relative; + m_download_path = m_base_url + relative; + + if ( m_rules.empty() ) + { + m_is_active = true; + } + else + { + RuleAction result = Disallow; + for ( auto rule: m_rules ) + { + RuleAction temp = rule->apply ( this ); + if ( temp != Defer ) + result = temp; + } + m_is_active = ( result == Allow ); + } + if ( m_is_native ) + { + m_is_active = m_is_active && m_native_suffixes.contains ( currentSystem ); + } +} // default url for lib: |