Added FTB pack selection ad download, WIP
This commit is contained in:
		
							
								
								
									
										64
									
								
								application/dialogs/ChooseFtbPackDialog.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								application/dialogs/ChooseFtbPackDialog.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
#include "ChooseFtbPackDialog.h"
 | 
			
		||||
#include "widgets/FtbModpackListItem.h"
 | 
			
		||||
 | 
			
		||||
ChooseFtbPackDialog::ChooseFtbPackDialog(FtbModpackList modpacks) : ui(new Ui::ChooseFtbPackDialog) {
 | 
			
		||||
	ui->setupUi(this);
 | 
			
		||||
 | 
			
		||||
	for(int i = 0; i < modpacks.size(); i++) {
 | 
			
		||||
		FtbModpackListItem *item = new FtbModpackListItem(ui->packList, modpacks.at(i));
 | 
			
		||||
 | 
			
		||||
		item->setText(modpacks.at(i).name);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//TODO: Use a model/view instead of a widget
 | 
			
		||||
	connect(ui->packList, &QListWidget::itemClicked, this, &ChooseFtbPackDialog::onListItemClicked);
 | 
			
		||||
	connect(ui->packVersionSelection, &QComboBox::currentTextChanged, this, &ChooseFtbPackDialog::onVersionSelectionItemChanged);
 | 
			
		||||
 | 
			
		||||
	ui->modpackInfo->setOpenExternalLinks(true);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ChooseFtbPackDialog::~ChooseFtbPackDialog(){
 | 
			
		||||
	delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ChooseFtbPackDialog::onListItemClicked(QListWidgetItem *item){
 | 
			
		||||
	ui->packVersionSelection->clear();
 | 
			
		||||
	FtbModpack selectedPack = static_cast<FtbModpackListItem*>(item)->getModpack();
 | 
			
		||||
 | 
			
		||||
	ui->modpackInfo->setHtml("Pack by <b>" + selectedPack.author + "</b>" + "<br>Minecraft " + selectedPack.mcVersion + "<br>"
 | 
			
		||||
															    "<br>" + selectedPack.description + "<ul><li>" + selectedPack.mods.replace(";", "</li><li>") + "</li></ul>");
 | 
			
		||||
 | 
			
		||||
	bool currentAdded = false;
 | 
			
		||||
 | 
			
		||||
	for(int i = 0; i < selectedPack.oldVersions.size(); i++) {
 | 
			
		||||
		if(selectedPack.currentVersion == selectedPack.oldVersions.at(i)) {
 | 
			
		||||
			currentAdded = true;
 | 
			
		||||
		}
 | 
			
		||||
		ui->packVersionSelection->addItem(selectedPack.oldVersions.at(i));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if(!currentAdded) {
 | 
			
		||||
		ui->packVersionSelection->addItem(selectedPack.currentVersion);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	selected = selectedPack;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ChooseFtbPackDialog::onVersionSelectionItemChanged(QString data) {
 | 
			
		||||
	if(data.isNull() || data.isEmpty()) {
 | 
			
		||||
		selectedVersion = "";
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	selectedVersion = data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FtbModpack ChooseFtbPackDialog::getSelectedModpack() {
 | 
			
		||||
	return selected;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString ChooseFtbPackDialog::getSelectedVersion() {
 | 
			
		||||
	return selectedVersion;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								application/dialogs/ChooseFtbPackDialog.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								application/dialogs/ChooseFtbPackDialog.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QDialog>
 | 
			
		||||
#include <net/NetJob.h>
 | 
			
		||||
#include <modplatform/PackHelpers.h>
 | 
			
		||||
#include "ui_ChooseFtbPackDialog.h"
 | 
			
		||||
#include <modplatform/PackHelpers.h>
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
	class ChooseFtbPackDialog;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ChooseFtbPackDialog : public QDialog {
 | 
			
		||||
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::ChooseFtbPackDialog *ui;
 | 
			
		||||
	FtbModpack selected;
 | 
			
		||||
	QString selectedVersion;
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
	void onListItemClicked(QListWidgetItem *item);
 | 
			
		||||
	void onVersionSelectionItemChanged(QString data);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	ChooseFtbPackDialog(FtbModpackList packs);
 | 
			
		||||
	~ChooseFtbPackDialog();
 | 
			
		||||
 | 
			
		||||
	FtbModpack getSelectedModpack();
 | 
			
		||||
	QString getSelectedVersion();
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										163
									
								
								application/dialogs/ChooseFtbPackDialog.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								application/dialogs/ChooseFtbPackDialog.ui
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,163 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>ChooseFtbPackDialog</class>
 | 
			
		||||
 <widget class="QDialog" name="ChooseFtbPackDialog">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>730</width>
 | 
			
		||||
    <height>437</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="sizePolicy">
 | 
			
		||||
   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
    <horstretch>0</horstretch>
 | 
			
		||||
    <verstretch>0</verstretch>
 | 
			
		||||
   </sizepolicy>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="sizeGripEnabled">
 | 
			
		||||
   <bool>false</bool>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QDialogButtonBox" name="buttonBox">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>540</x>
 | 
			
		||||
     <y>400</y>
 | 
			
		||||
     <width>176</width>
 | 
			
		||||
     <height>25</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="standardButtons">
 | 
			
		||||
    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QScrollArea" name="scrollArea">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>10</x>
 | 
			
		||||
     <y>10</y>
 | 
			
		||||
     <width>261</width>
 | 
			
		||||
     <height>381</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="widgetResizable">
 | 
			
		||||
    <bool>true</bool>
 | 
			
		||||
   </property>
 | 
			
		||||
   <widget class="QWidget" name="scrollAreaWidgetContents">
 | 
			
		||||
    <property name="geometry">
 | 
			
		||||
     <rect>
 | 
			
		||||
      <x>0</x>
 | 
			
		||||
      <y>0</y>
 | 
			
		||||
      <width>259</width>
 | 
			
		||||
      <height>379</height>
 | 
			
		||||
     </rect>
 | 
			
		||||
    </property>
 | 
			
		||||
    <widget class="QListWidget" name="packList">
 | 
			
		||||
     <property name="geometry">
 | 
			
		||||
      <rect>
 | 
			
		||||
       <x>0</x>
 | 
			
		||||
       <y>0</y>
 | 
			
		||||
       <width>261</width>
 | 
			
		||||
       <height>381</height>
 | 
			
		||||
      </rect>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </widget>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QScrollArea" name="scrollArea_2">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>280</x>
 | 
			
		||||
     <y>10</y>
 | 
			
		||||
     <width>441</width>
 | 
			
		||||
     <height>381</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="widgetResizable">
 | 
			
		||||
    <bool>true</bool>
 | 
			
		||||
   </property>
 | 
			
		||||
   <widget class="QWidget" name="scrollAreaWidgetContents_2">
 | 
			
		||||
    <property name="geometry">
 | 
			
		||||
     <rect>
 | 
			
		||||
      <x>0</x>
 | 
			
		||||
      <y>0</y>
 | 
			
		||||
      <width>439</width>
 | 
			
		||||
      <height>379</height>
 | 
			
		||||
     </rect>
 | 
			
		||||
    </property>
 | 
			
		||||
    <widget class="QTextBrowser" name="modpackInfo">
 | 
			
		||||
     <property name="geometry">
 | 
			
		||||
      <rect>
 | 
			
		||||
       <x>0</x>
 | 
			
		||||
       <y>0</y>
 | 
			
		||||
       <width>441</width>
 | 
			
		||||
       <height>381</height>
 | 
			
		||||
      </rect>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </widget>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QComboBox" name="packVersionSelection">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>450</x>
 | 
			
		||||
     <y>400</y>
 | 
			
		||||
     <width>72</width>
 | 
			
		||||
     <height>25</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QLabel" name="selectedVersionLabel">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>340</x>
 | 
			
		||||
     <y>400</y>
 | 
			
		||||
     <width>101</width>
 | 
			
		||||
     <height>21</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>Version selected:</string>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="alignment">
 | 
			
		||||
    <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
 | 
			
		||||
   </property>
 | 
			
		||||
  </widget>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>buttonBox</sender>
 | 
			
		||||
   <signal>accepted()</signal>
 | 
			
		||||
   <receiver>ChooseFtbPackDialog</receiver>
 | 
			
		||||
   <slot>accept()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>666</x>
 | 
			
		||||
     <y>422</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>889</x>
 | 
			
		||||
     <y>501</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>buttonBox</sender>
 | 
			
		||||
   <signal>rejected()</signal>
 | 
			
		||||
   <receiver>ChooseFtbPackDialog</receiver>
 | 
			
		||||
   <slot>reject()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>680</x>
 | 
			
		||||
     <y>411</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>524</x>
 | 
			
		||||
     <y>458</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
 </connections>
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -25,6 +25,7 @@
 | 
			
		||||
#include "VersionSelectDialog.h"
 | 
			
		||||
#include "ProgressDialog.h"
 | 
			
		||||
#include "IconPickerDialog.h"
 | 
			
		||||
#include "ChooseFtbPackDialog.h"
 | 
			
		||||
 | 
			
		||||
#include <QLayout>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
@@ -92,9 +93,12 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
 | 
			
		||||
 | 
			
		||||
	connect(ui->modpackEdit, &QLineEdit::textChanged, this, &NewInstanceDialog::updateDialogState);
 | 
			
		||||
	connect(ui->modpackBox, &QRadioButton::clicked, this, &NewInstanceDialog::updateDialogState);
 | 
			
		||||
 | 
			
		||||
	connect(ui->versionBox, &QRadioButton::clicked, this, &NewInstanceDialog::updateDialogState);
 | 
			
		||||
	connect(ui->versionTextBox, &QLineEdit::textChanged, this, &NewInstanceDialog::updateDialogState);
 | 
			
		||||
 | 
			
		||||
	connect(ui->ftbBox, &QRadioButton::clicked, this, &NewInstanceDialog::updateDialogState);
 | 
			
		||||
 | 
			
		||||
	auto groups = MMC->instances()->getGroups().toSet();
 | 
			
		||||
	auto groupList = QStringList(groups.toList());
 | 
			
		||||
	groupList.sort(Qt::CaseInsensitive);
 | 
			
		||||
@@ -117,6 +121,14 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
 | 
			
		||||
		ui->modpackBox->setChecked(true);
 | 
			
		||||
		ui->modpackEdit->setText(url);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ftbPackDownloader = new FtbPackDownloader();
 | 
			
		||||
 | 
			
		||||
	connect(ftbPackDownloader, &FtbPackDownloader::ready, this, &NewInstanceDialog::ftbPackDataDownloadSuccessfully);
 | 
			
		||||
	connect(ftbPackDownloader, &FtbPackDownloader::packFetchFailed, this, &NewInstanceDialog::ftbPackDataDownloadFailed);
 | 
			
		||||
 | 
			
		||||
	ftbPackDownloader->fetchModpacks(false);
 | 
			
		||||
 | 
			
		||||
	updateDialogState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -147,6 +159,17 @@ void NewInstanceDialog::updateDialogState()
 | 
			
		||||
		QFileInfo fi(url.fileName());
 | 
			
		||||
		suggestedName = fi.completeBaseName();
 | 
			
		||||
	}
 | 
			
		||||
	else if (ui->ftbBox->isChecked())
 | 
			
		||||
	{
 | 
			
		||||
		if(ftbPackDownloader->isValidPackSelected()) {
 | 
			
		||||
			suggestedName = ftbPackDownloader->getSuggestedInstanceName();
 | 
			
		||||
			ui->labelFtbPack->setText(selectedPack.name);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ftbModpackRequested = ui->ftbBox->isChecked();
 | 
			
		||||
 | 
			
		||||
	if(suggestedName.isEmpty())
 | 
			
		||||
	{
 | 
			
		||||
		ui->instNameTextBox->setPlaceholderText(originalPlaceholderText);
 | 
			
		||||
@@ -156,9 +179,10 @@ void NewInstanceDialog::updateDialogState()
 | 
			
		||||
		ui->instNameTextBox->setPlaceholderText(suggestedName);
 | 
			
		||||
	}
 | 
			
		||||
	bool allowOK = !instName().isEmpty() && (
 | 
			
		||||
		(ui->versionBox->isChecked() && m_selectedVersion) ||
 | 
			
		||||
		(ui->modpackBox->isChecked() && ui->modpackEdit->hasAcceptableInput())
 | 
			
		||||
	);
 | 
			
		||||
				(ui->versionBox->isChecked() && m_selectedVersion) ||
 | 
			
		||||
				(ui->modpackBox->isChecked() && ui->modpackEdit->hasAcceptableInput()) ||
 | 
			
		||||
				(ui->ftbBox->isChecked() && ftbPackDownloader && ftbPackDownloader->isValidPackSelected() )
 | 
			
		||||
				);
 | 
			
		||||
	ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(allowOK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -271,3 +295,34 @@ void NewInstanceDialog::on_modpackBtn_clicked()
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool NewInstanceDialog::isFtbModpackRequested() {
 | 
			
		||||
	return ftbModpackRequested;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FtbPackDownloader *NewInstanceDialog::getFtbPackDownloader() {
 | 
			
		||||
	return ftbPackDownloader;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NewInstanceDialog::on_btnChooseFtbPack_clicked() {
 | 
			
		||||
	ChooseFtbPackDialog dl(ftbPackDownloader->getModpacks());
 | 
			
		||||
	dl.exec();
 | 
			
		||||
	if(dl.result() == QDialog::Accepted) {
 | 
			
		||||
		selectedPack = dl.getSelectedModpack();
 | 
			
		||||
		ftbPackDownloader->selectPack(selectedPack, dl.getSelectedVersion());
 | 
			
		||||
	}
 | 
			
		||||
	updateDialogState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NewInstanceDialog::ftbPackDataDownloadSuccessfully() {
 | 
			
		||||
	ui->packDataDownloadStatus->setText(tr("(Pack data download complete)"));
 | 
			
		||||
	// ui->labelFtbPack->setText(tr("Disabled for now... not completed!"));
 | 
			
		||||
 | 
			
		||||
	// Disable for PR
 | 
			
		||||
	ui->ftbBox->setEnabled(true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NewInstanceDialog::ftbPackDataDownloadFailed() {
 | 
			
		||||
	ui->packDataDownloadStatus->setText(tr("(Pack data download failed)"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,8 @@
 | 
			
		||||
#include <QDialog>
 | 
			
		||||
 | 
			
		||||
#include "BaseVersion.h"
 | 
			
		||||
#include "modplatform/FtbPackDownloader.h"
 | 
			
		||||
#include "modplatform/PackHelpers.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui
 | 
			
		||||
{
 | 
			
		||||
@@ -42,19 +44,31 @@ public:
 | 
			
		||||
	QUrl modpackUrl() const;
 | 
			
		||||
	BaseVersionPtr selectedVersion() const;
 | 
			
		||||
 | 
			
		||||
    bool isFtbModpackRequested();
 | 
			
		||||
    FtbPackDownloader* getFtbPackDownloader();
 | 
			
		||||
 | 
			
		||||
private
 | 
			
		||||
slots:
 | 
			
		||||
	void on_btnChangeVersion_clicked();
 | 
			
		||||
	void on_iconButton_clicked();
 | 
			
		||||
	void on_modpackBtn_clicked();
 | 
			
		||||
    void on_btnChooseFtbPack_clicked();
 | 
			
		||||
	void on_instNameTextBox_textChanged(const QString &arg1);
 | 
			
		||||
	void versionListUpdated();
 | 
			
		||||
 | 
			
		||||
    void ftbPackDataDownloadSuccessfully();
 | 
			
		||||
    void ftbPackDataDownloadFailed();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::NewInstanceDialog *ui;
 | 
			
		||||
 | 
			
		||||
	bool m_versionSetByUser = false;
 | 
			
		||||
    bool ftbModpackRequested = false;
 | 
			
		||||
 | 
			
		||||
	BaseVersionPtr m_selectedVersion;
 | 
			
		||||
	QString InstIconKey;
 | 
			
		||||
	QString originalPlaceholderText;
 | 
			
		||||
 | 
			
		||||
    FtbPackDownloader* ftbPackDownloader;
 | 
			
		||||
    FtbModpack selectedPack;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>281</width>
 | 
			
		||||
    <height>404</height>
 | 
			
		||||
    <height>407</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
@@ -107,6 +107,33 @@
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
     <item row="5" column="0">
 | 
			
		||||
      <widget class="QRadioButton" name="ftbBox">
 | 
			
		||||
       <property name="enabled">
 | 
			
		||||
        <bool>false</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Install FTB Pack</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="2" column="2">
 | 
			
		||||
      <widget class="QToolButton" name="btnChangeVersion">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string notr="true">...</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="7" column="2">
 | 
			
		||||
      <widget class="QToolButton" name="btnChooseFtbPack">
 | 
			
		||||
       <property name="enabled">
 | 
			
		||||
        <bool>false</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>...</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="4" column="2">
 | 
			
		||||
      <widget class="QToolButton" name="modpackBtn">
 | 
			
		||||
       <property name="enabled">
 | 
			
		||||
@@ -117,27 +144,13 @@
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="4" column="0" colspan="2">
 | 
			
		||||
      <widget class="FocusLineEdit" name="modpackEdit">
 | 
			
		||||
     <item row="7" column="0" colspan="2">
 | 
			
		||||
      <widget class="QLabel" name="labelFtbPack">
 | 
			
		||||
       <property name="enabled">
 | 
			
		||||
        <bool>false</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string notr="true">http://</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="2" column="0" colspan="2">
 | 
			
		||||
      <widget class="QLineEdit" name="versionTextBox">
 | 
			
		||||
       <property name="readOnly">
 | 
			
		||||
        <bool>true</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="2" column="2">
 | 
			
		||||
      <widget class="QToolButton" name="btnChangeVersion">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string notr="true">...</string>
 | 
			
		||||
        <string> No Pack choosen</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
@@ -158,6 +171,30 @@
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="2" column="0" colspan="2">
 | 
			
		||||
      <widget class="QLineEdit" name="versionTextBox">
 | 
			
		||||
       <property name="readOnly">
 | 
			
		||||
        <bool>true</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="4" column="0" colspan="2">
 | 
			
		||||
      <widget class="FocusLineEdit" name="modpackEdit">
 | 
			
		||||
       <property name="enabled">
 | 
			
		||||
        <bool>false</bool>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string notr="true">http://</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="5" column="1" colspan="2">
 | 
			
		||||
      <widget class="QLabel" name="packDataDownloadStatus">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>(Loading Pack data...)</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
@@ -219,8 +256,8 @@
 | 
			
		||||
   <slot>accept()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>257</x>
 | 
			
		||||
     <y>333</y>
 | 
			
		||||
     <x>266</x>
 | 
			
		||||
     <y>378</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>157</x>
 | 
			
		||||
@@ -235,11 +272,11 @@
 | 
			
		||||
   <slot>reject()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>325</x>
 | 
			
		||||
     <y>333</y>
 | 
			
		||||
     <x>271</x>
 | 
			
		||||
     <y>378</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>286</x>
 | 
			
		||||
     <x>280</x>
 | 
			
		||||
     <y>274</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
@@ -251,12 +288,12 @@
 | 
			
		||||
   <slot>setEnabled(bool)</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>81</x>
 | 
			
		||||
     <y>229</y>
 | 
			
		||||
     <x>91</x>
 | 
			
		||||
     <y>251</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>236</x>
 | 
			
		||||
     <y>221</y>
 | 
			
		||||
     <x>240</x>
 | 
			
		||||
     <y>278</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
@@ -267,12 +304,12 @@
 | 
			
		||||
   <slot>setEnabled(bool)</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>129</x>
 | 
			
		||||
     <y>225</y>
 | 
			
		||||
     <x>139</x>
 | 
			
		||||
     <y>251</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>328</x>
 | 
			
		||||
     <y>229</y>
 | 
			
		||||
     <x>270</x>
 | 
			
		||||
     <y>278</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
@@ -287,8 +324,8 @@
 | 
			
		||||
     <y>195</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>213</x>
 | 
			
		||||
     <y>191</y>
 | 
			
		||||
     <x>223</x>
 | 
			
		||||
     <y>224</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
@@ -303,8 +340,40 @@
 | 
			
		||||
     <y>198</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>322</x>
 | 
			
		||||
     <y>192</y>
 | 
			
		||||
     <x>270</x>
 | 
			
		||||
     <y>224</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>ftbBox</sender>
 | 
			
		||||
   <signal>toggled(bool)</signal>
 | 
			
		||||
   <receiver>btnChooseFtbPack</receiver>
 | 
			
		||||
   <slot>setEnabled(bool)</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>67</x>
 | 
			
		||||
     <y>301</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>254</x>
 | 
			
		||||
     <y>327</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>ftbBox</sender>
 | 
			
		||||
   <signal>toggled(bool)</signal>
 | 
			
		||||
   <receiver>labelFtbPack</receiver>
 | 
			
		||||
   <slot>setEnabled(bool)</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>81</x>
 | 
			
		||||
     <y>310</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>73</x>
 | 
			
		||||
     <y>334</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user