forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -56,6 +56,7 @@ namespace Internal {
|
||||
ResultsTreeView::ResultsTreeView(QWidget *parent)
|
||||
: TreeView(parent)
|
||||
{
|
||||
setUniformRowHeights(false);
|
||||
setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||
setFrameStyle(NoFrame);
|
||||
}
|
||||
|
@@ -264,6 +264,7 @@ void DeviceSelectionMemoryModel::refresh()
|
||||
DeviceSelectionMemoryView::DeviceSelectionMemoryView(DeviceSelection &selection, QWidget *parent)
|
||||
: TreeView(parent)
|
||||
{
|
||||
setUniformRowHeights(false);
|
||||
setRootIsDecorated(true);
|
||||
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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,
|
||||
|
@@ -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);
|
||||
|
@@ -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"));
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
|
@@ -16,7 +16,6 @@ AssetImportUpdateTreeView::AssetImportUpdateTreeView(QWidget *parent)
|
||||
{
|
||||
setModel(m_model);
|
||||
setItemDelegate(new AssetImportUpdateTreeItemDelegate(this));
|
||||
setUniformRowHeights(true);
|
||||
setExpandsOnDoubleClick(true);
|
||||
header()->hide();
|
||||
}
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user