CallTips.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef GUI_CALLTIPS_H
00025 #define GUI_CALLTIPS_H
00026
00027 #include <QListWidget>
00028
00029 class QPlainTextEdit;
00030
00031 namespace Py {
00032 class Object;
00033 class List;
00034 }
00035 namespace Gui {
00036
00037 class CallTip
00038 {
00039 public:
00040 enum Type {Unknown, Module, Class, Method, Member, Property};
00041 CallTip():type(Unknown) {}
00042 QString name;
00043 QString description;
00044 QString parameter;
00045 Type type;
00046 };
00047
00051 class CallTipsList : public QListWidget
00052 {
00053 Q_OBJECT
00054
00055 public:
00057 CallTipsList(QPlainTextEdit* parent);
00059 ~CallTipsList();
00060
00061 void keyboardSearch (const QString&);
00062 void showTips(const QString&);
00063 void validateCursor();
00064
00065 protected:
00066 bool eventFilter(QObject *, QEvent *);
00067 void showEvent(QShowEvent*);
00068 void hideEvent(QHideEvent*);
00069
00070 private Q_SLOTS:
00071 void callTipItemActivated(QListWidgetItem *item);
00072
00073 private:
00074 QString extractContext(const QString&) const;
00075 QMap<QString, CallTip> extractTips(const QString&) const;
00076 void extractTipsFromObject(Py::Object&, Py::List&, QMap<QString, CallTip>&) const;
00077 void extractTipsFromProperties(Py::Object&, QMap<QString, CallTip>&) const;
00078 QString stripWhiteSpace(const QString&) const;
00079
00080 private:
00081 QPlainTextEdit* textEdit;
00082 int cursorPos;
00083 bool validObject;
00084 QList<int> hideKeys;
00085 QList<int> compKeys;
00086 };
00087
00088 }
00089
00090 #endif // GUI_CALLTIPS_H