Fix #1375 by searching across all model columns
[pulseview.git] / pv / subwindows / decoder_selector / subwindow.cpp
index 675e135cefad3f682e4609f71cc1f8eadcd55d60..19632ad17a05051b22f63e649923d98d0b34f484 100644 (file)
@@ -19,7 +19,9 @@
 
 #include <algorithm>
 
+#include <QApplication>
 #include <QDebug>
+#include <QFontMetrics>
 #include <QInputDialog>
 #include <QLabel>
 #include <QLineEdit>
@@ -37,6 +39,9 @@ namespace pv {
 namespace subwindows {
 namespace decoder_selector {
 
+const QString initial_notice = QApplication::tr("Select a decoder to see its description here.");
+const int min_width_margin = 75;
+
 
 bool QCustomSortFilterProxyModel::filterAcceptsRow(int source_row,
        const QModelIndex& source_parent) const
@@ -97,6 +102,7 @@ SubWindow::SubWindow(Session& session, QWidget* parent) :
 
        sort_filter_model_->setSourceModel(model_);
        sort_filter_model_->setFilterCaseSensitivity(Qt::CaseInsensitive);
+       sort_filter_model_->setFilterKeyColumn(-1);
 
        tree_view_->setModel(sort_filter_model_);
        tree_view_->setRootIsDecorated(true);
@@ -126,7 +132,8 @@ SubWindow::SubWindow(Session& session, QWidget* parent) :
        info_label_header_->setTextInteractionFlags(flags);
        info_label_body_->setWordWrap(true);
        info_label_body_->setTextInteractionFlags(flags);
-       info_label_body_->setText(tr("Select a decoder to see its description here."));
+       info_label_body_->setText(initial_notice);
+       info_label_body_->setAlignment(Qt::AlignTop);
        info_label_footer_->setWordWrap(true);
        info_label_footer_->setTextInteractionFlags(flags);
 
@@ -154,6 +161,14 @@ QToolBar* SubWindow::create_toolbar(QWidget *parent) const
        return toolbar;
 }
 
+int SubWindow::minimum_width() const
+{
+       QFontMetrics m(info_label_body_->font());
+       const int label_width = m.width(initial_notice);
+
+       return label_width + min_width_margin;
+}
+
 vector<const char*> SubWindow::get_decoder_inputs(const srd_decoder* d) const
 {
        vector<const char*> ret_val;