]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/PanelStack.h
Account for old versions of Pygments
[lyx.git] / src / frontends / qt4 / PanelStack.h
index 1e38043b9548a594e480495b5155029b315e9558..e0d03a189f0a73296ef8c028cb5ea0adc89a3c72 100644 (file)
@@ -9,18 +9,23 @@
  *
  * Full author contact details are available in file CREDITS.
  */
+
 #ifndef PANELSTACK_H
 #define PANELSTACK_H
 
-#include "support/docstring.h"
+#include "FancyLineEdit.h"
 
+#include <QHash>
 #include <QWidget>
 
-#include <map>
-
+class QAbstractButton;
+class QHideEvent;
+class QLineEdit;
+class QPushButton;
+class QStackedWidget;
+class QTimer;
 class QTreeWidget;
 class QTreeWidgetItem;
-class QStackedWidget;
 
 namespace lyx {
 namespace frontend {
@@ -30,39 +35,61 @@ class PanelStack : public QWidget
 {
        Q_OBJECT
 public:
+       ///
        PanelStack(QWidget * parent = 0);
 
        /// add a category with no associated panel
-       void addCategory(docstring const & name,
-               docstring const & parent = docstring());
-
+       void addCategory(QString const & name, QString const & parent = QString());
        /// add a widget panel with a given name, under the given parent
-       void addPanel(QWidget * panel, docstring const & name,
-               docstring const & parent = docstring());
-
+       void addPanel(QWidget * panel, QString const & name,
+               QString const & parent = QString());
+       /// show or hide panel
+       void showPanel(QString const & name, bool show);
        /// set current panel by logical name
-       void setCurrentPanel(docstring const &);
-
-       virtual QSize sizeHint() const;
+       void setCurrentPanel(QString const &);
+       ///
+       bool isCurrentPanel(QString const & name) const;
+       ///
+       QSize sizeHint() const;
 
 public Q_SLOTS:
+       /// the option filter changed
+       void filterChanged(QString const & search);
+       /// perform the search
+       void search();
+       /// reset the search box
+       void resetSearch();
        /// set current panel from an item
        void switchPanel(QTreeWidgetItem * it, QTreeWidgetItem * previous = 0);
+       /// click on the tree
+       void itemSelected(QTreeWidgetItem *, int);
 
-private:
-       typedef std::map<docstring, QTreeWidgetItem *> PanelMap;
+protected:
+       /// widget hidden
+       void hideEvent(QHideEvent * event);
 
+private:
+       ///
+       typedef QHash<QString, QTreeWidgetItem *> PanelMap;
+       ///
        PanelMap panel_map_;
 
-       typedef std::map<QTreeWidgetItem *, QWidget *> WidgetMap;
+       typedef QHash<QTreeWidgetItem *, QWidget *> WidgetMap;
 
        WidgetMap widget_map_;
 
+       /// contains the search box
+       FancyLineEdit * search_;
+
        /// contains the items
        QTreeWidget * list_;
 
        /// contains the panes
        QStackedWidget * stack_;
+
+       // timer to delay the search between options
+       QTimer * delay_search_;
+
 };
 
 } // namespace frontend