Advertisement
Guest User

More work with adv options

a guest
Dec 11th, 2019
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.78 KB | None | 0 0
  1. diff --git a/src/options/optionsdlgbase.cpp b/src/options/optionsdlgbase.cpp
  2. index 7bb9d8fe..79f53a57 100644
  3. --- a/src/options/optionsdlgbase.cpp
  4. +++ b/src/options/optionsdlgbase.cpp
  5. @@ -449,4 +449,10 @@ void OptionsDlgBase::doApply() { d->doApply(); }
  6.  
  7.  void OptionsDlgBase::enableCommonControls(bool enable) { d->enableCommonControls(enable); }
  8.  
  9. +void OptionsDlgBase::keyPressEvent(QKeyEvent *e)
  10. +{
  11. +    if(e->modifiers() & Qt::ControlModifier && e->key() == Qt::Key_F)
  12. +        openTab("tree");
  13. +}
  14. +
  15.  #include "optionsdlgbase.moc"
  16. diff --git a/src/options/optionsdlgbase.h b/src/options/optionsdlgbase.h
  17. index 0e350c23..d890ce11 100644
  18. --- a/src/options/optionsdlgbase.h
  19. +++ b/src/options/optionsdlgbase.h
  20. @@ -38,6 +38,7 @@ public:
  21.  
  22.  protected:
  23.      void setTabs(QList<OptionsTab *> tabs); /* can be called from constructor */
  24. +    void keyPressEvent(QKeyEvent *e);
  25.  
  26.  signals:
  27.      void applyOptions();
  28. diff --git a/src/psioptionseditor.cpp b/src/psioptionseditor.cpp
  29. index fedab6be..3da67de8 100644
  30. --- a/src/psioptionseditor.cpp
  31. +++ b/src/psioptionseditor.cpp
  32. @@ -115,11 +115,15 @@ PsiOptionsEditor::PsiOptionsEditor(QWidget *parent) : QWidget(parent)
  33.      layout->setSpacing(0);
  34.      layout->setMargin(0);
  35.  
  36. -    auto filterLe = new QLineEdit(this);
  37. -    filterLe->setProperty("isOption", false);
  38. -    filterLe->setToolTip(tr("Options filter"));
  39. -    layout->addWidget(filterLe);
  40. -    connect(filterLe, &QLineEdit::textChanged, this, [this, filterLe]() { tpm_->setFilterWildcard(filterLe->text()); });
  41. +    QHBoxLayout *filterLayout = new QHBoxLayout;
  42. +    le_filter = new QLineEdit(this);
  43. +    le_filter->setProperty("isOption", false);
  44. +    le_filter->setToolTip(tr("Options filter"));
  45. +    lb_filter = new QLabel(tr("Filter"),this);
  46. +    filterLayout->addWidget(lb_filter);
  47. +    filterLayout->addWidget(le_filter);
  48. +    layout->addItem(filterLayout);
  49. +    connect(le_filter, &QLineEdit::textChanged, this, [this]() { tpm_->setFilterWildcard(le_filter->text()); });
  50.  
  51.      tv_ = new QTreeView(this);
  52.      tv_->setModel(tpm_);
  53. @@ -157,19 +161,24 @@ PsiOptionsEditor::PsiOptionsEditor(QWidget *parent) : QWidget(parent)
  54.      layout->addLayout(buttonLine);
  55.  
  56.      cb_ = new QCheckBox(this);
  57. -    cb_->setText(tr("Flat"));
  58. +    cb_->setText(tr("Display all options as a flat list"));
  59.      cb_->setToolTip(tr("Display all options as a flat list."));
  60.      cb_->setProperty("isOption", false);
  61. -    connect(cb_, &QCheckBox::toggled, tm_, [this, filterLe](bool b) {
  62. +    connect(cb_, &QCheckBox::toggled, tm_, [this](bool b) {
  63.          if (tm_->setFlat(b)) {
  64.              if (!b) {
  65.                  tpm_->setFilterWildcard(QString());
  66. +                le_filter->setFocusPolicy(Qt::NoFocus);
  67. +            } else {
  68. +                le_filter->setFocusPolicy(Qt::StrongFocus);
  69. +                QTimer::singleShot(0, le_filter, SLOT(setFocus()));
  70.              }
  71. -            filterLe->setVisible(b);
  72. +            lb_filter->setVisible(b);
  73. +            le_filter->setVisible(b);
  74.          }
  75.      });
  76. -    filterLe->setVisible(cb_->isChecked());
  77. -    buttonLine->addWidget(cb_);
  78. +    cb_->setChecked(true);
  79. +    layout->insertWidget(0, cb_);
  80.  
  81.      buttonLine->addStretch(1);
  82.  
  83. diff --git a/src/psioptionseditor.h b/src/psioptionseditor.h
  84. index 1910343f..9b23b2b2 100644
  85. --- a/src/psioptionseditor.h
  86. +++ b/src/psioptionseditor.h
  87. @@ -39,11 +39,13 @@ private:
  88.      QLabel *               lb_type;
  89.      QLabel *               lb_path;
  90.      QLabel *               lb_comment;
  91. +    QLabel *               lb_filter;
  92.      QPushButton *          pb_delete;
  93.      QPushButton *          pb_reset;
  94.      QPushButton *          pb_edit;
  95.      QPushButton *          pb_new;
  96.      QToolButton *          pb_detach;
  97. +    QLineEdit *            le_filter;
  98.  };
  99.  
  100.  #endif // PSIOPTIONSEDITOR_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement