itom 2.0.0
|
00001 #ifndef HELPTREEDOCKWIDGET_H 00002 #define HELPTREEDOCKWIDGET_H 00003 00004 #include <QtSql/qsql.h> 00005 #include <qwidget.h> 00006 #include <qstandarditemmodel.h> 00007 #include "../../common/sharedStructures.h" 00008 #include "ui_helpTreeDockWidget.h" 00009 #include <qtimer.h> 00010 #include <qfuturewatcher.h> 00011 #include <qmovie.h> 00012 #include "../widgets/abstractDockWidget.h" 00013 00014 namespace ito 00015 { 00016 00017 class LeafFilterProxyModel; //forward declaration 00018 00019 class HelpTreeDockWidget : public QWidget 00020 { 00021 Q_OBJECT 00022 00023 public: 00024 HelpTreeDockWidget(QWidget *parent, ito::AbstractDockWidget *dock = 0, Qt::WindowFlags flags = 0); 00025 ~HelpTreeDockWidget(); 00026 00027 enum itemType {typeSqlItem = 1, typeFilter = 2, typeWidget = 3, typeFPlugin = 4, typeWPlugin = 5, typeCategory = 6, typeDataIO = 7, typeActuator = 8}; 00028 00029 public slots: 00030 void navigateBackwards(); 00031 void navigateForwards(); 00032 void expandTree(); 00033 void collapseTree(); 00034 void reloadDB(); 00035 void liveFilter(const QString &filterText); 00036 void showTreeview(); 00037 void unshowTreeview(); 00038 void propertiesChanged(); 00039 void showPluginInfo(const QString &name, int type, const QModelIndex &modelIndex, bool fromLink); 00040 ito::RetVal showFilterWidgetPluginHelp(const QString &filtername, itemType type); 00041 00042 private slots: 00043 void on_splitter_splitterMoved ( int pos, int index ); 00044 void on_textBrowser_anchorClicked(const QUrl & link); 00045 00046 void dbLoaderFinished(int index); 00047 00048 void on_treeView_expanded(const QModelIndex &index); 00049 void on_treeView_collapsed(const QModelIndex &index); 00050 00051 void selectedItemChanged(const QModelIndex ¤t, const QModelIndex &previous); 00052 00053 private: 00054 00055 struct SqlItem 00056 { 00057 int type; 00058 QString prefix; 00059 QString name; 00060 QString path; 00061 }; 00062 00063 struct DisplayBool 00064 { 00065 bool Filters; 00066 bool Widgets; 00067 bool Modules; 00068 bool DataIO; 00069 }; 00070 00071 static void createFilterWidgetNode(int fOrW, QStandardItemModel* model, const QMap<int,QIcon> *iconGallery); 00072 static void createItemRek(QStandardItem& parent, const QString &parentPath, QList<SqlItem> &items, const QMap<int,QIcon> *iconGallery); 00073 static ito::RetVal loadDBinThread(const QString &path, const QStringList &includedDBs, QStandardItemModel *mainModel, const QMap<int,QIcon> *iconGallery, const DisplayBool &show); 00074 static ito::RetVal readSQL(const QString &file, QList<SqlItem> &items); 00075 00076 void CreateItem(QStandardItemModel& model, QStringList &items); 00077 void saveIni(); 00078 void loadIni(); 00079 ito::RetVal displayHelp(const QString &path); 00080 QStringList separateLink(const QUrl &link); 00081 ito::RetVal highlightContent(const QString &prefix , const QString &name , const QString ¶m , const QString &shortDesc, const QString &helpText, const QString &error, QTextDocument *document); 00082 QModelIndex findIndexByPath(const int type, QStringList path, const QStandardItem* current); 00083 00084 QString parseFilterWidgetContent(const QString &input); 00085 ito::RetVal parseParamVector(const QString §ionname, const QVector<ito::Param> ¶mVector, QString &content); 00086 QString parseParam(const QString &tmpl, const ito::Param ¶m); 00087 00088 QFutureWatcher<ito::RetVal> dbLoaderWatcher; 00089 00090 // Const 00091 static const int m_urPath = Qt::UserRole + 1; 00092 static const int m_urType = Qt::UserRole + 2; 00093 00094 QString minText(int minimum) const; 00095 QString minText(double minimum) const; 00096 QString minText(char minimum) const; 00097 QString maxText(int minimum) const; 00098 QString maxText(double minimum) const; 00099 QString maxText(char minimum) const; 00100 00101 // Variables 00102 Ui::HelpTreeDockWidget ui; 00103 QStandardItemModel *m_pMainModel; 00104 LeafFilterProxyModel *m_pMainFilterModel; 00105 ito::AbstractDockWidget *m_pParent; 00106 QList<QModelIndex> m_history; 00107 QStringList m_includedDBs; 00108 QString m_dbPath; 00109 QMovie *m_previewMovie; 00110 QMap<int, QIcon> m_iconGallery; 00111 DisplayBool m_showSelection; 00112 int m_historyIndex; 00113 int m_autoCollTime; 00114 double m_percWidthVi; 00115 double m_percWidthUn; 00116 bool m_treeVisible; 00117 bool m_plaintext; 00118 bool m_openLinks; 00119 bool m_autoCollTree; 00120 bool m_forced; 00121 bool m_internalCall; 00123 protected: 00124 bool eventFilter(QObject *obj, QEvent *event); 00125 }; 00126 00127 } //end namespace ito 00128 00129 #endif // HELPTREEDOCKWIDGET_H