diff options
author | hjk <hjk@qt.io> | 2023-08-22 09:22:46 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-09-05 07:24:21 +0000 |
commit | a475632c66bc9fadad3792df4e71dd015624fe38 (patch) | |
tree | de3d47927c325bb3cf56567658b7e18008ffe70c | |
parent | b9188fb7478ae08e2248304c2da68fcca9ee38ed (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>
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(); |