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_manager(manager)
|
||||||
, m_workspaceModel(manager)
|
, m_workspaceModel(manager)
|
||||||
{
|
{
|
||||||
|
setUniformRowHeights(false);
|
||||||
setItemDelegate(new RemoveItemFocusDelegate(this));
|
setItemDelegate(new RemoveItemFocusDelegate(this));
|
||||||
setSelectionBehavior(QAbstractItemView::SelectRows);
|
setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
setSelectionMode(QAbstractItemView::SingleSelection);
|
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
|
@@ -275,7 +275,6 @@ PluginView::PluginView(QWidget *parent)
|
|||||||
m_categoryView = new TreeView(this);
|
m_categoryView = new TreeView(this);
|
||||||
m_categoryView->setAlternatingRowColors(true);
|
m_categoryView->setAlternatingRowColors(true);
|
||||||
m_categoryView->setIndentation(20);
|
m_categoryView->setIndentation(20);
|
||||||
m_categoryView->setUniformRowHeights(true);
|
|
||||||
m_categoryView->setSortingEnabled(true);
|
m_categoryView->setSortingEnabled(true);
|
||||||
m_categoryView->setColumnWidth(LoadedColumn, 40);
|
m_categoryView->setColumnWidth(LoadedColumn, 40);
|
||||||
m_categoryView->header()->setDefaultSectionSize(120);
|
m_categoryView->header()->setDefaultSectionSize(120);
|
||||||
|
@@ -345,7 +345,6 @@ BaseTreeView::BaseTreeView(QWidget *parent)
|
|||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
setIconSize(QSize(16, 16));
|
setIconSize(QSize(16, 16));
|
||||||
setSelectionMode(QAbstractItemView::ExtendedSelection);
|
setSelectionMode(QAbstractItemView::ExtendedSelection);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setItemDelegate(new BaseTreeViewDelegate(this));
|
setItemDelegate(new BaseTreeViewDelegate(this));
|
||||||
setAlternatingRowColors(false);
|
setAlternatingRowColors(false);
|
||||||
|
|
||||||
|
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include "itemviews.h"
|
#include "itemviews.h"
|
||||||
|
|
||||||
|
namespace Utils {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\class Utils::TreeView
|
\class Utils::TreeView
|
||||||
\inmodule QtCreator
|
\inmodule QtCreator
|
||||||
@@ -12,6 +14,8 @@
|
|||||||
platforms where the default is different. Use with care.
|
platforms where the default is different. Use with care.
|
||||||
|
|
||||||
Also adds sane keyboard navigation for mac.
|
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.
|
platforms where the default is different. Use with care.
|
||||||
|
|
||||||
Also adds sane keyboard navigation for mac.
|
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.
|
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>
|
class QTCREATOR_UTILS_EXPORT TreeView : public View<QTreeView>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TreeView(QWidget *parent = nullptr)
|
TreeView(QWidget *parent = nullptr);
|
||||||
: View<QTreeView>(parent)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QTCREATOR_UTILS_EXPORT TreeWidget : public View<QTreeWidget>
|
class QTCREATOR_UTILS_EXPORT TreeWidget : public View<QTreeWidget>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TreeWidget(QWidget *parent = nullptr)
|
TreeWidget(QWidget *parent = nullptr);
|
||||||
: View<QTreeWidget>(parent)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QTCREATOR_UTILS_EXPORT ListView : public View<QListView>
|
class QTCREATOR_UTILS_EXPORT ListView : public View<QListView>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ListView(QWidget *parent = nullptr)
|
ListView(QWidget *parent = nullptr);
|
||||||
: View<QListView>(parent)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QTCREATOR_UTILS_EXPORT ListWidget : public View<QListWidget>
|
class QTCREATOR_UTILS_EXPORT ListWidget : public View<QListWidget>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ListWidget(QWidget *parent = nullptr)
|
ListWidget(QWidget *parent = nullptr);
|
||||||
: View<QListWidget>(parent)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // Utils
|
} // Utils
|
||||||
|
@@ -25,7 +25,6 @@ NavigationTreeView::NavigationTreeView(QWidget *parent)
|
|||||||
{
|
{
|
||||||
setFrameStyle(QFrame::NoFrame);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
setIndentation(indentation() * 7/10);
|
setIndentation(indentation() * 7/10);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setTextElideMode(Qt::ElideNone);
|
setTextElideMode(Qt::ElideNone);
|
||||||
setAttribute(Qt::WA_MacShowFocusRect, false);
|
setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||||
|
|
||||||
|
@@ -56,6 +56,7 @@ namespace Internal {
|
|||||||
ResultsTreeView::ResultsTreeView(QWidget *parent)
|
ResultsTreeView::ResultsTreeView(QWidget *parent)
|
||||||
: TreeView(parent)
|
: TreeView(parent)
|
||||||
{
|
{
|
||||||
|
setUniformRowHeights(false);
|
||||||
setAttribute(Qt::WA_MacShowFocusRect, false);
|
setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||||
setFrameStyle(NoFrame);
|
setFrameStyle(NoFrame);
|
||||||
}
|
}
|
||||||
|
@@ -264,6 +264,7 @@ void DeviceSelectionMemoryModel::refresh()
|
|||||||
DeviceSelectionMemoryView::DeviceSelectionMemoryView(DeviceSelection &selection, QWidget *parent)
|
DeviceSelectionMemoryView::DeviceSelectionMemoryView(DeviceSelection &selection, QWidget *parent)
|
||||||
: TreeView(parent)
|
: TreeView(parent)
|
||||||
{
|
{
|
||||||
|
setUniformRowHeights(false);
|
||||||
setRootIsDecorated(true);
|
setRootIsDecorated(true);
|
||||||
setSelectionMode(QAbstractItemView::SingleSelection);
|
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
|
|
||||||
|
@@ -246,7 +246,6 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
|
|||||||
|
|
||||||
m_configView->setModel(m_configTextFilterModel);
|
m_configView->setModel(m_configTextFilterModel);
|
||||||
m_configView->setMinimumHeight(300);
|
m_configView->setMinimumHeight(300);
|
||||||
m_configView->setUniformRowHeights(true);
|
|
||||||
m_configView->setSortingEnabled(true);
|
m_configView->setSortingEnabled(true);
|
||||||
m_configView->sortByColumn(0, Qt::AscendingOrder);
|
m_configView->sortByColumn(0, Qt::AscendingOrder);
|
||||||
m_configView->header()->setSectionResizeMode(QHeaderView::Stretch);
|
m_configView->header()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
@@ -44,7 +44,6 @@ SearchResultTreeView::SearchResultTreeView(QWidget *parent)
|
|||||||
|
|
||||||
setItemDelegate(new SearchResultTreeItemDelegate(8, this));
|
setItemDelegate(new SearchResultTreeItemDelegate(8, this));
|
||||||
setIndentation(14);
|
setIndentation(14);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setExpandsOnDoubleClick(true);
|
setExpandsOnDoubleClick(true);
|
||||||
header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||||
header()->setStretchLastSection(false);
|
header()->setStretchLastSection(false);
|
||||||
|
@@ -277,6 +277,7 @@ public:
|
|||||||
filterEdit->setFiltering(true);
|
filterEdit->setFiltering(true);
|
||||||
|
|
||||||
m_filterList = new TreeView;
|
m_filterList = new TreeView;
|
||||||
|
m_filterList->setUniformRowHeights(false);
|
||||||
m_filterList->setSelectionMode(QAbstractItemView::SingleSelection);
|
m_filterList->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
m_filterList->setSelectionBehavior(QAbstractItemView::SelectRows);
|
m_filterList->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
m_filterList->setSortingEnabled(true);
|
m_filterList->setSortingEnabled(true);
|
||||||
|
@@ -250,7 +250,6 @@ CompletionList::CompletionList(QWidget *parent)
|
|||||||
|
|
||||||
setItemDelegate(new CompletionDelegate(this));
|
setItemDelegate(new CompletionDelegate(this));
|
||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
setUniformRowHeights(true);
|
|
||||||
header()->hide();
|
header()->hide();
|
||||||
header()->setStretchLastSection(true);
|
header()->setStretchLastSection(true);
|
||||||
// This is too slow when done on all results
|
// This is too slow when done on all results
|
||||||
|
@@ -81,7 +81,6 @@ OpenDocumentsTreeView::OpenDocumentsTreeView(QWidget *parent) :
|
|||||||
m_delegate = new Internal::OpenDocumentsDelegate(this);
|
m_delegate = new Internal::OpenDocumentsDelegate(this);
|
||||||
setItemDelegate(m_delegate);
|
setItemDelegate(m_delegate);
|
||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setTextElideMode(Qt::ElideMiddle);
|
setTextElideMode(Qt::ElideMiddle);
|
||||||
setFrameStyle(QFrame::NoFrame);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
setAttribute(Qt::WA_MacShowFocusRect, false);
|
setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||||
|
@@ -36,6 +36,7 @@ void RemoveItemFocusDelegate::paint(QPainter* painter, const QStyleOptionViewIte
|
|||||||
SessionView::SessionView(QWidget *parent)
|
SessionView::SessionView(QWidget *parent)
|
||||||
: Utils::TreeView(parent)
|
: Utils::TreeView(parent)
|
||||||
{
|
{
|
||||||
|
setUniformRowHeights(false);
|
||||||
setItemDelegate(new RemoveItemFocusDelegate(this));
|
setItemDelegate(new RemoveItemFocusDelegate(this));
|
||||||
setSelectionBehavior(QAbstractItemView::SelectRows);
|
setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
setSelectionMode(QAbstractItemView::ExtendedSelection);
|
setSelectionMode(QAbstractItemView::ExtendedSelection);
|
||||||
|
@@ -28,7 +28,6 @@ CtfStatisticsView::CtfStatisticsView(CtfStatisticsModel *model, QWidget *parent)
|
|||||||
header()->setStretchLastSection(false);
|
header()->setStretchLastSection(false);
|
||||||
header()->setSectionResizeMode(CtfStatisticsModel::Column::Title, QHeaderView::Stretch);
|
header()->setSectionResizeMode(CtfStatisticsModel::Column::Title, QHeaderView::Stretch);
|
||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setSortingEnabled(true);
|
setSortingEnabled(true);
|
||||||
|
|
||||||
connect(selectionModel(), &QItemSelectionModel::currentChanged, this,
|
connect(selectionModel(), &QItemSelectionModel::currentChanged, this,
|
||||||
|
@@ -32,6 +32,7 @@ namespace Internal {
|
|||||||
ConsoleView::ConsoleView(ConsoleItemModel *model, QWidget *parent) :
|
ConsoleView::ConsoleView(ConsoleItemModel *model, QWidget *parent) :
|
||||||
Utils::TreeView(parent), m_model(model)
|
Utils::TreeView(parent), m_model(model)
|
||||||
{
|
{
|
||||||
|
setUniformRowHeights(false);
|
||||||
setFrameStyle(QFrame::NoFrame);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
setHeaderHidden(true);
|
setHeaderHidden(true);
|
||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
|
@@ -82,7 +82,6 @@ GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
|
|||||||
m_treeView = new TreeView(changesGroup);
|
m_treeView = new TreeView(changesGroup);
|
||||||
m_treeView->setMinimumSize(QSize(600, 0));
|
m_treeView->setMinimumSize(QSize(600, 0));
|
||||||
m_treeView->setRootIsDecorated(false);
|
m_treeView->setRootIsDecorated(false);
|
||||||
m_treeView->setUniformRowHeights(true);
|
|
||||||
m_treeView->setSortingEnabled(true);
|
m_treeView->setSortingEnabled(true);
|
||||||
|
|
||||||
auto detailsGroup = new QGroupBox(Git::Tr::tr("Details"));
|
auto detailsGroup = new QGroupBox(Git::Tr::tr("Details"));
|
||||||
|
@@ -71,7 +71,6 @@ LogChangeWidget::LogChangeWidget(QWidget *parent)
|
|||||||
m_model->setHorizontalHeaderLabels(headers);
|
m_model->setHorizontalHeaderLabels(headers);
|
||||||
setModel(m_model);
|
setModel(m_model);
|
||||||
setMinimumWidth(300);
|
setMinimumWidth(300);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
setSelectionBehavior(QAbstractItemView::SelectRows);
|
setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
setActivationMode(Utils::DoubleClickActivation);
|
setActivationMode(Utils::DoubleClickActivation);
|
||||||
|
@@ -132,7 +132,6 @@ StashDialog::StashDialog(QWidget *parent) : QDialog(parent),
|
|||||||
m_stashView->setModel(m_proxyModel);
|
m_stashView->setModel(m_proxyModel);
|
||||||
m_stashView->setSelectionMode(QAbstractItemView::ExtendedSelection);
|
m_stashView->setSelectionMode(QAbstractItemView::ExtendedSelection);
|
||||||
m_stashView->setAllColumnsShowFocus(true);
|
m_stashView->setAllColumnsShowFocus(true);
|
||||||
m_stashView->setUniformRowHeights(true);
|
|
||||||
m_stashView->setFocus();
|
m_stashView->setFocus();
|
||||||
|
|
||||||
using namespace Layouting;
|
using namespace Layouting;
|
||||||
|
@@ -185,7 +185,6 @@ public:
|
|||||||
optionsTreeView->setMinimumHeight(300);
|
optionsTreeView->setMinimumHeight(300);
|
||||||
optionsTreeView->setFrameShape(QFrame::NoFrame);
|
optionsTreeView->setFrameShape(QFrame::NoFrame);
|
||||||
optionsTreeView->setSelectionBehavior(QAbstractItemView::SelectItems);
|
optionsTreeView->setSelectionBehavior(QAbstractItemView::SelectItems);
|
||||||
optionsTreeView->setUniformRowHeights(true);
|
|
||||||
optionsTreeView->setSortingEnabled(true);
|
optionsTreeView->setSortingEnabled(true);
|
||||||
|
|
||||||
using namespace Layouting;
|
using namespace Layouting;
|
||||||
|
@@ -95,10 +95,7 @@ private:
|
|||||||
class CandidatesTreeView : public TreeView
|
class CandidatesTreeView : public TreeView
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CandidatesTreeView(QWidget *parent) : TreeView(parent)
|
CandidatesTreeView(QWidget *parent) : TreeView(parent) {}
|
||||||
{
|
|
||||||
setUniformRowHeights(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSize sizeHint() const override
|
QSize sizeHint() const override
|
||||||
|
@@ -121,7 +121,6 @@ DeviceProcessesDialogPrivate::DeviceProcessesDialogPrivate(KitChooser *chooser,
|
|||||||
procView->setModel(&proxyModel);
|
procView->setModel(&proxyModel);
|
||||||
procView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
procView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
procView->setSelectionMode(QAbstractItemView::SingleSelection);
|
procView->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
procView->setUniformRowHeights(true);
|
|
||||||
procView->setRootIsDecorated(false);
|
procView->setRootIsDecorated(false);
|
||||||
procView->setAlternatingRowColors(true);
|
procView->setAlternatingRowColors(true);
|
||||||
procView->setSortingEnabled(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->setItemDelegate(new EnvironmentDelegate(d->m_model, d->m_environmentView));
|
||||||
d->m_environmentView->setMinimumHeight(400);
|
d->m_environmentView->setMinimumHeight(400);
|
||||||
d->m_environmentView->setRootIsDecorated(false);
|
d->m_environmentView->setRootIsDecorated(false);
|
||||||
d->m_environmentView->setUniformRowHeights(true);
|
|
||||||
const auto stretcher = new HeaderViewStretcher(d->m_environmentView->header(), 1);
|
const auto stretcher = new HeaderViewStretcher(d->m_environmentView->header(), 1);
|
||||||
connect(d->m_model, &QAbstractItemModel::dataChanged,
|
connect(d->m_model, &QAbstractItemModel::dataChanged,
|
||||||
stretcher, &HeaderViewStretcher::softStretch);
|
stretcher, &HeaderViewStretcher::softStretch);
|
||||||
|
@@ -113,10 +113,7 @@ public:
|
|||||||
class FilterTreeView : public TreeView
|
class FilterTreeView : public TreeView
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FilterTreeView(QWidget *parent) : TreeView(parent)
|
FilterTreeView(QWidget *parent) : TreeView(parent) {}
|
||||||
{
|
|
||||||
setUniformRowHeights(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSize sizeHint() const override
|
QSize sizeHint() const override
|
||||||
|
@@ -488,7 +488,6 @@ SelectorView::SelectorView(QWidget *parent) : TreeView(parent)
|
|||||||
setFocusPolicy(Qt::NoFocus);
|
setFocusPolicy(Qt::NoFocus);
|
||||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
setAlternatingRowColors(false);
|
setAlternatingRowColors(false);
|
||||||
setUniformRowHeights(true);
|
|
||||||
setIndentation(0);
|
setIndentation(0);
|
||||||
setFocusPolicy(Qt::WheelFocus);
|
setFocusPolicy(Qt::WheelFocus);
|
||||||
setItemDelegate(new TargetSelectorDelegate(this));
|
setItemDelegate(new TargetSelectorDelegate(this));
|
||||||
|
@@ -16,7 +16,6 @@ AssetImportUpdateTreeView::AssetImportUpdateTreeView(QWidget *parent)
|
|||||||
{
|
{
|
||||||
setModel(m_model);
|
setModel(m_model);
|
||||||
setItemDelegate(new AssetImportUpdateTreeItemDelegate(this));
|
setItemDelegate(new AssetImportUpdateTreeItemDelegate(this));
|
||||||
setUniformRowHeights(true);
|
|
||||||
setExpandsOnDoubleClick(true);
|
setExpandsOnDoubleClick(true);
|
||||||
header()->hide();
|
header()->hide();
|
||||||
}
|
}
|
||||||
|
@@ -118,6 +118,7 @@ void Quick3DFrameView::onVisibleFeaturesChanged(quint64)
|
|||||||
Quick3DMainView::Quick3DMainView(Quick3DFrameModel *model, bool compareView, QWidget *parent)
|
Quick3DMainView::Quick3DMainView(Quick3DFrameModel *model, bool compareView, QWidget *parent)
|
||||||
: Utils::TreeView(parent), m_model(model), m_compareView(compareView)
|
: Utils::TreeView(parent), m_model(model), m_compareView(compareView)
|
||||||
{
|
{
|
||||||
|
setUniformRowHeights(false);
|
||||||
setObjectName("Quick3DMainView");
|
setObjectName("Quick3DMainView");
|
||||||
setFrameStyle(QFrame::NoFrame);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
QHeaderView *h = header();
|
QHeaderView *h = header();
|
||||||
|
Reference in New Issue
Block a user