| 12 | #include "ui/dialogs/CustomMessageBox.h" |
| 13 | |
| 14 | VersionSelectWidget::VersionSelectWidget(QWidget* parent) : QWidget(parent) |
| 15 | { |
| 16 | setObjectName(QStringLiteral("VersionSelectWidget")); |
| 17 | verticalLayout = new QVBoxLayout(this); |
| 18 | verticalLayout->setObjectName(QStringLiteral("verticalLayout")); |
| 19 | verticalLayout->setContentsMargins(0, 0, 0, 0); |
| 20 | |
| 21 | m_proxyModel = new VersionProxyModel(this); |
| 22 | |
| 23 | listView = new VersionListView(this); |
| 24 | listView->setObjectName(QStringLiteral("listView")); |
| 25 | listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
| 26 | listView->setAlternatingRowColors(true); |
| 27 | listView->setRootIsDecorated(false); |
| 28 | listView->setItemsExpandable(false); |
| 29 | listView->setWordWrap(true); |
| 30 | listView->header()->setCascadingSectionResizes(true); |
| 31 | listView->header()->setStretchLastSection(false); |
| 32 | listView->setModel(m_proxyModel); |
| 33 | verticalLayout->addWidget(listView); |
| 34 | |
| 35 | search = new QLineEdit(this); |
| 36 | search->setPlaceholderText(tr("Search")); |
| 37 | search->setClearButtonEnabled(true); |
| 38 | verticalLayout->addWidget(search); |
| 39 | connect(search, &QLineEdit::textEdited, [this](const QString& value) { |
| 40 | m_proxyModel->setSearch(value); |
| 41 | if (!value.isEmpty() || !listView->selectionModel()->hasSelection()) { |
| 42 | const QModelIndex first = listView->model()->index(0, 0); |
| 43 | listView->selectionModel()->setCurrentIndex(first, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); |
| 44 | listView->scrollToTop(); |
| 45 | } else |
| 46 | listView->scrollTo(listView->selectionModel()->currentIndex(), QAbstractItemView::PositionAtCenter); |
| 47 | }); |
| 48 | search->installEventFilter(this); |
| 49 | |
| 50 | sneakyProgressBar = new QProgressBar(this); |
| 51 | sneakyProgressBar->setObjectName(QStringLiteral("sneakyProgressBar")); |
| 52 | sneakyProgressBar->setFormat(QStringLiteral("%p%")); |
| 53 | verticalLayout->addWidget(sneakyProgressBar); |
| 54 | sneakyProgressBar->setHidden(true); |
| 55 | connect(listView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &VersionSelectWidget::currentRowChanged); |
| 56 | |
| 57 | QMetaObject::connectSlotsByName(this); |
| 58 | } |
| 59 | |
| 60 | void VersionSelectWidget::setCurrentVersion(const QString& version) |
| 61 | { |