]> git.lyx.org Git - features.git/commitdiff
Outliner: Add filter combo for non-output items
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 15 Mar 2020 09:46:35 +0000 (10:46 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 15 Mar 2020 09:46:35 +0000 (10:46 +0100)
Addresses #11442, #10786

src/frontends/qt/TocWidget.cpp
src/frontends/qt/ui/TocUi.ui

index 4c69aa3ba5cecbd13add035873b8b2dd651d5979..3f5928368dc974da0a91e4f738f5be12db48e9d2 100644 (file)
@@ -92,6 +92,8 @@ TocWidget::TocWidget(GuiView & gui_view, QWidget * parent)
                this, SLOT(showContextMenu(const QPoint &)));
        connect(filterLE, SIGNAL(textEdited(QString)),
                this, SLOT(filterContents()));
+       connect(activeFilterCO, SIGNAL(activated(int)),
+               this, SLOT(filterContents()));
 
        // setting the update timer
        timer_->setSingleShot(true);
@@ -507,12 +509,20 @@ void TocWidget::filterContents()
                Qt::DisplayRole, "*", -1,
                Qt::MatchFlags(Qt::MatchWildcard|Qt::MatchRecursive));
 
+       bool const show_active =
+               activeFilterCO->currentIndex() != 2;
+       bool const show_inactive =
+               activeFilterCO->currentIndex() != 1;
+
        int size = indices.size();
        for (int i = 0; i < size; i++) {
                QModelIndex index = indices[i];
-               bool const matches =
+               bool matches =
                        index.data().toString().contains(
                                filterLE->text(), Qt::CaseInsensitive);
+               TocItem const & item =
+                       gui_view_.tocModels().currentItem(current_type_, index);
+               matches &= (show_active && item.isOutput()) || (show_inactive && !item.isOutput());
                tocTV->setRowHidden(index.row(), index.parent(), !matches);
        }
        // recursively unhide parents of unhidden children
index c95716a5aea248e20a4a88c20778fb74e03192e1..a76df2397c3efb4f261d4f6b3a06a21c93b56782 100644 (file)
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>TocUi</class>
- <widget class="QWidget" name="TocUi" >
-  <property name="windowModality" >
+ <widget class="QWidget" name="TocUi">
+  <property name="windowModality">
    <enum>Qt::NonModal</enum>
   </property>
-  <property name="geometry" >
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>202</width>
-    <height>355</height>
+    <width>231</width>
+    <height>437</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string/>
   </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
-   <property name="spacing" >
-    <number>6</number>
-   </property>
-   <item row="1" column="0" colspan="2" >
-    <layout class="QHBoxLayout" >
-     <property name="margin" >
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="2" column="0" colspan="2">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="leftMargin">
       <number>0</number>
      </property>
-     <property name="spacing" >
-      <number>6</number>
+     <property name="topMargin">
+      <number>0</number>
+     </property>
+     <property name="rightMargin">
+      <number>0</number>
+     </property>
+     <property name="bottomMargin">
+      <number>0</number>
      </property>
      <item>
-      <widget class="QLabel" name="filterLA" >
-       <property name="text" >
+      <widget class="QLabel" name="filterLA">
+       <property name="text">
         <string>Filter:</string>
        </property>
-       <property name="buddy" >
+       <property name="buddy">
         <cstring>filterLE</cstring>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="filterLE" >
-       <property name="toolTip" >
+      <widget class="QLineEdit" name="filterLE">
+       <property name="toolTip">
         <string>Enter string to filter contents</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
-   <item row="0" column="0" colspan="2" >
-    <widget class="QComboBox" name="typeCO" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>13</hsizetype>
-       <vsizetype>0</vsizetype>
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
+   <item row="6" column="0" colspan="2">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
      </property>
-     <property name="toolTip" >
-      <string>Switch between available lists (table of contents, list of figures, list of tables, and others)</string>
+     <property name="leftMargin">
+      <number>0</number>
      </property>
-    </widget>
-   </item>
-   <item row="2" column="0" colspan="2" >
-    <widget class="QTreeView" name="tocTV" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>13</hsizetype>
-       <vsizetype>7</vsizetype>
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
+     <property name="topMargin">
+      <number>0</number>
      </property>
-    </widget>
-   </item>
-   <item row="4" column="0" colspan="2" >
-    <layout class="QHBoxLayout" >
-     <property name="margin" >
+     <property name="rightMargin">
       <number>0</number>
      </property>
-     <property name="spacing" >
-      <number>6</number>
+     <property name="bottomMargin">
+      <number>0</number>
      </property>
      <item>
-      <widget class="QToolButton" name="updateTB" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="updateTB">
+       <property name="toolTip">
         <string>Update navigation tree</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="icon" >
-        <iconset>../../../../lib/images/reload.png</iconset>
+       <property name="icon">
+        <iconset>
+         <normaloff>../../../../lib/images/reload.png</normaloff>../../../../lib/images/reload.png</iconset>
        </property>
-       <property name="iconSize" >
+       <property name="iconSize">
         <size>
          <width>20</width>
          <height>20</height>
      </item>
      <item>
       <spacer>
-       <property name="orientation" >
+       <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
-       <property name="sizeHint" >
+       <property name="sizeHint" stdset="0">
         <size>
          <width>16</width>
          <height>20</height>
       </spacer>
      </item>
      <item>
-      <widget class="QToolButton" name="moveOutTB" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="moveOutTB">
+       <property name="toolTip">
         <string>Decrease nesting depth of selected item</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="icon" >
-        <iconset>../../../../lib/images/outline-out.png</iconset>
+       <property name="icon">
+        <iconset>
+         <normaloff>../../../../lib/images/outline-out.png</normaloff>../../../../lib/images/outline-out.png</iconset>
        </property>
-       <property name="iconSize" >
+       <property name="iconSize">
         <size>
          <width>20</width>
          <height>20</height>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="moveInTB" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="moveInTB">
+       <property name="toolTip">
         <string>Increase nesting depth of selected item</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="icon" >
-        <iconset>../../../../lib/images/outline-in.png</iconset>
+       <property name="icon">
+        <iconset>
+         <normaloff>../../../../lib/images/outline-in.png</normaloff>../../../../lib/images/outline-in.png</iconset>
        </property>
-       <property name="iconSize" >
+       <property name="iconSize">
         <size>
          <width>20</width>
          <height>20</height>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="moveDownTB" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="moveDownTB">
+       <property name="toolTip">
         <string>Move selected item down by one</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="icon" >
-        <iconset>../../../../lib/images/outline-down.png</iconset>
+       <property name="icon">
+        <iconset>
+         <normaloff>../../../../lib/images/outline-down.png</normaloff>../../../../lib/images/outline-down.png</iconset>
        </property>
-       <property name="iconSize" >
+       <property name="iconSize">
         <size>
          <width>20</width>
          <height>20</height>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="moveUpTB" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="moveUpTB">
+       <property name="toolTip">
         <string>Move selected item up by one</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="icon" >
-        <iconset>../../../../lib/images/outline-up.png</iconset>
+       <property name="icon">
+        <iconset>
+         <normaloff>../../../../lib/images/outline-up.png</normaloff>../../../../lib/images/outline-up.png</iconset>
        </property>
-       <property name="iconSize" >
+       <property name="iconSize">
         <size>
          <width>20</width>
          <height>20</height>
      </item>
     </layout>
    </item>
-   <item row="3" column="1" >
-    <layout class="QVBoxLayout" >
-     <property name="margin" >
-      <number>4</number>
-     </property>
-     <property name="spacing" >
+   <item row="5" column="1">
+    <layout class="QVBoxLayout">
+     <property name="spacing">
       <number>0</number>
      </property>
-     <property name="sizeConstraint" >
+     <property name="sizeConstraint">
       <enum>QLayout::SetMinimumSize</enum>
      </property>
+     <property name="leftMargin">
+      <number>4</number>
+     </property>
+     <property name="topMargin">
+      <number>4</number>
+     </property>
+     <property name="rightMargin">
+      <number>4</number>
+     </property>
+     <property name="bottomMargin">
+      <number>4</number>
+     </property>
      <item>
-      <widget class="QCheckBox" name="sortCB" >
-       <property name="sizePolicy" >
-        <sizepolicy>
-         <hsizetype>0</hsizetype>
-         <vsizetype>0</vsizetype>
+      <widget class="QCheckBox" name="sortCB">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="minimumSize" >
+       <property name="minimumSize">
         <size>
          <width>0</width>
          <height>21</height>
         </size>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>Sort</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QCheckBox" name="persistentCB" >
-       <property name="sizePolicy" >
-        <sizepolicy>
-         <hsizetype>0</hsizetype>
-         <vsizetype>1</vsizetype>
+      <widget class="QCheckBox" name="persistentCB">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Minimum">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="minimumSize" >
+       <property name="minimumSize">
         <size>
          <width>0</width>
          <height>21</height>
         </size>
        </property>
-       <property name="toolTip" >
+       <property name="toolTip">
         <string>Try to keep persistent view of the uncollapsed nodes</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>Keep</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
-   <item row="3" column="0" >
-    <widget class="QSlider" name="depthSL" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>13</hsizetype>
-       <vsizetype>0</vsizetype>
+   <item row="0" column="0" colspan="2">
+    <widget class="QComboBox" name="typeCO">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Ignored" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="toolTip">
+      <string>Switch between available lists (table of contents, list of figures, list of tables, and others)</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="0">
+    <widget class="QSlider" name="depthSL">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Ignored" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="toolTip" >
+     <property name="toolTip">
       <string>Adjust the depth of the navigation tree</string>
      </property>
-     <property name="maximum" >
+     <property name="maximum">
       <number>5</number>
      </property>
-     <property name="pageStep" >
+     <property name="pageStep">
       <number>1</number>
      </property>
-     <property name="value" >
+     <property name="value">
       <number>2</number>
      </property>
-     <property name="orientation" >
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="tickPosition" >
+     <property name="tickPosition">
       <enum>QSlider::TicksBothSides</enum>
      </property>
     </widget>
    </item>
+   <item row="4" column="0" colspan="2">
+    <widget class="QTreeView" name="tocTV">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Ignored" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0" colspan="2">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="activeFilterLA">
+       <property name="text">
+        <string>Sho&amp;w:</string>
+       </property>
+       <property name="buddy">
+        <cstring>activeFilterCO</cstring>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="activeFilterCO">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip">
+        <string>Filter items that are not output (in notes, inactive branches, deleted in chagte tracking, etc.)</string>
+       </property>
+       <item>
+        <property name="text">
+         <string>All items</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Only output items</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Only non-output items</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <tabstops>
   <tabstop>tocTV</tabstop>
  </tabstops>
  <includes>
-  <include location="local" >qt_i18n.h</include>
+  <include location="local">qt_i18n.h</include>
  </includes>
  <resources/>
  <connections/>