diff options
Diffstat (limited to 'kdevdesigner/designer/workspace.h')
-rw-r--r-- | kdevdesigner/designer/workspace.h | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/kdevdesigner/designer/workspace.h b/kdevdesigner/designer/workspace.h new file mode 100644 index 00000000..8e710725 --- /dev/null +++ b/kdevdesigner/designer/workspace.h @@ -0,0 +1,151 @@ +/********************************************************************** +** 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. +** +** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition +** licenses may use this file in accordance with the Qt Commercial License +** Agreement provided with the Software. +** +** 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. +** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for +** information about Qt Commercial License Agreements. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#ifndef WORKSPACE_H +#define WORKSPACE_H + +#include <qlistview.h> + +class FormWindow; +class QResizeEvent; +class QCloseEvent; +class QDropEvent; +class QDragMoveEvent; +class QDragEnterEvent; +class MainWindow; +class Project; +class SourceFile; +class FormFile; +class QCompletionEdit; +class SourceEditor; + +class WorkspaceItem : public QListViewItem +{ +public: + enum Type { ProjectType, FormFileType, FormSourceType, SourceFileType, ObjectType }; + + WorkspaceItem( QListView *parent, Project* p ); + WorkspaceItem( QListViewItem *parent, SourceFile* sf ); + WorkspaceItem( QListViewItem *parent, FormFile* ff, Type t = FormFileType ); + WorkspaceItem( QListViewItem *parent, QObject *o, Project *p ); + + void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align ); + + Type type() const { return t; } + + bool isModified() const; + + QString text( int ) const; + + void fillCompletionList( QStringList& completion ); + bool checkCompletion( const QString& completion ); + + QString key( int, bool ) const; // column sorting key + + Project* project; + SourceFile* sourceFile; + FormFile* formFile; + QObject *object; + + void setOpen( bool ); + + void setAutoOpen( bool ); + bool isAutoOpen() const { return isOpen() && autoOpen; } + + bool useOddColor; + +private: + void init(); + bool autoOpen; + QColor backgroundColor(); + Type t; +}; + +class Workspace : public QListView +{ + Q_OBJECT + +public: + Workspace( QWidget *parent , MainWindow *mw ); + + void setCurrentProject( Project *pro ); + + void contentsDropEvent( QDropEvent *e ); + void contentsDragEnterEvent( QDragEnterEvent *e ); + void contentsDragMoveEvent( QDragMoveEvent *e ); + + void setBufferEdit( QCompletionEdit *edit ); + +public slots: + + void update(); + void update( FormFile* ); + + void activeFormChanged( FormWindow *fw ); + void activeEditorChanged( SourceEditor *se ); + +protected: + void closeEvent( QCloseEvent *e ); + bool eventFilter( QObject *, QEvent * ); + + +private slots: + void itemClicked( int, QListViewItem *i, const QPoint& pos ); + void itemDoubleClicked( QListViewItem *i ); + void rmbClicked( QListViewItem *i, const QPoint& pos ); + void bufferChosen( const QString &buffer ); + + void projectDestroyed( QObject* ); + + void sourceFileAdded( SourceFile* ); + void sourceFileRemoved( SourceFile* ); + + void formFileAdded( FormFile* ); + void formFileRemoved( FormFile* ); + + void objectAdded( QObject* ); + void objectRemoved( QObject * ); + +private: + WorkspaceItem *findItem( FormFile *ff ); + WorkspaceItem *findItem( SourceFile *sf ); + WorkspaceItem *findItem( QObject *o ); + + void closeAutoOpenItems(); + +private: + MainWindow *mainWindow; + Project *project; + WorkspaceItem *projectItem; + QCompletionEdit *bufferEdit; + bool blockNewForms; + void updateBufferEdit(); + bool completionDirty; + void updateColors(); + +}; + +#endif |