diff options
author | Petr Mrázek <peterix@gmail.com> | 2021-07-25 19:11:59 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2021-07-25 19:50:44 +0200 |
commit | 20b9f2b42a3b58b6081af271774fbcc34025dccb (patch) | |
tree | 064fa59facb3357139b47bd4e60bfc8edb35ca11 /application/widgets/VersionSelectWidget.cpp | |
parent | dd133680858351e3e07690e286882327a4f42ba5 (diff) | |
download | PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.tar.gz PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.tar.bz2 PrismLauncher-20b9f2b42a3b58b6081af271774fbcc34025dccb.zip |
NOISSUE Flatten gui and logic libraries into MultiMC
Diffstat (limited to 'application/widgets/VersionSelectWidget.cpp')
-rw-r--r-- | application/widgets/VersionSelectWidget.cpp | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/application/widgets/VersionSelectWidget.cpp b/application/widgets/VersionSelectWidget.cpp deleted file mode 100644 index 9925a6b4..00000000 --- a/application/widgets/VersionSelectWidget.cpp +++ /dev/null @@ -1,202 +0,0 @@ -#include "VersionSelectWidget.h" -#include <QProgressBar> -#include <QVBoxLayout> -#include "VersionListView.h" -#include <QHeaderView> -#include <VersionProxyModel.h> -#include <dialogs/CustomMessageBox.h> - -VersionSelectWidget::VersionSelectWidget(QWidget* parent) - : QWidget(parent) -{ - setObjectName(QStringLiteral("VersionSelectWidget")); - verticalLayout = new QVBoxLayout(this); - verticalLayout->setObjectName(QStringLiteral("verticalLayout")); - verticalLayout->setContentsMargins(0, 0, 0, 0); - - m_proxyModel = new VersionProxyModel(this); - - 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); - - 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); -} - -void VersionSelectWidget::setCurrentVersion(const QString& version) -{ - m_currentVersion = version; - m_proxyModel->setCurrentVersion(version); -} - -void VersionSelectWidget::setEmptyString(QString emptyString) -{ - listView->setEmptyString(emptyString); -} - -void VersionSelectWidget::setEmptyErrorString(QString emptyErrorString) -{ - listView->setEmptyErrorString(emptyErrorString); -} - -VersionSelectWidget::~VersionSelectWidget() -{ -} - -void VersionSelectWidget::setResizeOn(int column) -{ - listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::ResizeToContents); - resizeOnColumn = column; - 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); - - if (!m_vlist->isLoaded()) - { - loadList(); - } - else - { - if (m_proxyModel->rowCount() == 0) - { - listView->setEmptyMode(VersionListView::String); - } - preselect(); - } -} - -void VersionSelectWidget::closeEvent(QCloseEvent * event) -{ - QWidget::closeEvent(event); -} - -void VersionSelectWidget::loadList() -{ - auto newTask = m_vlist->getLoadTask(); - if (!newTask) - { - return; - } - loadTask = newTask.get(); - connect(loadTask, &Task::succeeded, this, &VersionSelectWidget::onTaskSucceeded); - connect(loadTask, &Task::failed, this, &VersionSelectWidget::onTaskFailed); - connect(loadTask, &Task::progress, this, &VersionSelectWidget::changeProgress); - if(!loadTask->isRunning()) - { - loadTask->start(); - } - sneakyProgressBar->setHidden(false); -} - -void VersionSelectWidget::onTaskSucceeded() -{ - if (m_proxyModel->rowCount() == 0) - { - listView->setEmptyMode(VersionListView::String); - } - sneakyProgressBar->setHidden(true); - preselect(); - loadTask = nullptr; -} - -void VersionSelectWidget::onTaskFailed(const QString& reason) -{ - CustomMessageBox::selectable(this, tr("Error"), tr("List update failed:\n%1").arg(reason), QMessageBox::Warning)->show(); - onTaskSucceeded(); -} - -void VersionSelectWidget::changeProgress(qint64 current, qint64 total) -{ - sneakyProgressBar->setMaximum(total); - sneakyProgressBar->setValue(current); -} - -void VersionSelectWidget::currentRowChanged(const QModelIndex& current, const QModelIndex&) -{ - auto variant = m_proxyModel->data(current, BaseVersionList::VersionPointerRole); - emit selectedVersionChanged(variant.value<BaseVersionPtr>()); -} - -void VersionSelectWidget::preselect() -{ - if(preselectedAlready) - return; - selectCurrent(); - if(preselectedAlready) - return; - selectRecommended(); -} - -void VersionSelectWidget::selectCurrent() -{ - if(m_currentVersion.isEmpty()) - { - return; - } - auto idx = m_proxyModel->getVersion(m_currentVersion); - if(idx.isValid()) - { - preselectedAlready = true; - listView->selectionModel()->setCurrentIndex(idx,QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); - listView->scrollTo(idx, QAbstractItemView::PositionAtCenter); - } -} - -void VersionSelectWidget::selectRecommended() -{ - auto idx = m_proxyModel->getRecommended(); - if(idx.isValid()) - { - preselectedAlready = true; - listView->selectionModel()->setCurrentIndex(idx,QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); - listView->scrollTo(idx, QAbstractItemView::PositionAtCenter); - } -} - -bool VersionSelectWidget::hasVersions() const -{ - return m_proxyModel->rowCount(QModelIndex()) != 0; -} - -BaseVersionPtr VersionSelectWidget::selectedVersion() const -{ - auto currentIndex = listView->selectionModel()->currentIndex(); - auto variant = m_proxyModel->data(currentIndex, BaseVersionList::VersionPointerRole); - return variant.value<BaseVersionPtr>(); -} - -void VersionSelectWidget::setExactFilter(BaseVersionList::ModelRoles role, QString filter) -{ - m_proxyModel->setFilter(role, new ExactFilter(filter)); -} - -void VersionSelectWidget::setFuzzyFilter(BaseVersionList::ModelRoles role, QString filter) -{ - m_proxyModel->setFilter(role, new ContainsFilter(filter)); -} - -void VersionSelectWidget::setFilter(BaseVersionList::ModelRoles role, Filter *filter) -{ - m_proxyModel->setFilter(role, filter); -} |