itom  3.0.0
helpTreeDockWidget.h
1 #ifndef HELPTREEDOCKWIDGET_H
2 #define HELPTREEDOCKWIDGET_H
3 
4 #include <QtSql/qsql.h>
5 #include <qwidget.h>
6 #include <qstandarditemmodel.h>
7 #include "../../common/sharedStructures.h"
8 #include "ui_helpTreeDockWidget.h"
9 #include <qtimer.h>
10 #include <qfuturewatcher.h>
11 #include <qmovie.h>
12 #include "../widgets/abstractDockWidget.h"
13 
14 class QShowEvent; //forward declaration
15 
16 namespace ito
17 {
18 
19 class LeafFilterProxyModel; //forward declaration
20 
21 class HelpTreeDockWidget : public QWidget
22 {
23  Q_OBJECT
24 
25 public:
26  HelpTreeDockWidget(QWidget *parent, ito::AbstractDockWidget *dock = 0, Qt::WindowFlags flags = 0);
28 
29  enum itemType { typeSqlItem = 1, typeFilter = 2, typeWidget = 3, typeFPlugin = 4, typeWPlugin = 5, typeCategory = 6, typeDataIO = 7, typeActuator = 8 };
30 
31  enum iconType
32  {
33  iconFilter = 100,
34  iconPluginAlgo = 101,
35  iconPluginFilter = 102,
36  iconWidget = 103,
37  iconPluginDataIO = 104,
38  iconPluginGrabber = 105,
39  iconPluginAdda = 106,
40  iconPluginRawIO = 107,
41  iconPluginActuator = 108
42  };
43 
44 public slots:
45  void navigateBackwards();
46  void navigateForwards();
47  void expandTree();
48  void collapseTree();
49  void reloadDB();
50  void liveFilter(const QString &filterText);
51  void showTreeview();
52  void unshowTreeview();
53  void propertiesChanged();
54  void showPluginInfo(const QString &name, int type, const QModelIndex &modelIndex, bool fromLink);
55  ito::RetVal showFilterWidgetPluginHelp(const QString &filtername, itemType type);
56 
57 private slots:
58  void on_splitter_splitterMoved ( int pos, int index );
59  void on_helpTreeContent_anchorClicked(const QUrl & link);
60 
61  void dbLoaderFinished(int index);
62 
63  void on_treeView_expanded(const QModelIndex &index);
64  void on_treeView_collapsed(const QModelIndex &index);
65 
66  void selectedItemChanged(const QModelIndex &current, const QModelIndex &previous);
67 
68 private:
69  struct SqlItem
70  {
71  int type;
72  QString prefix;
73  QString name;
74  QString path;
75  };
76 
77  struct DisplayBool
78  {
79  bool Filters;
80  bool Widgets;
81  bool Modules;
82  bool DataIO;
83  };
84 
85  static void createFilterWidgetNode(int fOrW, QStandardItemModel* model, const QMap<int,QIcon> *iconGallery);
86  static void createItemRek(QStandardItem& parent, const QString &parentPath, QList<SqlItem> &items, const QMap<int,QIcon> *iconGallery);
87  static ito::RetVal loadDBinThread(const QString &path, const QStringList &includedDBs, QStandardItemModel *mainModel, const QMap<int,QIcon> *iconGallery, const DisplayBool &show);
88  static ito::RetVal readSQL(const QString &file, QList<SqlItem> &items);
89 
90  void CreateItem(QStandardItemModel& model, QStringList &items);
91  void saveIni();
92  void loadIni();
93  ito::RetVal displayHelp(const QString &path);
94  QStringList separateLink(const QUrl &link);
95  ito::RetVal highlightContent(const QString &prefix , const QString &name , const QString &param , const QString &shortDesc, const QString &helpText, const QString &error, QTextDocument *document);
96  QModelIndex findIndexByPath(const int type, QStringList path, const QStandardItem* current);
97 
98  QString parseFilterWidgetContent(const QString &input);
99  ito::RetVal parseParamVector(const QString &sectionname, const QVector<ito::Param> &paramVector, QString &content);
100  QString parseParam(const QString &tmpl, const ito::Param &param);
101 
102  QFutureWatcher<ito::RetVal> dbLoaderWatcher;
103 
104  // Const
105  static const int m_urPath = Qt::UserRole + 1;
106  static const int m_urType = Qt::UserRole + 2;
107 
108  QString minText(int minimum) const;
109  QString minText(double minimum) const;
110  QString minText(char minimum) const;
111  QString maxText(int minimum) const;
112  QString maxText(double minimum) const;
113  QString maxText(char minimum) const;
114  QString minmaxText(int value) const;
115  QString minmaxText(double value) const;
116  QString minmaxText(char value) const;
117 
118  // Variables
119  Ui::HelpTreeDockWidget ui;
120  QStandardItemModel *m_pMainModel;
123  QList<QModelIndex> m_history;
124  QStringList m_includedDBs;
125  QString m_dbPath;
126  QMovie *m_previewMovie;
127  QMap<int, QIcon> m_iconGallery;
128  DisplayBool m_showSelection;
129  int m_historyIndex;
133  bool m_treeVisible;
134  bool m_plaintext;
135  bool m_openLinks;
136  bool m_autoCollTree;
137  bool m_forced;
141 protected:
142  bool eventFilter(QObject *obj, QEvent *event);
143  void showEvent(QShowEvent *event);
144 };
145 
146 } //end namespace ito
147 
148 #endif // HELPTREEDOCKWIDGET_H
double m_treeWidthInvisible
Definition: helpTreeDockWidget.h:132
void liveFilter(const QString &filterText)
slot invoked by toolbar
Definition: helpTreeDockWidget.cpp:1967
static void createFilterWidgetNode(int fOrW, QStandardItemModel *model, const QMap< int, QIcon > *iconGallery)
Get The Filters and put them into a node of the Tree.
Definition: helpTreeDockWidget.cpp:123
static void createItemRek(QStandardItem &parent, const QString &parentPath, QList< SqlItem > &items, const QMap< int, QIcon > *iconGallery)
Creates the model (tree) from the given data.
Definition: helpTreeDockWidget.cpp:1544
void propertiesChanged()
Load SQL-DatabasesList in m_ Variable when properties changed.
Definition: helpTreeDockWidget.cpp:1497
ito::RetVal parseParamVector(const QString &sectionname, const QVector< ito::Param > &paramVector, QString &content)
Creates the Parameter- and Return- sections in html-Code.
Definition: helpTreeDockWidget.cpp:893
void reloadDB()
Reload Database and clear search-edit and start the new Thread.
Definition: helpTreeDockWidget.cpp:1668
bool m_doingExpandAll
Definition: helpTreeDockWidget.h:139
Definition: helpTreeDockWidget.h:77
QStandardItemModel * m_pMainModel
Definition: helpTreeDockWidget.h:120
bool eventFilter(QObject *obj, QEvent *event)
Filter the events for showing and hiding the treeview.
Definition: helpTreeDockWidget.cpp:1423
void saveIni()
Save Gui positions to Main-ini-File.
Definition: helpTreeDockWidget.cpp:1454
Class for managing status values (like errors or warning)
Definition: retVal.h:54
class for parameter handling e.g. to pass paramters to plugins
Definition: param.h:251
bool m_openLinks
Definition: helpTreeDockWidget.h:135
QString minText(int minimum) const
This function detects if a range minimum of a variable is equal to the minimum of the type...
Definition: helpTreeDockWidget.cpp:1259
QString minmaxText(int value) const
This function detects if a range minimum or maximum of a variable is equal to the minimum or maximum ...
Definition: helpTreeDockWidget.cpp:1361
QString parseFilterWidgetContent(const QString &input)
Reformats all help strings that come from the widgets and plugins.
Definition: helpTreeDockWidget.cpp:872
QString m_dbPath
Definition: helpTreeDockWidget.h:125
Definition: apiFunctionsGraph.cpp:39
QMovie * m_previewMovie
Definition: helpTreeDockWidget.h:126
ito::RetVal displayHelp(const QString &path)
Displayes the help text in the textbrowser after an element from the tree was clicked.
Definition: helpTreeDockWidget.cpp:1906
bool m_internalCall
Definition: helpTreeDockWidget.h:138
QModelIndex findIndexByPath(const int type, QStringList path, const QStandardItem *current)
finds a Modelindex related to MainModel (not FilterModel)belonging to an Itemname ...
Definition: helpTreeDockWidget.cpp:2133
Definition: helpTreeDockWidget.h:21
static ito::RetVal loadDBinThread(const QString &path, const QStringList &includedDBs, QStandardItemModel *mainModel, const QMap< int, QIcon > *iconGallery, const DisplayBool &show)
Load the Databases in different Thread.
Definition: helpTreeDockWidget.cpp:1748
static ito::RetVal readSQL(const QString &file, QList< SqlItem > &items)
Get Data from SQL File and store it in a table.
Definition: helpTreeDockWidget.cpp:1612
QString parseParam(const QString &tmpl, const ito::Param &param)
Parses a single Parameter to html code (called by parseParamVector)
Definition: helpTreeDockWidget.cpp:941
abstract dock widget class which inherits QDockWidget. The content of QDockWidget consists of an inst...
Definition: abstractDockWidget.h:45
ito::RetVal showFilterWidgetPluginHelp(const QString &filtername, itemType type)
Get the DocString from a Filter and parse is to html.
Definition: helpTreeDockWidget.cpp:319
ito::AbstractDockWidget * m_pParent
Definition: helpTreeDockWidget.h:122
void dbLoaderFinished(int index)
This slot is called when the loading thread is finished.
Definition: helpTreeDockWidget.cpp:1701
LeafFilterProxyModel * m_pMainFilterModel
Definition: helpTreeDockWidget.h:121
void showPluginInfo(const QString &name, int type, const QModelIndex &modelIndex, bool fromLink)
slot invoked by different widgets to display a help page from extern
Definition: helpTreeDockWidget.cpp:2046
QList< QModelIndex > m_history
Definition: helpTreeDockWidget.h:123
double m_treeWidthVisible
Definition: helpTreeDockWidget.h:131
Definition: helpTreeDockWidget.h:69
QStringList separateLink(const QUrl &link)
Returns a list containing the protocol[0] and the real link[1].
Definition: helpTreeDockWidget.cpp:1983
QString maxText(int minimum) const
This function detects if a range maximum of a variable is equal to the maximum of the type...
Definition: helpTreeDockWidget.cpp:1310
bool m_plaintext
Definition: helpTreeDockWidget.h:134
void loadIni()
Load Gui positions to Main-ini-File.
Definition: helpTreeDockWidget.cpp:1467
This class provides a special search function to the help model. The normal filtermodel hides nodes i...
Definition: leafFilterProxyModel.h:31
int m_autoCollTime
Definition: helpTreeDockWidget.h:130