itom 1.1.0
|
00001 #ifndef HELPTREEDOCKWIDGET_H 00002 #define HELPTREEDOCKWIDGET_H 00003 00004 #include <QtSql> 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 class LeafFilterProxyModel; //forward declaration 00015 00016 class HelpTreeDockWidget : public QWidget 00017 { 00018 Q_OBJECT 00019 00020 public: 00021 HelpTreeDockWidget(QWidget *parent, ito::AbstractDockWidget *dock = 0, Qt::WFlags flags = 0); 00022 ~HelpTreeDockWidget(); 00023 00024 enum itemType {typeSqlItem = 1, typeFilter = 2, typeWidget = 3, typeFPlugin = 4, typeWPlugin = 5}; 00025 00026 public slots: 00027 void navigateBackwards(); 00028 void navigateForwards(); 00029 void expandTree(); 00030 void collapseTree(); 00031 void reloadDB(); 00032 void liveFilter(const QString &filterText); 00033 void showTreeview(); 00034 void unshowTreeview(); 00035 void propertiesChanged(); 00036 ito::RetVal showFilterWidgetPluginHelp(const QString &filtername, itemType type); 00037 00038 private slots: 00039 void on_splitter_splitterMoved ( int pos, int index ); 00040 void on_textBrowser_anchorClicked(const QUrl & link); 00041 00042 void dbLoaderFinished(int index); 00043 00044 void on_treeView_expanded(const QModelIndex &index); 00045 void on_treeView_collapsed(const QModelIndex &index); 00046 00047 void selectedItemChanged(const QModelIndex ¤t, const QModelIndex &previous); 00048 00049 private: 00050 00051 struct SqlItem 00052 { 00053 int type; 00054 QString prefix; 00055 QString name; 00056 QString path; 00057 }; 00058 00059 struct DisplayBool 00060 { 00061 bool Filters; 00062 bool Modules; 00063 }; 00064 00065 00066 static void createFilterNode(QStandardItemModel* model, const QMap<int,QIcon> *iconGallery); 00067 static void createItemRek(QStandardItemModel* model, QStandardItem& parent, const QString parentPath, QList<SqlItem> &items, const QMap<int,QIcon> *iconGallery); 00068 static ito::RetVal loadDBinThread(const QString &path, const QStringList &includedDBs, QStandardItemModel *mainModel, const QMap<int,QIcon> *iconGallery, const DisplayBool &show); 00069 static ito::RetVal readSQL(const QString &filter, const QString &file, QList<SqlItem> &items); 00070 00071 void CreateItem(QStandardItemModel& model, QStringList &items); 00072 void saveIni(); 00073 void loadIni(); 00074 ito::RetVal displayHelp(const QString &path, const int newpage); 00075 QStringList separateLink(const QUrl &link); 00076 ito::RetVal highlightContent(const QString &prefix , const QString &name , const QString ¶m , const QString &shortDesc, const QString &helpText, const QString &error, QTextDocument *document, bool htmlNotPlainText = true); 00077 QModelIndex findIndexByName(const QString &modelName); 00078 00079 QString parseFilterContent(const QString &input); 00080 ito::RetVal parseParamVector(const QString §ionname, const QVector<ito::Param> ¶mVector, QString &content); 00081 QString parseParam(const QString &tmpl, const ito::Param ¶m); 00082 00083 QFutureWatcher<ito::RetVal> dbLoaderWatcher; 00084 00085 // Variables 00086 Ui::HelpTreeDockWidget ui; 00087 00088 QStandardItemModel *m_pMainModel; 00089 LeafFilterProxyModel *m_pMainFilterModel; 00090 ito::AbstractDockWidget *m_pParent; 00091 QStringList m_history; 00092 QStringList m_includedDBs; 00093 QString m_dbPath; 00094 00095 QMovie *m_previewMovie; 00096 00097 QMap<int, QIcon> m_iconGallery; 00098 DisplayBool m_showSelection; 00099 int m_historyIndex; 00100 int m_autoCollTime; 00101 double m_percWidthVi; 00102 double m_percWidthUn; 00103 bool m_treeVisible; 00104 bool m_plaintext; 00105 bool m_openLinks; 00106 bool m_autoCollTree; 00107 bool m_forced; 00108 protected: 00109 bool eventFilter(QObject *obj, QEvent *event); 00110 }; 00111 00112 #endif // HELPTREEDOCKWIDGET_H