Merge pull request #1110 from TheKodeToad/version-search
Add a search bar to version lists
This commit is contained in:
commit
fd9a8d1551
@ -1,7 +1,8 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
/*
|
/*
|
||||||
* PolyMC - Minecraft Launcher
|
* Prism Launcher - Minecraft Launcher
|
||||||
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
||||||
|
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -54,9 +55,14 @@ public:
|
|||||||
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
|
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
|
||||||
{
|
{
|
||||||
const auto &filters = m_parent->filters();
|
const auto &filters = m_parent->filters();
|
||||||
|
const QString &search = m_parent->search();
|
||||||
|
const QModelIndex idx = sourceModel()->index(source_row, 0, source_parent);
|
||||||
|
|
||||||
|
if (!search.isEmpty() && !sourceModel()->data(idx, BaseVersionList::VersionRole).toString().contains(search, Qt::CaseInsensitive))
|
||||||
|
return false;
|
||||||
|
|
||||||
for (auto it = filters.begin(); it != filters.end(); ++it)
|
for (auto it = filters.begin(); it != filters.end(); ++it)
|
||||||
{
|
{
|
||||||
auto idx = sourceModel()->index(source_row, 0, source_parent);
|
|
||||||
auto data = sourceModel()->data(idx, it.key());
|
auto data = sourceModel()->data(idx, it.key());
|
||||||
auto match = data.toString();
|
auto match = data.toString();
|
||||||
if(!it.value()->accepts(match))
|
if(!it.value()->accepts(match))
|
||||||
@ -206,10 +212,6 @@ QVariant VersionProxyModel::data(const QModelIndex &index, int role) const
|
|||||||
return tr("Latest");
|
return tr("Latest");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(index.row() == 0)
|
|
||||||
{
|
|
||||||
return tr("Latest");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -239,10 +241,6 @@ QVariant VersionProxyModel::data(const QModelIndex &index, int role) const
|
|||||||
return APPLICATION->getThemedIcon("bug");
|
return APPLICATION->getThemedIcon("bug");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(index.row() == 0)
|
|
||||||
{
|
|
||||||
return APPLICATION->getThemedIcon("bug");
|
|
||||||
}
|
|
||||||
QPixmap pixmap;
|
QPixmap pixmap;
|
||||||
QPixmapCache::find("placeholder", &pixmap);
|
QPixmapCache::find("placeholder", &pixmap);
|
||||||
if(!pixmap)
|
if(!pixmap)
|
||||||
@ -431,6 +429,7 @@ QModelIndex VersionProxyModel::getVersion(const QString& version) const
|
|||||||
void VersionProxyModel::clearFilters()
|
void VersionProxyModel::clearFilters()
|
||||||
{
|
{
|
||||||
m_filters.clear();
|
m_filters.clear();
|
||||||
|
m_search.clear();
|
||||||
filterModel->filterChanged();
|
filterModel->filterChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,11 +439,21 @@ void VersionProxyModel::setFilter(const BaseVersionList::ModelRoles column, Filt
|
|||||||
filterModel->filterChanged();
|
filterModel->filterChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VersionProxyModel::setSearch(const QString &search) {
|
||||||
|
m_search = search;
|
||||||
|
filterModel->filterChanged();
|
||||||
|
}
|
||||||
|
|
||||||
const VersionProxyModel::FilterMap &VersionProxyModel::filters() const
|
const VersionProxyModel::FilterMap &VersionProxyModel::filters() const
|
||||||
{
|
{
|
||||||
return m_filters;
|
return m_filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QString &VersionProxyModel::search() const
|
||||||
|
{
|
||||||
|
return m_search;
|
||||||
|
}
|
||||||
|
|
||||||
void VersionProxyModel::sourceAboutToBeReset()
|
void VersionProxyModel::sourceAboutToBeReset()
|
||||||
{
|
{
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
|
@ -38,7 +38,9 @@ public:
|
|||||||
virtual void setSourceModel(QAbstractItemModel *sourceModel) override;
|
virtual void setSourceModel(QAbstractItemModel *sourceModel) override;
|
||||||
|
|
||||||
const FilterMap &filters() const;
|
const FilterMap &filters() const;
|
||||||
|
const QString &search() const;
|
||||||
void setFilter(const BaseVersionList::ModelRoles column, Filter * filter);
|
void setFilter(const BaseVersionList::ModelRoles column, Filter * filter);
|
||||||
|
void setSearch(const QString &search);
|
||||||
void clearFilters();
|
void clearFilters();
|
||||||
QModelIndex getRecommended() const;
|
QModelIndex getRecommended() const;
|
||||||
QModelIndex getVersion(const QString & version) const;
|
QModelIndex getVersion(const QString & version) const;
|
||||||
@ -59,6 +61,7 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
QList<Column> m_columns;
|
QList<Column> m_columns;
|
||||||
FilterMap m_filters;
|
FilterMap m_filters;
|
||||||
|
QString m_search;
|
||||||
BaseVersionList::RoleList roles;
|
BaseVersionList::RoleList roles;
|
||||||
VersionFilterModel * filterModel;
|
VersionFilterModel * filterModel;
|
||||||
bool hasRecommended = false;
|
bool hasRecommended = false;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
/*
|
/*
|
||||||
* PolyMC - Minecraft Launcher
|
* Prism Launcher - Minecraft Launcher
|
||||||
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
||||||
|
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -98,6 +99,8 @@ QVariant JavaInstallList::data(const QModelIndex &index, int role) const
|
|||||||
auto version = std::dynamic_pointer_cast<JavaInstall>(m_vlist[index.row()]);
|
auto version = std::dynamic_pointer_cast<JavaInstall>(m_vlist[index.row()]);
|
||||||
switch (role)
|
switch (role)
|
||||||
{
|
{
|
||||||
|
case SortRole:
|
||||||
|
return -index.row();
|
||||||
case VersionPointerRole:
|
case VersionPointerRole:
|
||||||
return QVariant::fromValue(m_vlist[index.row()]);
|
return QVariant::fromValue(m_vlist[index.row()]);
|
||||||
case VersionIdRole:
|
case VersionIdRole:
|
||||||
|
@ -1,16 +1,36 @@
|
|||||||
/* Copyright 2013-2021 MultiMC Contributors
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
/*
|
||||||
|
* Prism Launcher - Minecraft Launcher
|
||||||
|
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* you may not use this file except in compliance with the License.
|
* it under the terms of the GNU General Public License as published by
|
||||||
* You may obtain a copy of the License at
|
* the Free Software Foundation, version 3.
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* You should have received a copy of the GNU General Public License
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
*
|
||||||
* See the License for the specific language governing permissions and
|
* This file incorporates work covered by the following copyright and
|
||||||
* limitations under the License.
|
* permission notice:
|
||||||
|
*
|
||||||
|
* Copyright 2013-2021 MultiMC Contributors
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "VersionSelectDialog.h"
|
#include "VersionSelectDialog.h"
|
||||||
@ -22,15 +42,10 @@
|
|||||||
#include <QtWidgets/QVBoxLayout>
|
#include <QtWidgets/QVBoxLayout>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
#include "ui/dialogs/ProgressDialog.h"
|
|
||||||
#include "ui/widgets/VersionSelectWidget.h"
|
#include "ui/widgets/VersionSelectWidget.h"
|
||||||
#include "ui/dialogs/CustomMessageBox.h"
|
|
||||||
|
|
||||||
#include "BaseVersion.h"
|
#include "BaseVersion.h"
|
||||||
#include "BaseVersionList.h"
|
#include "BaseVersionList.h"
|
||||||
#include "tasks/Task.h"
|
|
||||||
#include "Application.h"
|
|
||||||
#include "VersionProxyModel.h"
|
|
||||||
|
|
||||||
VersionSelectDialog::VersionSelectDialog(BaseVersionList *vlist, QString title, QWidget *parent, bool cancelable)
|
VersionSelectDialog::VersionSelectDialog(BaseVersionList *vlist, QString title, QWidget *parent, bool cancelable)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
@ -40,7 +55,7 @@ VersionSelectDialog::VersionSelectDialog(BaseVersionList *vlist, QString title,
|
|||||||
m_verticalLayout = new QVBoxLayout(this);
|
m_verticalLayout = new QVBoxLayout(this);
|
||||||
m_verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
|
m_verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
|
||||||
|
|
||||||
m_versionWidget = new VersionSelectWidget(parent);
|
m_versionWidget = new VersionSelectWidget(true, parent);
|
||||||
m_verticalLayout->addWidget(m_versionWidget);
|
m_verticalLayout->addWidget(m_versionWidget);
|
||||||
|
|
||||||
m_horizontalLayout = new QHBoxLayout();
|
m_horizontalLayout = new QHBoxLayout();
|
||||||
|
@ -46,7 +46,7 @@ void JavaSettingsWidget::setupUi()
|
|||||||
m_verticalLayout = new QVBoxLayout(this);
|
m_verticalLayout = new QVBoxLayout(this);
|
||||||
m_verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
|
m_verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
|
||||||
|
|
||||||
m_versionWidget = new VersionSelectWidget(this);
|
m_versionWidget = new VersionSelectWidget(true, this);
|
||||||
m_verticalLayout->addWidget(m_versionWidget);
|
m_verticalLayout->addWidget(m_versionWidget);
|
||||||
|
|
||||||
m_horizontalLayout = new QHBoxLayout();
|
m_horizontalLayout = new QHBoxLayout();
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
/*
|
/*
|
||||||
* PolyMC - Minecraft Launcher
|
* Prism Launcher - Minecraft Launcher
|
||||||
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
||||||
|
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -125,14 +126,9 @@ void VersionListView::paintEvent(QPaintEvent *event)
|
|||||||
|
|
||||||
QString VersionListView::currentEmptyString() const
|
QString VersionListView::currentEmptyString() const
|
||||||
{
|
{
|
||||||
if(m_itemCount) {
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
switch(m_emptyMode)
|
switch(m_emptyMode)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case VersionListView::Empty:
|
|
||||||
return QString();
|
|
||||||
case VersionListView::String:
|
case VersionListView::String:
|
||||||
return m_emptyString;
|
return m_emptyString;
|
||||||
case VersionListView::ErrorString:
|
case VersionListView::ErrorString:
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
#include "VersionSelectWidget.h"
|
#include "VersionSelectWidget.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QEvent>
|
||||||
|
#include <QHeaderView>
|
||||||
|
#include <QKeyEvent>
|
||||||
#include <QProgressBar>
|
#include <QProgressBar>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QHeaderView>
|
|
||||||
|
|
||||||
#include "VersionProxyModel.h"
|
#include "VersionProxyModel.h"
|
||||||
|
|
||||||
#include "ui/dialogs/CustomMessageBox.h"
|
#include "ui/dialogs/CustomMessageBox.h"
|
||||||
|
|
||||||
VersionSelectWidget::VersionSelectWidget(QWidget* parent)
|
VersionSelectWidget::VersionSelectWidget(QWidget* parent) : VersionSelectWidget(false, parent) {}
|
||||||
: QWidget(parent)
|
|
||||||
|
VersionSelectWidget::VersionSelectWidget(bool focusSearch, QWidget* parent)
|
||||||
|
: QWidget(parent), focusSearch(focusSearch)
|
||||||
{
|
{
|
||||||
setObjectName(QStringLiteral("VersionSelectWidget"));
|
setObjectName(QStringLiteral("VersionSelectWidget"));
|
||||||
verticalLayout = new QVBoxLayout(this);
|
verticalLayout = new QVBoxLayout(this);
|
||||||
@ -30,6 +35,21 @@ VersionSelectWidget::VersionSelectWidget(QWidget* parent)
|
|||||||
listView->setModel(m_proxyModel);
|
listView->setModel(m_proxyModel);
|
||||||
verticalLayout->addWidget(listView);
|
verticalLayout->addWidget(listView);
|
||||||
|
|
||||||
|
search = new QLineEdit(this);
|
||||||
|
search->setPlaceholderText(tr("Search"));
|
||||||
|
search->setClearButtonEnabled(true);
|
||||||
|
verticalLayout->addWidget(search);
|
||||||
|
connect(search, &QLineEdit::textEdited, [this](const QString& value) {
|
||||||
|
m_proxyModel->setSearch(value);
|
||||||
|
if (!value.isEmpty() || !listView->selectionModel()->hasSelection()) {
|
||||||
|
const QModelIndex first = listView->model()->index(0, 0);
|
||||||
|
listView->selectionModel()->setCurrentIndex(first, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||||
|
listView->scrollToTop();
|
||||||
|
} else
|
||||||
|
listView->scrollTo(listView->selectionModel()->currentIndex(), QAbstractItemView::PositionAtCenter);
|
||||||
|
});
|
||||||
|
search->installEventFilter(this);
|
||||||
|
|
||||||
sneakyProgressBar = new QProgressBar(this);
|
sneakyProgressBar = new QProgressBar(this);
|
||||||
sneakyProgressBar->setObjectName(QStringLiteral("sneakyProgressBar"));
|
sneakyProgressBar->setObjectName(QStringLiteral("sneakyProgressBar"));
|
||||||
sneakyProgressBar->setFormat(QStringLiteral("%p%"));
|
sneakyProgressBar->setFormat(QStringLiteral("%p%"));
|
||||||
@ -72,6 +92,23 @@ void VersionSelectWidget::setResizeOn(int column)
|
|||||||
listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch);
|
listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool VersionSelectWidget::eventFilter(QObject *watched, QEvent *event) {
|
||||||
|
if (watched == search && event->type() == QEvent::KeyPress) {
|
||||||
|
const QKeyEvent* keyEvent = (QKeyEvent*)event;
|
||||||
|
const bool up = keyEvent->key() == Qt::Key_Up;
|
||||||
|
const bool down = keyEvent->key() == Qt::Key_Down;
|
||||||
|
if (up || down) {
|
||||||
|
const QModelIndex index = listView->model()->index(listView->currentIndex().row() + (up ? -1 : 1), 0);
|
||||||
|
if (index.row() >= 0 && index.row() < listView->model()->rowCount()) {
|
||||||
|
listView->selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return QObject::eventFilter(watched, event);
|
||||||
|
}
|
||||||
|
|
||||||
void VersionSelectWidget::initialize(BaseVersionList *vlist)
|
void VersionSelectWidget::initialize(BaseVersionList *vlist)
|
||||||
{
|
{
|
||||||
m_vlist = vlist;
|
m_vlist = vlist;
|
||||||
@ -79,6 +116,9 @@ void VersionSelectWidget::initialize(BaseVersionList *vlist)
|
|||||||
listView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
listView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||||
listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch);
|
listView->header()->setSectionResizeMode(resizeOnColumn, QHeaderView::Stretch);
|
||||||
|
|
||||||
|
if (focusSearch)
|
||||||
|
search->setFocus();
|
||||||
|
|
||||||
if (!m_vlist->isLoaded())
|
if (!m_vlist->isLoaded())
|
||||||
{
|
{
|
||||||
loadList();
|
loadList();
|
||||||
|
@ -1,22 +1,43 @@
|
|||||||
/* Copyright 2013-2021 MultiMC Contributors
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
/*
|
||||||
|
* Prism Launcher - Minecraft Launcher
|
||||||
|
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* you may not use this file except in compliance with the License.
|
* it under the terms of the GNU General Public License as published by
|
||||||
* You may obtain a copy of the License at
|
* the Free Software Foundation, version 3.
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* You should have received a copy of the GNU General Public License
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
*
|
||||||
* See the License for the specific language governing permissions and
|
* This file incorporates work covered by the following copyright and
|
||||||
* limitations under the License.
|
* permission notice:
|
||||||
|
*
|
||||||
|
* Copyright 2013-2021 MultiMC Contributors
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
#include <QLineEdit>
|
||||||
#include "BaseVersionList.h"
|
#include "BaseVersionList.h"
|
||||||
#include "VersionListView.h"
|
#include "VersionListView.h"
|
||||||
|
|
||||||
@ -30,7 +51,8 @@ class VersionSelectWidget: public QWidget
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit VersionSelectWidget(QWidget *parent = 0);
|
explicit VersionSelectWidget(QWidget *parent);
|
||||||
|
explicit VersionSelectWidget(bool focusSearch = false, QWidget *parent = 0);
|
||||||
~VersionSelectWidget();
|
~VersionSelectWidget();
|
||||||
|
|
||||||
//! loads the list if needed.
|
//! loads the list if needed.
|
||||||
@ -52,6 +74,7 @@ public:
|
|||||||
void setEmptyErrorString(QString emptyErrorString);
|
void setEmptyErrorString(QString emptyErrorString);
|
||||||
void setEmptyMode(VersionListView::EmptyMode mode);
|
void setEmptyMode(VersionListView::EmptyMode mode);
|
||||||
void setResizeOn(int column);
|
void setResizeOn(int column);
|
||||||
|
bool eventFilter(QObject* watched, QEvent* event) override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void selectedVersionChanged(BaseVersion::Ptr version);
|
void selectedVersionChanged(BaseVersion::Ptr version);
|
||||||
@ -75,9 +98,10 @@ private:
|
|||||||
int resizeOnColumn = 0;
|
int resizeOnColumn = 0;
|
||||||
Task * loadTask;
|
Task * loadTask;
|
||||||
bool preselectedAlready = false;
|
bool preselectedAlready = false;
|
||||||
|
bool focusSearch;
|
||||||
|
|
||||||
private:
|
|
||||||
QVBoxLayout *verticalLayout = nullptr;
|
QVBoxLayout *verticalLayout = nullptr;
|
||||||
VersionListView *listView = nullptr;
|
VersionListView *listView = nullptr;
|
||||||
|
QLineEdit *search;
|
||||||
QProgressBar *sneakyProgressBar = nullptr;
|
QProgressBar *sneakyProgressBar = nullptr;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user