diff options
Diffstat (limited to 'src/ui/widgets/GRTTreeView.cpp')
-rw-r--r-- | src/ui/widgets/GRTTreeView.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/ui/widgets/GRTTreeView.cpp b/src/ui/widgets/GRTTreeView.cpp index f2ae42c2..09d7dcf0 100644 --- a/src/ui/widgets/GRTTreeView.cpp +++ b/src/ui/widgets/GRTTreeView.cpp @@ -33,10 +33,34 @@ namespace GpgFrontend::UI { -GRTTreeView::GRTTreeView(QWidget *parent) : QTreeView(parent) { +GRTTreeView::GRTTreeView(QWidget* parent) : QTreeView(parent) { setModel(new Module::GlobalRegisterTableTreeModel( Module::ModuleManager::GetInstance().GRT())); + + connect(model(), &QFileSystemModel::layoutChanged, this, + &GRTTreeView::slot_adjust_column_widths); + connect(model(), &QFileSystemModel::dataChanged, this, + &GRTTreeView::slot_adjust_column_widths); + connect(this, &GRTTreeView::expanded, this, + &GRTTreeView::slot_adjust_column_widths); + connect(this, &GRTTreeView::collapsed, this, + &GRTTreeView::slot_adjust_column_widths); } GRTTreeView::~GRTTreeView() = default; + +void GRTTreeView::paintEvent(QPaintEvent* event) { + QTreeView::paintEvent(event); + + if (!initial_resize_done_) { + slot_adjust_column_widths(); + initial_resize_done_ = true; + } +} + +void GRTTreeView::slot_adjust_column_widths() { + for (int i = 0; i < model()->columnCount(); ++i) { + this->resizeColumnToContents(i); + } +} } // namespace GpgFrontend::UI
\ No newline at end of file |