aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ui/dialogs')
-rw-r--r--launcher/ui/dialogs/ExportToModListDialog.cpp44
-rw-r--r--launcher/ui/dialogs/ExportToModListDialog.h2
-rw-r--r--launcher/ui/dialogs/ExportToModListDialog.ui53
3 files changed, 76 insertions, 23 deletions
diff --git a/launcher/ui/dialogs/ExportToModListDialog.cpp b/launcher/ui/dialogs/ExportToModListDialog.cpp
index b86b1056..a0f8ee7b 100644
--- a/launcher/ui/dialogs/ExportToModListDialog.cpp
+++ b/launcher/ui/dialogs/ExportToModListDialog.cpp
@@ -45,7 +45,7 @@ ExportToModListDialog::ExportToModListDialog(InstancePtr instance, QWidget* pare
: QDialog(parent), m_template_changed(false), name(instance->name()), ui(new Ui::ExportToModListDialog)
{
ui->setupUi(this);
- ui->optionsGroup->setDisabled(false);
+ enableCustom(false);
MinecraftInstance* mcInstance = dynamic_cast<MinecraftInstance*>(instance.get());
if (mcInstance) {
@@ -60,6 +60,9 @@ ExportToModListDialog::ExportToModListDialog(InstancePtr instance, QWidget* pare
connect(ui->authorsCheckBox, &QCheckBox::stateChanged, this, &ExportToModListDialog::trigger);
connect(ui->versionCheckBox, &QCheckBox::stateChanged, this, &ExportToModListDialog::trigger);
connect(ui->urlCheckBox, &QCheckBox::stateChanged, this, &ExportToModListDialog::trigger);
+ connect(ui->authorsButton, &QPushButton::clicked, this, [this](bool) { addExtra(ExportToModList::Authors); });
+ connect(ui->versionButton, &QPushButton::clicked, this, [this](bool) { addExtra(ExportToModList::Version); });
+ connect(ui->urlButton, &QPushButton::clicked, this, [this](bool) { addExtra(ExportToModList::Url); });
connect(ui->templateText, &QTextEdit::textChanged, this, [this] {
if (ui->templateText->toPlainText() != exampleLines[format])
ui->formatComboBox->setCurrentIndex(5);
@@ -81,38 +84,38 @@ void ExportToModListDialog::formatChanged(int index)
{
switch (index) {
case 0: {
- ui->optionsGroup->setDisabled(false);
+ enableCustom(false);
ui->resultText->show();
format = ExportToModList::HTML;
break;
}
case 1: {
- ui->optionsGroup->setDisabled(false);
+ enableCustom(false);
ui->resultText->show();
format = ExportToModList::MARKDOWN;
break;
}
case 2: {
- ui->optionsGroup->setDisabled(false);
+ enableCustom(false);
ui->resultText->hide();
format = ExportToModList::PLAINTXT;
break;
}
case 3: {
- ui->optionsGroup->setDisabled(false);
+ enableCustom(false);
ui->resultText->hide();
format = ExportToModList::JSON;
break;
}
case 4: {
- ui->optionsGroup->setDisabled(false);
+ enableCustom(false);
ui->resultText->hide();
format = ExportToModList::CSV;
break;
}
case 5: {
m_template_changed = true;
- ui->optionsGroup->setDisabled(true);
+ enableCustom(true);
ui->resultText->hide();
format = ExportToModList::CUSTOM;
break;
@@ -191,3 +194,30 @@ QString ExportToModListDialog::extension()
}
return ".txt";
}
+
+void ExportToModListDialog::addExtra(ExportToModList::OptionalData option)
+{
+ if (format != ExportToModList::CUSTOM)
+ return;
+ switch (option) {
+ case ExportToModList::Authors:
+ ui->templateText->insertPlainText("{authors}");
+ break;
+ case ExportToModList::Url:
+ ui->templateText->insertPlainText("{url}");
+ break;
+ case ExportToModList::Version:
+ ui->templateText->insertPlainText("{version}");
+ break;
+ }
+}
+void ExportToModListDialog::enableCustom(bool enabled)
+{
+ ui->authorsCheckBox->setHidden(enabled);
+ ui->versionCheckBox->setHidden(enabled);
+ ui->urlCheckBox->setHidden(enabled);
+
+ ui->authorsButton->setHidden(!enabled);
+ ui->versionButton->setHidden(!enabled);
+ ui->urlButton->setHidden(!enabled);
+}
diff --git a/launcher/ui/dialogs/ExportToModListDialog.h b/launcher/ui/dialogs/ExportToModListDialog.h
index b8a83d83..9886ae5a 100644
--- a/launcher/ui/dialogs/ExportToModListDialog.h
+++ b/launcher/ui/dialogs/ExportToModListDialog.h
@@ -41,9 +41,11 @@ class ExportToModListDialog : public QDialog {
void formatChanged(int index);
void triggerImp();
void trigger(int) { triggerImp(); };
+ void addExtra(ExportToModList::OptionalData option);
private:
QString extension();
+ void enableCustom(bool enabled);
QList<Mod*> m_allMods;
bool m_template_changed;
QString name;
diff --git a/launcher/ui/dialogs/ExportToModListDialog.ui b/launcher/ui/dialogs/ExportToModListDialog.ui
index 90f179a6..fc72f9a9 100644
--- a/launcher/ui/dialogs/ExportToModListDialog.ui
+++ b/launcher/ui/dialogs/ExportToModListDialog.ui
@@ -25,22 +25,6 @@
<string>Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="frameShape">
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Plain</enum>
- </property>
- <property name="lineWidth">
- <number>1</number>
- </property>
- <property name="text">
- <string>Format</string>
- </property>
- </widget>
- </item>
<item row="0" column="1">
<widget class="QComboBox" name="formatComboBox">
<item>
@@ -114,9 +98,46 @@
</property>
</widget>
</item>
+ <item>
+ <widget class="QPushButton" name="versionButton">
+ <property name="text">
+ <string>Version</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="authorsButton">
+ <property name="text">
+ <string>Authors</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="urlButton">
+ <property name="text">
+ <string>URL</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="text">
+ <string>Format</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>