diff options
| author | Darrell Anderson <humanreadable@yahoo.com> | 2014-03-02 20:05:33 +0100 | 
|---|---|---|
| committer | Slávek Banko <slavek.banko@axis.cz> | 2014-03-02 20:05:33 +0100 | 
| commit | 722ce1efbac31c61b1d4b13f7e075c9f311e3e73 (patch) | |
| tree | db1b6b28566e5fe9accb4a688f7257673cecb080 /tdevdesigner/designer/project.h | |
| parent | afb74575caf7dd8ccb6c235b1c8d788e320c19da (diff) | |
| download | tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.tar.gz tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.zip | |
Finish renaming tdevelop components
Diffstat (limited to 'tdevdesigner/designer/project.h')
| -rw-r--r-- | tdevdesigner/designer/project.h | 274 | 
1 files changed, 274 insertions, 0 deletions
| diff --git a/tdevdesigner/designer/project.h b/tdevdesigner/designer/project.h new file mode 100644 index 00000000..3e80428f --- /dev/null +++ b/tdevdesigner/designer/project.h @@ -0,0 +1,274 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS.  All rights reserved. +** +** This file is part of TQt 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 TQt Enterprise Edition or TQt Professional Edition +** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#ifndef PROJECT_H +#define PROJECT_H + +#include <tqfeatures.h> + +#include <tqstring.h> +#include <tqstringlist.h> +#include <tqptrlist.h> +#include <tqmap.h> +#include <tqpluginmanager_p.h> +#include "../interfaces/projectsettingsiface.h" +#include "sourcefile.h" +#include "formfile.h" +#include <tqobjectlist.h> +#include <tqptrdict.h> +#include "formfile.h" + +class TQObjectList; +struct DesignerProject; +struct DesignerDatabase; +class PixmapCollection; +class Project; + +#ifndef TQT_NO_SQL +class TQSqlDatabase; + +class DatabaseConnection +{ +public: +    DatabaseConnection( Project *p ) : +#ifndef TQT_NO_SQL +	conn( 0 ), +#endif +	project( p ), loaded( FALSE ), iface( 0 ) {} +    ~DatabaseConnection(); + +    bool refreshCatalog(); +    bool open( bool suppressDialog = TRUE ); +    void close(); +    DesignerDatabase *iFace(); + +    bool isLoaded() const { return loaded; } +    void setName( const TQString& n ) { nm = n; } +    TQString name() const { return nm; } +    void setDriver( const TQString& d ) { drv = d; } +    TQString driver() const { return drv; } +    void setDatabase( const TQString& db ) { dbName = db; } +    TQString database() const { return dbName; } +    void setUsername( const TQString& u ) { uname = u; } +    TQString username() const { return uname; } +    void setPassword( const TQString& p ) { pword = p; } +    TQString password() const { return pword; } +    void setHostname( const TQString& h ) { hname = h; } +    TQString hostname() const { return hname; } +    void setPort( int p ) { prt = p; } +    int port() const { return prt; } +    TQString lastError() const { return dbErr; } +    void addTable( const TQString& t ) { tbls.append(t); } +    void setFields( const TQString& t, const TQStringList& f ) { flds[t] = f; } +    TQStringList tables() const { return tbls; } +    TQStringList fields( const TQString& t ) { return flds[t]; } +    TQMap<TQString, TQStringList> fields() { return flds; } +#ifndef TQT_NO_SQL +    TQSqlDatabase* connection() const { return conn; } +    void remove(); +#endif + +private: +    TQString nm; +    TQString drv, dbName, uname, pword, hname; +    TQString dbErr; +    int prt; +    TQStringList tbls; +    TQMap<TQString, TQStringList> flds; +#ifndef TQT_NO_SQL +    TQSqlDatabase *conn; +#endif +    Project *project; +    bool loaded; +    DesignerDatabase *iface; +}; + +#endif + +class Project : public TQObject +{ +    Q_OBJECT +   +    friend class DatabaseConnection; + +public: +    Project( const TQString &fn, const TQString &pName = TQString(), +	     TQPluginManager<ProjectSettingsInterface> *pm = 0, bool isDummy = FALSE, +	     const TQString &l = "C++" ); +    ~Project(); + +    void setFileName( const TQString &fn, bool doClear = TRUE ); +    TQString fileName( bool singlePro = FALSE ) const; +    TQString projectName() const; + +    void setDatabaseDescription( const TQString &db ); +    TQString databaseDescription() const; + +    void setDescription( const TQString &s ); +    TQString description() const; + +    void setLanguage( const TQString &l ); +    TQString language() const; + + +    bool isValid() const; + +    // returns TRUE if this project is the <No Project> project +    bool isDummy() const; + +    TQString makeAbsolute( const TQString &f ); +    TQString makeRelative( const TQString &f ); + +    void save( bool onlyProjectFile = FALSE ); + +#ifndef TQT_NO_SQL +    TQPtrList<DatabaseConnection> databaseConnections() const; +    void setDatabaseConnections( const TQPtrList<DatabaseConnection> &lst ); +    void addDatabaseConnection( DatabaseConnection *conn ); +    void removeDatabaseConnection( const TQString &conn ); +    DatabaseConnection *databaseConnection( const TQString &name ); +    TQStringList databaseConnectionList(); +    TQStringList databaseTableList( const TQString &connection ); +    TQStringList databaseFieldList( const TQString &connection, const TQString &table ); +#endif +    void saveConnections(); +    void loadConnections(); + +    bool openDatabase( const TQString &connection, bool suppressDialog = TRUE ); +    void closeDatabase( const TQString &connection ); + +    TQObjectList *formList( bool resolveFakeObjects = FALSE ) const; + +    DesignerProject *iFace(); + +    void setCustomSetting( const TQString &key, const TQString &value ); +    TQString customSetting( const TQString &key ) const; + +    PixmapCollection *pixmapCollection() const { return pixCollection; } + +    void setActive( bool b ); + +    TQPtrListIterator<SourceFile> sourceFiles() const { return TQPtrListIterator<SourceFile>(sourcefiles); } +    void addSourceFile( SourceFile *sf ); +    bool removeSourceFile( SourceFile *sf ); +    SourceFile* findSourceFile( const TQString& filename, SourceFile *ignore = 0 ) const; + +    TQPtrListIterator<FormFile> formFiles() const { return TQPtrListIterator<FormFile>(formfiles); } +    void addFormFile( FormFile *ff ); +    bool removeFormFile( FormFile *ff ); +    FormFile* findFormFile( const TQString& filename, FormFile *ignore = 0 ) const; + +    void setIncludePath( const TQString &platform, const TQString &path ); +    void setLibs( const TQString &platform, const TQString &path ); +    void setDefines( const TQString &platform, const TQString &path ); +    void setConfig( const TQString &platform, const TQString &config ); +    void setTemplate( const TQString &t ); + +    TQString config( const TQString &platform ) const; +    TQString libs( const TQString &platform ) const; +    TQString defines( const TQString &platform ) const; +    TQString includePath( const TQString &platform ) const; +    TQString templte() const; + +    bool isModified() const { return !isDummy() && modified; } +    void setModified( bool b ); + +    void addObject( TQObject *o ); +    void setObjects( const TQObjectList &ol ); +    void removeObject( TQObject *o ); +    TQObjectList objects() const; +    FormFile *fakeFormFileFor( TQObject *o ) const; +    TQObject *objectForFakeForm( FormWindow *fw ) const; +    TQObject *objectForFakeFormFile( FormFile *ff ) const; + +    void addAndEditFunction( const TQString &functionName, const TQString &functionBody, +			     bool openDeveloper ); + +    void removeTempProject(); +    bool hasParentObject( TQObject *o ); +    TQString qualifiedName( TQObject *o ); + +    bool isCpp() const { return is_cpp; } + +    void designerCreated(); + +    void formOpened( FormWindow *fw ); + +    TQString locationOfObject( TQObject *o ); + +    bool hasGUI() const; + +signals: +    void projectModified(); +    void sourceFileAdded( SourceFile* ); +    void sourceFileRemoved( SourceFile* ); +    void formFileAdded( FormFile* ); +    void formFileRemoved( FormFile* ); +    void objectAdded( TQObject * ); +    void objectRemoved( TQObject * ); +    void newFormOpened( FormWindow *fw ); + +private: +    void parse(); +    void clear(); +    void updateCustomSettings(); +    void readPlatformSettings( const TQString &contents, +			       const TQString &setting, +			       TQMap<TQString, TQString> &res ); +    void removePlatformSettings( TQString &contents, const TQString &setting ); +    void writePlatformSettings( TQString &contents, const TQString &setting, +				const TQMap<TQString, TQString> &input ); +    bool singleProjectMode() const; +    TQWidget *messageBoxParent() const; + +private: +    TQString filename; +    TQString proName; +    TQString desc; +    TQString dbFile; +#ifndef TQT_NO_SQL +    TQPtrList<DatabaseConnection> dbConnections; +#endif +    TQString lang; +    DesignerProject *iface; +    TQMap<TQString, TQString> customSettings; +    TQStringList csList; +    TQPluginManager<ProjectSettingsInterface> *projectSettingsPluginManager; +    PixmapCollection *pixCollection; +    TQPtrList<SourceFile> sourcefiles; +    TQPtrList<FormFile> formfiles; +    TQMap<TQString, TQString> inclPath, defs, lbs, cfg, sources, headers; +    TQString templ; +    bool isDummyProject; +    bool modified; +    TQObjectList objs; +    TQPtrDict<FormFile> fakeFormFiles; +    TQString singleProFileName; +    bool is_cpp; + +}; + +#endif | 
