From 9cc23de047e0dea63081091596097489318a4fd5 Mon Sep 17 00:00:00 2001 From: janrupf Date: Wed, 19 Jun 2019 17:02:23 +0200 Subject: [PATCH] GH-2552 Make the filter part of the version widget --- application/CMakeLists.txt | 2 + application/dialogs/VersionSelectDialog.cpp | 82 +++------- application/dialogs/VersionSelectDialog.h | 17 +- application/dialogs/VersionSelectDialog.ui | 75 +++++++++ application/pages/global/JavaPage.cpp | 1 + .../pages/instance/InstanceSettingsPage.cpp | 1 + application/pages/instance/VersionPage.cpp | 14 +- application/pages/modplatform/VanillaPage.cpp | 33 +--- application/pages/modplatform/VanillaPage.h | 4 - application/pages/modplatform/VanillaPage.ui | 115 +------------- application/widgets/VersionSelectWidget.cpp | 107 +++++++------ application/widgets/VersionSelectWidget.h | 12 +- application/widgets/VersionSelectWidget.ui | 150 ++++++++++++++++++ 13 files changed, 334 insertions(+), 279 deletions(-) create mode 100644 application/dialogs/VersionSelectDialog.ui create mode 100644 application/widgets/VersionSelectWidget.ui diff --git a/application/CMakeLists.txt b/application/CMakeLists.txt index f8709cfd..a0cad8d7 100644 --- a/application/CMakeLists.txt +++ b/application/CMakeLists.txt @@ -271,10 +271,12 @@ SET(MULTIMC_UIS dialogs/UpdateDialog.ui dialogs/NotificationDialog.ui dialogs/SkinUploadDialog.ui + dialogs/VersionSelectDialog.ui # Widgets/other widgets/CustomCommands.ui widgets/MCModInfoFrame.ui + widgets/VersionSelectWidget.ui ) set(MULTIMC_QRCS diff --git a/application/dialogs/VersionSelectDialog.cpp b/application/dialogs/VersionSelectDialog.cpp index 0b6ba87e..76d6c842 100644 --- a/application/dialogs/VersionSelectDialog.cpp +++ b/application/dialogs/VersionSelectDialog.cpp @@ -14,14 +14,9 @@ */ #include "VersionSelectDialog.h" +#include "ui_VersionSelectDialog.h" -#include -#include -#include -#include -#include - -#include +#include "dialogs/ProgressDialog.h" #include "CustomMessageBox.h" #include @@ -31,72 +26,42 @@ #include "MultiMC.h" #include #include +#include VersionSelectDialog::VersionSelectDialog(BaseVersionList *vlist, QString title, QWidget *parent, bool cancelable) - : QDialog(parent) + : QDialog(parent), ui(new Ui::VersionSelectDialog), m_vlist(vlist) { setObjectName(QStringLiteral("VersionSelectDialog")); - resize(400, 347); - m_verticalLayout = new QVBoxLayout(this); - m_verticalLayout->setObjectName(QStringLiteral("verticalLayout")); - m_versionWidget = new VersionSelectWidget(parent); - m_verticalLayout->addWidget(m_versionWidget); + ui->setupUi(this); - m_horizontalLayout = new QHBoxLayout(); - m_horizontalLayout->setObjectName(QStringLiteral("horizontalLayout")); - - m_refreshButton = new QPushButton(this); - m_refreshButton->setObjectName(QStringLiteral("refreshButton")); - m_horizontalLayout->addWidget(m_refreshButton); - - m_buttonBox = new QDialogButtonBox(this); - m_buttonBox->setObjectName(QStringLiteral("buttonBox")); - m_buttonBox->setOrientation(Qt::Horizontal); - m_buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); - m_horizontalLayout->addWidget(m_buttonBox); - - m_verticalLayout->addLayout(m_horizontalLayout); - - retranslate(); - - QObject::connect(m_buttonBox, SIGNAL(accepted()), this, SLOT(accept())); - QObject::connect(m_buttonBox, SIGNAL(rejected()), this, SLOT(reject())); - - QMetaObject::connectSlotsByName(this); setWindowModality(Qt::WindowModal); setWindowTitle(title); - m_vlist = vlist; - if (!cancelable) { - m_buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false); + ui->buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false); } } -void VersionSelectDialog::retranslate() +VersionSelectDialog::~VersionSelectDialog() { - // FIXME: overrides custom title given in constructor! - setWindowTitle(tr("Choose Version")); - m_refreshButton->setToolTip(tr("Reloads the version list.")); - m_refreshButton->setText(tr("&Refresh")); + delete ui; } void VersionSelectDialog::setCurrentVersion(const QString& version) { - m_currentVersion = version; - m_versionWidget->setCurrentVersion(version); + ui->versionSelect->setCurrentVersion(version); } void VersionSelectDialog::setEmptyString(QString emptyString) { - m_versionWidget->setEmptyString(emptyString); + ui->versionSelect->setEmptyString(emptyString); } void VersionSelectDialog::setEmptyErrorString(QString emptyErrorString) { - m_versionWidget->setEmptyErrorString(emptyErrorString); + ui->versionSelect->setEmptyErrorString(emptyErrorString); } void VersionSelectDialog::setResizeOn(int column) @@ -107,35 +72,30 @@ void VersionSelectDialog::setResizeOn(int column) int VersionSelectDialog::exec() { QDialog::open(); - m_versionWidget->initialize(m_vlist); + ui->versionSelect->initialize(m_vlist); if(resizeOnColumn != -1) { - m_versionWidget->setResizeOn(resizeOnColumn); + ui->versionSelect->setResizeOn(resizeOnColumn); } return QDialog::exec(); } -void VersionSelectDialog::selectRecommended() -{ - m_versionWidget->selectRecommended(); -} - BaseVersionPtr VersionSelectDialog::selectedVersion() const { - return m_versionWidget->selectedVersion(); -} - -void VersionSelectDialog::on_refreshButton_clicked() -{ - m_versionWidget->loadList(); + return ui->versionSelect->selectedVersion(); } void VersionSelectDialog::setExactFilter(BaseVersionList::ModelRoles role, QString filter) { - m_versionWidget->setExactFilter(role, filter); + ui->versionSelect->setExactFilter(role, filter); } void VersionSelectDialog::setFuzzyFilter(BaseVersionList::ModelRoles role, QString filter) { - m_versionWidget->setFuzzyFilter(role, filter); + ui->versionSelect->setFuzzyFilter(role, filter); } + +void VersionSelectDialog::setFilterBoxVisible(bool visible) +{ + ui->versionSelect->setFilterBoxVisible(visible); +} \ No newline at end of file diff --git a/application/dialogs/VersionSelectDialog.h b/application/dialogs/VersionSelectDialog.h index 14bc4d76..179c601b 100644 --- a/application/dialogs/VersionSelectDialog.h +++ b/application/dialogs/VersionSelectDialog.h @@ -40,7 +40,7 @@ class VersionSelectDialog : public QDialog public: explicit VersionSelectDialog(BaseVersionList *vlist, QString title, QWidget *parent = 0, bool cancelable = true); - virtual ~VersionSelectDialog() {}; + virtual ~VersionSelectDialog(); int exec() override; @@ -53,23 +53,12 @@ public: void setEmptyErrorString(QString emptyErrorString); void setResizeOn(int column); -private slots: - void on_refreshButton_clicked(); + void setFilterBoxVisible(bool visible); private: - void retranslate(); - void selectRecommended(); - -private: - QString m_currentVersion; - VersionSelectWidget *m_versionWidget = nullptr; - QVBoxLayout *m_verticalLayout = nullptr; - QHBoxLayout *m_horizontalLayout = nullptr; - QPushButton *m_refreshButton = nullptr; - QDialogButtonBox *m_buttonBox = nullptr; + Ui::VersionSelectDialog *ui; BaseVersionList *m_vlist = nullptr; - VersionProxyModel *m_proxyModel = nullptr; int resizeOnColumn = -1; diff --git a/application/dialogs/VersionSelectDialog.ui b/application/dialogs/VersionSelectDialog.ui new file mode 100644 index 00000000..1c34e5ba --- /dev/null +++ b/application/dialogs/VersionSelectDialog.ui @@ -0,0 +1,75 @@ + + + VersionSelectDialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + VersionSelectWidget + QWidget +
widgets/VersionSelectWidget.h
+ 1 +
+
+ + + + buttonBox + accepted() + VersionSelectDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + VersionSelectDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +
diff --git a/application/pages/global/JavaPage.cpp b/application/pages/global/JavaPage.cpp index 71c5f803..b9a0d590 100644 --- a/application/pages/global/JavaPage.cpp +++ b/application/pages/global/JavaPage.cpp @@ -105,6 +105,7 @@ void JavaPage::on_javaDetectBtn_clicked() JavaInstallPtr java; VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, true); + vselect.setFilterBoxVisible(false); vselect.setResizeOn(2); vselect.exec(); diff --git a/application/pages/instance/InstanceSettingsPage.cpp b/application/pages/instance/InstanceSettingsPage.cpp index b7b0a863..418ae283 100644 --- a/application/pages/instance/InstanceSettingsPage.cpp +++ b/application/pages/instance/InstanceSettingsPage.cpp @@ -226,6 +226,7 @@ void InstanceSettingsPage::on_javaDetectBtn_clicked() JavaInstallPtr java; VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, true); + vselect.setFilterBoxVisible(false); vselect.setResizeOn(2); vselect.exec(); diff --git a/application/pages/instance/VersionPage.cpp b/application/pages/instance/VersionPage.cpp index fc1755e4..233545d3 100644 --- a/application/pages/instance/VersionPage.cpp +++ b/application/pages/instance/VersionPage.cpp @@ -317,15 +317,18 @@ void VersionPage::on_changeVersionBtn_clicked() on_liteloaderBtn_clicked(); return; } - VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this); if (uid == "net.fabricmc.intermediary") { - vselect.setEmptyString(tr("No Fabric Loader versions are currently available.")); - vselect.setEmptyErrorString(tr("Couldn't load or download the Fabric Loader version lists!")); - vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft")); + on_fabricBtn_clicked(); + return; } + + VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this); + vselect.setEmptyString(tr("No %1 versions are currently available.").arg(name)); + vselect.setEmptyErrorString(tr("Couldn't load or download the %1 version lists!").arg(name)); + auto currentVersion = patch->getVersion(); - if(!currentVersion.isEmpty()) + if(!currentVersion.isEmpty() && !currentVersion.isNull()) { vselect.setCurrentVersion(currentVersion); } @@ -376,6 +379,7 @@ void VersionPage::on_forgeBtn_clicked() return; } VersionSelectDialog vselect(vlist.get(), tr("Select Forge version"), this); + vselect.setFilterBoxVisible(false); vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft")); vselect.setEmptyString(tr("No Forge versions are currently available for Minecraft ") + m_profile->getComponentVersion("net.minecraft")); vselect.setEmptyErrorString(tr("Couldn't load or download the Forge version lists!")); diff --git a/application/pages/modplatform/VanillaPage.cpp b/application/pages/modplatform/VanillaPage.cpp index 77362fcc..6f5f42d8 100644 --- a/application/pages/modplatform/VanillaPage.cpp +++ b/application/pages/modplatform/VanillaPage.cpp @@ -16,14 +16,7 @@ VanillaPage::VanillaPage(NewInstanceDialog *dialog, QWidget *parent) { ui->setupUi(this); ui->tabWidget->tabBar()->hide(); - connect(ui->versionList, &VersionSelectWidget::selectedVersionChanged, this, &VanillaPage::setSelectedVersion); - filterChanged(); - connect(ui->alphaFilter, &QCheckBox::stateChanged, this, &VanillaPage::filterChanged); - connect(ui->betaFilter, &QCheckBox::stateChanged, this, &VanillaPage::filterChanged); - connect(ui->snapshotFilter, &QCheckBox::stateChanged, this, &VanillaPage::filterChanged); - connect(ui->oldSnapshotFilter, &QCheckBox::stateChanged, this, &VanillaPage::filterChanged); - connect(ui->releaseFilter, &QCheckBox::stateChanged, this, &VanillaPage::filterChanged); - connect(ui->refreshBtn, &QPushButton::clicked, this, &VanillaPage::refresh); + connect(ui->versionSelect, &VersionSelectWidget::selectedVersionChanged, this, &VanillaPage::setSelectedVersion); } void VanillaPage::openedImpl() @@ -31,7 +24,7 @@ void VanillaPage::openedImpl() if(!initialized) { auto vlist = ENV.metadataIndex()->get("net.minecraft"); - ui->versionList->initialize(vlist.get()); + ui->versionSelect->initialize(vlist.get()); initialized = true; } else @@ -40,28 +33,6 @@ void VanillaPage::openedImpl() } } -void VanillaPage::refresh() -{ - ui->versionList->loadList(); -} - -void VanillaPage::filterChanged() -{ - QStringList out; - if(ui->alphaFilter->isChecked()) - out << "(old_alpha)"; - if(ui->betaFilter->isChecked()) - out << "(old_beta)"; - if(ui->snapshotFilter->isChecked()) - out << "(snapshot)"; - if(ui->oldSnapshotFilter->isChecked()) - out << "(old_snapshot)"; - if(ui->releaseFilter->isChecked()) - out << "(release)"; - auto regexp = out.join('|'); - ui->versionList->setFilter(BaseVersionList::TypeRole, new RegexpFilter(regexp, false)); -} - VanillaPage::~VanillaPage() { delete ui; diff --git a/application/pages/modplatform/VanillaPage.h b/application/pages/modplatform/VanillaPage.h index cc77733c..04a1e57f 100644 --- a/application/pages/modplatform/VanillaPage.h +++ b/application/pages/modplatform/VanillaPage.h @@ -59,11 +59,7 @@ public: public slots: void setSelectedVersion(BaseVersionPtr version); -private slots: - void filterChanged(); - private: - void refresh(); void suggestCurrent(); private: diff --git a/application/pages/modplatform/VanillaPage.ui b/application/pages/modplatform/VanillaPage.ui index ae9cab47..90c6d9b3 100644 --- a/application/pages/modplatform/VanillaPage.ui +++ b/application/pages/modplatform/VanillaPage.ui @@ -10,127 +10,16 @@ 607 - - - 0 - - - 0 - - - 0 - - - 0 - + 0 - + - - - - - - - Filter - - - Qt::AlignCenter - - - - - - - Releases - - - true - - - true - - - - - - - Snapshots - - - true - - - - - - - Old Snapshots - - - true - - - - - - - Betas - - - true - - - - - - - Alphas - - - true - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Refresh - - - - - - - - - - 0 - 0 - - - - - diff --git a/application/widgets/VersionSelectWidget.cpp b/application/widgets/VersionSelectWidget.cpp index 9925a6b4..f35f0523 100644 --- a/application/widgets/VersionSelectWidget.cpp +++ b/application/widgets/VersionSelectWidget.cpp @@ -1,76 +1,65 @@ #include "VersionSelectWidget.h" -#include -#include -#include "VersionListView.h" -#include -#include -#include +#include "ui_VersionSelectWidget.h" + +#include "BaseVersion.h" +#include "dialogs/CustomMessageBox.h" +#include "VersionProxyModel.h" VersionSelectWidget::VersionSelectWidget(QWidget* parent) - : QWidget(parent) + : QWidget(parent), ui(new Ui::VersionSelectWidget) { setObjectName(QStringLiteral("VersionSelectWidget")); - verticalLayout = new QVBoxLayout(this); - verticalLayout->setObjectName(QStringLiteral("verticalLayout")); - verticalLayout->setContentsMargins(0, 0, 0, 0); m_proxyModel = new VersionProxyModel(this); + ui->setupUi(this); + ui->listView->setModel(m_proxyModel); - listView = new VersionListView(this); - listView->setObjectName(QStringLiteral("listView")); - listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - listView->setAlternatingRowColors(true); - listView->setRootIsDecorated(false); - listView->setItemsExpandable(false); - listView->setWordWrap(true); - listView->header()->setCascadingSectionResizes(true); - listView->header()->setStretchLastSection(false); - listView->setModel(m_proxyModel); - verticalLayout->addWidget(listView); + ui->loadProgressBar->setVisible(false); - sneakyProgressBar = new QProgressBar(this); - sneakyProgressBar->setObjectName(QStringLiteral("sneakyProgressBar")); - sneakyProgressBar->setFormat(QStringLiteral("%p%")); - verticalLayout->addWidget(sneakyProgressBar); - sneakyProgressBar->setHidden(true); - connect(listView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &VersionSelectWidget::currentRowChanged); - - QMetaObject::connectSlotsByName(this); + connect(ui->listView->selectionModel(), &QItemSelectionModel::currentRowChanged, + this, &VersionSelectWidget::currentRowChanged); + connect(ui->releasesCheckbox, &QCheckBox::stateChanged, this, &VersionSelectWidget::filterChanged); + connect(ui->snapshotsCheckbox, &QCheckBox::stateChanged, this, &VersionSelectWidget::filterChanged); + connect(ui->oldSnapshotsCheckbox, &QCheckBox::stateChanged, this, &VersionSelectWidget::filterChanged); + connect(ui->betasCheckbox, &QCheckBox::stateChanged, this, &VersionSelectWidget::filterChanged); + connect(ui->alphasCheckbox, &QCheckBox::stateChanged, this, &VersionSelectWidget::filterChanged); + connect(ui->refreshButton, &QPushButton::clicked, this, &VersionSelectWidget::loadList); } void VersionSelectWidget::setCurrentVersion(const QString& version) { - m_currentVersion = version; m_proxyModel->setCurrentVersion(version); + m_currentVersion = version; } void VersionSelectWidget::setEmptyString(QString emptyString) { - listView->setEmptyString(emptyString); + ui->listView->setEmptyString(emptyString); } void VersionSelectWidget::setEmptyErrorString(QString emptyErrorString) { - listView->setEmptyErrorString(emptyErrorString); + ui->listView->setEmptyErrorString(emptyErrorString); } VersionSelectWidget::~VersionSelectWidget() { + delete ui; } void VersionSelectWidget::setResizeOn(int column) { - listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::ResizeToContents); + ui->listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::ResizeToContents); resizeOnColumn = column; - listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch); + ui->listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch); } void VersionSelectWidget::initialize(BaseVersionList *vlist) { m_vlist = vlist; m_proxyModel->setSourceModel(vlist); - listView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); - listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch); + ui->listView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); + ui->listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch); if (!m_vlist->isLoaded()) { @@ -80,7 +69,7 @@ void VersionSelectWidget::initialize(BaseVersionList *vlist) { if (m_proxyModel->rowCount() == 0) { - listView->setEmptyMode(VersionListView::String); + ui->listView->setEmptyMode(VersionListView::String); } preselect(); } @@ -106,16 +95,16 @@ void VersionSelectWidget::loadList() { loadTask->start(); } - sneakyProgressBar->setHidden(false); + ui->loadProgressBar->setHidden(false); } void VersionSelectWidget::onTaskSucceeded() { if (m_proxyModel->rowCount() == 0) { - listView->setEmptyMode(VersionListView::String); + ui->listView->setEmptyMode(VersionListView::String); } - sneakyProgressBar->setHidden(true); + ui->loadProgressBar->setHidden(true); preselect(); loadTask = nullptr; } @@ -128,8 +117,8 @@ void VersionSelectWidget::onTaskFailed(const QString& reason) void VersionSelectWidget::changeProgress(qint64 current, qint64 total) { - sneakyProgressBar->setMaximum(total); - sneakyProgressBar->setValue(current); + ui->loadProgressBar->setMaximum(total); + ui->loadProgressBar->setValue(current); } void VersionSelectWidget::currentRowChanged(const QModelIndex& current, const QModelIndex&) @@ -158,8 +147,9 @@ void VersionSelectWidget::selectCurrent() if(idx.isValid()) { preselectedAlready = true; - listView->selectionModel()->setCurrentIndex(idx,QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); - listView->scrollTo(idx, QAbstractItemView::PositionAtCenter); + ui->listView->selectionModel()->setCurrentIndex(idx, + QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); + ui->listView->scrollTo(idx, QAbstractItemView::PositionAtCenter); } } @@ -169,8 +159,9 @@ void VersionSelectWidget::selectRecommended() if(idx.isValid()) { preselectedAlready = true; - listView->selectionModel()->setCurrentIndex(idx,QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); - listView->scrollTo(idx, QAbstractItemView::PositionAtCenter); + ui->listView->selectionModel()->setCurrentIndex(idx, + QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); + ui->listView->scrollTo(idx, QAbstractItemView::PositionAtCenter); } } @@ -181,7 +172,7 @@ bool VersionSelectWidget::hasVersions() const BaseVersionPtr VersionSelectWidget::selectedVersion() const { - auto currentIndex = listView->selectionModel()->currentIndex(); + auto currentIndex = ui->listView->selectionModel()->currentIndex(); auto variant = m_proxyModel->data(currentIndex, BaseVersionList::VersionPointerRole); return variant.value(); } @@ -200,3 +191,25 @@ void VersionSelectWidget::setFilter(BaseVersionList::ModelRoles role, Filter *fi { m_proxyModel->setFilter(role, filter); } + +void VersionSelectWidget::filterChanged() +{ + QStringList out; + if(ui->alphasCheckbox->isChecked()) + out << "(old_alpha)"; + if(ui->betasCheckbox->isChecked()) + out << "(old_beta)"; + if(ui->snapshotsCheckbox->isChecked()) + out << "(snapshot)"; + if(ui->oldSnapshotsCheckbox->isChecked()) + out << "(old_snapshot)"; + if(ui->releasesCheckbox->isChecked()) + out << "(release)"; + auto regexp = out.join('|'); + setFilter(BaseVersionList::TypeRole, new RegexpFilter(regexp, false)); +} + +void VersionSelectWidget::setFilterBoxVisible(bool visible) +{ + ui->filterBox->setVisible(visible); +} \ No newline at end of file diff --git a/application/widgets/VersionSelectWidget.h b/application/widgets/VersionSelectWidget.h index 701f568e..f50d26aa 100644 --- a/application/widgets/VersionSelectWidget.h +++ b/application/widgets/VersionSelectWidget.h @@ -25,6 +25,11 @@ class QVBoxLayout; class QProgressBar; class Filter; +namespace Ui +{ + class VersionSelectWidget; +} + class VersionSelectWidget: public QWidget { Q_OBJECT @@ -50,6 +55,7 @@ public: void setEmptyString(QString emptyString); void setEmptyErrorString(QString emptyErrorString); void setResizeOn(int column); + void setFilterBoxVisible(bool visible); signals: void selectedVersionChanged(BaseVersionPtr version); @@ -62,6 +68,7 @@ private slots: void onTaskFailed(const QString &reason); void changeProgress(qint64 current, qint64 total); void currentRowChanged(const QModelIndex ¤t, const QModelIndex &); + void filterChanged(); private: void preselect(); @@ -74,8 +81,5 @@ private: Task * loadTask; bool preselectedAlready = false; -private: - QVBoxLayout *verticalLayout = nullptr; - VersionListView *listView = nullptr; - QProgressBar *sneakyProgressBar = nullptr; + Ui::VersionSelectWidget *ui; }; diff --git a/application/widgets/VersionSelectWidget.ui b/application/widgets/VersionSelectWidget.ui new file mode 100644 index 00000000..eac5a258 --- /dev/null +++ b/application/widgets/VersionSelectWidget.ui @@ -0,0 +1,150 @@ + + + VersionSelectWidget + + + + 0 + 0 + 740 + 614 + + + + Form + + + + QLayout::SetDefaultConstraint + + + + + QLayout::SetMinimumSize + + + 0 + + + 0 + + + + + + + + Filter + + + + + + + Releases + + + + + + + Snapshots + + + + + + + Old Snapshots + + + + + + + Betas + + + + + + + Alphas + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Refresh + + + + + + + + + 24 + + + + + + + Qt::ScrollBarAsNeeded + + + Qt::ScrollBarAlwaysOff + + + true + + + false + + + false + + + true + + + false + + + true + + + false + + + + + + + + VersionListView + QTreeView +
widgets/VersionListView.h
+
+
+ + +