⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hierarchyview.h

📁 Linux下的基于X11的图形开发环境。
💻 H
字号:
/************************************************************************ Copyright (C) 2000 Trolltech AS.  All rights reserved.**** This file is part of Qt Designer.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef HIRARCHYVIEW_H#define HIRARCHYVIEW_H#include <qvariant.h>#include <qlistview.h>#include <qtabwidget.h>#include <qguardedptr.h>#include <private/qcom_p.h>#include "../interfaces/classbrowserinterface.h"class FormWindow;class QCloseEvent;class QPopupMenu;class QKeyEvent;class QMouseEvent;class QWizard;class SourceEditor;class HierarchyItem : public QListViewItem{public:    enum Type {	Widget,	SlotParent,	SlotPublic,	SlotProtected,	SlotPrivate,	Slot,	DefinitionParent,	Definition,	Event,	EventFunction,	FunctParent,	FunctPublic,	FunctProtected,	FunctPrivate,	Function,	VarParent,	VarPublic,	VarProtected,	VarPrivate,	Variable    };    HierarchyItem( Type type, QListViewItem *parent, QListViewItem *after,		   const QString &txt1, const QString &txt2, const QString &txt3 );    HierarchyItem( Type type, QListView *parent, QListViewItem *after,		   const QString &txt1, const QString &txt2, const QString &txt3 );    void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align );    void updateBackColor();    void setObject( QObject *o );    QObject *object() const;    void setText( int col, const QString &txt ) { if ( !txt.isEmpty() ) QListViewItem::setText( col, txt ); }    int rtti() const { return (int)typ; }private:    void okRename( int col );    void cancelRename( int col );private:    QColor backgroundColor();    QColor backColor;    QObject *obj;    Type typ;};class HierarchyList : public QListView{    Q_OBJECTpublic:    HierarchyList( QWidget *parent, FormWindow *fw, bool doConnects = TRUE );    virtual void setup();    virtual void setCurrent( QObject *o );    void setOpen( QListViewItem *i, bool b );    void changeNameOf( QObject *o, const QString &name );    void changeDatabaseOf( QObject *o, const QString &info );    void setFormWindow( FormWindow *fw ) { formWindow = fw; }    void drawContentsOffset( QPainter *p, int ox, int oy,			     int cx, int cy, int cw, int ch ) {	setUpdatesEnabled( FALSE );	triggerUpdate();	setUpdatesEnabled( TRUE );	QListView::drawContentsOffset( p, ox, oy, cx, cy, cw, ch );    }    void insertEntry( QListViewItem *i, const QPixmap &pix = QPixmap(), const QString &s = QString::null );protected:    void keyPressEvent( QKeyEvent *e );    void keyReleaseEvent( QKeyEvent *e );    void viewportMousePressEvent( QMouseEvent *e );    void viewportMouseReleaseEvent( QMouseEvent *e );public slots:    void addTabPage();    void removeTabPage();private:    void insertObject( QObject *o, QListViewItem *parent );    QObject *findObject( QListViewItem *i );    QListViewItem *findItem( QObject *o );    QObject *current() const;    QObject *handleObjectClick( QListViewItem *i );private slots:    virtual void objectClicked( QListViewItem *i );    virtual void objectDoubleClicked( QListViewItem *i );    virtual void showRMBMenu( QListViewItem *, const QPoint & );protected:    FormWindow *formWindow;    QPopupMenu *normalMenu, *tabWidgetMenu;    bool deselect;};class FormDefinitionView : public HierarchyList{    Q_OBJECTpublic:    FormDefinitionView( QWidget *parent, FormWindow *fw );    void setup();    void setupVariables();    void refresh();    void setCurrent( QWidget *w );protected:    void contentsMouseDoubleClickEvent( QMouseEvent *e );private:    void save( QListViewItem *p, QListViewItem *i );    void execFunctionDialog( const QString &access, const QString &type, bool addFunc );    void addVariable( const QString &varName, const QString &access );private slots:    void objectClicked( QListViewItem *i );    void showRMBMenu( QListViewItem *, const QPoint & );    void renamed( QListViewItem *i );private:    bool popupOpen;    HierarchyItem *itemSlots, *itemPrivate, *itemProtected, *itemPublic;    HierarchyItem *itemFunct, *itemFunctPriv, *itemFunctProt, *itemFunctPubl;    HierarchyItem *itemVar, *itemVarPriv, *itemVarProt, *itemVarPubl;};class HierarchyView : public QTabWidget{    Q_OBJECTpublic:    HierarchyView( QWidget *parent );    ~HierarchyView();    void setFormWindow( FormWindow *fw, QObject *o );    FormWindow *formWindow() const;    SourceEditor *sourceEditor() const { return editor; }    void clear();    void showClasses( SourceEditor *se );    void updateClassBrowsers();    void widgetInserted( QWidget *w );    void widgetRemoved( QWidget *w );    void widgetsInserted( const QWidgetList &l );    void widgetsRemoved( const QWidgetList &l );    void namePropertyChanged( QWidget *w, const QVariant &old );    void databasePropertyChanged( QWidget *w, const QStringList& info );    void tabsChanged( QTabWidget *w );    void pagesChanged( QWizard *w );    void rebuild();    void closed( FormWindow *fw );    void updateFormDefinitionView();    FormDefinitionView *formDefinitionView() const { return fView; }    HierarchyList *hierarchyList() const { return listview; }protected slots:    void jumpTo( const QString &func, const QString &clss,int type );    void showClassesTimeout();protected:    void closeEvent( QCloseEvent *e );signals:    void hidden();private:    struct ClassBrowser    {	ClassBrowser( QListView * = 0, ClassBrowserInterface * = 0 );	~ClassBrowser();	QListView *lv;	QInterfacePtr<ClassBrowserInterface> iface;	Q_DUMMY_COMPARISON_OPERATOR( ClassBrowser )    };    FormWindow *formwindow;    HierarchyList *listview;    FormDefinitionView *fView;    SourceEditor *editor;    QMap<QString, ClassBrowser> *classBrowsers;    QGuardedPtr<SourceEditor> lastSourceEditor;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -