aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt39
-rw-r--r--changelog.yaml2
-rw-r--r--depends/groupview/CMakeLists.txt46
-rw-r--r--depends/groupview/include/categorizedsortfilterproxymodel.h175
-rw-r--r--depends/groupview/include/categorizedview.h332
-rw-r--r--depends/groupview/include/categorydrawer.h179
-rw-r--r--depends/groupview/src/categorizedsortfilterproxymodel.cpp168
-rw-r--r--depends/groupview/src/categorizedsortfilterproxymodel_p.h48
-rw-r--r--depends/groupview/src/categorizedview.cpp1692
-rw-r--r--depends/groupview/src/categorizedview_p.h160
-rw-r--r--depends/groupview/src/categorydrawer.cpp231
-rw-r--r--depends/util/CMakeLists.txt3
-rw-r--r--depends/util/include/modutils.h32
-rw-r--r--depends/util/src/modutils.cpp216
-rw-r--r--gui/ConsoleWindow.cpp18
-rw-r--r--gui/ConsoleWindow.h2
-rw-r--r--gui/MainWindow.cpp236
-rw-r--r--gui/MainWindow.h21
-rw-r--r--gui/MainWindow.ui60
-rw-r--r--gui/dialogs/AccountListDialog.cpp2
-rw-r--r--gui/dialogs/IconPickerDialog.cpp2
-rw-r--r--gui/dialogs/OneSixModEditDialog.cpp256
-rw-r--r--gui/dialogs/OneSixModEditDialog.h12
-rw-r--r--gui/dialogs/OneSixModEditDialog.ui65
-rw-r--r--gui/dialogs/VersionSelectDialog.cpp5
-rw-r--r--gui/dialogs/VersionSelectDialog.h1
-rw-r--r--gui/dialogs/VersionSelectDialog.ui9
-rw-r--r--gui/groupview/Group.cpp269
-rw-r--r--gui/groupview/Group.h69
-rw-r--r--gui/groupview/GroupView.cpp931
-rw-r--r--gui/groupview/GroupView.h143
-rw-r--r--gui/groupview/GroupedProxyModel.cpp26
-rw-r--r--gui/groupview/GroupedProxyModel.h15
-rw-r--r--gui/groupview/InstanceDelegate.cpp (renamed from gui/widgets/InstanceDelegate.cpp)32
-rw-r--r--gui/groupview/InstanceDelegate.h (renamed from gui/widgets/InstanceDelegate.h)8
-rw-r--r--gui/widgets/Common.cpp27
-rw-r--r--gui/widgets/Common.h6
-rw-r--r--gui/widgets/VersionListView.cpp150
-rw-r--r--gui/widgets/VersionListView.h43
-rw-r--r--logic/BaseInstaller.cpp66
-rw-r--r--logic/BaseInstaller.h (renamed from depends/groupview/include/groupview_config.h)31
-rw-r--r--logic/BaseInstance.h4
-rw-r--r--logic/ForgeInstaller.cpp95
-rw-r--r--logic/ForgeInstaller.h10
-rw-r--r--logic/InstanceFactory.cpp10
-rw-r--r--logic/LegacyInstance.cpp15
-rw-r--r--logic/LegacyInstance.h4
-rw-r--r--logic/LegacyUpdate.cpp12
-rw-r--r--logic/LegacyUpdate.h3
-rw-r--r--logic/LiteLoaderInstaller.cpp101
-rw-r--r--logic/LiteLoaderInstaller.h20
-rw-r--r--logic/MinecraftProcess.cpp28
-rw-r--r--logic/MinecraftProcess.h6
-rw-r--r--logic/Mod.cpp21
-rw-r--r--logic/ModList.cpp27
-rw-r--r--logic/ModList.h1
-rw-r--r--logic/OneSixFTBInstance.cpp12
-rw-r--r--logic/OneSixFTBInstance.h2
-rw-r--r--logic/OneSixInstance.cpp157
-rw-r--r--logic/OneSixInstance.h33
-rw-r--r--logic/OneSixInstance_p.h12
-rw-r--r--logic/OneSixLibrary.cpp38
-rw-r--r--logic/OneSixLibrary.h41
-rw-r--r--logic/OneSixRule.cpp4
-rw-r--r--logic/OneSixRule.h2
-rw-r--r--logic/OneSixUpdate.cpp56
-rw-r--r--logic/OneSixUpdate.h6
-rw-r--r--logic/OneSixVersion.cpp355
-rw-r--r--logic/OneSixVersion.h63
-rw-r--r--logic/OneSixVersionBuilder.cpp1077
-rw-r--r--logic/OneSixVersionBuilder.h47
-rw-r--r--logic/auth/AuthSession.cpp30
-rw-r--r--logic/auth/AuthSession.h49
-rw-r--r--logic/auth/MojangAccount.cpp82
-rw-r--r--logic/auth/MojangAccount.h38
-rw-r--r--logic/auth/YggdrasilTask.h17
-rw-r--r--logic/auth/flows/RefreshTask.cpp4
-rw-r--r--logic/auth/flows/RefreshTask.h3
-rw-r--r--logic/lists/InstanceList.cpp116
-rw-r--r--logic/lists/InstanceList.h20
-rw-r--r--logic/lists/MinecraftVersionList.cpp10
-rw-r--r--logic/lists/MinecraftVersionList.h2
-rw-r--r--logic/net/NetJob.cpp2
-rw-r--r--logic/net/NetJob.h2
84 files changed, 4442 insertions, 4023 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0b276cf8..4e7dea67 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -93,7 +93,7 @@ SET(MultiMC_NEWS_RSS_URL "http://multimc.org/rss.xml" CACHE STRING "URL to fetch
######## Set version numbers ########
SET(MultiMC_VERSION_MAJOR 0)
SET(MultiMC_VERSION_MINOR 2)
-SET(MultiMC_VERSION_HOTFIX 0)
+SET(MultiMC_VERSION_HOTFIX 1)
# Build number
SET(MultiMC_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.")
@@ -186,7 +186,6 @@ configure_file("${PROJECT_SOURCE_DIR}/config.h.in" "${PROJECT_BINARY_DIR}/includ
ADD_DEFINITIONS(-DQUAZIP_STATIC)
ADD_DEFINITIONS(-DLIBSETTINGS_STATIC)
ADD_DEFINITIONS(-DLIBUTIL_STATIC)
-ADD_DEFINITIONS(-DLIBGROUPVIEW_STATIC)
######## Packaging/install paths setup ########
@@ -247,10 +246,6 @@ include_directories(${LIBUTIL_INCLUDE_DIR})
add_subdirectory(depends/settings)
include_directories(${LIBSETTINGS_INCLUDE_DIR})
-# Add the group view library.
-add_subdirectory(depends/groupview)
-include_directories(${LIBGROUPVIEW_INCLUDE_DIR})
-
# Add the updater
add_subdirectory(mmc_updater)
@@ -315,15 +310,27 @@ gui/dialogs/UpdateDialog.h
gui/dialogs/UpdateDialog.cpp
# GUI - widgets
-gui/widgets/InstanceDelegate.h
-gui/widgets/InstanceDelegate.cpp
+gui/widgets/Common.h
+gui/widgets/Common.cpp
gui/widgets/ModListView.h
gui/widgets/ModListView.cpp
+gui/widgets/VersionListView.h
+gui/widgets/VersionListView.cpp
gui/widgets/LabeledToolButton.h
gui/widgets/LabeledToolButton.cpp
gui/widgets/MCModInfoFrame.h
gui/widgets/MCModInfoFrame.cpp
+# GUI - instance group view
+gui/groupview/Group.cpp
+gui/groupview/Group.h
+gui/groupview/GroupedProxyModel.cpp
+gui/groupview/GroupedProxyModel.h
+gui/groupview/GroupView.cpp
+gui/groupview/GroupView.h
+gui/groupview/InstanceDelegate.cpp
+gui/groupview/InstanceDelegate.h
+
# Base classes and infrastructure
logic/BaseVersion.h
logic/MinecraftVersion.h
@@ -365,6 +372,8 @@ logic/net/PasteUpload.cpp
logic/net/URLConstants.h
# Yggdrasil login stuff
+logic/auth/AuthSession.h
+logic/auth/AuthSession.cpp
logic/auth/MojangAccountList.h
logic/auth/MojangAccountList.cpp
logic/auth/MojangAccount.h
@@ -405,10 +414,7 @@ logic/LegacyUpdate.cpp
logic/LegacyForge.h
logic/LegacyForge.cpp
-# 1.6 instances
-logic/OneSixInstance.h
-logic/OneSixInstance.cpp
-logic/OneSixInstance_p.h
+# OneSix instances
logic/OneSixUpdate.h
logic/OneSixUpdate.cpp
logic/OneSixVersion.h
@@ -419,10 +425,17 @@ logic/OneSixRule.h
logic/OneSixRule.cpp
logic/OpSys.h
logic/OpSys.cpp
+logic/BaseInstaller.h
+logic/BaseInstaller.cpp
logic/ForgeInstaller.h
logic/ForgeInstaller.cpp
logic/LiteLoaderInstaller.h
logic/LiteLoaderInstaller.cpp
+logic/OneSixInstance.h
+logic/OneSixInstance.cpp
+logic/OneSixInstance_p.h
+logic/OneSixVersionBuilder.h
+logic/OneSixVersionBuilder.cpp
# Nostalgia
logic/NostalgiaInstance.h
@@ -578,7 +591,7 @@ ADD_EXECUTABLE(MultiMC MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS})
# Link
TARGET_LINK_LIBRARIES(MultiMC MultiMC_common)
-TARGET_LINK_LIBRARIES(MultiMC_common xz-embedded unpack200 quazip libUtil libSettings libGroupView ${MultiMC_LINK_ADDITIONAL_LIBS})
+TARGET_LINK_LIBRARIES(MultiMC_common xz-embedded unpack200 quazip libUtil libSettings ${MultiMC_LINK_ADDITIONAL_LIBS})
QT5_USE_MODULES(MultiMC Core Widgets Network Xml Concurrent ${MultiMC_QT_ADDITIONAL_MODULES})
QT5_USE_MODULES(MultiMC_common Core Widgets Network Xml Concurrent ${MultiMC_QT_ADDITIONAL_MODULES})
diff --git a/changelog.yaml b/changelog.yaml
index 01e11f52..8b96b76e 100644
--- a/changelog.yaml
+++ b/changelog.yaml
@@ -29,3 +29,5 @@
- Started using icon themes for the application icons, fixing many OSX graphical glitches.
- Icon sources have been located, along with icon licenses.
- Update to the German translation.
+0.2.1:
+ - Hotfix - move the native library extraction into the onesix launcher part.
diff --git a/depends/groupview/CMakeLists.txt b/depends/groupview/CMakeLists.txt
deleted file mode 100644
index 417b1d3a..00000000
--- a/depends/groupview/CMakeLists.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-project(libGroupView)
-
-set(CMAKE_AUTOMOC ON)
-
-# Find Qt
-find_package(Qt5Core REQUIRED)
-find_package(Qt5Widgets REQUIRED)
-
-# Include Qt headers.
-include_directories(${Qt5Base_INCLUDE_DIRS})
-
-SET(LIBGROUPVIEW_HEADERS
-include/groupview_config.h
-
-# Public headers
-include/categorizedsortfilterproxymodel.h
-include/categorizedview.h
-include/categorydrawer.h
-
-# Private headers
-src/categorizedsortfilterproxymodel_p.h
-src/categorizedview_p.h
-)
-
-SET(LIBGROUPVIEW_SOURCES
-src/categorizedsortfilterproxymodel.cpp
-src/categorizedview.cpp
-src/categorydrawer.cpp
-)
-
-# Set the include dir path.
-SET(LIBGROUPVIEW_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE)
-
-# Include self.
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
-include_directories(${CMAKE_BINARY_DIR}/include)
-
-# Static link!
-ADD_DEFINITIONS(-DLIBGROUPVIEW_STATIC)
-
-add_definitions(-DLIBGROUPVIEW_LIBRARY)
-
-set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-
-add_library(libGroupView STATIC ${LIBGROUPVIEW_SOURCES} ${LIBGROUPVIEW_HEADERS})
-qt5_use_modules(libGroupView Core Widgets)
diff --git a/depends/groupview/include/categorizedsortfilterproxymodel.h b/depends/groupview/include/categorizedsortfilterproxymodel.h
deleted file mode 100644
index d90fb254..00000000
--- a/depends/groupview/include/categorizedsortfilterproxymodel.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * This file is part of the KDE project
- * Copyright (C) 2007 Rafael Fernández López <ereslibre@kde.org>
- * Copyright (C) 2007 John Tapsell <tapsell@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_H
-#define KCATEGORIZEDSORTFILTERPROXYMODEL_H
-
-#include <QSortFilterProxyModel>
-
-#include <groupview_config.h>
-
-class QItemSelection;
-
-
-/**
- * This class lets you categorize a view. It is meant to be used along with
- * KCategorizedView class.
- *
- * In general terms all you need to do is to reimplement subSortLessThan() and
- * compareCategories() methods. In order to make categorization work, you need
- * to also call setCategorizedModel() class to enable it, since the categorization
- * is disabled by default.
- *
- * @see KCategorizedView
- *
- * @author Rafael Fernández López <ereslibre@kde.org>
- */
-class LIBGROUPVIEW_EXPORT KCategorizedSortFilterProxyModel
- : public QSortFilterProxyModel
-{
-public:
- enum AdditionalRoles
- {
- // Note: use printf "0x%08X\n" $(($RANDOM*$RANDOM))
- // to define additional roles.
- CategoryDisplayRole = 0x17CE990A, ///< This role is used for asking the category to a given index
-
- CategorySortRole = 0x27857E60 ///< This role is used for sorting categories. You can return a
- ///< string or a long long value. Strings will be sorted alphabetically
- ///< while long long will be sorted by their value. Please note that this
- ///< value won't be shown on the view, is only for sorting purposes. What will
- ///< be shown as "Category" on the view will be asked with the role
- ///< CategoryDisplayRole.
- };
-
- KCategorizedSortFilterProxyModel ( QObject *parent = 0 );
- virtual ~KCategorizedSortFilterProxyModel();
-
- /**
- * Overridden from QSortFilterProxyModel. Sorts the source model using
- * @p column for the given @p order.
- */
- virtual void sort ( int column, Qt::SortOrder order = Qt::AscendingOrder );
-
- /**
- * @return whether the model is categorized or not. Disabled by default.
- */
- bool isCategorizedModel() const;
-
- /**
- * Enables or disables the categorization feature.
- *
- * @param categorizedModel whether to enable or disable the categorization feature.
- */
- void setCategorizedModel ( bool categorizedModel );
-
- /**
- * @return the column being used for sorting.
- */
- int sortColumn() const;
-
- /**
- * @return the sort order being used for sorting.
- */
- Qt::SortOrder sortOrder() const;
-
- /**
- * Set if the sorting using CategorySortRole will use a natural comparison
- * in the case that strings were returned. If enabled, QString::localeAwareCompare
- * will be used for sorting.
- *
- * @param sortCategoriesByNaturalComparison whether to sort using a natural comparison or not.
- */
- void setSortCategoriesByNaturalComparison ( bool sortCategoriesByNaturalComparison );
-
- /**
- * @return whether it is being used a natural comparison for sorting. Enabled by default.
- */
- bool sortCategoriesByNaturalComparison() const;
-
-protected:
- /**
- * Overridden from QSortFilterProxyModel. If you are subclassing
- * KCategorizedSortFilterProxyModel, you will probably not need to reimplement this
- * method.
- *
- * It calls compareCategories() to sort by category. If the both items are in the
- * same category (i.e. compareCategories returns 0), then subSortLessThan is called.
- *
- * @return Returns true if the item @p left is less than the item @p right when sorting.
- *
- * @warning You usually won't need to reimplement this method when subclassing
- * from KCategorizedSortFilterProxyModel.
- */
- virtual bool lessThan ( const QModelIndex &left, const QModelIndex &right ) const;
-
- /**
- * This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
- * It is used for sorting items that are in the same category.
- *
- * @return Returns true if the item @p left is less than the item @p right when sorting.
- */
- virtual bool subSortLessThan ( const QModelIndex &left, const QModelIndex &right ) const;
-
- /**
- * This method compares the category of the @p left index with the category
- * of the @p right index.
- *
- * Internally and if not reimplemented, this method will ask for @p left and
- * @p right models for role CategorySortRole. In order to correctly sort
- * categories, the data() metod of the model should return a qlonglong (or numeric) value, or
- * a QString object. QString objects will be sorted with QString::localeAwareCompare if
- * sortCategoriesByNaturalComparison() is true.
- *
- * @note Please have present that:
- * QString(QChar(QChar::ObjectReplacementCharacter)) >
- * QString(QChar(QChar::ReplacementCharacter)) >
- * [ all possible strings ] >
- * QString();
- *
- * This means that QString() will be sorted the first one, while
- * QString(QChar(QChar::ObjectReplacementCharacter)) and
- * QString(QChar(QChar::ReplacementCharacter)) will be sorted in last
- * position.
- *
- * @warning Please note that data() method of the model should return always
- * information of the same type. If you return a QString for an index,
- * you should return always QStrings for all indexes for role CategorySortRole
- * in order to correctly sort categories. You can't mix by returning
- * a QString for one index, and a qlonglong for other.
- *
- * @note If you need a more complex layout, you will have to reimplement this
- * method.
- *
- * @return A negative value if the category of @p left should be placed before the
- * category of @p right. 0 if @p left and @p right are on the same category, and
- * a positive value if the category of @p left should be placed after the
- * category of @p right.
- */
- virtual int compareCategories ( const QModelIndex &