Skip to content

Commit

Permalink
SCRATCH initial technic implementation
Browse files Browse the repository at this point in the history
Code taken from old branch
  • Loading branch information
peterix committed Jun 11, 2017
1 parent 2973b11 commit 0b79890
Show file tree
Hide file tree
Showing 16 changed files with 939 additions and 0 deletions.
13 changes: 13 additions & 0 deletions application/CMakeLists.txt
Expand Up @@ -101,6 +101,16 @@ SET(MULTIMC_SOURCES
# GUI - settings-specific wrappers for paged dialog
SettingsUI.h

# Technic module
technic/PackWindow.h
technic/PackWindow.cpp
technic/PackWidget.h
technic/PackWidget.cpp
technic/PackModel.h
technic/PackModel.cpp
technic/SolderVersion.h
technic/SolderVersion.cpp

# Processes
LaunchController.h
LaunchController.cpp
Expand Down Expand Up @@ -271,6 +281,9 @@ SET(MULTIMC_UIS

# Widgets/other
widgets/MCModInfoFrame.ui

# technic
technic/PackWidget.ui
)

set(MULTIMC_QRCS
Expand Down
12 changes: 12 additions & 0 deletions application/MainWindow.cpp
Expand Up @@ -95,6 +95,7 @@ class MainWindow::Ui
{
public:
QAction *actionAddInstance;
QAction *actionAddTechnicInstance;
QAction *actionViewInstanceFolder;
QAction *actionRefresh;
QAction *actionViewCentralModsFolder;
Expand Down Expand Up @@ -161,6 +162,9 @@ class MainWindow::Ui
actionAddInstance = new QAction(MainWindow);
actionAddInstance->setObjectName(QStringLiteral("actionAddInstance"));
actionAddInstance->setIcon(MMC->getThemedIcon("new"));
actionAddTechnicInstance = new QAction(MainWindow);
actionAddTechnicInstance->setObjectName(QStringLiteral("actionAddTechnicInstance"));
actionAddTechnicInstance->setIcon(MMC->getThemedIcon("technic"));
actionViewInstanceFolder = new QAction(MainWindow);
actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder"));
actionViewInstanceFolder->setIcon(MMC->getThemedIcon("viewfolder"));
Expand Down Expand Up @@ -276,6 +280,7 @@ class MainWindow::Ui
MainWindow->addToolBar(Qt::BottomToolBarArea, newsToolBar);

mainToolBar->addAction(actionAddInstance);
mainToolBar->addAction(actionAddTechnicInstance);
mainToolBar->addAction(actionCopyInstance);
mainToolBar->addSeparator();
mainToolBar->addAction(actionViewInstanceFolder);
Expand Down Expand Up @@ -323,6 +328,8 @@ class MainWindow::Ui
MainWindow->setWindowTitle("MultiMC 5");
actionAddInstance->setText(tr("Add Instance"));
actionAddInstance->setToolTip(tr("Add a new instance."));
actionAddTechnicInstance->setText(tr("Add Technic Instance"));
actionAddTechnicInstance->setToolTip(tr("Add a new Technic instance."));
actionViewInstanceFolder->setText(tr("View Instance Folder"));
actionViewInstanceFolder->setToolTip(tr("Open the instance folder in a file browser."));
actionRefresh->setText(tr("Refresh"));
Expand Down Expand Up @@ -1149,6 +1156,11 @@ void MainWindow::on_actionAddInstance_triggered()
addInstance();
}

void MainWindow::on_actionAddTechnicInstance_triggered()
{
MMC->showTechnicWindow();
}

void MainWindow::droppedURLs(QList<QUrl> urls)
{
for(auto & url:urls)
Expand Down
2 changes: 2 additions & 0 deletions application/MainWindow.h
Expand Up @@ -65,6 +65,8 @@ private slots:

void on_actionAddInstance_triggered();

void on_actionAddTechnicInstance_triggered();

void on_actionREDDIT_triggered();

void on_actionDISCORD_triggered();
Expand Down
25 changes: 25 additions & 0 deletions application/MultiMC.cpp
Expand Up @@ -63,6 +63,8 @@

#include "minecraft/ftb/FTBPlugin.h"

#include "technic/PackWindow.h"

#include <Commandline.h>
#include <FileSystem.h>
#include <DesktopServices.h>
Expand Down Expand Up @@ -820,6 +822,9 @@ void MultiMC::initGlobalSettings()
m_settings->registerSetting("ConsoleWindowState", "");
m_settings->registerSetting("ConsoleWindowGeometry", "");

m_settings->registerSetting("TechnicWindowState", "");
m_settings->registerSetting("TechnicWindowGeometry", "");

m_settings->registerSetting("SettingsGeometry", "");

m_settings->registerSetting("PagedGeometry", "");
Expand Down Expand Up @@ -1114,6 +1119,21 @@ void MultiMC::controllerFailed(const QString& error)
}
}

Technic::PackWindow * MultiMC::showTechnicWindow()
{
if(m_technicWindow)
{
m_technicWindow->setWindowState(m_technicWindow->windowState() & ~Qt::WindowMinimized);
m_technicWindow->raise();
m_technicWindow->activateWindow();
return m_technicWindow;
}
m_technicWindow = new Technic::PackWindow(m_mainWindow);
connect(m_technicWindow, &Technic::PackWindow::isClosing, this, &MultiMC::on_windowClose);
m_openWindows++;
return m_technicWindow;
}

MainWindow* MultiMC::showMainWindow(bool minimized)
{
if(m_mainWindow)
Expand Down Expand Up @@ -1226,6 +1246,11 @@ void MultiMC::on_windowClose()
{
m_mainWindow = nullptr;
}
auto technicWindow = qobject_cast<Technic::PackWindow *>(QObject::sender());
if(technicWindow)
{
m_technicWindow = nullptr;
}
// quit when there are no more windows.
if(shouldExitNow())
{
Expand Down
8 changes: 8 additions & 0 deletions application/MultiMC.h
Expand Up @@ -14,6 +14,10 @@ class LaunchController;
class LocalPeer;
class InstanceWindow;
class MainWindow;
namespace Technic
{
class PackWindow;
}
class SetupWizard;
class FolderInstanceProvider;
class GenericPageProvider;
Expand Down Expand Up @@ -141,6 +145,7 @@ class MultiMC : public QApplication
*/
bool openJsonEditor(const QString &filename);

Technic::PackWindow *showTechnicWindow();
InstanceWindow *showInstanceWindow(InstancePtr instance, QString page = QString());
MainWindow *showMainWindow(bool minimized = false);

Expand Down Expand Up @@ -236,6 +241,9 @@ private slots:
// main window, if any
MainWindow * m_mainWindow = nullptr;

// windows with catalog of technic packs
Technic::PackWindow * m_technicWindow = nullptr;

// peer MultiMC instance connector - used to implement single instance MultiMC and signalling
LocalPeer * m_peerInstance = nullptr;

Expand Down
3 changes: 3 additions & 0 deletions application/resources/multimc/multimc.qrc
Expand Up @@ -5,6 +5,9 @@
<!-- Logo. Our own. -->
<file>scalable/multimc.svg</file>

<!-- Technic Logo. -->
<file>scalable/technic.svg</file>

<!-- REDDIT logo icon, needs reddit license! -->
<file>scalable/reddit-alien.svg</file>

Expand Down
100 changes: 100 additions & 0 deletions application/resources/multimc/scalable/technic.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0b79890

Please sign in to comment.