summaryrefslogtreecommitdiffstats
path: root/gui/versionselectdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/versionselectdialog.cpp')
-rw-r--r--gui/versionselectdialog.cpp65
1 files changed, 37 insertions, 28 deletions
diff --git a/gui/versionselectdialog.cpp b/gui/versionselectdialog.cpp
index 66d772b0..8fa62f75 100644
--- a/gui/versionselectdialog.cpp
+++ b/gui/versionselectdialog.cpp
@@ -3,7 +3,7 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@@ -20,32 +20,34 @@
#include <QDebug>
-#include <gui/taskdialog.h>
+#include <gui/ProgressDialog.h>
+#include "gui/platform.h"
-#include <logic/InstanceVersion.h>
-#include <logic/lists/InstVersionList.h>
+#include <logic/BaseVersion.h>
+#include <logic/lists/BaseVersionList.h>
#include <logic/tasks/Task.h>
-VersionSelectDialog::VersionSelectDialog(InstVersionList *vlist, QWidget *parent) :
- QDialog(parent),
- ui(new Ui::VersionSelectDialog)
+VersionSelectDialog::VersionSelectDialog(BaseVersionList *vlist, QString title, QWidget *parent, bool cancelable)
+ : QDialog(parent), ui(new Ui::VersionSelectDialog)
{
+ MultiMCPlatform::fixWM_CLASS(this);
ui->setupUi(this);
setWindowModality(Qt::WindowModal);
-
+ setWindowTitle(title);
+
m_vlist = vlist;
-
+
m_proxyModel = new QSortFilterProxyModel(this);
m_proxyModel->setSourceModel(vlist);
-
+
ui->listView->setModel(m_proxyModel);
ui->listView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
- ui->listView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
-
- connect(ui->filterSnapshotsCheckbox, SIGNAL(clicked()), SLOT(updateFilterState()));
- connect(ui->filterMCNostalgiaCheckbox, SIGNAL(clicked()), SLOT(updateFilterState()));
-
- updateFilterState();
+ ui->listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch);
+
+ if(!cancelable)
+ {
+ ui->buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false);
+ }
}
VersionSelectDialog::~VersionSelectDialog()
@@ -53,6 +55,13 @@ VersionSelectDialog::~VersionSelectDialog()
delete ui;
}
+void VersionSelectDialog::setResizeOn(int column)
+{
+ ui->listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::ResizeToContents);
+ resizeOnColumn = column;
+ ui->listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch);
+}
+
int VersionSelectDialog::exec()
{
QDialog::open();
@@ -63,17 +72,17 @@ int VersionSelectDialog::exec()
void VersionSelectDialog::loadList()
{
- TaskDialog *taskDlg = new TaskDialog(this);
+ ProgressDialog *taskDlg = new ProgressDialog(this);
Task *loadTask = m_vlist->getLoadTask();
loadTask->setParent(taskDlg);
taskDlg->exec(loadTask);
}
-InstVersionPtr VersionSelectDialog::selectedVersion() const
+BaseVersionPtr VersionSelectDialog::selectedVersion() const
{
auto currentIndex = ui->listView->selectionModel()->currentIndex();
- auto variant = m_proxyModel->data(currentIndex, InstVersionList::VersionPointerRole);
- return variant.value<InstVersionPtr>();
+ auto variant = m_proxyModel->data(currentIndex, BaseVersionList::VersionPointerRole);
+ return variant.value<BaseVersionPtr>();
}
void VersionSelectDialog::on_refreshButton_clicked()
@@ -81,21 +90,21 @@ void VersionSelectDialog::on_refreshButton_clicked()
loadList();
}
-void VersionSelectDialog::updateFilterState()
+void VersionSelectDialog::setFilter(int column, QString filter)
{
- m_proxyModel->setFilterKeyColumn(InstVersionList::TypeColumn);
-
+ m_proxyModel->setFilterKeyColumn(column);
+ m_proxyModel->setFilterFixedString(filter);
+ /*
QStringList filteredTypes;
if (!ui->filterSnapshotsCheckbox->isChecked())
filteredTypes += "Snapshot";
if (!ui->filterMCNostalgiaCheckbox->isChecked())
filteredTypes += "Nostalgia";
-
+
QString regexStr = "^.*$";
if (filteredTypes.length() > 0)
regexStr = QString("^((?!%1).)*$").arg(filteredTypes.join('|'));
-
- qDebug() << "Filter:" << regexStr;
-
- m_proxyModel->setFilterRegExp(regexStr);
+
+ QLOG_DEBUG() << "Filter:" << regexStr;
+ */
}