summaryrefslogtreecommitdiffstats
path: root/logic/OneSixLibrary.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-09-11 23:43:17 +0200
committerPetr Mrázek <peterix@gmail.com>2013-09-11 23:43:17 +0200
commit7721c57e5e1093a3d8597b6b6f30c97d2aa3d8a5 (patch)
tree5b8e5d3401d535c9f429d1bcdaa51e6968998470 /logic/OneSixLibrary.cpp
parent108a5a677c4bf248b70e77046502ea96bd9cfe65 (diff)
downloadMultiMC-7721c57e5e1093a3d8597b6b6f30c97d2aa3d8a5.tar
MultiMC-7721c57e5e1093a3d8597b6b6f30c97d2aa3d8a5.tar.gz
MultiMC-7721c57e5e1093a3d8597b6b6f30c97d2aa3d8a5.tar.lz
MultiMC-7721c57e5e1093a3d8597b6b6f30c97d2aa3d8a5.tar.xz
MultiMC-7721c57e5e1093a3d8597b6b6f30c97d2aa3d8a5.zip
Split OneSixVersion into parts.
Diffstat (limited to 'logic/OneSixLibrary.cpp')
-rw-r--r--logic/OneSixLibrary.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/logic/OneSixLibrary.cpp b/logic/OneSixLibrary.cpp
new file mode 100644
index 00000000..a109a7f0
--- /dev/null
+++ b/logic/OneSixLibrary.cpp
@@ -0,0 +1,84 @@
+#include "OneSixLibrary.h"
+#include "OneSixRule.h"
+
+void OneSixLibrary::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 );
+ }
+}
+
+void OneSixLibrary::setName ( QString name )
+{
+ m_name = name;
+}
+void OneSixLibrary::setBaseUrl ( QString base_url )
+{
+ m_base_url = base_url;
+}
+void OneSixLibrary::setIsNative()
+{
+ m_is_native = true;
+}
+void OneSixLibrary::addNative ( OpSys os, QString suffix )
+{
+ m_is_native = true;
+ m_native_suffixes[os] = suffix;
+}
+void OneSixLibrary::setRules ( QList< QSharedPointer< Rule > > rules )
+{
+ m_rules = rules;
+}
+bool OneSixLibrary::isActive()
+{
+ return m_is_active;
+}
+bool OneSixLibrary::isNative()
+{
+ return m_is_native;
+}
+QString OneSixLibrary::downloadPath()
+{
+ return m_download_path;
+}
+QString OneSixLibrary::storagePath()
+{
+ return m_storage_path;
+}