itom 1.2.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(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 QString minText(int minimum) const; 00072 QString minText(double minimum) const; 00073 QString minText(char minimum) const; 00074 QString maxText(int minimum) const; 00075 QString maxText(double minimum) const; 00076 QString maxText(char minimum) const; 00077 00078 static void createFilterWidgetNode(int fOrW, QStandardItemModel* model, const QMap<int,QIcon> *iconGallery); 00079 static void createItemRek(QStandardItemModel* model, QStandardItem& parent, const QString parentPath, QList<SqlItem> &items, const QMap<int,QIcon> *iconGallery); 00080 static ito::RetVal loadDBinThread(const QString &path, const QStringList &includedDBs, QStandardItemModel *mainModel, const QMap<int,QIcon> *iconGallery, const DisplayBool &show); 00081 static ito::RetVal readSQL(const QString &filter, const QString &file, QList<SqlItem> &items); 00082 00083 void CreateItem(QStandardItemModel& model, QStringList &items); 00084 void saveIni(); 00085 void loadIni(); 00086 ito::RetVal displayHelp(const QString &path); 00087 QStringList separateLink(const QUrl &link); 00088 ito::RetVal highlightContent(const QString &prefix , const QString &name , const QString ¶m , const QString &shortDesc, const QString &helpText, const QString &error, QTextDocument *document); 00089 QModelIndex findIndexByPath(const int type, QStringList path, QStandardItem* current); 00090 00091 QString parseFilterWidgetContent(const QString &input); 00092 ito::RetVal parseParamVector(const QString §ionname, const QVector<ito::Param> ¶mVector, QString &content); 00093 QString parseParam(const QString &tmpl, const ito::Param ¶m); 00094 00095 QFutureWatcher<ito::RetVal> dbLoaderWatcher; 00096 00097 // Const 00098 static const int m_urPath = Qt::UserRole + 1; 00099 static const int m_urType = Qt::UserRole + 2; 00100 00101 // Variables 00102 Ui::HelpTreeDockWidget ui; 00103 00104 QStandardItemModel *m_pMainModel; 00105 LeafFilterProxyModel *m_pMainFilterModel; 00106 ito::AbstractDockWidget *m_pParent; 00107 QList<QModelIndex> m_history; 00108 QStringList m_includedDBs; 00109 QString m_dbPath; 00110 QMovie *m_previewMovie; 00111 QMap<int, QIcon> m_iconGallery; 00112 DisplayBool m_showSelection; 00113 int m_historyIndex; 00114 int m_autoCollTime; 00115 double m_percWidthVi; 00116 double m_percWidthUn; 00117 bool m_treeVisible; 00118 bool m_plaintext; 00119 bool m_openLinks; 00120 bool m_autoCollTree; 00121 bool m_forced; 00122 bool m_internalCall; 00123 protected: 00124 bool eventFilter(QObject *obj, QEvent *event); 00125 }; 00126 00127 } //end namespace ito 00128 00129 #endif // HELPTREEDOCKWIDGET_H