Add close button to page dialog. Add help button to page dialog.
Smile.
This commit is contained in:
parent
0bccc94471
commit
9ec6deea84
@ -18,6 +18,7 @@
|
|||||||
#include <QStackedLayout>
|
#include <QStackedLayout>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
#include <QUrl>
|
||||||
#include "MultiMC.h"
|
#include "MultiMC.h"
|
||||||
#include <QStyledItemDelegate>
|
#include <QStyledItemDelegate>
|
||||||
#include <QListView>
|
#include <QListView>
|
||||||
@ -25,6 +26,7 @@
|
|||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
|
#include <QDesktopServices>
|
||||||
#include <settingsobject.h>
|
#include <settingsobject.h>
|
||||||
|
|
||||||
#include "PageDialog_p.h"
|
#include "PageDialog_p.h"
|
||||||
@ -127,38 +129,36 @@ void PageDialog::createUI()
|
|||||||
m_pageStack->setMargin(0);
|
m_pageStack->setMargin(0);
|
||||||
m_pageStack->addWidget(new QWidget(this));
|
m_pageStack->addWidget(new QWidget(this));
|
||||||
|
|
||||||
/*
|
|
||||||
QDialogButtonBox *buttons =
|
QDialogButtonBox *buttons =
|
||||||
new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok |
|
new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Close);
|
||||||
QDialogButtonBox::Apply | QDialogButtonBox::Cancel);
|
buttons->button(QDialogButtonBox::Close)->setDefault(true);
|
||||||
buttons->button(QDialogButtonBox::Ok)->setDefault(true);
|
connect(buttons->button(QDialogButtonBox::Close), SIGNAL(clicked()), this, SLOT(close()));
|
||||||
connect(buttons->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply()));
|
connect(buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), this, SLOT(help()));
|
||||||
connect(buttons, SIGNAL(accepted()), this, SLOT(accept()));
|
|
||||||
connect(buttons, SIGNAL(rejected()), this, SLOT(reject()));
|
|
||||||
*/
|
|
||||||
|
|
||||||
QGridLayout *mainGridLayout = new QGridLayout;
|
QGridLayout *mainGridLayout = new QGridLayout;
|
||||||
mainGridLayout->addLayout(headerHLayout, 0, 1, 1, 1);
|
mainGridLayout->addLayout(headerHLayout, 0, 1, 1, 1);
|
||||||
mainGridLayout->addWidget(m_pageList, 0, 0, 2, 1);
|
mainGridLayout->addWidget(m_pageList, 0, 0, 2, 1);
|
||||||
mainGridLayout->addLayout(m_pageStack, 1, 1, 1, 1);
|
mainGridLayout->addLayout(m_pageStack, 1, 1, 1, 1);
|
||||||
//mainGridLayout->addWidget(buttons, 2, 0, 1, 2);
|
mainGridLayout->addWidget(buttons, 2, 0, 1, 2);
|
||||||
mainGridLayout->setColumnStretch(1, 4);
|
mainGridLayout->setColumnStretch(1, 4);
|
||||||
setLayout(mainGridLayout);
|
setLayout(mainGridLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PageDialog::showPage(int row)
|
void PageDialog::showPage(int row)
|
||||||
{
|
{
|
||||||
auto page = m_model->pages().at(row);
|
if(row != -1)
|
||||||
m_pageStack->setCurrentIndex(page->stackIndex);
|
|
||||||
m_header->setText(page->displayName());
|
|
||||||
m_iconHeader->setIcon(page->icon());
|
|
||||||
}
|
|
||||||
|
|
||||||
void PageDialog::currentChanged(const QModelIndex ¤t)
|
|
||||||
{
|
|
||||||
if (current.isValid())
|
|
||||||
{
|
{
|
||||||
showPage(m_proxyModel->mapToSource(current).row());
|
m_currentPage = m_model->pages().at(row);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_currentPage = nullptr;
|
||||||
|
}
|
||||||
|
if(m_currentPage)
|
||||||
|
{
|
||||||
|
m_pageStack->setCurrentIndex(m_currentPage->stackIndex);
|
||||||
|
m_header->setText(m_currentPage->displayName());
|
||||||
|
m_iconHeader->setIcon(m_currentPage->icon());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -168,45 +168,32 @@ void PageDialog::currentChanged(const QModelIndex ¤t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PageDialog::accept()
|
void PageDialog::help()
|
||||||
|
{
|
||||||
|
if(m_currentPage)
|
||||||
|
{
|
||||||
|
QString pageId = m_currentPage->helpPage();
|
||||||
|
if(pageId.isEmpty())
|
||||||
|
return;
|
||||||
|
QDesktopServices::openUrl(QUrl("https://github.com/MultiMC/MultiMC5/wiki/" + pageId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PageDialog::currentChanged(const QModelIndex ¤t)
|
||||||
|
{
|
||||||
|
showPage(current.isValid() ? m_proxyModel->mapToSource(current).row() : -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PageDialog::closeEvent(QCloseEvent * event)
|
||||||
{
|
{
|
||||||
bool accepted = true;
|
bool accepted = true;
|
||||||
for(auto page: m_model->pages())
|
for(auto page: m_model->pages())
|
||||||
{
|
{
|
||||||
accepted &= page->accept();
|
accepted &= page->apply();
|
||||||
}
|
}
|
||||||
if(accepted)
|
if(accepted)
|
||||||
{
|
{
|
||||||
MMC->settings()->set("PagedGeometry", saveGeometry().toBase64());
|
MMC->settings()->set("PagedGeometry", saveGeometry().toBase64());
|
||||||
QDialog::accept();
|
QDialog::closeEvent(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PageDialog::reject()
|
|
||||||
{
|
|
||||||
bool rejected = true;
|
|
||||||
for(auto page: m_model->pages())
|
|
||||||
{
|
|
||||||
rejected &= page->reject();
|
|
||||||
}
|
|
||||||
if(rejected)
|
|
||||||
{
|
|
||||||
MMC->settings()->set("PagedGeometry", saveGeometry().toBase64());
|
|
||||||
QDialog::reject();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void PageDialog::apply()
|
|
||||||
{
|
|
||||||
for(auto page: m_model->pages())
|
|
||||||
{
|
|
||||||
page->apply();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PageDialog::closeEvent(QCloseEvent * event)
|
|
||||||
{
|
|
||||||
MMC->settings()->set("PagedGeometry", saveGeometry().toBase64());
|
|
||||||
QDialog::closeEvent(event);
|
|
||||||
}
|
|
||||||
|
@ -38,14 +38,14 @@ private:
|
|||||||
void createUI();
|
void createUI();
|
||||||
private
|
private
|
||||||
slots:
|
slots:
|
||||||
void apply();
|
|
||||||
virtual void reject();
|
|
||||||
virtual void accept();
|
|
||||||
void currentChanged(const QModelIndex ¤t);
|
void currentChanged(const QModelIndex ¤t);
|
||||||
void showPage(int row);
|
void showPage(int row);
|
||||||
|
void help();
|
||||||
virtual void closeEvent(QCloseEvent *event);
|
virtual void closeEvent(QCloseEvent *event);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
BasePage * m_currentPage;
|
||||||
QSortFilterProxyModel *m_proxyModel;
|
QSortFilterProxyModel *m_proxyModel;
|
||||||
PageModel *m_model;
|
PageModel *m_model;
|
||||||
QStackedLayout *m_pageStack;
|
QStackedLayout *m_pageStack;
|
||||||
|
@ -25,14 +25,6 @@ public:
|
|||||||
virtual QString id() = 0;
|
virtual QString id() = 0;
|
||||||
virtual QString displayName() = 0;
|
virtual QString displayName() = 0;
|
||||||
virtual QIcon icon() = 0;
|
virtual QIcon icon() = 0;
|
||||||
virtual bool accept()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
virtual bool reject()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
virtual bool apply()
|
virtual bool apply()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@ -41,6 +33,10 @@ public:
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
virtual QString helpPage()
|
||||||
|
{
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
int stackIndex = -1;
|
int stackIndex = -1;
|
||||||
int listIndex = -1;
|
int listIndex = -1;
|
||||||
};
|
};
|
||||||
|
@ -28,10 +28,6 @@ InstanceSettingsPage::InstanceSettingsPage(SettingsObject *s, QWidget *parent)
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
loadSettings();
|
loadSettings();
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked(bool)), this,
|
|
||||||
SLOT(applySettings()));
|
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Reset), SIGNAL(clicked(bool)), this,
|
|
||||||
SLOT(loadSettings()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceSettingsPage::~InstanceSettingsPage()
|
InstanceSettingsPage::~InstanceSettingsPage()
|
||||||
@ -42,7 +38,6 @@ InstanceSettingsPage::~InstanceSettingsPage()
|
|||||||
bool InstanceSettingsPage::apply()
|
bool InstanceSettingsPage::apply()
|
||||||
{
|
{
|
||||||
applySettings();
|
applySettings();
|
||||||
loadSettings();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
virtual QIcon icon() override;
|
virtual QIcon icon() override;
|
||||||
virtual QString id() override;
|
virtual QString id() override;
|
||||||
virtual bool apply();
|
virtual bool apply();
|
||||||
|
virtual QString helpPage() override { return "InstanceSettingsPage"; };
|
||||||
private:
|
private:
|
||||||
void updateCheckboxStuff();
|
void updateCheckboxStuff();
|
||||||
private slots:
|
private slots:
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>458</width>
|
<width>458</width>
|
||||||
<height>476</height>
|
<height>426</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -425,16 +425,6 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Apply|QDialogButtonBox::Reset</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
@ -37,6 +37,7 @@ public:
|
|||||||
virtual QString displayName();
|
virtual QString displayName();
|
||||||
virtual QIcon icon();
|
virtual QIcon icon();
|
||||||
virtual QString id();
|
virtual QString id();
|
||||||
|
virtual QString helpPage() override { return "LegacyJarModPage"; };
|
||||||
|
|
||||||
private
|
private
|
||||||
slots:
|
slots:
|
||||||
|
@ -36,6 +36,7 @@ public:
|
|||||||
virtual QString displayName() override;
|
virtual QString displayName() override;
|
||||||
virtual QIcon icon() override;
|
virtual QIcon icon() override;
|
||||||
virtual QString id() override;
|
virtual QString id() override;
|
||||||
|
virtual QString helpPage() override { return "LegacyUpgradePage"; };
|
||||||
private
|
private
|
||||||
slots:
|
slots:
|
||||||
void on_upgradeButton_clicked();
|
void on_upgradeButton_clicked();
|
||||||
|
@ -49,7 +49,7 @@ QString ModFolderPage::id()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ModFolderPage::ModFolderPage(std::shared_ptr<ModList> mods, QString id, QString iconName,
|
ModFolderPage::ModFolderPage(std::shared_ptr<ModList> mods, QString id, QString iconName,
|
||||||
QString displayName, QWidget *parent)
|
QString displayName, QString helpPage, QWidget *parent)
|
||||||
: QWidget(parent), ui(new Ui::ModFolderPage)
|
: QWidget(parent), ui(new Ui::ModFolderPage)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
@ -57,6 +57,7 @@ ModFolderPage::ModFolderPage(std::shared_ptr<ModList> mods, QString id, QString
|
|||||||
m_id = id;
|
m_id = id;
|
||||||
m_displayName = displayName;
|
m_displayName = displayName;
|
||||||
m_iconName = iconName;
|
m_iconName = iconName;
|
||||||
|
m_helpName = helpPage;
|
||||||
ui->modTreeView->setModel(m_mods.get());
|
ui->modTreeView->setModel(m_mods.get());
|
||||||
ui->modTreeView->installEventFilter(this);
|
ui->modTreeView->installEventFilter(this);
|
||||||
m_mods->startWatching();
|
m_mods->startWatching();
|
||||||
|
@ -33,12 +33,12 @@ class ModFolderPage : public QWidget, public BasePage
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ModFolderPage(std::shared_ptr<ModList> mods, QString id, QString iconName,
|
explicit ModFolderPage(std::shared_ptr<ModList> mods, QString id, QString iconName,
|
||||||
QString displayName, QWidget *parent = 0);
|
QString displayName, QString helpPage = "" , QWidget *parent = 0);
|
||||||
virtual ~ModFolderPage();
|
virtual ~ModFolderPage();
|
||||||
virtual QString displayName() override;
|
virtual QString displayName() override;
|
||||||
virtual QIcon icon() override;
|
virtual QIcon icon() override;
|
||||||
virtual QString id() override;
|
virtual QString id() override;
|
||||||
|
virtual QString helpPage() override { return m_helpName; };
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *obj, QEvent *ev);
|
bool eventFilter(QObject *obj, QEvent *ev);
|
||||||
bool modListFilter(QKeyEvent *ev);
|
bool modListFilter(QKeyEvent *ev);
|
||||||
@ -49,6 +49,7 @@ private:
|
|||||||
QString m_iconName;
|
QString m_iconName;
|
||||||
QString m_id;
|
QString m_id;
|
||||||
QString m_displayName;
|
QString m_displayName;
|
||||||
|
QString m_helpName;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void modCurrent(const QModelIndex ¤t, const QModelIndex &previous);
|
void modCurrent(const QModelIndex ¤t, const QModelIndex &previous);
|
||||||
|
@ -6,7 +6,7 @@ class ResourcePackPage : public ModFolderPage
|
|||||||
public:
|
public:
|
||||||
explicit ResourcePackPage(BaseInstance *instance, QWidget *parent = 0)
|
explicit ResourcePackPage(BaseInstance *instance, QWidget *parent = 0)
|
||||||
: ModFolderPage(instance->texturePackList(), "resourcepacks", "resourcepacks",
|
: ModFolderPage(instance->texturePackList(), "resourcepacks", "resourcepacks",
|
||||||
tr("Resource packs"), parent)
|
tr("Resource packs"), "TexturePacksPage", parent)
|
||||||
{
|
{
|
||||||
m_inst = instance;
|
m_inst = instance;
|
||||||
}
|
}
|
||||||
@ -17,7 +17,6 @@ public:
|
|||||||
return !m_inst->traits().contains("no-texturepacks") &&
|
return !m_inst->traits().contains("no-texturepacks") &&
|
||||||
!m_inst->traits().contains("texturepacks");
|
!m_inst->traits().contains("texturepacks");
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BaseInstance *m_inst;
|
BaseInstance *m_inst;
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@ class TexturePackPage : public ModFolderPage
|
|||||||
public:
|
public:
|
||||||
explicit TexturePackPage(BaseInstance *instance, QWidget *parent = 0)
|
explicit TexturePackPage(BaseInstance *instance, QWidget *parent = 0)
|
||||||
: ModFolderPage(instance->texturePackList(), "texturepacks", "resourcepacks",
|
: ModFolderPage(instance->texturePackList(), "texturepacks", "resourcepacks",
|
||||||
tr("Texture packs"), parent)
|
tr("Texture packs"), "ResourcePacksPage", parent)
|
||||||
{
|
{
|
||||||
m_inst = instance;
|
m_inst = instance;
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ public:
|
|||||||
virtual QString displayName() override;
|
virtual QString displayName() override;
|
||||||
virtual QIcon icon() override;
|
virtual QIcon icon() override;
|
||||||
virtual QString id() override;
|
virtual QString id() override;
|
||||||
|
virtual QString helpPage() override { return "VersionPage"; };
|
||||||
private
|
private
|
||||||
slots:
|
slots:
|
||||||
|
|
||||||
|
@ -50,8 +50,10 @@ QList<BasePage *> LegacyInstance::getPages()
|
|||||||
QList<BasePage *> values;
|
QList<BasePage *> values;
|
||||||
values.append(new LegacyUpgradePage(this));
|
values.append(new LegacyUpgradePage(this));
|
||||||
values.append(new LegacyJarModPage(this));
|
values.append(new LegacyJarModPage(this));
|
||||||
values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods")));
|
values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods"),
|
||||||
values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods")));
|
"LoaderModsPage"));
|
||||||
|
values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods"),
|
||||||
|
"CoreModsPage"));
|
||||||
values.append(new TexturePackPage(this));
|
values.append(new TexturePackPage(this));
|
||||||
values.append(new InstanceSettingsPage(&settings()));
|
values.append(new InstanceSettingsPage(&settings()));
|
||||||
return values;
|
return values;
|
||||||
@ -70,7 +72,7 @@ std::shared_ptr<Task> LegacyInstance::doUpdate()
|
|||||||
return std::shared_ptr<Task>(new LegacyUpdate(this, this));
|
return std::shared_ptr<Task>(new LegacyUpdate(this, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LegacyInstance::prepareForLaunch(AuthSessionPtr account, QString & launchScript)
|
bool LegacyInstance::prepareForLaunch(AuthSessionPtr account, QString &launchScript)
|
||||||
{
|
{
|
||||||
QIcon icon = MMC->icons()->getIcon(iconKey());
|
QIcon icon = MMC->icons()->getIcon(iconKey());
|
||||||
auto pixmap = icon.pixmap(128, 128);
|
auto pixmap = icon.pixmap(128, 128);
|
||||||
|
@ -61,8 +61,10 @@ QList<BasePage *> OneSixInstance::getPages()
|
|||||||
{
|
{
|
||||||
QList<BasePage *> values;
|
QList<BasePage *> values;
|
||||||
values.append(new VersionPage(this));
|
values.append(new VersionPage(this));
|
||||||
values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods")));
|
values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods"),
|
||||||
values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods")));
|
"LoaderModsPage"));
|
||||||
|
values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods"),
|
||||||
|
"CoreModsPage"));
|
||||||
values.append(new ResourcePackPage(this));
|
values.append(new ResourcePackPage(this));
|
||||||
values.append(new TexturePackPage(this));
|
values.append(new TexturePackPage(this));
|
||||||
values.append(new InstanceSettingsPage(&settings()));
|
values.append(new InstanceSettingsPage(&settings()));
|
||||||
|
Loading…
Reference in New Issue
Block a user