ui: making trackpad scrolling smoother across all listing views (#5029)

This commit is contained in:
Alexandru Ionut Tripon 2026-02-17 20:11:14 +00:00 committed by GitHub
commit d7fc37cd42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 61 additions and 1 deletions

View file

@ -103,6 +103,9 @@ ManagedPackPage::ManagedPackPage(BaseInstance* inst, InstanceWindow* instance_wi
ui->versionsComboBox->setStyle(comboStyle);
}
ui->versionsComboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
ui->versionsComboBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->reloadButton->setVisible(false);
connect(ui->reloadButton, &QPushButton::clicked, this, [this](bool) {
ui->reloadButton->setVisible(false);

View file

@ -38,6 +38,9 @@
<property name="movement">
<enum>QListView::Movement::Static</enum>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
</layout>

View file

@ -53,6 +53,9 @@
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<attribute name="headerStretchLastSection">
<bool>false</bool>
</attribute>

View file

@ -53,6 +53,9 @@
<property name="allColumnsShowFocus">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<attribute name="headerStretchLastSection">
<bool>false</bool>
</attribute>

View file

@ -24,6 +24,9 @@
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item>

View file

@ -63,6 +63,7 @@ ResourcePage::ResourcePage(ResourceDownloadDialog* parent, BaseInstance& base_in
m_ui->searchEdit->installEventFilter(this);
m_ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
m_ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
m_ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
m_searchTimer.setTimerType(Qt::TimerType::CoarseTimer);

View file

@ -47,6 +47,9 @@
<height>48</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
<widget class="ProjectDescriptionPage" name="packDescription">
<property name="openExternalLinks">

View file

@ -49,7 +49,11 @@
</widget>
</item>
<item row="0" column="0" colspan="4">
<widget class="ModListView" name="treeView"/>
<widget class="ModListView" name="treeView">
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
</layout>
</widget>

View file

@ -61,6 +61,7 @@ AtlPage::AtlPage(NewInstanceDialog* dialog, QWidget* parent) : QWidget(parent),
ui->packView->setIndentation(0);
ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
for (int i = 0; i < filterModel->getAvailableSortings().size(); i++) {

View file

@ -52,6 +52,9 @@
<height>48</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item>

View file

@ -62,6 +62,7 @@ FlamePage::FlamePage(NewInstanceDialog* dialog, QWidget* parent)
m_ui->packView->setModel(m_listModel);
m_ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
m_ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
m_ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
m_search_timer.setTimerType(Qt::TimerType::CoarseTimer);

View file

@ -72,6 +72,9 @@
<height>48</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
<widget class="ProjectDescriptionPage" name="packDescription">
<property name="openExternalLinks">

View file

@ -60,6 +60,7 @@ FtbPage::FtbPage(NewInstanceDialog* dialog, QWidget* parent) : QWidget(parent),
m_ui->searchEdit->installEventFilter(this);
m_ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
m_ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
m_ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
for (int i = 0; i < m_filterModel->getAvailableSortings().size(); i++) {

View file

@ -54,6 +54,9 @@
<height>48</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item row="0" column="1">

View file

@ -61,6 +61,9 @@
</item>
<item>
<widget class="QTreeView" name="modpackList">
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>

View file

@ -107,6 +107,7 @@ Page::Page(NewInstanceDialog* dialog, QWidget* parent) : QWidget(parent), dialog
}
ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
connect(ui->sortByBox, &QComboBox::currentTextChanged, this, &Page::onSortingSelectionChanged);

View file

@ -46,6 +46,9 @@
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item row="0" column="1">
@ -80,6 +83,9 @@
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
</layout>
@ -100,6 +106,9 @@
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item row="1" column="0">

View file

@ -68,6 +68,7 @@ ModrinthPage::ModrinthPage(NewInstanceDialog* dialog, QWidget* parent)
m_ui->packView->setModel(m_model);
m_ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
m_ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
m_ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
m_search_timer.setTimerType(Qt::TimerType::CoarseTimer);

View file

@ -54,6 +54,9 @@
<height>48</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
<widget class="ProjectDescriptionPage" name="packDescription">
<property name="openExternalLinks">

View file

@ -61,6 +61,9 @@ TechnicPage::TechnicPage(NewInstanceDialog* dialog, QWidget* parent)
ui->searchEdit->installEventFilter(this);
model = new Technic::ListModel(this);
ui->packView->setModel(model);
ui->versionSelectionBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
ui->versionSelectionBox->view()->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->versionSelectionBox->view()->parentWidget()->setMaximumHeight(300);
m_search_timer.setTimerType(Qt::TimerType::CoarseTimer);
m_search_timer.setSingleShot(true);

View file

@ -31,6 +31,9 @@
<height>48</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item>

View file

@ -35,6 +35,7 @@ ModListView::ModListView(QWidget* parent) : QTreeView(parent)
setDragEnabled(true);
setDragDropMode(QAbstractItemView::DropOnly);
viewport()->setAcceptDrops(true);
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
}
void ModListView::setModel(QAbstractItemModel* model)

View file

@ -44,6 +44,7 @@
VersionListView::VersionListView(QWidget* parent) : QTreeView(parent)
{
m_emptyString = tr("No versions are currently available.");
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
}
void VersionListView::rowsInserted(const QModelIndex& parent, int start, int end)