Skip to content

Commit 725ec35

Browse files
committed
NOISSUE recognize curseforge URLs dropped on top of MultiMC
1 parent 739a86f commit 725ec35

5 files changed

Lines changed: 30 additions & 7 deletions

File tree

api/logic/modplatform/flame/UrlResolvingTask.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ void Flame::UrlResolvingTask::resolveUrl()
2121
{
2222
setStatus(tr("Resolving URL..."));
2323
setProgress(0, 1);
24+
QUrl actualUrl(m_url);
25+
if(actualUrl.host() != "www.curseforge.com") {
26+
emitFailed(tr("Not a Twitch URL."));
27+
return;
28+
}
2429
m_dljob.reset(new NetJob("URL resolver"));
2530

2631
bool weAreDigging = false;

application/dialogs/NewInstanceDialog.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#include <pages/modplatform/ImportPage.h>
4040
#include <pages/modplatform/TechnicPage.h>
4141

42+
43+
4244
NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString & url, QWidget *parent)
4345
: QDialog(parent), ui(new Ui::NewInstanceDialog)
4446
{
@@ -94,8 +96,15 @@ NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString
9496

9597
if(!url.isEmpty())
9698
{
97-
m_container->selectPage("import");
98-
importPage->setUrl(url);
99+
QUrl actualUrl(url);
100+
if(actualUrl.host() == "www.curseforge.com") {
101+
m_container->selectPage("twitch");
102+
twitchPage->setUrl(url);
103+
}
104+
else {
105+
m_container->selectPage("import");
106+
importPage->setUrl(url);
107+
}
99108
}
100109

101110
updateDialogState();
@@ -119,13 +128,13 @@ void NewInstanceDialog::accept()
119128
QList<BasePage *> NewInstanceDialog::getPages()
120129
{
121130
importPage = new ImportPage(this);
131+
twitchPage = new TwitchPage(this);
122132
return
123133
{
124134
new VanillaPage(this),
125-
new FTBPage(this),
126135
importPage,
127-
new TwitchPage(this),
128-
new TechnicPage(this)
136+
twitchPage,
137+
new FTBPage(this)
129138
};
130139
}
131140

application/dialogs/NewInstanceDialog.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class NewInstanceDialog;
2929
class PageContainer;
3030
class QDialogButtonBox;
3131
class ImportPage;
32+
class TwitchPage;
3233

3334
class NewInstanceDialog : public QDialog, public BasePageProvider
3435
{
@@ -67,6 +68,7 @@ private slots:
6768

6869
QString InstIconKey;
6970
ImportPage *importPage = nullptr;
71+
TwitchPage *twitchPage = nullptr;
7072
std::unique_ptr<InstanceTask> creationTask;
7173

7274
bool importIcon = false;

application/pages/modplatform/TwitchPage.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ void TwitchPage::openedImpl()
3030
void TwitchPage::triggerCheck(bool)
3131
{
3232
if(m_modIdResolver) {
33-
qDebug() << "Click!";
3433
return;
3534
}
3635
auto task = new Flame::UrlResolvingTask(ui->lineEdit->text());
@@ -39,6 +38,12 @@ void TwitchPage::triggerCheck(bool)
3938
task->start();
4039
}
4140

41+
void TwitchPage::setUrl(const QString& url)
42+
{
43+
ui->lineEdit->setText(url);
44+
triggerCheck(true);
45+
}
46+
4247
void TwitchPage::checkDone()
4348
{
4449
auto result = m_modIdResolver->getResults();

application/pages/modplatform/TwitchPage.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class TwitchPage : public QWidget, public BasePage
3838
virtual ~TwitchPage();
3939
virtual QString displayName() const override
4040
{
41-
return tr("Twitch");
41+
return tr("Twitch URL");
4242
}
4343
virtual QIcon icon() const override
4444
{
@@ -56,6 +56,8 @@ class TwitchPage : public QWidget, public BasePage
5656

5757
void openedImpl() override;
5858

59+
void setUrl(const QString & url);
60+
5961
private slots:
6062
void triggerCheck(bool checked);
6163
void checkDone();

0 commit comments

Comments
 (0)