aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-08-22 09:22:46 +0200
committerhjk <hjk@qt.io>2023-09-05 07:24:21 +0000
commita475632c66bc9fadad3792df4e71dd015624fe38 (patch)
treede3d47927c325bb3cf56567658b7e18008ffe70c
parentb9188fb7478ae08e2248304c2da68fcca9ee38ed (diff)
Utils: Make TreeViews use setUniformRowHeights by default
When applicable, the flag makes a significant difference in performacnce. However is easily forgotten in cases where it is applicable, and cases where it is accidentally used are easily spotted visually. So arguably, opt-out is a better default than opt-in. Change-Id: I88aeb05b42533ba4e23c39573a3ddd016343cd55 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/libs/advanceddockingsystem/workspaceview.cpp1
-rw-r--r--src/libs/extensionsystem/pluginview.cpp1
-rw-r--r--src/libs/utils/basetreeview.cpp1
-rw-r--r--src/libs/utils/itemviews.cpp28
-rw-r--r--src/libs/utils/itemviews.h16
-rw-r--r--src/libs/utils/navigationtreeview.cpp1
-rw-r--r--src/plugins/autotest/testresultspane.cpp1
-rw-r--r--src/plugins/baremetal/debugservers/uvsc/uvtargetdeviceselection.cpp1
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp1
-rw-r--r--src/plugins/coreplugin/find/searchresulttreeview.cpp1
-rw-r--r--src/plugins/coreplugin/locator/locatorsettingspage.cpp1
-rw-r--r--src/plugins/coreplugin/locator/locatorwidget.cpp1
-rw-r--r--src/plugins/coreplugin/opendocumentstreeview.cpp1
-rw-r--r--src/plugins/coreplugin/sessionview.cpp1
-rw-r--r--src/plugins/ctfvisualizer/ctfstatisticsview.cpp1
-rw-r--r--src/plugins/debugger/console/consoleview.cpp1
-rw-r--r--src/plugins/git/gerrit/gerritdialog.cpp1
-rw-r--r--src/plugins/git/logchangedialog.cpp1
-rw-r--r--src/plugins/git/stashdialog.cpp1
-rw-r--r--src/plugins/mesonprojectmanager/mesonbuildconfiguration.cpp1
-rw-r--r--src/plugins/projectexplorer/addrunconfigdialog.cpp5
-rw-r--r--src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp1
-rw-r--r--src/plugins/projectexplorer/environmentwidget.cpp1
-rw-r--r--src/plugins/projectexplorer/filterkitaspectsdialog.cpp5
-rw-r--r--src/plugins/projectexplorer/miniprojecttargetselector.cpp1
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/assetimportupdatetreeview.cpp1
-rw-r--r--src/plugins/qmlprofiler/quick3dframeview.cpp1
27 files changed, 41 insertions, 36 deletions
diff --git a/src/libs/advanceddockingsystem/workspaceview.cpp b/src/libs/advanceddockingsystem/workspaceview.cpp
index 1b4cfc7e27..26983c2bcd 100644
--- a/src/libs/advanceddockingsystem/workspaceview.cpp
+++ b/src/libs/advanceddockingsystem/workspaceview.cpp
@@ -46,6 +46,7 @@ WorkspaceView::WorkspaceView(DockManager *manager, QWidget *parent)
, m_manager(manager)
, m_workspaceModel(manager)
{
+ setUniformRowHeights(false);
setItemDelegate(new RemoveItemFocusDelegate(this));
setSelectionBehavior(QAbstractItemView::SelectRows);
setSelectionMode(QAbstractItemView::SingleSelection);
diff --git a/src/libs/extensionsystem/pluginview.cpp b/src/libs/extensionsystem/pluginview.cpp
index 693dd3c471..f4afedc01e 100644
--- a/src/libs/extensionsystem/pluginview.cpp
+++ b/src/libs/extensionsystem/pluginview.cpp
@@ -275,7 +275,6 @@ PluginView::PluginView(QWidget *parent)
m_categoryView = new TreeView(this);
m_categoryView->setAlternatingRowColors(true);
m_categoryView->setIndentation(20);
- m_categoryView->setUniformRowHeights(true);
m_categoryView->setSortingEnabled(true);
m_categoryView->setColumnWidth(LoadedColumn, 40);
m_categoryView->header()->setDefaultSectionSize(120);
diff --git a/src/libs/utils/basetreeview.cpp b/src/libs/utils/basetreeview.cpp
index 14d1725784..60c239d535 100644
--- a/src/libs/utils/basetreeview.cpp
+++ b/src/libs/utils/basetreeview.cpp
@@ -345,7 +345,6 @@ BaseTreeView::BaseTreeView(QWidget *parent)
setRootIsDecorated(false);
setIconSize(QSize(16, 16));
setSelectionMode(QAbstractItemView::ExtendedSelection);
- setUniformRowHeights(true);
setItemDelegate(new BaseTreeViewDelegate(this));
setAlternatingRowColors(false);
diff --git a/src/libs/utils/itemviews.cpp b/src/libs/utils/itemviews.cpp
index 27f7cbb428..c043b07ff5 100644
--- a/src/libs/utils/itemviews.cpp
+++ b/src/libs/utils/itemviews.cpp
@@ -3,6 +3,8 @@
#include "itemviews.h"
+namespace Utils {
+
/*!
\class Utils::TreeView
\inmodule QtCreator
@@ -12,6 +14,8 @@
platforms where the default is different. Use with care.
Also adds sane keyboard navigation for mac.
+
+ Note: This uses setUniformRowHeights(true) by default.
*/
/*!
@@ -23,6 +27,8 @@
platforms where the default is different. Use with care.
Also adds sane keyboard navigation for mac.
+
+ Note: This uses setUniformRowHeights(true) by default.
*/
/*!
@@ -46,3 +52,25 @@
Also adds sane keyboard navigation for mac.
*/
+
+TreeView::TreeView(QWidget *parent)
+ : View<QTreeView>(parent)
+{
+ setUniformRowHeights(true);
+}
+
+TreeWidget::TreeWidget(QWidget *parent)
+ : View<QTreeWidget>(parent)
+{
+ setUniformRowHeights(true);
+}
+
+ListView::ListView(QWidget *parent)
+ : View<QListView>(parent)
+{}
+
+ListWidget::ListWidget(QWidget *parent)
+ : View<QListWidget>(parent)
+{}
+
+} // Utils
diff --git a/src/libs/utils/itemviews.h b/src/libs/utils/itemviews.h
index cad6d12746..50e8a4af01 100644
--- a/src/libs/utils/itemviews.h
+++ b/src/libs/utils/itemviews.h
@@ -64,33 +64,25 @@ public:
class QTCREATOR_UTILS_EXPORT TreeView : public View<QTreeView>
{
public:
- TreeView(QWidget *parent = nullptr)
- : View<QTreeView>(parent)
- {}
+ TreeView(QWidget *parent = nullptr);
};
class QTCREATOR_UTILS_EXPORT TreeWidget : public View<QTreeWidget>
{
public:
- TreeWidget(QWidget *parent = nullptr)
- : View<QTreeWidget>(parent)
- {}
+ TreeWidget(QWidget *parent = nullptr);
};
class QTCREATOR_UTILS_EXPORT ListView : public View<QListView>
{
public:
- ListView(QWidget *parent = nullptr)
- : View<QListView>(parent)
- {}
+ ListView(QWidget *parent = nullptr);
};
class QTCREATOR_UTILS_EXPORT ListWidget : public View<QListWidget>
{
public:
- ListWidget(QWidget *parent = nullptr)
- : View<QListWidget>(parent)
- {}
+ ListWidget(QWidget *parent = nullptr);
};
} // Utils
diff --git a/src/libs/utils/navigationtreeview.cpp b/src/libs/utils/navigationtreeview.cpp
index b19935f168..61ef04d816 100644
--- a/src/libs/utils/navigationtreeview.cpp
+++ b/src/libs/utils/navigationtreeview.cpp
@@ -25,7 +25,6 @@ NavigationTreeView::NavigationTreeView(QWidget *parent)
{
setFrameStyle(QFrame::NoFrame);
setIndentation(indentation() * 7/10);
- setUniformRowHeights(true);
setTextElideMode(Qt::ElideNone);
setAttribute(Qt::WA_MacShowFocusRect, false);
diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp
index 7fdbcd6dac..2b4cd99b3c 100644
--- a/src/plugins/autotest/testresultspane.cpp
+++ b/src/plugins/autotest/testresultspane.cpp
@@ -56,6 +56,7 @@ namespace Internal {
ResultsTreeView::ResultsTreeView(QWidget *parent)
: TreeView(parent)
{
+ setUniformRowHeights(false);
setAttribute(Qt::WA_MacShowFocusRect, false);
setFrameStyle(NoFrame);
}
diff --git a/src/plugins/baremetal/debugservers/uvsc/uvtargetdeviceselection.cpp b/src/plugins/baremetal/debugservers/uvsc/uvtargetdeviceselection.cpp
index 934bbb098d..2c87aa5db1 100644
--- a/src/plugins/baremetal/debugservers/uvsc/uvtargetdeviceselection.cpp
+++ b/src/plugins/baremetal/debugservers/uvsc/uvtargetdeviceselection.cpp
@@ -264,6 +264,7 @@ void DeviceSelectionMemoryModel::refresh()
DeviceSelectionMemoryView::DeviceSelectionMemoryView(DeviceSelection &selection, QWidget *parent)
: TreeView(parent)
{
+ setUniformRowHeights(false);
setRootIsDecorated(true);
setSelectionMode(QAbstractItemView::SingleSelection);
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 8c004a95bc..6a1ea95252 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -246,7 +246,6 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
m_configView->setModel(m_configTextFilterModel);
m_configView->setMinimumHeight(300);
- m_configView->setUniformRowHeights(true);
m_configView->setSortingEnabled(true);
m_configView->sortByColumn(0, Qt::AscendingOrder);
m_configView->header()->setSectionResizeMode(QHeaderView::Stretch);
diff --git a/src/plugins/coreplugin/find/searchresulttreeview.cpp b/src/plugins/coreplugin/find/searchresulttreeview.cpp
index d8026ccd84..c246d21fca 100644
--- a/src/plugins/coreplugin/find/searchresulttreeview.cpp
+++ b/src/plugins/coreplugin/find/searchresulttreeview.cpp
@@ -44,7 +44,6 @@ SearchResultTreeView::SearchResultTreeView(QWidget *parent)
setItemDelegate(new SearchResultTreeItemDelegate(8, this));
setIndentation(14);
- setUniformRowHeights(true);
setExpandsOnDoubleClick(true);
header()->setSectionResizeMode(QHeaderView::ResizeToContents);
header()->setStretchLastSection(false);
diff --git a/src/plugins/coreplugin/locator/locatorsettingspage.cpp b/src/plugins/coreplugin/locator/locatorsettingspage.cpp
index 74c3b45692..e06d26a783 100644
--- a/src/plugins/coreplugin/locator/locatorsettingspage.cpp
+++ b/src/plugins/coreplugin/locator/locatorsettingspage.cpp
@@ -277,6 +277,7 @@ public:
filterEdit->setFiltering(true);
m_filterList = new TreeView;
+ m_filterList->setUniformRowHeights(false);
m_filterList->setSelectionMode(QAbstractItemView::SingleSelection);
m_filterList->setSelectionBehavior(QAbstractItemView::SelectRows);
m_filterList->setSortingEnabled(true);
diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp
index 67a2eba5bb..5876c20827 100644
--- a/src/plugins/coreplugin/locator/locatorwidget.cpp
+++ b/src/plugins/coreplugin/locator/locatorwidget.cpp
@@ -250,7 +250,6 @@ CompletionList::CompletionList(QWidget *parent)
setItemDelegate(new CompletionDelegate(this));
setRootIsDecorated(false);
- setUniformRowHeights(true);
header()->hide();
header()->setStretchLastSection(true);
// This is too slow when done on all results
diff --git a/src/plugins/coreplugin/opendocumentstreeview.cpp b/src/plugins/coreplugin/opendocumentstreeview.cpp
index 4c1ad171ee..3b19d659a5 100644
--- a/src/plugins/coreplugin/opendocumentstreeview.cpp
+++ b/src/plugins/coreplugin/opendocumentstreeview.cpp
@@ -81,7 +81,6 @@ OpenDocumentsTreeView::OpenDocumentsTreeView(QWidget *parent) :
m_delegate = new Internal::OpenDocumentsDelegate(this);
setItemDelegate(m_delegate);
setRootIsDecorated(false);
- setUniformRowHeights(true);
setTextElideMode(Qt::ElideMiddle);
setFrameStyle(QFrame::NoFrame);
setAttribute(Qt::WA_MacShowFocusRect, false);
diff --git a/src/plugins/coreplugin/sessionview.cpp b/src/plugins/coreplugin/sessionview.cpp
index 4b03c92990..589d725156 100644
--- a/src/plugins/coreplugin/sessionview.cpp
+++ b/src/plugins/coreplugin/sessionview.cpp
@@ -36,6 +36,7 @@ void RemoveItemFocusDelegate::paint(QPainter* painter, const QStyleOptionViewIte
SessionView::SessionView(QWidget *parent)
: Utils::TreeView(parent)
{
+ setUniformRowHeights(false);
setItemDelegate(new RemoveItemFocusDelegate(this));
setSelectionBehavior(QAbstractItemView::SelectRows);
setSelectionMode(QAbstractItemView::ExtendedSelection);
diff --git a/src/plugins/ctfvisualizer/ctfstatisticsview.cpp b/src/plugins/ctfvisualizer/ctfstatisticsview.cpp
index 3e8ff8a40b..583d1929a4 100644
--- a/src/plugins/ctfvisualizer/ctfstatisticsview.cpp
+++ b/src/plugins/ctfvisualizer/ctfstatisticsview.cpp
@@ -28,7 +28,6 @@ CtfStatisticsView::CtfStatisticsView(CtfStatisticsModel *model, QWidget *parent)
header()->setStretchLastSection(false);
header()->setSectionResizeMode(CtfStatisticsModel::Column::Title, QHeaderView::Stretch);
setRootIsDecorated(false);
- setUniformRowHeights(true);
setSortingEnabled(true);
connect(selectionModel(), &QItemSelectionModel::currentChanged, this,
diff --git a/src/plugins/debugger/console/consoleview.cpp b/src/plugins/debugger/console/consoleview.cpp
index 2ee80a03d5..d42f4ae918 100644
--- a/src/plugins/debugger/console/consoleview.cpp
+++ b/src/plugins/debugger/console/consoleview.cpp
@@ -32,6 +32,7 @@ namespace Internal {
ConsoleView::ConsoleView(ConsoleItemModel *model, QWidget *parent) :
Utils::TreeView(parent), m_model(model)
{
+ setUniformRowHeights(false);
setFrameStyle(QFrame::NoFrame);
setHeaderHidden(true);
setRootIsDecorated(false);
diff --git a/src/plugins/git/gerrit/gerritdialog.cpp b/src/plugins/git/gerrit/gerritdialog.cpp
index 990c792e41..9a78739d19 100644
--- a/src/plugins/git/gerrit/gerritdialog.cpp
+++ b/src/plugins/git/gerrit/gerritdialog.cpp
@@ -82,7 +82,6 @@ GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
m_treeView = new TreeView(changesGroup);
m_treeView->setMinimumSize(QSize(600, 0));
m_treeView->setRootIsDecorated(false);
- m_treeView->setUniformRowHeights(true);
m_treeView->setSortingEnabled(true);
auto detailsGroup = new QGroupBox(Git::Tr::tr("Details"));
diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp
index 9462fc8bce..a109168331 100644
--- a/src/plugins/git/logchangedialog.cpp
+++ b/src/plugins/git/logchangedialog.cpp
@@ -71,7 +71,6 @@ LogChangeWidget::LogChangeWidget(QWidget *parent)
m_model->setHorizontalHeaderLabels(headers);
setModel(m_model);
setMinimumWidth(300);
- setUniformRowHeights(true);
setRootIsDecorated(false);
setSelectionBehavior(QAbstractItemView::SelectRows);
setActivationMode(Utils::DoubleClickActivation);
diff --git a/src/plugins/git/stashdialog.cpp b/src/plugins/git/stashdialog.cpp
index d2807d1d8e..cfd0b92e77 100644
--- a/src/plugins/git/stashdialog.cpp
+++ b/src/plugins/git/stashdialog.cpp
@@ -132,7 +132,6 @@ StashDialog::StashDialog(QWidget *parent) : QDialog(parent),
m_stashView->setModel(m_proxyModel);
m_stashView->setSelectionMode(QAbstractItemView::ExtendedSelection);
m_stashView->setAllColumnsShowFocus(true);
- m_stashView->setUniformRowHeights(true);
m_stashView->setFocus();
using namespace Layouting;
diff --git a/src/plugins/mesonprojectmanager/mesonbuildconfiguration.cpp b/src/plugins/mesonprojectmanager/mesonbuildconfiguration.cpp
index b6c58a1f71..45543a5f26 100644
--- a/src/plugins/mesonprojectmanager/mesonbuildconfiguration.cpp
+++ b/src/plugins/mesonprojectmanager/mesonbuildconfiguration.cpp
@@ -185,7 +185,6 @@ public:
optionsTreeView->setMinimumHeight(300);
optionsTreeView->setFrameShape(QFrame::NoFrame);
optionsTreeView->setSelectionBehavior(QAbstractItemView::SelectItems);
- optionsTreeView->setUniformRowHeights(true);
optionsTreeView->setSortingEnabled(true);
using namespace Layouting;
diff --git a/src/plugins/projectexplorer/addrunconfigdialog.cpp b/src/plugins/projectexplorer/addrunconfigdialog.cpp
index fa5b0bbb91..4457bf0700 100644
--- a/src/plugins/projectexplorer/addrunconfigdialog.cpp
+++ b/src/plugins/projectexplorer/addrunconfigdialog.cpp
@@ -95,10 +95,7 @@ private:
class CandidatesTreeView : public TreeView
{
public:
- CandidatesTreeView(QWidget *parent) : TreeView(parent)
- {
- setUniformRowHeights(true);
- }
+ CandidatesTreeView(QWidget *parent) : TreeView(parent) {}
private:
QSize sizeHint() const override
diff --git a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp
index 7aad3a4e1c..0a7d794240 100644
--- a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp
+++ b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp
@@ -121,7 +121,6 @@ DeviceProcessesDialogPrivate::DeviceProcessesDialogPrivate(KitChooser *chooser,
procView->setModel(&proxyModel);
procView->setSelectionBehavior(QAbstractItemView::SelectRows);
procView->setSelectionMode(QAbstractItemView::SingleSelection);
- procView->setUniformRowHeights(true);
procView->setRootIsDecorated(false);
procView->setAlternatingRowColors(true);
procView->setSortingEnabled(true);
diff --git a/src/plugins/projectexplorer/environmentwidget.cpp b/src/plugins/projectexplorer/environmentwidget.cpp
index 5fa2195311..64e406ace2 100644
--- a/src/plugins/projectexplorer/environmentwidget.cpp
+++ b/src/plugins/projectexplorer/environmentwidget.cpp
@@ -212,7 +212,6 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, Type type, QWidget *additi
d->m_environmentView->setItemDelegate(new EnvironmentDelegate(d->m_model, d->m_environmentView));
d->m_environmentView->setMinimumHeight(400);
d->m_environmentView->setRootIsDecorated(false);
- d->m_environmentView->setUniformRowHeights(true);
const auto stretcher = new HeaderViewStretcher(d->m_environmentView->header(), 1);
connect(d->m_model, &QAbstractItemModel::dataChanged,
stretcher, &HeaderViewStretcher::softStretch);
diff --git a/src/plugins/projectexplorer/filterkitaspectsdialog.cpp b/src/plugins/projectexplorer/filterkitaspectsdialog.cpp
index a6ff108dc5..ce9ab5e284 100644
--- a/src/plugins/projectexplorer/filterkitaspectsdialog.cpp
+++ b/src/plugins/projectexplorer/filterkitaspectsdialog.cpp
@@ -113,10 +113,7 @@ public:
class FilterTreeView : public TreeView
{
public:
- FilterTreeView(QWidget *parent) : TreeView(parent)
- {
- setUniformRowHeights(true);
- }
+ FilterTreeView(QWidget *parent) : TreeView(parent) {}
private:
QSize sizeHint() const override
diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp
index 09854835c7..86075f51f9 100644
--- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp
+++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp
@@ -488,7 +488,6 @@ SelectorView::SelectorView(QWidget *parent) : TreeView(parent)
setFocusPolicy(Qt::NoFocus);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setAlternatingRowColors(false);
- setUniformRowHeights(true);
setIndentation(0);
setFocusPolicy(Qt::WheelFocus);
setItemDelegate(new TargetSelectorDelegate(this));
diff --git a/src/plugins/qmldesigner/components/itemlibrary/assetimportupdatetreeview.cpp b/src/plugins/qmldesigner/components/itemlibrary/assetimportupdatetreeview.cpp
index 89f36c7437..a683ab2b8b 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/assetimportupdatetreeview.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/assetimportupdatetreeview.cpp
@@ -16,7 +16,6 @@ AssetImportUpdateTreeView::AssetImportUpdateTreeView(QWidget *parent)
{
setModel(m_model);
setItemDelegate(new AssetImportUpdateTreeItemDelegate(this));
- setUniformRowHeights(true);
setExpandsOnDoubleClick(true);
header()->hide();
}
diff --git a/src/plugins/qmlprofiler/quick3dframeview.cpp b/src/plugins/qmlprofiler/quick3dframeview.cpp
index 9853dbe991..3d0141d0ed 100644
--- a/src/plugins/qmlprofiler/quick3dframeview.cpp
+++ b/src/plugins/qmlprofiler/quick3dframeview.cpp
@@ -118,6 +118,7 @@ void Quick3DFrameView::onVisibleFeaturesChanged(quint64)
Quick3DMainView::Quick3DMainView(Quick3DFrameModel *model, bool compareView, QWidget *parent)
: Utils::TreeView(parent), m_model(model), m_compareView(compareView)
{
+ setUniformRowHeights(false);
setObjectName("Quick3DMainView");
setFrameStyle(QFrame::NoFrame);
QHeaderView *h = header();