diff options
Diffstat (limited to 'kdevdesigner/designer/designerappiface.cpp')
-rw-r--r-- | kdevdesigner/designer/designerappiface.cpp | 1093 |
1 files changed, 1093 insertions, 0 deletions
diff --git a/kdevdesigner/designer/designerappiface.cpp b/kdevdesigner/designer/designerappiface.cpp new file mode 100644 index 00000000..57ee992e --- /dev/null +++ b/kdevdesigner/designer/designerappiface.cpp @@ -0,0 +1,1093 @@ + /********************************************************************** +** 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 [email protected] for +** information about TQt Commercial License Agreements. +** +** Contact [email protected] if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include <tqmenubar.h> +#include <tqpopupmenu.h> +#include "designerappiface.h" +#include "mainwindow.h" +#include "project.h" +#include "formwindow.h" +#include "workspace.h" +#include "widgetfactory.h" +#include "command.h" +#include "outputwindow.h" +#include "../shared/widgetdatabase.h" +#include <tqvariant.h> +#include <tqlistview.h> +#include <tqtextedit.h> +#include <tqstatusbar.h> +#include "pixmapcollection.h" +#include "hierarchyview.h" +#include <stdlib.h> +#include <tqmetaobject.h> +#include "popupmenueditor.h" +#include "menubareditor.h" + +DesignerInterfaceImpl::DesignerInterfaceImpl( MainWindow *mw ) + : mainWindow( mw ) +{ +} + +TQRESULT DesignerInterfaceImpl::queryInterface( const TQUuid &uuid, TQUnknownInterface** iface ) +{ + *iface = 0; + + if ( uuid == IID_TQUnknown ) + *iface = (TQUnknownInterface*)this; + else if ( uuid == IID_TQComponentInformation ) + *iface = (TQComponentInformationInterface*)this; + else if ( uuid == IID_Designer ) + *iface = (DesignerInterface*)this; + else + return TQE_NOINTERFACE; + + (*iface)->addRef(); + return TQS_OK; +} + + +DesignerProject *DesignerInterfaceImpl::currentProject() const +{ + return mainWindow->currProject()->iFace(); +} + +DesignerFormWindow *DesignerInterfaceImpl::currentForm() const +{ + if ( mainWindow->formWindow() ) + return mainWindow->formWindow()->iFace(); + return 0; +} + +DesignerSourceFile *DesignerInterfaceImpl::currentSourceFile() const +{ + if ( mainWindow->sourceFile() ) + return mainWindow->sourceFile()->iFace(); + return 0; +} + +TQPtrList<DesignerProject> DesignerInterfaceImpl::projectList() const +{ + return mainWindow->projectList(); +} + +void DesignerInterfaceImpl::showStatusMessage( const TQString &text, int ms ) const +{ + if ( text.isEmpty() ) { + mainWindow->statusBar()->clear(); + return; + } + if ( ms ) + mainWindow->statusMessage( text/*, ms*/ ); + else + mainWindow->statusMessage( text ); +} + +DesignerDock *DesignerInterfaceImpl::createDock() const +{ + return 0; +} + +DesignerOutputDock *DesignerInterfaceImpl::outputDock() const +{ + return mainWindow->outputWindow() ? mainWindow->outputWindow()->iFace() : 0; +} + +void DesignerInterfaceImpl::setModified( bool b, TQWidget *window ) +{ + mainWindow->setModified( b, window ); +} + +void DesignerInterfaceImpl::updateFunctionList() +{ + mainWindow->updateFunctionList(); + if ( mainWindow->objectHierarchy()->sourceEditor() ) + mainWindow->objectHierarchy()->updateClassBrowsers(); +} + +void DesignerInterfaceImpl::onProjectChange( TQObject *receiver, const char *slot ) +{ + TQObject::connect( mainWindow, TQT_SIGNAL( projectChanged() ), receiver, slot ); +} + +void DesignerInterfaceImpl::onFormChange( TQObject *receiver, const char *slot ) +{ + TQObject::connect( mainWindow, TQT_SIGNAL( formWindowChanged() ), receiver, slot ); + TQObject::connect( mainWindow, TQT_SIGNAL( editorChanged() ), receiver, slot ); +} + +bool DesignerInterfaceImpl::singleProjectMode() const +{ + return mainWindow->singleProjectMode(); +} + +void DesignerInterfaceImpl::showError( TQWidget *widget, + int line, const TQString &message ) +{ + mainWindow->showErrorMessage( TQT_TQOBJECT(widget), line, message ); +} + +void DesignerInterfaceImpl::runFinished() +{ + mainWindow->finishedRun(); +} + +void DesignerInterfaceImpl::showStackFrame( TQWidget *w, int line ) +{ + mainWindow->showStackFrame( TQT_TQOBJECT(w), line ); +} + +void DesignerInterfaceImpl::showDebugStep( TQWidget *w, int line ) +{ + mainWindow->showDebugStep( TQT_TQOBJECT(w), line ); +} + +void DesignerInterfaceImpl::runProjectPrecondition() +{ + mainWindow->runProjectPrecondition(); +} + +void DesignerInterfaceImpl::runProjectPostcondition( TQObjectList *l ) +{ + mainWindow->runProjectPostcondition( l ); +} + +DesignerProjectImpl::DesignerProjectImpl( Project *pr ) + : project( pr ) +{ +} + +TQPtrList<DesignerFormWindow> DesignerProjectImpl::formList() const +{ + TQPtrList<DesignerFormWindow> list; + TQObjectList *forms = project->formList(); + if ( !forms ) + return list; + + TQPtrListIterator<TQObject> it( *forms ); + while ( it.current() ) { + TQObject *obj = it.current(); + ++it; + TQWidget *par = ::tqqt_cast<FormWindow*>(obj->parent()); + if ( !obj->isWidgetType() || !par ) + continue; + + list.append( ((FormWindow*)par)->iFace() ); + } + + delete forms; + return list; +} + +TQString DesignerProjectImpl::formFileName( const TQString &form ) const +{ + for ( TQPtrListIterator<FormFile> forms = project->formFiles(); + forms.current(); ++forms ) { + if ( TQString( forms.current()->formName() ) == form ) + return forms.current()->fileName(); + } + return TQString(); +} + +TQStringList DesignerProjectImpl::formNames() const +{ + TQStringList l; + for ( TQPtrListIterator<FormFile> forms = project->formFiles(); + forms.current(); ++forms ) { + FormFile* f = forms.current(); + if ( f->isFake() ) + continue; + l << f->formName(); + } + return l; +} + +void DesignerProjectImpl::addForm( DesignerFormWindow * ) +{ +} + +void DesignerProjectImpl::removeForm( DesignerFormWindow * ) +{ +} + +TQString DesignerProjectImpl::fileName() const +{ + return project->fileName(); +} + +void DesignerProjectImpl::setFileName( const TQString & ) +{ +} + +TQString DesignerProjectImpl::projectName() const +{ + return project->projectName(); +} + +void DesignerProjectImpl::setProjectName( const TQString & ) +{ +} + +TQString DesignerProjectImpl::databaseFile() const +{ + return TQString(); +} + +void DesignerProjectImpl::setDatabaseFile( const TQString & ) +{ +} + +void DesignerProjectImpl::setupDatabases() const +{ + MainWindow::self->editDatabaseConnections(); +} + +TQPtrList<DesignerDatabase> DesignerProjectImpl::databaseConnections() const +{ + TQPtrList<DesignerDatabase> lst; +#ifndef TQT_NO_SQL + TQPtrList<DatabaseConnection> conns = project->databaseConnections(); + for ( DatabaseConnection *d = conns.first(); d; d = conns.next() ) + lst.append( d->iFace() ); +#endif + return lst; +} + +void DesignerProjectImpl::addDatabase( DesignerDatabase * ) +{ +} + +void DesignerProjectImpl::removeDatabase( DesignerDatabase * ) +{ +} + +void DesignerProjectImpl::save() const +{ +} + +void DesignerProjectImpl::setLanguage( const TQString &l ) +{ + project->setLanguage( l ); +} + +TQString DesignerProjectImpl::language() const +{ + return project->language(); +} + +void DesignerProjectImpl::setCustomSetting( const TQString &key, const TQString &value ) +{ + project->setCustomSetting( key, value ); +} + +TQString DesignerProjectImpl::customSetting( const TQString &key ) const +{ + if ( key == "QTSCRIPT_PACKAGES" ) { + TQString s = getenv( "QTSCRIPT_PACKAGES" ); + TQString s2 = project->customSetting( "QUICK_PACKAGES" ); + if ( !s.isEmpty() && !s2.isEmpty() ) +#if defined(Q_OS_WIN32) + s += ";"; +#else + s += ":"; +#endif + s += s2; + return s; + } + return project->customSetting( key ); +} + +DesignerPixmapCollection *DesignerProjectImpl::pixmapCollection() const +{ + return project->pixmapCollection()->iFace(); +} + +void DesignerProjectImpl::breakPoints( TQMap<TQString, TQValueList<uint> > &bps ) const +{ + MainWindow::self->saveAllBreakPoints(); + for ( TQPtrListIterator<SourceFile> sources = project->sourceFiles(); + sources.current(); ++sources ) { + SourceFile* f = sources.current(); + bps.insert( project->makeRelative( f->fileName() ) + " <Source-File>", MetaDataBase::breakPoints( f ) ); + } + for ( TQPtrListIterator<FormFile> forms = project->formFiles(); + forms.current(); ++forms ) { + if ( forms.current()->formWindow() ) + bps.insert( TQString( forms.current()->formWindow()->name() ) + " <Form>", MetaDataBase::breakPoints( TQT_TQOBJECT(forms.current()->formWindow()) ) ); + } +} + +TQString DesignerProjectImpl::breakPointCondition( TQObject *o, int line ) const +{ + return MetaDataBase::breakPointCondition( MainWindow::self->findRealObject( o ), line ); +} + +void DesignerProjectImpl::setBreakPointCondition( TQObject *o, int line, const TQString &condition ) +{ + MetaDataBase::setBreakPointCondition( MainWindow::self->findRealObject( o ), line, condition ); +} + +void DesignerProjectImpl::clearAllBreakpoints() const +{ + TQValueList<uint> empty; + for ( TQPtrListIterator<SourceFile> sources = project->sourceFiles(); + sources.current(); ++sources ) { + SourceFile* f = sources.current(); + MetaDataBase::setBreakPoints( f, empty ); + } + for ( TQPtrListIterator<FormFile> forms = project->formFiles(); + forms.current(); ++forms ) { + if ( forms.current()->formWindow() ) + MetaDataBase::setBreakPoints( TQT_TQOBJECT(forms.current()->formWindow()), empty ); + MainWindow::self->resetBreakPoints(); + } +} + +void DesignerProjectImpl::setIncludePath( const TQString &platform, const TQString &path ) +{ + project->setIncludePath( platform, path ); +} + +void DesignerProjectImpl::setLibs( const TQString &platform, const TQString &path ) +{ + project->setLibs( platform, path ); +} + +void DesignerProjectImpl::setDefines( const TQString &platform, const TQString &path ) +{ + project->setDefines( platform, path ); +} + +void DesignerProjectImpl::setConfig( const TQString &platform, const TQString &config ) +{ + project->setConfig( platform, config ); +} + +void DesignerProjectImpl::setTemplate( const TQString &t ) +{ + project->setTemplate( t ); +} + +TQString DesignerProjectImpl::config( const TQString &platform ) const +{ + return project->config( platform ); +} + +TQString DesignerProjectImpl::libs( const TQString &platform ) const +{ + return project->libs( platform ); +} + +TQString DesignerProjectImpl::defines( const TQString &platform ) const +{ + return project->defines( platform ); +} + +TQString DesignerProjectImpl::includePath( const TQString &platform ) const +{ + return project->includePath( platform ); +} + +TQString DesignerProjectImpl::templte() const +{ + return project->templte(); +} + +bool DesignerProjectImpl::isGenericObject( TQObject *o ) const +{ + return !!project->fakeFormFileFor( o ); +} + + + + + + + +#ifndef TQT_NO_SQL +DesignerDatabaseImpl::DesignerDatabaseImpl( DatabaseConnection *d ) + : db( d ) +{ +} + +TQString DesignerDatabaseImpl::name() const +{ + return db->name(); +} + +void DesignerDatabaseImpl::setName( const TQString & ) +{ +} + +TQString DesignerDatabaseImpl::driver() const +{ + return db->driver(); +} + +void DesignerDatabaseImpl::setDriver( const TQString & ) +{ +} + +TQString DesignerDatabaseImpl::database() const +{ + return db->database(); +} + +void DesignerDatabaseImpl::setDatabase( const TQString & ) +{ +} + +TQString DesignerDatabaseImpl::userName() const +{ + return db->username(); +} + +void DesignerDatabaseImpl::setUserName( const TQString & ) +{ +} + +TQString DesignerDatabaseImpl::password() const +{ + return db->password(); +} + +void DesignerDatabaseImpl::setPassword( const TQString & ) +{ +} + +TQString DesignerDatabaseImpl::hostName() const +{ + return db->hostname(); +} + +void DesignerDatabaseImpl::setHostName( const TQString & ) +{ +} + +TQStringList DesignerDatabaseImpl::tables() const +{ + return db->tables(); +} + +TQMap<TQString, TQStringList> DesignerDatabaseImpl::fields() const +{ + return db->fields(); +} + +void DesignerDatabaseImpl::open( bool suppressDialog ) const +{ + db->open( suppressDialog ); +} + +void DesignerDatabaseImpl::close() const +{ + db->close(); +} + +void DesignerDatabaseImpl::setFields( const TQMap<TQString, TQStringList> & ) +{ +} + +void DesignerDatabaseImpl::setTables( const TQStringList & ) +{ +} + +TQSqlDatabase* DesignerDatabaseImpl::connection() +{ + return db->connection(); +} +#endif + + + +DesignerPixmapCollectionImpl::DesignerPixmapCollectionImpl( PixmapCollection *coll ) + : pixCollection( coll ) +{ +} + +void DesignerPixmapCollectionImpl::addPixmap( const TQPixmap &p, const TQString &name, bool force ) +{ + PixmapCollection::Pixmap pix; + pix.pix = p; + pix.name = name; + pixCollection->addPixmap( pix, force ); + FormWindow *fw = MainWindow::self->formWindow(); + if ( fw ) + MetaDataBase::setPixmapKey( TQT_TQOBJECT(fw), p.serialNumber(), name ); +} + +TQPixmap DesignerPixmapCollectionImpl::pixmap( const TQString &name ) const +{ + return pixCollection->pixmap( name ); +} + + + +DesignerFormWindowImpl::DesignerFormWindowImpl( FormWindow *fw ) + : formWindow( fw ) +{ +} + +TQString DesignerFormWindowImpl::name() const +{ + return formWindow->name(); + } + +void DesignerFormWindowImpl::setName( const TQString &n ) +{ + formWindow->setName( n ); +} + +TQString DesignerFormWindowImpl::fileName() const +{ + return formWindow->fileName(); +} + +void DesignerFormWindowImpl::setFileName( const TQString & ) +{ +} + +void DesignerFormWindowImpl::save() const +{ +} + +bool DesignerFormWindowImpl::isModified() const +{ + return formWindow->commandHistory()->isModified(); +} + +void DesignerFormWindowImpl::insertWidget( TQWidget * ) +{ +} + +TQWidget *DesignerFormWindowImpl::create( const char *className, TQWidget *parent, const char *name ) +{ + TQWidget *w = WidgetFactory::create( WidgetDatabase::idFromClassName( className ), parent, name ); + formWindow->insertWidget( w, TRUE ); + formWindow->killAccels( TQT_TQOBJECT(formWindow->mainContainer()) ); + return w; +} + +void DesignerFormWindowImpl::removeWidget( TQWidget * ) +{ +} + +TQWidgetList DesignerFormWindowImpl::widgets() const +{ + return TQWidgetList(); +} + +void DesignerFormWindowImpl::undo() +{ +} + +void DesignerFormWindowImpl::redo() +{ +} + +void DesignerFormWindowImpl::cut() +{ +} + +void DesignerFormWindowImpl::copy() +{ +} + +void DesignerFormWindowImpl::paste() +{ +} + +void DesignerFormWindowImpl::adjustSize() +{ +} + +void DesignerFormWindowImpl::editConnections() +{ +} + +void DesignerFormWindowImpl::checkAccels() +{ +} + +void DesignerFormWindowImpl::layoutH() +{ + formWindow->layoutHorizontal(); +} + +void DesignerFormWindowImpl::layoutV() +{ +} + +void DesignerFormWindowImpl::layoutHSplit() +{ +} + +void DesignerFormWindowImpl::layoutVSplit() +{ +} + +void DesignerFormWindowImpl::layoutG() +{ + formWindow->layoutGrid(); +} + +void DesignerFormWindowImpl::layoutHContainer( TQWidget* w ) +{ + formWindow->layoutHorizontalContainer( w ); +} + +void DesignerFormWindowImpl::layoutVContainer( TQWidget* w ) +{ + formWindow->layoutVerticalContainer( w ); +} + +void DesignerFormWindowImpl::layoutGContainer( TQWidget* w ) +{ + formWindow->layoutGridContainer( w ); +} + +void DesignerFormWindowImpl::breakLayout() +{ +} + +void DesignerFormWindowImpl::selectWidget( TQWidget * w ) +{ + formWindow->selectWidget( TQT_TQOBJECT(w), TRUE ); +} + +void DesignerFormWindowImpl::selectAll() +{ +} + +void DesignerFormWindowImpl::clearSelection() +{ + formWindow->clearSelection(); +} + +bool DesignerFormWindowImpl::isWidgetSelected( TQWidget * ) const +{ + return FALSE; +} + +TQWidgetList DesignerFormWindowImpl::selectedWidgets() const +{ + return formWindow->selectedWidgets(); +} + +TQWidget *DesignerFormWindowImpl::currentWidget() const +{ + return formWindow->currentWidget(); +} + +TQWidget *DesignerFormWindowImpl::form() const +{ + return formWindow; +} + + +void DesignerFormWindowImpl::setCurrentWidget( TQWidget * ) +{ +} + +TQPtrList<TQAction> DesignerFormWindowImpl::actionList() const +{ + return TQPtrList<TQAction>(); +} + +TQAction *DesignerFormWindowImpl::createAction( const TQString& text, const TQIconSet& icon, const TQString& menuText, int accel, + TQObject* parent, const char* name, bool toggle ) +{ + QDesignerAction *a = new QDesignerAction( parent ); + a->setName( name ); + a->setText( text ); + if ( !icon.isNull() && !icon.pixmap().isNull() ) + a->setIconSet( icon ); + a->setMenuText( menuText ); + a->setAccel( accel ); + a->setToggleAction( toggle ); + return a; +} + +void DesignerFormWindowImpl::addAction( TQAction *a ) +{ + if ( formWindow->actionList().findRef( a ) != -1 ) + return; + formWindow->actionList().append( a ); + MetaDataBase::addEntry( a ); + setPropertyChanged( a, "name", TRUE ); + setPropertyChanged( a, "text", TRUE ); + setPropertyChanged( a, "menuText", TRUE ); + setPropertyChanged( a, "accel", TRUE ); + if ( !a->iconSet().isNull() && !a->iconSet().pixmap().isNull() ) + setPropertyChanged( a, "iconSet", TRUE ); +} + +void DesignerFormWindowImpl::removeAction( TQAction *a ) +{ + formWindow->actionList().removeRef( a ); +} + +void DesignerFormWindowImpl::preview() const +{ +} + +void DesignerFormWindowImpl::addConnection( TQObject *sender, const char *signal, TQObject *receiver, const char *slot ) +{ + MetaDataBase::addConnection( TQT_TQOBJECT(formWindow), sender, signal, receiver, slot ); +} + +void DesignerFormWindowImpl::addFunction( const TQCString &function, const TQString &specifier, + const TQString &access, const TQString &type, + const TQString &language, const TQString &returnType ) +{ + MetaDataBase::addFunction( TQT_TQOBJECT(formWindow), function, specifier, access, type, language, returnType ); + formWindow->mainWindow()->functionsChanged(); +} + + + +void DesignerFormWindowImpl::setProperty( TQObject *o, const char *property, const TQVariant &value ) +{ + int id = o->metaObject()->findProperty( property, TRUE ); + const TQMetaProperty* p = o->metaObject()->property( id, TRUE ); + if ( p && p->isValid() ) + o->setProperty( property, value ); + else + MetaDataBase::setFakeProperty( o, property, value ); +} + +TQVariant DesignerFormWindowImpl::property( TQObject *o, const char *prop ) const +{ + int id = o->metaObject()->findProperty( prop, TRUE ); + const TQMetaProperty* p = o->metaObject()->property( id, TRUE ); + if ( p && p->isValid() ) + return o->property( prop ); + return MetaDataBase::fakeProperty( o, prop ); +} + +void DesignerFormWindowImpl::setPropertyChanged( TQObject *o, const char *property, bool changed ) +{ + MetaDataBase::setPropertyChanged( o, property, changed ); +} + +bool DesignerFormWindowImpl::isPropertyChanged( TQObject *o, const char *property ) const +{ + return MetaDataBase::isPropertyChanged( o, property ); +} + +void DesignerFormWindowImpl::setColumnFields( TQObject *o, const TQMap<TQString, TQString> &f ) +{ + MetaDataBase::setColumnFields( o, f ); +} + +TQStringList DesignerFormWindowImpl::implementationIncludes() const +{ + TQValueList<MetaDataBase::Include> includes = MetaDataBase::includes( TQT_TQOBJECT(formWindow) ); + TQStringList lst; + for ( TQValueList<MetaDataBase::Include>::Iterator it = includes.begin(); it != includes.end(); ++it ) { + MetaDataBase::Include inc = *it; + if ( inc.implDecl != "in implementation" ) + continue; + TQString s = inc.header; + if ( inc.location == "global" ) { + s.prepend( "<" ); + s.append( ">" ); + } else { + s.prepend( "\"" ); + s.append( "\"" ); + } + lst << s; + } + return lst; +} + +TQStringList DesignerFormWindowImpl::declarationIncludes() const +{ + TQValueList<MetaDataBase::Include> includes = MetaDataBase::includes( TQT_TQOBJECT(formWindow) ); + TQStringList lst; + for ( TQValueList<MetaDataBase::Include>::Iterator it = includes.begin(); it != includes.end(); ++it ) { + MetaDataBase::Include inc = *it; + if ( inc.implDecl == "in implementation" ) + continue; + TQString s = inc.header; + if ( inc.location == "global" ) { + s.prepend( "<" ); + s.append( ">" ); + } else { + s.prepend( "\"" ); + s.append( "\"" ); + } + lst << s; + } + return lst; +} + +void DesignerFormWindowImpl::setImplementationIncludes( const TQStringList &lst ) +{ + TQValueList<MetaDataBase::Include> oldIncludes = MetaDataBase::includes( TQT_TQOBJECT(formWindow) ); + TQValueList<MetaDataBase::Include> includes; + for ( TQValueList<MetaDataBase::Include>::Iterator it = oldIncludes.begin(); it != oldIncludes.end(); ++it ) { + MetaDataBase::Include inc = *it; + if ( inc.implDecl == "in implementation" ) + continue; + includes << inc; + } + + for ( TQStringList::ConstIterator sit = lst.begin(); sit != lst.end(); ++sit ) { + TQString s = *sit; + if ( s.startsWith( "#include" ) ) + s.remove( (uint)0, 8 ); + s = s.simplifyWhiteSpace(); + if ( s[ 0 ] != '<' && s[ 0 ] != '"' ) { + s.prepend( "\"" ); + s.append( "\"" ); + } + if ( s[ 0 ] == '<' ) { + s.remove( (uint)0, 1 ); + s.remove( s.length() - 1, 1 ); + MetaDataBase::Include inc; + inc.header = s; + inc.implDecl = "in implementation"; + inc.location = "global"; + includes << inc; + } else { + s.remove( (uint)0, 1 ); + s.remove( s.length() - 1, 1 ); + MetaDataBase::Include inc; + inc.header = s; + inc.implDecl = "in implementation"; + inc.location = "local"; + includes << inc; + } + } + MetaDataBase::setIncludes( TQT_TQOBJECT(formWindow), includes ); + formWindow->mainWindow()->objectHierarchy()->formDefinitionView()->setup(); +} + +void DesignerFormWindowImpl::setDeclarationIncludes( const TQStringList &lst ) +{ + TQValueList<MetaDataBase::Include> oldIncludes = MetaDataBase::includes( TQT_TQOBJECT(formWindow) ); + TQValueList<MetaDataBase::Include> includes; + for ( TQValueList<MetaDataBase::Include>::Iterator it = oldIncludes.begin(); it != oldIncludes.end(); ++it ) { + MetaDataBase::Include inc = *it; + if ( inc.implDecl == "in declaration" ) + continue; + includes << inc; + } + + for ( TQStringList::ConstIterator sit = lst.begin(); sit != lst.end(); ++sit ) { + TQString s = *sit; + if ( s.startsWith( "#include" ) ) + s.remove( (uint)0, 8 ); + s = s.simplifyWhiteSpace(); + if ( s[ 0 ] != '<' && s[ 0 ] != '"' ) { + s.prepend( "\"" ); + s.append( "\"" ); + } + if ( s[ 0 ] == '<' ) { + s.remove( (uint)0, 1 ); + s.remove( s.length() - 1, 1 ); + MetaDataBase::Include inc; + inc.header = s; + inc.implDecl = "in declaration"; + inc.location = "global"; + includes << inc; + } else { + s.remove( (uint)0, 1 ); + s.remove( s.length() - 1, 1 ); + MetaDataBase::Include inc; + inc.header = s; + inc.implDecl = "in declaration"; + inc.location = "local"; + includes << inc; + } + } + MetaDataBase::setIncludes( TQT_TQOBJECT(formWindow), includes ); + formWindow->mainWindow()->objectHierarchy()->formDefinitionView()->setup(); +} + +TQStringList DesignerFormWindowImpl::forwardDeclarations() const +{ + return MetaDataBase::forwards( TQT_TQOBJECT(formWindow) ); +} + +void DesignerFormWindowImpl::setForwardDeclarations( const TQStringList &lst ) +{ + MetaDataBase::setForwards( TQT_TQOBJECT(formWindow), lst ); + formWindow->mainWindow()->objectHierarchy()->formDefinitionView()->setup(); +} + +TQStringList DesignerFormWindowImpl::signalList() const +{ + return MetaDataBase::signalList( TQT_TQOBJECT(formWindow) ); +} + +void DesignerFormWindowImpl::setSignalList( const TQStringList &lst ) +{ + MetaDataBase::setSignalList( TQT_TQOBJECT(formWindow), lst ); + formWindow->mainWindow()->objectHierarchy()->formDefinitionView()->setup(); +} + +void DesignerFormWindowImpl::onModificationChange( TQObject *receiver, const char *slot ) +{ + TQObject::connect( formWindow, TQT_SIGNAL( modificationChanged( bool, FormWindow * ) ), receiver, slot ); +} + +void DesignerFormWindowImpl::addMenu( const TQString &text, const TQString &name ) +{ + if ( !::tqqt_cast<TQMainWindow*>(formWindow->mainContainer()) ) + return; + + TQMainWindow *mw = (TQMainWindow*)formWindow->mainContainer(); + PopupMenuEditor *popup = new PopupMenuEditor( formWindow, mw ); + TQString n = name; + formWindow->unify( TQT_TQOBJECT(popup), n, TRUE ); + popup->setName( n ); + MenuBarEditor *mb = (MenuBarEditor *)mw->child( 0, "MenuBarEditor" ); + if ( !mb ) { + mb = new MenuBarEditor( formWindow, mw ); + mb->setName( "MenuBar" ); + MetaDataBase::addEntry( TQT_TQOBJECT(mb) ); + } + mb->insertItem( text, popup ); + MetaDataBase::addEntry( TQT_TQOBJECT(popup) ); +} + +void DesignerFormWindowImpl::addMenuAction( const TQString &menu, TQAction *a ) +{ + if ( !::tqqt_cast<TQMainWindow*>(formWindow->mainContainer()) ) + return; + TQMainWindow *mw = (TQMainWindow*)formWindow->mainContainer(); + if ( !mw->child( 0, "MenuBarEditor" ) ) + return; + PopupMenuEditor *popup = (PopupMenuEditor*)mw->child( menu, "PopupMenuEditor" ); + if ( !popup ) + return; + popup->insert( a ); +} + +void DesignerFormWindowImpl::addMenuSeparator( const TQString &menu ) +{ + if ( !::tqqt_cast<TQMainWindow*>(formWindow->mainContainer()) ) + return; + TQMainWindow *mw = (TQMainWindow*)formWindow->mainContainer(); + if ( !mw->child( 0, "MenuBarEditor" ) ) + return; + PopupMenuEditor *popup = (PopupMenuEditor*)mw->child( menu, "PopupMenuEditor" ); + if ( !popup ) + return; + TQAction *a = new QSeparatorAction( 0 ); + popup->insert( a ); +} + +void DesignerFormWindowImpl::addToolBar( const TQString &text, const TQString &name ) +{ + if ( !::tqqt_cast<TQMainWindow*>(formWindow->mainContainer()) ) + return; + TQMainWindow *mw = (TQMainWindow*)formWindow->mainContainer(); + TQToolBar *tb = new QDesignerToolBar( mw ); + TQString n = name; + formWindow->unify( TQT_TQOBJECT(tb), n, TRUE ); + tb->setName( n ); + mw->addToolBar( tb, text ); +} + +void DesignerFormWindowImpl::addToolBarAction( const TQString &tbn, TQAction *a ) +{ + if ( !::tqqt_cast<TQMainWindow*>(formWindow->mainContainer()) ) + return; + TQMainWindow *mw = (TQMainWindow*)formWindow->mainContainer(); + QDesignerToolBar *tb = (QDesignerToolBar*)mw->child( tbn, "QDesignerToolBar" ); + if ( !tb ) + return; + a->addTo( tb ); + tb->addAction( a ); +} + +void DesignerFormWindowImpl::addToolBarSeparator( const TQString &tbn ) +{ + if ( !::tqqt_cast<TQMainWindow*>(formWindow->mainContainer()) ) + return; + TQMainWindow *mw = (TQMainWindow*)formWindow->mainContainer(); + QDesignerToolBar *tb = (QDesignerToolBar*)mw->child( tbn, "QDesignerToolBar" ); + if ( !tb ) + return; + TQAction *a = new QSeparatorAction( 0 ); + a->addTo( tb ); + tb->addAction( a ); +} + +DesignerDockImpl::DesignerDockImpl() +{ +} + +TQDockWindow *DesignerDockImpl::dockWindow() const +{ + return 0; +} + +DesignerOutputDockImpl::DesignerOutputDockImpl( OutputWindow *ow ) + : outWin( ow ) +{ +} + +TQWidget *DesignerOutputDockImpl::addView( const TQString &title ) +{ + TQWidget *page = new TQWidget( outWin ); + outWin->addTab( page, title ); + return page; +} + +void DesignerOutputDockImpl::appendDebug( const TQString &s ) +{ + outWin->appendDebug( s ); +} + +void DesignerOutputDockImpl::clearDebug() +{ +} + +void DesignerOutputDockImpl::appendError( const TQString &s, int l ) +{ + TQStringList ls; + ls << s; + TQValueList<uint> ll; + ll << l; + outWin->setErrorMessages( ls, ll, FALSE, TQStringList(), TQObjectList() ); +} + +void DesignerOutputDockImpl::clearError() +{ +} + +DesignerSourceFileImpl::DesignerSourceFileImpl( SourceFile *e ) + : ed( e ) +{ +} + +TQString DesignerSourceFileImpl::fileName() const +{ + return ed->fileName(); +} |