+ // Ensure that all decoder tag names are fully visible by default
+ tree_view_->resizeColumnToContents(0);
+
+ tree_view_->setIndentation(10);
+
+ QScrollArea* info_label_body_container = new QScrollArea();
+ info_label_body_container->setWidget(info_label_body_);
+ info_label_body_container->setWidgetResizable(true);
+
+ info_box_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ QVBoxLayout* info_box_layout = new QVBoxLayout(info_box_);
+ info_box_layout->addWidget(info_label_header_);
+ info_box_layout->addWidget(info_label_body_container);
+ info_box_layout->addWidget(info_label_footer_);
+ info_box_layout->setAlignment(Qt::AlignTop);
+ Qt::TextInteractionFlags flags = Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard;
+ info_label_header_->setWordWrap(true);
+ info_label_header_->setTextInteractionFlags(flags);
+ info_label_body_->setWordWrap(true);
+ info_label_body_->setTextInteractionFlags(flags);
+ info_label_body_->setText(initial_notice);
+ info_label_body_->setAlignment(Qt::AlignTop);
+ info_label_footer_->setWordWrap(true);
+ info_label_footer_->setTextInteractionFlags(flags);
+
+ connect(filter, SIGNAL(textChanged(const QString&)),
+ this, SLOT(on_filter_changed(const QString&)));
+
+ connect(tree_view_, SIGNAL(currentChanged(const QModelIndex&)),
+ this, SLOT(on_item_changed(const QModelIndex&)));
+ connect(tree_view_, SIGNAL(activated(const QModelIndex&)),
+ this, SLOT(on_item_activated(const QModelIndex&)));