diff options
Diffstat (limited to 'kdevdesigner/designer/command.cpp')
-rw-r--r-- | kdevdesigner/designer/command.cpp | 2475 |
1 files changed, 0 insertions, 2475 deletions
diff --git a/kdevdesigner/designer/command.cpp b/kdevdesigner/designer/command.cpp deleted file mode 100644 index b9b97827..00000000 --- a/kdevdesigner/designer/command.cpp +++ /dev/null @@ -1,2475 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000-2002 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. -** -**********************************************************************/ -#include "command.h" -#include "formwindow.h" -#include "widgetfactory.h" -#include "propertyeditor.h" -#include "metadatabase.h" -#include <widgetdatabase.h> -#include "mainwindow.h" -#include "hierarchyview.h" -#include "workspace.h" -#include "actioneditorimpl.h" -#include "actiondnd.h" -#include "formfile.h" -#include "../interfaces/languageinterface.h" -#include "menubareditor.h" -#include "popupmenueditor.h" - -#include <tqfeatures.h> -#include <tqwidget.h> -#include <tqmetaobject.h> -#include <tqapplication.h> -#include <tqlayout.h> -#include <tqmessagebox.h> -#include <tqlistbox.h> -#include <tqiconview.h> -#include <tqtextedit.h> -#include <tqptrstack.h> -#include <tqheader.h> -#include <tqsplitter.h> -#ifndef TQT_NO_TABLE -#include <tqtable.h> -#endif -#include <tqaction.h> - -#include "kdevdesigner_part.h" - -#include <tdelocale.h> - -CommandHistory::CommandHistory( int s ) - : current( -1 ), steps( s ), savedAt( -1 ) -{ - history.setAutoDelete( TRUE ); - modified = FALSE; - compressedCommand = 0; -} - -void CommandHistory::addCommand( Command *cmd, bool tryCompress ) -{ - if ( tryCompress ) { - if ( !compressedCommand || - compressedCommand->type() != cmd->type() || - !compressedCommand->canMerge( cmd ) ) { - checkCompressedCommand(); - compressedCommand = 0; - } - - if ( compressedCommand ) { - compressedCommand->merge( cmd ); - modified = TRUE; - modificationChanged( modified ); - return; - } - compressedCommand = cmd; - } else { - checkCompressedCommand(); - } - - if ( current < (int)history.count() - 1 ) { - if ( current < savedAt ) - savedAt = -2; - - TQPtrList<Command> commands; - commands.setAutoDelete( FALSE ); - - for( int i = 0; i <= current; ++i ) { - commands.insert( i, history.at( 0 ) ); - history.take( 0 ); - } - - commands.append( cmd ); - history.clear(); - history = commands; - history.setAutoDelete( TRUE ); - } else { - history.append( cmd ); - } - - if ( (int)history.count() > steps ) { - savedAt--; - history.removeFirst(); - } else { - ++current; - } - - emitUndoRedo(); - modified = TRUE; - modificationChanged( modified ); -} - -void CommandHistory::undo() -{ - checkCompressedCommand(); - compressedCommand = 0; - if ( current > -1 ) { - history.at( current )->unexecute(); - --current; - } - emitUndoRedo(); - modified = savedAt != current; - modificationChanged( modified ); -} - -void CommandHistory::redo() -{ - checkCompressedCommand(); - compressedCommand = 0; - if ( current > -1 ) { - if ( current < (int)history.count() - 1 ) { - ++current; - history.at( current )->execute(); - } - } else { - if ( history.count() > 0 ) { - ++current; - history.at( current )->execute(); - } - } - emitUndoRedo(); - modified = savedAt != current; - modificationChanged( modified ); -} - -void CommandHistory::emitUndoRedo() -{ - Command *undoCmd = 0; - Command *redoCmd = 0; - - if ( current >= 0 && current < (int)history.count() ) - undoCmd = history.at( current ); - if ( current + 1 >= 0 && current + 1 < (int)history.count() ) - redoCmd = history.at( current + 1 ); - - bool ua = (undoCmd != 0); - TQString uc; - if ( ua ) - uc = undoCmd->name(); - bool ra = (redoCmd != 0); - TQString rc; - if ( ra ) - rc = redoCmd->name(); - emit undoRedoChanged( ua, ra, uc, rc ); -} - -void CommandHistory::setModified( bool m ) -{ - modified = m; - if ( !modified ) - savedAt = current; - modificationChanged( modified ); -} - -bool CommandHistory::isModified() const -{ - return modified; -} - -void CommandHistory::checkCompressedCommand() -{ - if ( compressedCommand && compressedCommand->type() == Command::SetProperty ) { - Command *c = compressedCommand; - compressedCommand = 0; - if ( !( (SetPropertyCommand*)c )->checkProperty() ) { - history.remove( current ); - --current; - emitUndoRedo(); - } - } -} - -// ------------------------------------------------------------ - -Command::Command( const TQString &n, FormWindow *fw ) - : cmdName( n ), formWin( fw ) -{ -} - -Command::~Command() -{ -} - -TQString Command::name() const -{ - return cmdName; -} - -FormWindow *Command::formWindow() const -{ - return formWin; -} - -void Command::merge( Command * ) -{ -} - -bool Command::canMerge( Command * ) -{ - return FALSE; -} - -// ------------------------------------------------------------ - -ResizeCommand::ResizeCommand( const TQString &n, FormWindow *fw, - TQWidget *w, const TQRect &oldr, const TQRect &nr ) - : Command( n, fw ), widget( w ), oldRect( oldr ), newRect( nr ) -{ -} - -void ResizeCommand::execute() -{ - widget->setGeometry( newRect ); - formWindow()->updateSelection( widget ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(widget) ); - if ( WidgetFactory::layoutType( widget ) != WidgetFactory::NoLayout ) - formWindow()->updateChildSelections( widget ); -} - -void ResizeCommand::unexecute() -{ - widget->setGeometry( oldRect ); - formWindow()->updateSelection( widget ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(widget) ); - if ( WidgetFactory::layoutType( widget ) != WidgetFactory::NoLayout ) - formWindow()->updateChildSelections( widget ); -} - -// ------------------------------------------------------------ - -InsertCommand::InsertCommand( const TQString &n, FormWindow *fw, - TQWidget *w, const TQRect &g ) - : Command( n, fw ), widget( w ), geometry( g ) -{ -} - -void InsertCommand::execute() -{ - if ( geometry.size() == TQSize( 0, 0 ) ) { - widget->move( geometry.topLeft() ); - widget->adjustSize(); - } else { - TQSize s = geometry.size().expandedTo( widget->minimumSize() ); - s = s.expandedTo( widget->minimumSizeHint() ); - TQRect r( geometry.topLeft(), s ); - widget->setGeometry( r ); - } - widget->show(); - formWindow()->widgets()->insert( widget, widget ); - formWindow()->clearSelection( FALSE ); - formWindow()->selectWidget( TQT_TQOBJECT(widget) ); - formWindow()->mainWindow()->objectHierarchy()->widgetInserted( widget ); -} - -void InsertCommand::unexecute() -{ - widget->hide(); - formWindow()->selectWidget( TQT_TQOBJECT(widget), FALSE ); - formWindow()->widgets()->remove( TQT_TQOBJECT(widget) ); - formWindow()->mainWindow()->objectHierarchy()->widgetRemoved( widget ); - } - -// ------------------------------------------------------------ - -MoveCommand::MoveCommand( const TQString &n, FormWindow *fw, - const TQWidgetList &w, - const TQValueList<TQPoint> op, - const TQValueList<TQPoint> np, - TQWidget *opr, TQWidget *npr ) - : Command( n, fw ), widgets( w ), oldPos( op ), newPos( np ), - oldParent( opr ), newParent( npr ) -{ - widgets.setAutoDelete( FALSE ); -} - -void MoveCommand::merge( Command *c ) -{ - MoveCommand *cmd = (MoveCommand*)c; - newPos = cmd->newPos; -} - -bool MoveCommand::canMerge( Command *c ) -{ - MoveCommand *cmd = (MoveCommand*)c; - return widgets == cmd->widgets; -} - - -void MoveCommand::execute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - if ( !w->parentWidget() || WidgetFactory::layoutType( w->parentWidget() ) == WidgetFactory::NoLayout ) { - if ( newParent && oldParent && newParent != oldParent ) { - TQPoint pos = newParent->mapFromGlobal( w->mapToGlobal( TQPoint( 0,0 ) ) ); - w->reparent( newParent, pos, TRUE ); - formWindow()->raiseSelection( w ); - formWindow()->raiseChildSelections( w ); - formWindow()->widgetChanged( TQT_TQOBJECT(w) ); - formWindow()->mainWindow()->objectHierarchy()->widgetRemoved( w ); - formWindow()->mainWindow()->objectHierarchy()->widgetInserted( w ); - } - w->move( newPos[ widgets.at() ] ); - } - formWindow()->updateSelection( w ); - formWindow()->updateChildSelections( w ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(w) ); - } -} - -void MoveCommand::unexecute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - if ( !w->parentWidget() || WidgetFactory::layoutType( w->parentWidget() ) == WidgetFactory::NoLayout ) { - if ( newParent && oldParent && newParent != oldParent ) { - TQPoint pos = oldParent->mapFromGlobal( w->mapToGlobal( TQPoint( 0,0 ) ) ); - w->reparent( oldParent, pos, TRUE ); - formWindow()->raiseSelection( w ); - formWindow()->raiseChildSelections( w ); - formWindow()->widgetChanged( TQT_TQOBJECT(w) ); - formWindow()->mainWindow()->objectHierarchy()->widgetRemoved( w ); - formWindow()->mainWindow()->objectHierarchy()->widgetInserted( w ); - } - w->move( oldPos[ widgets.at() ] ); - } - formWindow()->updateSelection( w ); - formWindow()->updateChildSelections( w ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(w) ); - } -} - -// ------------------------------------------------------------ - -DeleteCommand::DeleteCommand( const TQString &n, FormWindow *fw, - const TQWidgetList &wl ) - : Command( n, fw ), widgets( wl ) -{ - widgets.setAutoDelete( FALSE ); - TQWidgetList copyOfWidgets = widgets; - copyOfWidgets.setAutoDelete(FALSE); - - // Include the children of the selected items when deleting - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - TQObjectList *children = w->queryList( TQWIDGET_OBJECT_NAME_STRING ); - for ( TQWidget *c = (TQWidget *)children->first(); c; c = (TQWidget *)children->next() ) { - if ( copyOfWidgets.find( c ) == -1 && formWindow()->widgets()->find( c ) ) { - widgets.insert(widgets.at() + 1, c); - widgets.prev(); - copyOfWidgets.append(c); - } - } - delete children; - } -} - -void DeleteCommand::execute() -{ - formWindow()->setPropertyShowingBlocked( TRUE ); - connections.clear(); - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->hide(); - TQString s = w->name(); - s.prepend( "qt_dead_widget_" ); - w->setName( s ); - formWindow()->selectWidget( TQT_TQOBJECT(w), FALSE ); - formWindow()->widgets()->remove( w ); - TQValueList<MetaDataBase::Connection> conns = MetaDataBase::connections( TQT_TQOBJECT(formWindow()), TQT_TQOBJECT(w) ); - connections.insert( w, conns ); - TQValueList<MetaDataBase::Connection>::Iterator it = conns.begin(); - for ( ; it != conns.end(); ++it ) { - MetaDataBase::removeConnection( TQT_TQOBJECT(formWindow()), (*it).sender, - (*it).signal, (*it).receiver, (*it).slot ); - } - } - formWindow()->setPropertyShowingBlocked( FALSE ); - formWindow()->emitShowProperties(); - formWindow()->mainWindow()->objectHierarchy()->widgetsRemoved( widgets ); - -} - -void DeleteCommand::unexecute() -{ - formWindow()->setPropertyShowingBlocked( TRUE ); - formWindow()->clearSelection( FALSE ); - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->show(); - TQString s = w->name(); - s.remove( 0, TQString( "qt_dead_widget_" ).length() ); - w->setName( s ); - formWindow()->widgets()->insert( w, w ); - formWindow()->selectWidget( TQT_TQOBJECT(w) ); - TQValueList<MetaDataBase::Connection> conns = *connections.find( w ); - TQValueList<MetaDataBase::Connection>::Iterator it = conns.begin(); - for ( ; it != conns.end(); ++it ) { - MetaDataBase::addConnection( TQT_TQOBJECT(formWindow()), (*it).sender, - (*it).signal, (*it).receiver, (*it).slot ); - } - } - formWindow()->setPropertyShowingBlocked( FALSE ); - formWindow()->emitShowProperties(); - formWindow()->mainWindow()->objectHierarchy()->widgetsInserted( widgets ); -} - -// ------------------------------------------------------------ - -SetPropertyCommand::SetPropertyCommand( const TQString &n, FormWindow *fw, - TQObject *w, PropertyEditor *e, - const TQString &pn, const TQVariant &ov, - const TQVariant &nv, const TQString &ncut, - const TQString &ocut, bool reset ) - : Command( n, fw ), widget( w ), editor( e ), propName( pn ), - oldValue( ov ), newValue( nv ), oldCurrentItemText( ocut ), newCurrentItemText( ncut ), - wasChanged( TRUE ), isResetCommand( reset ) -{ - wasChanged = MetaDataBase::isPropertyChanged( w, propName ); - if ( oldCurrentItemText.isNull() ) - oldCurrentItemText = ""; - if ( newCurrentItemText.isNull() ) - newCurrentItemText = ""; -} - - -void SetPropertyCommand::execute() -{ - if ( !wasChanged ) - MetaDataBase::setPropertyChanged( widget, propName, TRUE ); - if ( isResetCommand ) { - MetaDataBase::setPropertyChanged( widget, propName, FALSE ); - if ( WidgetFactory::resetProperty( widget, propName ) ) { - if ( !formWindow()->isWidgetSelected( widget ) && TQT_TQOBJECT(formWindow()) != TQT_TQOBJECT(widget) ) - formWindow()->selectWidget( TQT_TQOBJECT(widget) ); - if ( editor->widget() != widget ) - editor->setWidget( widget, formWindow() ); - editor->propertyList()->setCurrentProperty( propName ); - PropertyItem *i = (PropertyItem*)editor->propertyList()->currentItem(); - if ( !i ) - return; - i->setValue( widget->property( propName ) ); - i->setChanged( FALSE ); - editor->refetchData(); - editor->emitWidgetChanged(); - return; - } - } - setProperty( newValue, newCurrentItemText ); -} - -void SetPropertyCommand::unexecute() -{ - if ( !wasChanged ) - MetaDataBase::setPropertyChanged( widget, propName, FALSE ); - if ( isResetCommand ) - MetaDataBase::setPropertyChanged( widget, propName, TRUE ); - setProperty( oldValue, oldCurrentItemText ); -} - -bool SetPropertyCommand::canMerge( Command *c ) -{ - SetPropertyCommand *cmd = (SetPropertyCommand*)c; - if ( !widget ) - return FALSE; - const TQMetaProperty *p = - widget->metaObject()->property( widget->metaObject()->findProperty( propName, TRUE ), TRUE ); - if ( !p ) { - if ( propName == "toolTip" || propName == "whatsThis" ) - return TRUE; - if ( ::tqqt_cast<CustomWidget*>((TQObject *)widget) ) { - MetaDataBase::CustomWidget *cw = ((CustomWidget*)(TQObject*)widget)->customWidget(); - if ( !cw ) - return FALSE; - for ( TQValueList<MetaDataBase::Property>::Iterator it = cw->lstProperties.begin(); it != cw->lstProperties.end(); ++it ) { - if ( TQString( (*it ).property ) == propName ) { - if ( (*it).type == "String" || (*it).type == "CString" || (*it).type == "Int" || (*it).type == "UInt" ) - return TRUE; - } - } - } - return FALSE; - } - TQVariant::Type t = TQVariant::nameToType( p->type() ); - return ( cmd->propName == propName && - t == TQVariant::String || t == TQVariant::CString || t == TQVariant::Int || t == TQVariant::UInt ); -} - -void SetPropertyCommand::merge( Command *c ) -{ - SetPropertyCommand *cmd = (SetPropertyCommand*)c; - newValue = cmd->newValue; - newCurrentItemText = cmd->newCurrentItemText; -} - -bool SetPropertyCommand::checkProperty() -{ - if ( propName == "name" /*|| propName == "itemName"*/ ) { // ### fix that - TQString s = newValue.toString(); - if ( !formWindow()->unify( widget, s, FALSE ) ) { - TQMessageBox::information( formWindow()->mainWindow(), - i18n( "Set 'name' Property" ), - i18n( "The name of a widget must be unique.\n" - "'%1' is already used in form '%2',\n" - "so the name has been reverted to '%3'." ). - arg( newValue.toString() ). - arg( formWindow()->name() ). - arg( oldValue.toString() )); - setProperty( oldValue, oldCurrentItemText, FALSE ); - return FALSE; - } - if ( s.isEmpty() ) { - TQMessageBox::information( formWindow()->mainWindow(), - i18n( "Set 'name' Property" ), - i18n( "The name of a widget must not be null.\n" - "The name has been reverted to '%1'." ). - arg( oldValue.toString() )); - setProperty( oldValue, oldCurrentItemText, FALSE ); - return FALSE; - } - - if ( ::tqqt_cast<FormWindow*>(widget->parent()) ) - formWindow()->mainWindow()->formNameChanged( (FormWindow*)((TQWidget*)(TQObject*)widget)->parentWidget() ); - } - return TRUE; -} - -void SetPropertyCommand::setProperty( const TQVariant &v, const TQString ¤tItemText, bool select ) -{ - if ( !widget ) - return; - - if ( !formWindow()->isWidgetSelected( widget ) && !formWindow()->isMainContainer( widget ) && select ) - formWindow()->selectWidget( TQT_TQOBJECT(widget) ); - if ( editor->widget() != widget && select ) - editor->setWidget( widget, formWindow() ); - if ( select ) - editor->propertyList()->setCurrentProperty( propName ); - const TQMetaProperty *p = - widget->metaObject()->property( widget->metaObject()->findProperty( propName, TRUE ), TRUE ); - if ( !p ) { - if ( propName == "hAlign" ) { - p = widget->metaObject()->property( widget->metaObject()->findProperty( "alignment", TRUE ), TRUE ); - int align = widget->property( "alignment" ).toInt(); - align &= ~( AlignHorizontal_Mask ); - align |= p->keyToValue( currentItemText ); - widget->setProperty( "alignment", TQVariant( align ) ); - } else if ( propName == "vAlign" ) { - p = widget->metaObject()->property( widget->metaObject()->findProperty( "alignment", TRUE ), TRUE ); - int align = widget->property( "alignment" ).toInt(); - align &= ~( AlignVertical_Mask ); - align |= p->keyToValue( currentItemText ); - widget->setProperty( "alignment", TQVariant( align ) ); - } else if ( propName == "wordwrap" ) { - int align = widget->property( "alignment" ).toInt(); - align &= ~WordBreak; - if ( v.toBool() ) - align |= WordBreak; - widget->setProperty( "alignment", TQVariant( align ) ); - } else if ( propName == "layoutSpacing" ) { - TQVariant val = v; - if ( val.toString() == "default" ) - val = -1; - MetaDataBase::setSpacing( TQT_TQOBJECT(WidgetFactory::containerOfWidget( TQT_TQWIDGET(editor->widget()) )), val.toInt() ); - } else if ( propName == "layoutMargin" ) { - TQVariant val = v; - if ( val.toString() == "default" ) - val = -1; - MetaDataBase::setMargin( TQT_TQOBJECT(WidgetFactory::containerOfWidget( TQT_TQWIDGET(editor->widget()) )), val.toInt() ); - } else if ( propName == "resizeMode" ) { - MetaDataBase::setResizeMode( TQT_TQOBJECT(WidgetFactory::containerOfWidget( TQT_TQWIDGET(editor->widget()) )), currentItemText ); - } else if ( propName == "toolTip" || propName == "whatsThis" || propName == "database" || propName == "frameworkCode" ) { - MetaDataBase::setFakeProperty( editor->widget(), propName, v ); - } else if ( ::tqqt_cast<CustomWidget*>(editor->widget()) ) { - MetaDataBase::CustomWidget *cw = ((CustomWidget *)(TQObject *)widget)->customWidget(); - if ( cw ) { - MetaDataBase::setFakeProperty( editor->widget(), propName, v ); - } - } - editor->refetchData(); - editor->emitWidgetChanged(); - ( ( PropertyItem* )editor->propertyList()->currentItem() )->setChanged( MetaDataBase::isPropertyChanged( widget, propName ) ); -#ifndef TQT_NO_SQL - if ( propName == "database" ) { - formWindow()->mainWindow()->objectHierarchy()->databasePropertyChanged( (TQWidget*)((TQObject *)widget), MetaDataBase::fakeProperty( widget, "database" ).toStringList() ); - } -#endif - return; - } - - if ( p->isSetType() ) { - TQStrList strlst; - TQStringList lst = TQStringList::split( "|", currentItemText ); - TQValueListConstIterator<TQString> it = lst.begin(); - for ( ; it != lst.end(); ++it ) - strlst.append( (*it).latin1() ); - widget->setProperty( propName, p->keysToValue( strlst ) ); - } else if ( p->isEnumType() ) { - widget->setProperty( propName, p->keyToValue( currentItemText ) ); - } else if ( qstrcmp( p->name(), "buddy" ) == 0 ) { - widget->setProperty( propName, currentItemText ); - } else { - TQVariant ov; - if ( propName == "name" || propName == "itemName" ) - ov = widget->property( propName ); - int oldSerNum = -1; - if ( v.type() == TQVariant::Pixmap ) - oldSerNum = v.toPixmap().serialNumber(); - widget->setProperty( propName, v ); - if ( oldSerNum != -1 && oldSerNum != widget->property( propName ).toPixmap().serialNumber() ) - MetaDataBase::setPixmapKey( TQT_TQOBJECT(formWindow()), - widget->property( propName ).toPixmap().serialNumber(), - MetaDataBase::pixmapKey( TQT_TQOBJECT(formWindow()), oldSerNum ) ); - if ( propName == "cursor" ) { - MetaDataBase::setCursor( (TQWidget*)((TQObject *)widget), v.toCursor() ); - } - if ( propName == "name" && widget->isWidgetType() ) { - formWindow()->mainWindow()->objectHierarchy()->namePropertyChanged( ((TQWidget*)(TQObject *)widget), ov ); - if ( formWindow()->isMainContainer( widget ) ) - formWindow()->setName( v.toCString() ); - } - if ( propName == "name" && ::tqqt_cast<TQAction*>((TQObject *)widget) && ::tqqt_cast<TQMainWindow*>(formWindow()->mainContainer()) ) { - formWindow()->mainWindow()->actioneditor()->updateActionName( (TQAction*)(TQObject *)widget ); - } - if ( propName == "iconSet" && ::tqqt_cast<TQAction*>((TQObject *)widget) && ::tqqt_cast<TQMainWindow*>(formWindow()->mainContainer()) ) { - formWindow()->mainWindow()->actioneditor()->updateActionIcon( (TQAction*)(TQObject *)widget ); - } - if ( propName == "caption" ) { - if ( formWindow()->isMainContainer( widget ) ) - formWindow()->setCaption( v.toString() ); - } - if ( propName == "icon" ) { - if ( formWindow()->isMainContainer( widget ) ) - formWindow()->setIcon( v.toPixmap() ); - } - } - editor->refetchData(); - if ( editor->propertyList()->currentItem() && select ) { - ( ( PropertyItem* )editor->propertyList()->currentItem() )->showEditor(); - ( ( PropertyItem* )editor->propertyList()->currentItem() )->setChanged( MetaDataBase::isPropertyChanged( widget, propName ) ); - } - editor->emitWidgetChanged(); - formWindow()->killAccels( TQT_TQOBJECT(widget) ); -} - -// ------------------------------------------------------------ - -LayoutHorizontalCommand::LayoutHorizontalCommand( const TQString &n, FormWindow *fw, - TQWidget *parent, TQWidget *layoutBase, - const TQWidgetList &wl ) - : Command( n, fw ), layout( wl, parent, fw, layoutBase ) -{ -} - -void LayoutHorizontalCommand::execute() -{ - formWindow()->clearSelection( FALSE ); - layout.doLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void LayoutHorizontalCommand::unexecute() -{ - formWindow()->clearSelection( FALSE ); - layout.undoLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -LayoutHorizontalSplitCommand::LayoutHorizontalSplitCommand( const TQString &n, FormWindow *fw, - TQWidget *parent, TQWidget *layoutBase, - const TQWidgetList &wl ) - : Command( n, fw ), layout( wl, parent, fw, layoutBase, TRUE, TRUE ) -{ -} - -void LayoutHorizontalSplitCommand::execute() -{ - formWindow()->clearSelection( FALSE ); - layout.doLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void LayoutHorizontalSplitCommand::unexecute() -{ - formWindow()->clearSelection( FALSE ); - layout.undoLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -LayoutVerticalCommand::LayoutVerticalCommand( const TQString &n, FormWindow *fw, - TQWidget *parent, TQWidget *layoutBase, - const TQWidgetList &wl ) - : Command( n, fw ), layout( wl, parent, fw, layoutBase ) -{ -} - -void LayoutVerticalCommand::execute() -{ - formWindow()->clearSelection( FALSE ); - layout.doLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void LayoutVerticalCommand::unexecute() -{ - formWindow()->clearSelection( FALSE ); - layout.undoLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -LayoutVerticalSplitCommand::LayoutVerticalSplitCommand( const TQString &n, FormWindow *fw, - TQWidget *parent, TQWidget *layoutBase, - const TQWidgetList &wl ) - : Command( n, fw ), layout( wl, parent, fw, layoutBase, TRUE, TRUE ) -{ -} - -void LayoutVerticalSplitCommand::execute() -{ - formWindow()->clearSelection( FALSE ); - layout.doLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void LayoutVerticalSplitCommand::unexecute() -{ - formWindow()->clearSelection( FALSE ); - layout.undoLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -LayoutGridCommand::LayoutGridCommand( const TQString &n, FormWindow *fw, - TQWidget *parent, TQWidget *layoutBase, - const TQWidgetList &wl, int xres, int yres ) - : Command( n, fw ), layout( wl, parent, fw, layoutBase, TQSize( TQMAX(5,xres), TQMAX(5,yres) ) ) -{ -} - -void LayoutGridCommand::execute() -{ - formWindow()->clearSelection( FALSE ); - layout.doLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void LayoutGridCommand::unexecute() -{ - formWindow()->clearSelection( FALSE ); - layout.undoLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -BreakLayoutCommand::BreakLayoutCommand( const TQString &n, FormWindow *fw, - TQWidget *layoutBase, const TQWidgetList &wl ) - : Command( n, fw ), lb( layoutBase ), widgets( wl ) -{ - WidgetFactory::LayoutType lay = WidgetFactory::layoutType( layoutBase ); - spacing = MetaDataBase::spacing( TQT_TQOBJECT(layoutBase) ); - margin = MetaDataBase::margin( TQT_TQOBJECT(layoutBase) ); - layout = 0; - if ( lay == WidgetFactory::HBox ) - layout = new HorizontalLayout( wl, layoutBase, fw, layoutBase, FALSE, ::tqqt_cast<TQSplitter*>(layoutBase) != 0 ); - else if ( lay == WidgetFactory::VBox ) - layout = new VerticalLayout( wl, layoutBase, fw, layoutBase, FALSE, ::tqqt_cast<TQSplitter*>(layoutBase) != 0 ); - else if ( lay == WidgetFactory::Grid ) - layout = new GridLayout( wl, layoutBase, fw, layoutBase, TQSize( TQMAX( 5, fw->grid().x()), TQMAX( 5, fw->grid().y()) ), FALSE ); -} - -void BreakLayoutCommand::execute() -{ - if ( !layout ) - return; - formWindow()->clearSelection( FALSE ); - layout->breakLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) - w->resize( TQMAX( 16, w->width() ), TQMAX( 16, w->height() ) ); -} - -void BreakLayoutCommand::unexecute() -{ - if ( !layout ) - return; - formWindow()->clearSelection( FALSE ); - layout->doLayout(); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); - MetaDataBase::setSpacing( TQT_TQOBJECT(WidgetFactory::containerOfWidget( lb )), spacing ); - MetaDataBase::setMargin( TQT_TQOBJECT(WidgetFactory::containerOfWidget( lb )), margin ); -} - -// ------------------------------------------------------------ - -MacroCommand::MacroCommand( const TQString &n, FormWindow *fw, - const TQPtrList<Command> &cmds ) - : Command( n, fw ), commands( cmds ) -{ -} - -void MacroCommand::execute() -{ - for ( Command *c = commands.first(); c; c = commands.next() ) - c->execute(); -} - -void MacroCommand::unexecute() -{ - for ( Command *c = commands.last(); c; c = commands.prev() ) - c->unexecute(); -} - -// ------------------------------------------------------------ - -AddTabPageCommand::AddTabPageCommand( const TQString &n, FormWindow *fw, - TQTabWidget *tw, const TQString &label ) - : Command( n, fw ), tabWidget( tw ), tabLabel( label ) -{ - tabPage = new QDesignerWidget( formWindow(), tabWidget, "TabPage" ); - tabPage->hide(); - index = -1; - MetaDataBase::addEntry( TQT_TQOBJECT(tabPage) ); -} - -void AddTabPageCommand::execute() -{ - if ( index == -1 ) - index = ( (QDesignerTabWidget*)tabWidget )->count(); - tabWidget->insertTab( tabPage, tabLabel, index ); - tabWidget->showPage( tabPage ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( tabWidget ); -} - -void AddTabPageCommand::unexecute() -{ - tabWidget->removePage( tabPage ); - tabPage->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( tabWidget ); -} - -// ------------------------------------------------------------ - -MoveTabPageCommand::MoveTabPageCommand( const TQString &n, FormWindow *fw, - TQTabWidget *tw, TQWidget* page, const TQString& label, int nIndex, int oIndex ) - : Command( n, fw ), tabWidget( tw ), tabPage( page ), tabLabel( label ) -{ - newIndex = nIndex; - oldIndex = oIndex; -} - -void MoveTabPageCommand::execute() -{ - ((QDesignerTabWidget*)tabWidget )->removePage( tabPage ); - ((QDesignerTabWidget*)tabWidget )->insertTab( tabPage, tabLabel, newIndex ); - ((QDesignerTabWidget*)tabWidget )->showPage( tabPage ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( tabWidget ); -} - -void MoveTabPageCommand::unexecute() -{ - ((QDesignerTabWidget*)tabWidget )->removePage( tabPage ); - ((QDesignerTabWidget*)tabWidget )->insertTab( tabPage, tabLabel, oldIndex ); - ((QDesignerTabWidget*)tabWidget )->showPage( tabPage ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( tabWidget ); -} - -// ------------------------------------------------------------ - -DeleteTabPageCommand::DeleteTabPageCommand( const TQString &n, FormWindow *fw, - TQTabWidget *tw, TQWidget *page ) - : Command( n, fw ), tabWidget( tw ), tabPage( page ) -{ - tabLabel = ( (QDesignerTabWidget*)tabWidget )->pageTitle(); - index = ( (QDesignerTabWidget*)tabWidget )->currentPage(); -} - -void DeleteTabPageCommand::execute() -{ - tabWidget->removePage( tabPage ); - tabPage->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( tabWidget ); -} - -void DeleteTabPageCommand::unexecute() -{ - tabWidget->insertTab( tabPage, tabLabel, index ); - tabWidget->showPage( tabPage ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( tabWidget ); -} - -// ------------------------------------------------------------ - -AddWidgetStackPageCommand::AddWidgetStackPageCommand( const TQString &n, FormWindow *fw, - QDesignerWidgetStack *ws ) - : Command( n, fw ), widgetStack( ws ) -{ - stackPage = new QDesignerWidget( formWindow(), widgetStack, "WStackPage" ); - stackPage->hide(); - index = -1; - MetaDataBase::addEntry( TQT_TQOBJECT(stackPage) ); -} - -void AddWidgetStackPageCommand::execute() -{ - index = widgetStack->insertPage( stackPage, index ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( 0 ); -} - -void AddWidgetStackPageCommand::unexecute() -{ - index = widgetStack->removePage( stackPage ); - stackPage->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->tabsChanged( 0 ); -} - -DeleteWidgetStackPageCommand::DeleteWidgetStackPageCommand( const TQString &n, FormWindow *fw, - QDesignerWidgetStack *ws, TQWidget *page ) - : Command( n, fw), widgetStack( ws ), stackPage( page ) -{ - index = -1; -} - -void DeleteWidgetStackPageCommand::execute() -{ - index = widgetStack->removePage( stackPage ); - stackPage->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->widgetRemoved( stackPage ); -} - -void DeleteWidgetStackPageCommand::unexecute() -{ - index = widgetStack->insertPage( stackPage, index ); - widgetStack->raiseWidget( stackPage ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->widgetInserted( stackPage ); -} - -// ------------------------------------------------------------ - -AddWizardPageCommand::AddWizardPageCommand( const TQString &n, FormWindow *fw, - TQWizard *w, const TQString &label, int i, bool s ) - : Command( n, fw ), wizard( w ), pageLabel( label ) -{ - page = new QDesignerWidget( formWindow(), wizard, "WizardPage" ); - page->hide(); - index = i; - show = s; - MetaDataBase::addEntry( TQT_TQOBJECT(page) ); -} - -void AddWizardPageCommand::execute() -{ - if ( index == -1 ) - index = wizard->pageCount(); - wizard->insertPage( page, pageLabel, index ); - if ( show ) - ( (QDesignerWizard*)wizard )->setCurrentPage( ( (QDesignerWizard*)wizard )->pageNum( page ) ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -void AddWizardPageCommand::unexecute() -{ - wizard->removePage( page ); - page->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -// ------------------------------------------------------------ - -DeleteWizardPageCommand::DeleteWizardPageCommand( const TQString &n, FormWindow *fw, - TQWizard *w, int i, bool s ) - : Command( n, fw ), wizard( w ), index( i ) -{ - show = s; -} - -void DeleteWizardPageCommand::execute() -{ - page = wizard->page( index ); - pageLabel = wizard->title( page ); - wizard->removePage( page ); - page->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -void DeleteWizardPageCommand::unexecute() -{ - wizard->insertPage( page, pageLabel, index ); - if ( show ) - ( (QDesignerWizard*)wizard )->setCurrentPage( ( (QDesignerWizard*)wizard )->pageNum( page ) ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -// ------------------------------------------------------------ - -RenameWizardPageCommand::RenameWizardPageCommand( const TQString &n, FormWindow *fw, - TQWizard *w, int i, const TQString& name ) - : Command( n, fw ), wizard( w ), index( i ), label( name ) -{ - -} - -void RenameWizardPageCommand::execute() -{ - page = wizard->page( index ); - TQString oldLabel = wizard->title( page ); - - wizard->setTitle( page, label ); - label = oldLabel; - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); -} - -void RenameWizardPageCommand::unexecute() -{ - execute(); -} - -// ------------------------------------------------------------ - -SwapWizardPagesCommand::SwapWizardPagesCommand( const TQString &n, FormWindow *fw, TQWizard *w, int i1, int i2 ) - : Command( n, fw ), wizard( w ), index1( i1 ), index2( i2 ) -{ -} - -void SwapWizardPagesCommand::execute() -{ - TQWidget *page1 = wizard->page( index1 ); - TQWidget *page2 = wizard->page( index2 ); - TQString page1Label = wizard->title( page1 ); - TQString page2Label = wizard->title( page2 ); - wizard->removePage( page1 ); - wizard->removePage( page2 ); - wizard->insertPage( page1, page1Label, index2 ); - wizard->insertPage( page2, page2Label, index1 ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -void SwapWizardPagesCommand::unexecute() -{ - execute(); -} - -// ------------------------------------------------------------ - -MoveWizardPageCommand::MoveWizardPageCommand( const TQString &n, FormWindow *fw, TQWizard *w, int i1, int i2 ) - : Command( n, fw ), wizard( w ), index1( i1 ), index2( i2 ) -{ -} - -void MoveWizardPageCommand::execute() -{ - TQWidget *page = wizard->page( index1 ); - TQString pageLabel = wizard->title( page ); - wizard->removePage( page ); - wizard->insertPage( page, pageLabel, index2 ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -void MoveWizardPageCommand::unexecute() -{ - // ###FIX: index1 may be the wrong place - TQWidget *page = wizard->page( index2 ); - TQString pageLabel = wizard->title( page ); - wizard->removePage( page ); - wizard->insertPage( page, pageLabel, index1 ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->pagesChanged( wizard ); -} - -// ------------------------------------------------------------ - -AddConnectionCommand::AddConnectionCommand( const TQString &name, FormWindow *fw, - MetaDataBase::Connection c ) - : Command( name, fw ), connection( c ) -{ -} - -void AddConnectionCommand::execute() -{ - MetaDataBase::addConnection( TQT_TQOBJECT(formWindow()), connection.sender, - connection.signal, connection.receiver, connection.slot ); - if ( TQT_BASE_OBJECT(connection.receiver) == TQT_BASE_OBJECT(formWindow()->mainContainer()) ) - formWindow()->mainWindow()->propertyeditor()->eventList()->setup(); -} - -void AddConnectionCommand::unexecute() -{ - MetaDataBase::removeConnection( TQT_TQOBJECT(formWindow()), connection.sender, - connection.signal, connection.receiver, connection.slot ); - if ( TQT_BASE_OBJECT(connection.receiver) == TQT_BASE_OBJECT(formWindow()->mainContainer()) ) - formWindow()->mainWindow()->propertyeditor()->eventList()->setup(); -} - -// ------------------------------------------------------------ - -RemoveConnectionCommand::RemoveConnectionCommand( const TQString &name, FormWindow *fw, - MetaDataBase::Connection c ) - : Command( name, fw ), connection( c ) -{ -} - -void RemoveConnectionCommand::execute() -{ - MetaDataBase::removeConnection( TQT_TQOBJECT(formWindow()), connection.sender, - connection.signal, connection.receiver, connection.slot ); - if ( TQT_BASE_OBJECT(connection.receiver) == TQT_BASE_OBJECT(formWindow()->mainContainer()) ) - formWindow()->mainWindow()->propertyeditor()->eventList()->setup(); -} - -void RemoveConnectionCommand::unexecute() -{ - MetaDataBase::addConnection( TQT_TQOBJECT(formWindow()), connection.sender, - connection.signal, connection.receiver, connection.slot ); - if ( TQT_BASE_OBJECT(connection.receiver) == TQT_BASE_OBJECT(formWindow()->mainContainer()) ) - formWindow()->mainWindow()->propertyeditor()->eventList()->setup(); -} - -// ------------------------------------------------------------ - -AddFunctionCommand::AddFunctionCommand( const TQString &name, FormWindow *fw, const TQCString &f, - const TQString& spec, const TQString &a, const TQString &t, - const TQString &l, const TQString &rt ) - : Command( name, fw ), function( f ), specifier( spec ), access( a ), functionType( t ), language( l ), - returnType( rt ) -{ -} - -void AddFunctionCommand::execute() -{ - MetaDataBase::addFunction( TQT_TQOBJECT(formWindow()), function, specifier, access, functionType, language, returnType ); - formWindow()->mainWindow()->functionsChanged(); - - //integration (add - execute) - KInterfaceDesigner::Function f; - f.returnType = returnType; - f.function = function; - f.specifier = specifier; - f.access = access; - f.type = (functionType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - formWindow()->clearSelection(false); - formWindow()->mainWindow()->part()->emitAddedFunction(formWindow()->fileName(), f); - - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void AddFunctionCommand::unexecute() -{ - MetaDataBase::removeFunction( TQT_TQOBJECT(formWindow()), function, specifier, access, functionType, language, returnType ); - formWindow()->mainWindow()->functionsChanged(); - - //integration (add - unexecute) - KInterfaceDesigner::Function f; - f.returnType = returnType; - f.function = function; - f.specifier = specifier; - f.access = access; - f.type = (functionType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - formWindow()->mainWindow()->part()->emitRemovedFunction(formWindow()->fileName(), f); - - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -ChangeFunctionAttribCommand::ChangeFunctionAttribCommand( const TQString &name, FormWindow *fw, MetaDataBase::Function f, - const TQString &on, const TQString &os, - const TQString &oa, const TQString &ot, const TQString &ol, - const TQString &ort ) - : Command( name, fw ), oldName( on ), oldSpec( os ), oldAccess( oa ), - oldType( ot ), oldLang( ol ), oldReturnType( ort ) -{ - newName = f.function; - newSpec = f.specifier; - newAccess = f.access; - newType = f.type; - newLang = f.language; - newReturnType = f.returnType; -} - -void ChangeFunctionAttribCommand::execute() -{ - MetaDataBase::changeFunctionAttributes( TQT_TQOBJECT(formWindow()), oldName, newName, newSpec, newAccess, - newType, newLang, newReturnType ); - formWindow()->formFile()->functionNameChanged( oldName, newName ); - formWindow()->formFile()->functionRetTypeChanged( newName, oldReturnType, newReturnType ); - formWindow()->mainWindow()->functionsChanged(); - - //integration (edit - execute) - KInterfaceDesigner::Function f; - f.returnType = newReturnType; - f.function = newName; - f.specifier = newSpec; - f.access = newAccess; - f.type = (newType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - KInterfaceDesigner::Function of; - f.returnType = oldReturnType; - f.function = oldName; - f.specifier = oldSpec; - f.access = oldAccess; - f.type = (oldType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - formWindow()->mainWindow()->part()->emitEditedFunction(formWindow()->fileName(), of, f); - - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void ChangeFunctionAttribCommand::unexecute() -{ - MetaDataBase::changeFunctionAttributes( TQT_TQOBJECT(formWindow()), newName, oldName, oldSpec, oldAccess, - oldType, oldLang, oldReturnType ); - formWindow()->formFile()->functionNameChanged( newName, oldName ); - formWindow()->formFile()->functionRetTypeChanged( oldName, newReturnType, oldReturnType ); - formWindow()->mainWindow()->functionsChanged(); - - //integration (edit - execute) - KInterfaceDesigner::Function f; - f.returnType = newReturnType; - f.function = newName; - f.specifier = newSpec; - f.access = newAccess; - f.type = (newType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - KInterfaceDesigner::Function of; - f.returnType = oldReturnType; - f.function = oldName; - f.specifier = oldSpec; - f.access = oldAccess; - f.type = (oldType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - formWindow()->mainWindow()->part()->emitEditedFunction(formWindow()->fileName(), f, of); - - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -RemoveFunctionCommand::RemoveFunctionCommand( const TQString &name, FormWindow *fw, const TQCString &f, - const TQString& spec, const TQString &a, const TQString &t, - const TQString &l, const TQString &rt ) - : Command( name, fw ), function( f ), specifier( spec ), access( a ), functionType( t ), language( l ), - returnType( rt ) -{ - if ( spec.isNull() ) { - TQValueList<MetaDataBase::Function> lst = MetaDataBase::functionList( TQT_TQOBJECT(fw) ); - for ( TQValueList<MetaDataBase::Function>::Iterator it = lst.begin(); it != lst.end(); ++it ) { - if ( MetaDataBase::normalizeFunction( (*it).function ) == - MetaDataBase::normalizeFunction( function ) ) { - specifier = (*it).specifier; - access = (*it).access; - functionType = (*it).type; - returnType = (*it).returnType; - language = (*it).language; - break; - } - } - } -} - -void RemoveFunctionCommand::execute() -{ - MetaDataBase::removeFunction( TQT_TQOBJECT(formWindow()), function, specifier, access, functionType, language, returnType ); - formWindow()->mainWindow()->functionsChanged(); - - //integration (remove - execute) - KInterfaceDesigner::Function f; - f.returnType = returnType; - f.function = function; - f.specifier = specifier; - f.access = access; - f.type = (functionType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - formWindow()->mainWindow()->part()->emitRemovedFunction(formWindow()->fileName(), f); - - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void RemoveFunctionCommand::unexecute() -{ - if ( MetaDataBase::hasFunction( TQT_TQOBJECT(formWindow()), function ) ) - return; - MetaDataBase::addFunction( TQT_TQOBJECT(formWindow()), function, specifier, access, functionType, language, returnType ); - formWindow()->mainWindow()->functionsChanged(); - - //integration (remove - unexecute) - KInterfaceDesigner::Function f; - f.returnType = returnType; - f.function = function; - f.specifier = specifier; - f.access = access; - f.type = (functionType == "slot") ? KInterfaceDesigner::ftTQtSlot : KInterfaceDesigner::ftFunction ; - formWindow()->clearSelection(false); - formWindow()->mainWindow()->part()->emitAddedFunction(formWindow()->fileName(), f); - - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -AddVariableCommand::AddVariableCommand( const TQString &name, FormWindow *fw, const TQString &vn, const TQString &a ) - : Command( name, fw ), varName( vn ), access( a ) -{ -} - -void AddVariableCommand::execute() -{ - MetaDataBase::addVariable( TQT_TQOBJECT(formWindow()), varName, access ); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void AddVariableCommand::unexecute() -{ - MetaDataBase::removeVariable( TQT_TQOBJECT(formWindow()), varName ); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -SetVariablesCommand::SetVariablesCommand( const TQString &name, FormWindow *fw, - TQValueList<MetaDataBase::Variable> lst ) - : Command( name, fw ), newList( lst ) -{ - oldList = MetaDataBase::variables( TQT_TQOBJECT(formWindow()) ); -} - -void SetVariablesCommand::execute() -{ - MetaDataBase::setVariables( TQT_TQOBJECT(formWindow()), newList ); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void SetVariablesCommand::unexecute() -{ - MetaDataBase::setVariables( TQT_TQOBJECT(formWindow()), oldList ); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -RemoveVariableCommand::RemoveVariableCommand( const TQString &name, FormWindow *fw, const TQString &vn ) - : Command( name, fw ), varName( vn ) -{ - TQValueList<MetaDataBase::Variable> lst = MetaDataBase::variables( TQT_TQOBJECT(fw) ); - for ( TQValueList<MetaDataBase::Variable>::Iterator it = lst.begin(); it != lst.end(); ++it ) { - if ( (*it).varName == varName ) { - access = (*it).varAccess; - break; - } - } -} - -void RemoveVariableCommand::execute() -{ - MetaDataBase::removeVariable( TQT_TQOBJECT(formWindow()), varName ); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void RemoveVariableCommand::unexecute() -{ - MetaDataBase::addVariable( TQT_TQOBJECT(formWindow()), varName, access ); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -EditDefinitionsCommand::EditDefinitionsCommand( const TQString &name, FormWindow *fw, LanguageInterface *lf, - const TQString &n, const TQStringList &nl ) - : Command( name, fw ), lIface( lf ), defName( n ), newList( nl ) -{ - oldList = lIface->definitionEntries( defName, formWindow()->mainWindow()->designerInterface() ); -} - -void EditDefinitionsCommand::execute() -{ - lIface->setDefinitionEntries( defName, newList, formWindow()->mainWindow()->designerInterface() ); - lIface->release(); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -void EditDefinitionsCommand::unexecute() -{ - lIface->setDefinitionEntries( defName, oldList, formWindow()->mainWindow()->designerInterface() ); - lIface->release(); - formWindow()->mainWindow()->objectHierarchy()->updateFormDefinitionView(); - if ( formWindow()->formFile() ) - formWindow()->formFile()->setModified( TRUE ); -} - -// ------------------------------------------------------------ - -LowerCommand::LowerCommand( const TQString &name, FormWindow *fw, const TQWidgetList &w ) - : Command( name, fw ), widgets( w ) -{ -} - -void LowerCommand::execute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->lower(); - formWindow()->raiseSelection( w ); - } - -} - -void LowerCommand::unexecute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->raise(); - formWindow()->raiseSelection( w ); - } -} - -// ------------------------------------------------------------ - -RaiseCommand::RaiseCommand( const TQString &name, FormWindow *fw, const TQWidgetList &w ) - : Command( name, fw ), widgets( w ) -{ -} - -void RaiseCommand::execute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->raise(); - formWindow()->raiseSelection( w ); - } - -} - -void RaiseCommand::unexecute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->lower(); - formWindow()->raiseSelection( w ); - } -} - -// ------------------------------------------------------------ - -PasteCommand::PasteCommand( const TQString &n, FormWindow *fw, - const TQWidgetList &w ) - : Command( n, fw ), widgets( w ) -{ -} - -void PasteCommand::execute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->show(); - formWindow()->selectWidget( TQT_TQOBJECT(w) ); - formWindow()->widgets()->insert( w, w ); - formWindow()->mainWindow()->objectHierarchy()->widgetInserted( w ); - } -} - -void PasteCommand::unexecute() -{ - for ( TQWidget *w = widgets.first(); w; w = widgets.next() ) { - w->hide(); - formWindow()->selectWidget( TQT_TQOBJECT(w), FALSE ); - formWindow()->widgets()->remove( w ); - formWindow()->mainWindow()->objectHierarchy()->widgetRemoved( w ); - } - } - -// ------------------------------------------------------------ - -TabOrderCommand::TabOrderCommand( const TQString &n, FormWindow *fw, - const TQWidgetList &ol, const TQWidgetList &nl ) - : Command( n, fw ), oldOrder( ol ), newOrder( nl ) -{ -} - -void TabOrderCommand::merge( Command *c ) -{ - TabOrderCommand *cmd = (TabOrderCommand*)c; - newOrder = cmd->newOrder; -} - -bool TabOrderCommand::canMerge( Command * ) -{ - return TRUE; -} - -void TabOrderCommand::execute() -{ - MetaDataBase::setTabOrder( formWindow(), newOrder ); -} - -void TabOrderCommand::unexecute() -{ - MetaDataBase::setTabOrder( formWindow(), oldOrder ); -} - -// ------------------------------------------------------------ - -PopulateListBoxCommand::PopulateListBoxCommand( const TQString &n, FormWindow *fw, - TQListBox *lb, const TQValueList<Item> &items ) - : Command( n, fw ), newItems( items ), listbox( lb ) -{ - TQListBoxItem *i = 0; - for ( i = listbox->firstItem(); i; i = i->next() ) { - Item item; - if ( i->pixmap() ) - item.pix = *i->pixmap(); - item.text = i->text(); - oldItems.append( item ); - } -} - -void PopulateListBoxCommand::execute() -{ - listbox->clear(); - for ( TQValueList<Item>::Iterator it = newItems.begin(); it != newItems.end(); ++it ) { - Item i = *it; - if ( !i.pix.isNull() ) - (void)new TQListBoxPixmap( listbox, i.pix, i.text ); - else - (void)new TQListBoxText( listbox, i.text ); - } - formWindow()->mainWindow()->propertyeditor()->refetchData(); -} - -void PopulateListBoxCommand::unexecute() -{ - listbox->clear(); - for ( TQValueList<Item>::Iterator it = oldItems.begin(); it != oldItems.end(); ++it ) { - Item i = *it; - if ( !i.pix.isNull() ) - (void)new TQListBoxPixmap( listbox, i.pix, i.text ); - else - (void)new TQListBoxText( listbox, i.text ); - } - formWindow()->mainWindow()->propertyeditor()->refetchData(); -} - -// ------------------------------------------------------------ - -PopulateIconViewCommand::PopulateIconViewCommand( const TQString &n, FormWindow *fw, - TQIconView *iv, const TQValueList<Item> &items ) - : Command( n, fw ), newItems( items ), iconview( iv ) -{ -#ifndef TQT_NO_ICONVIEW - TQIconViewItem *i = 0; - for ( i = iconview->firstItem(); i; i = i->nextItem() ) { - Item item; - if ( i->pixmap() ) - item.pix = *i->pixmap(); - item.text = i->text(); - oldItems.append( item ); - } -#endif -} - -void PopulateIconViewCommand::execute() -{ -#ifndef TQT_NO_ICONVIEW - iconview->clear(); - for ( TQValueList<Item>::Iterator it = newItems.begin(); it != newItems.end(); ++it ) { - Item i = *it; - (void)new TQIconViewItem( iconview, i.text, i.pix ); - } -#endif -} - -void PopulateIconViewCommand::unexecute() -{ -#ifndef TQT_NO_ICONVIEW - iconview->clear(); - for ( TQValueList<Item>::Iterator it = oldItems.begin(); it != oldItems.end(); ++it ) { - Item i = *it; - (void)new TQIconViewItem( iconview, i.text, i.pix ); - } -#endif -} - -// ------------------------------------------------------------ - -PopulateListViewCommand::PopulateListViewCommand( const TQString &n, FormWindow *fw, - TQListView *lv, TQListView *from ) - : Command( n, fw ), listview( lv ) -{ - newItems = new TQListView(); - newItems->hide(); - transferItems( from, newItems ); - oldItems = new TQListView(); - oldItems->hide(); - transferItems( listview, oldItems ); -} - -void PopulateListViewCommand::execute() -{ - listview->clear(); - transferItems( newItems, listview ); -} - -void PopulateListViewCommand::unexecute() -{ - listview->clear(); - transferItems( oldItems, listview ); -} - -void PopulateListViewCommand::transferItems( TQListView *from, TQListView *to ) -{ - TQHeader *header = to->header(); - while ( header->count() ) - to->removeColumn( 0 ); - TQHeader *h2 = from->header(); - for ( int i = 0; i < h2->count(); ++i ) { - to->addColumn( h2->label( i ) ); - if ( h2->iconSet( i ) && !h2->iconSet( i )->pixmap().isNull() ) - header->setLabel( i, *h2->iconSet( i ), h2->label( i ) ); - header->setResizeEnabled( h2->isResizeEnabled( i ), i ); - header->setClickEnabled( h2->isClickEnabled( i ), i ); - } - - TQListViewItemIterator it( from ); - TQPtrStack<TQListViewItem> fromParents, toParents; - fromParents.push( 0 ); - toParents.push( 0 ); - TQPtrStack<TQListViewItem> toLasts; - TQListViewItem *fromLast = 0; - toLasts.push( 0 ); - int cols = from->columns(); - to->setSorting( -1 ); - from->setSorting( -1 ); - for ( ; it.current(); ++it ) { - TQListViewItem *i = it.current(); - if ( i->parent() == fromParents.top() ) { - TQListViewItem *pi = toParents.top(); - TQListViewItem *ni = 0; - if ( pi ) - ni = new TQListViewItem( pi, toLasts.top() ); - else - ni = new TQListViewItem( to, toLasts.top() ); - for ( int c = 0; c < cols; ++c ) { - ni->setText( c, i->text( c ) ); - if ( i->pixmap( c ) ) - ni->setPixmap( c, *i->pixmap( c ) ); - } - toLasts.pop(); - toLasts.push( ni ); - if ( pi ) - pi->setOpen( TRUE ); - } else { - if ( i->parent() == fromLast ) { - fromParents.push( fromLast ); - toParents.push( toLasts.top() ); - toLasts.push( 0 ); - TQListViewItem *pi = toParents.top(); - TQListViewItem *ni = 0; - if ( pi ) - ni = new TQListViewItem( pi ); - else - ni = new TQListViewItem( to ); - for ( int c = 0; c < cols; ++c ) { - ni->setText( c, i->text( c ) ); - if ( i->pixmap( c ) ) - ni->setPixmap( c, *i->pixmap( c ) ); - } - toLasts.pop(); - toLasts.push( ni ); - if ( pi ) - pi->setOpen( TRUE ); - } else { - while ( fromParents.top() != i->parent() ) { - fromParents.pop(); - toParents.pop(); - toLasts.pop(); - } - - TQListViewItem *pi = toParents.top(); - TQListViewItem *ni = 0; - if ( pi ) - ni = new TQListViewItem( pi, toLasts.top() ); - else - ni = new TQListViewItem( to, toLasts.top() ); - for ( int c = 0; c < cols; ++c ) { - ni->setText( c, i->text( c ) ); - if ( i->pixmap( c ) ) - ni->setPixmap( c, *i->pixmap( c ) ); - } - if ( pi ) - pi->setOpen( TRUE ); - toLasts.pop(); - toLasts.push( ni ); - } - } - fromLast = i; - } -} - - - -// ------------------------------------------------------------ - -PopulateMultiLineEditCommand::PopulateMultiLineEditCommand( const TQString &n, FormWindow *fw, - TQTextEdit *mle, const TQString &txt ) - : Command( n, fw ), newText( txt ), mlined( mle ) -{ - oldText = mlined->text(); - wasChanged = MetaDataBase::isPropertyChanged( TQT_TQOBJECT(mlined), "text" ); -} - -void PopulateMultiLineEditCommand::execute() -{ - mlined->setText( newText ); - MetaDataBase::setPropertyChanged( TQT_TQOBJECT(mlined), "text", TRUE ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(mlined) ); -} - -void PopulateMultiLineEditCommand::unexecute() -{ - mlined->setText( oldText ); - MetaDataBase::setPropertyChanged( TQT_TQOBJECT(mlined), "text", wasChanged ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(mlined) ); -} - -// ------------------------------------------------------------ - -PopulateTableCommand::PopulateTableCommand( const TQString &n, FormWindow *fw, TQTable *t, - const TQValueList<Row> &rows, - const TQValueList<Column> &columns ) - : Command( n, fw ), newRows( rows ), newColumns( columns ), table( t ) -{ -#ifndef TQT_NO_TABLE - int i = 0; - TQMap<TQString, TQString> columnFields = MetaDataBase::columnFields( TQT_TQOBJECT(table) ); - for ( i = 0; i < table->horizontalHeader()->count(); ++i ) { - PopulateTableCommand::Column col; - col.text = table->horizontalHeader()->label( i ); - if ( table->horizontalHeader()->iconSet( i ) ) - col.pix = table->horizontalHeader()->iconSet( i )->pixmap(); - col.field = *columnFields.find( col.text ); - oldColumns.append( col ); - } - for ( i = 0; i < table->verticalHeader()->count(); ++i ) { - PopulateTableCommand::Row row; - row.text = table->verticalHeader()->label( i ); - if ( table->verticalHeader()->iconSet( i ) ) - row.pix = table->verticalHeader()->iconSet( i )->pixmap(); - oldRows.append( row ); - } -#endif -} - -void PopulateTableCommand::execute() -{ -#ifndef TQT_NO_TABLE - TQMap<TQString, TQString> columnFields; - table->setNumCols( newColumns.count() ); - int i = 0; - for ( TQValueList<Column>::Iterator cit = newColumns.begin(); cit != newColumns.end(); ++cit, ++i ) { - table->horizontalHeader()->setLabel( i, (*cit).pix, (*cit).text ); - if ( !(*cit).field.isEmpty() ) - columnFields.insert( (*cit).text, (*cit).field ); - } - MetaDataBase::setColumnFields( TQT_TQOBJECT(table), columnFields ); - table->setNumRows( newRows.count() ); - i = 0; - for ( TQValueList<Row>::Iterator rit = newRows.begin(); rit != newRows.end(); ++rit, ++i ) - table->verticalHeader()->setLabel( i, (*rit).pix, (*rit).text ); -#endif -} - -void PopulateTableCommand::unexecute() -{ -#ifndef TQT_NO_TABLE - TQMap<TQString, TQString> columnFields; - table->setNumCols( oldColumns.count() ); - int i = 0; - for ( TQValueList<Column>::Iterator cit = oldColumns.begin(); cit != oldColumns.end(); ++cit, ++i ) { - table->horizontalHeader()->setLabel( i, (*cit).pix, (*cit).text ); - if ( !(*cit).field.isEmpty() ) - columnFields.insert( (*cit).text, (*cit).field ); - } - MetaDataBase::setColumnFields( TQT_TQOBJECT(table), columnFields ); - table->setNumRows( oldRows.count() ); - i = 0; - for ( TQValueList<Row>::Iterator rit = oldRows.begin(); rit != oldRows.end(); ++rit, ++i ) - table->verticalHeader()->setLabel( i, (*rit).pix, (*rit).text ); -#endif -} - -// ------------------------------------------------------------ - -AddActionToToolBarCommand::AddActionToToolBarCommand( const TQString &n, FormWindow *fw, - TQAction *a, QDesignerToolBar *tb, int idx ) - : Command( n, fw ), action( a ), toolBar( tb ), index( idx ) -{ -} - -void AddActionToToolBarCommand::execute() -{ - action->addTo( toolBar ); - - if ( ::tqqt_cast<QDesignerAction*>(action) ) { - TQString s = ( (QDesignerAction*)action )->widget()->name(); - if ( s.startsWith( "qt_dead_widget_" ) ) { - s.remove( 0, TQString( "qt_dead_widget_" ).length() ); - ( (QDesignerAction*)action )->widget()->setName( s ); - } - toolBar->insertAction( ( (QDesignerAction*)action )->widget(), action ); - ( (QDesignerAction*)action )->widget()->installEventFilter( toolBar ); - } else if ( ::tqqt_cast<QDesignerActionGroup*>(action) ) { - if ( ( (QDesignerActionGroup*)action )->usesDropDown() ) { - toolBar->insertAction( ( (QDesignerActionGroup*)action )->widget(), action ); - ( (QDesignerActionGroup*)action )->widget()->installEventFilter( toolBar ); - } - } else if ( ::tqqt_cast<QSeparatorAction*>(action) ) { - toolBar->insertAction( ( (QSeparatorAction*)action )->widget(), action ); - ( (QSeparatorAction*)action )->widget()->installEventFilter( toolBar ); - } - if ( !::tqqt_cast<TQActionGroup*>(action) || ( (TQActionGroup*)action )->usesDropDown()) { - if ( index == -1 ) - toolBar->appendAction( action ); - else - toolBar->insertAction( index, action ); - toolBar->reInsert(); - TQObject::connect( action, TQT_SIGNAL( destroyed() ), toolBar, TQT_SLOT( actionRemoved() ) ); - } else { - TQObjectList clo = action->childrenListObject(); - if ( !clo.isEmpty() ) { - TQObjectListIt it( clo ); - int i = 0; - while ( it.current() ) { - TQObject *o = it.current(); - ++it; - if ( !::tqqt_cast<TQAction*>(o) ) - continue; - // ### fix it for nested actiongroups - if ( ::tqqt_cast<QDesignerAction*>(o) ) { - QDesignerAction *ac = (QDesignerAction*)o; - toolBar->insertAction( ac->widget(), ac ); - ac->widget()->installEventFilter( toolBar ); - if ( index == -1 ) - toolBar->appendAction( ac ); - else - toolBar->insertAction( index + (i++), ac ); - } - TQObject::connect( o, TQT_SIGNAL( destroyed() ), toolBar, TQT_SLOT( actionRemoved() ) ); - } - } - toolBar->reInsert(); - TQObject::connect( action, TQT_SIGNAL( destroyed() ), toolBar, TQT_SLOT( actionRemoved() ) ); - } - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void AddActionToToolBarCommand::unexecute() -{ - if ( ::tqqt_cast<QDesignerAction*>(action) ) { - TQString s = ( (QDesignerAction*)action )->widget()->name(); - s.prepend( "qt_dead_widget_" ); - ( (QDesignerAction*)action )->widget()->setName( s ); - } - - toolBar->removeAction( action ); - action->removeFrom( toolBar ); - TQObject::disconnect( action, TQT_SIGNAL( destroyed() ), toolBar, TQT_SLOT( actionRemoved() ) ); - if ( !::tqqt_cast<TQActionGroup*>(action) || ( (TQActionGroup*)action )->usesDropDown()) { - action->removeEventFilter( toolBar ); - } else { - TQObjectList clo = action->childrenListObject(); - if ( !clo.isEmpty() ) { - TQObjectListIt it( clo ); - while ( it.current() ) { - TQObject *o = it.current(); - ++it; - if ( !::tqqt_cast<TQAction*>(o) ) - continue; - if ( ::tqqt_cast<QDesignerAction*>(o) ) { - o->removeEventFilter( toolBar ); - toolBar->removeAction( (TQAction*)o ); - } - TQObject::disconnect( o, TQT_SIGNAL( destroyed() ), toolBar, TQT_SLOT( actionRemoved() ) ); - } - } - } - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -AddToolBarCommand::AddToolBarCommand( const TQString &n, FormWindow *fw, TQMainWindow *mw ) - : Command( n, fw ), toolBar( 0 ), mainWindow( mw ) -{ -} - -void AddToolBarCommand::execute() -{ - if ( !toolBar ) { - toolBar = new QDesignerToolBar( mainWindow ); - TQString n = "Toolbar"; - formWindow()->unify( TQT_TQOBJECT(toolBar), n, TRUE ); - toolBar->setName( n ); - mainWindow->addToolBar( toolBar, n ); - } else { - toolBar->show(); - TQString s = toolBar->name(); - s.remove( 0, TQString( "qt_dead_widget_" ).length() ); - toolBar->setName( s ); - } - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void AddToolBarCommand::unexecute() -{ - toolBar->hide(); - TQString s = toolBar->name(); - s.prepend( "qt_dead_widget_" ); - toolBar->setName( s ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -#ifdef TQT_CONTAINER_CUSTOM_WIDGETS -AddContainerPageCommand::AddContainerPageCommand( const TQString &n, FormWindow *fw, - TQWidget *c, const TQString &label ) - : Command( n, fw ), container( c ), index( -1 ), pageLabel( label ), page( 0 ) -{ - WidgetInterface *iface = 0; - widgetManager()->queryInterface( WidgetFactory::classNameOf( container ), &iface ); - if ( !iface ) - return; - iface->queryInterface( IID_TQWidgetContainer, (TQUnknownInterface**)&wiface ); - if ( !wiface ) - return; - wClassName = WidgetFactory::classNameOf( container ); -} - -AddContainerPageCommand::~AddContainerPageCommand() -{ - if ( wiface ) - wiface->release(); -} - -void AddContainerPageCommand::execute() -{ - if ( !wiface || !wiface->supportsPages( wClassName ) ) - return; - if ( index == -1 ) - index = wiface->count( wClassName, container ); - if ( !page ) - page = wiface->addPage( wClassName, container, pageLabel, index ); - else - wiface->insertPage( wClassName, container, pageLabel, index, page ); - - MetaDataBase::addEntry( page ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - // #### show and update pages in object hierarchy view -} - -void AddContainerPageCommand::unexecute() -{ - if ( !wiface || !wiface->supportsPages( wClassName ) ) - return; - wiface->removePage( wClassName, container, index ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - // #### show and update pages in object hierarchy view -} - -// ------------------------------------------------------------ - -DeleteContainerPageCommand::DeleteContainerPageCommand( const TQString &n, FormWindow *fw, - TQWidget *c, int idx ) - : Command( n, fw ), container( c ), index( idx ) -{ - WidgetInterface *iface = 0; - widgetManager()->queryInterface( WidgetFactory::classNameOf( container ), &iface ); - if ( !iface ) - return; - iface->queryInterface( IID_TQWidgetContainer, (TQUnknownInterface**)&wiface ); - if ( !wiface ) - return; - wClassName = WidgetFactory::classNameOf( container ); - page = wiface->page( wClassName, container, index ); - pageLabel = wiface->pageLabel( wClassName, container, index ); -} - -DeleteContainerPageCommand::~DeleteContainerPageCommand() -{ - if ( wiface ) - wiface->release(); -} - -void DeleteContainerPageCommand::execute() -{ - if ( !wiface || !wiface->supportsPages( wClassName ) ) - return; - - wiface->removePage( wClassName, container, index ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - // #### show and update pages in object hierarchy view -} - -void DeleteContainerPageCommand::unexecute() -{ - if ( !wiface || !wiface->supportsPages( wClassName ) ) - return; - if ( index == -1 ) - index = wiface->count( wClassName, container ); - - wiface->insertPage( wClassName, container, pageLabel, index, page ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - // #### show and update pages in object hierarchy view -} - -// ------------------------------------------------------------ - -RenameContainerPageCommand::RenameContainerPageCommand( const TQString &n, FormWindow *fw, - TQWidget *c, int idx, - const TQString &label ) - : Command( n, fw ), container( c ), index( idx ), newLabel( label ) -{ - WidgetInterface *iface = 0; - widgetManager()->queryInterface( WidgetFactory::classNameOf( container ), &iface ); - if ( !iface ) - return; - iface->queryInterface( IID_TQWidgetContainer, (TQUnknownInterface**)&wiface ); - if ( !wiface ) - return; - wClassName = WidgetFactory::classNameOf( container ); - oldLabel = wiface->pageLabel( wClassName, container, index ); -} - -RenameContainerPageCommand::~RenameContainerPageCommand() -{ - if ( wiface ) - wiface->release(); -} - -void RenameContainerPageCommand::execute() -{ - if ( !wiface || !wiface->supportsPages( wClassName ) ) - return; - wiface->renamePage( wClassName, container, index, newLabel ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - // #### show and update pages in object hierarchy view -} - -void RenameContainerPageCommand::unexecute() -{ - if ( !wiface || !wiface->supportsPages( wClassName ) ) - return; - wiface->renamePage( wClassName, container, index, oldLabel ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - // #### show and update pages in object hierarchy view -} -#endif // TQT_CONTAINER_CUSTOM_WIDGETS -// ------------------------------------------------------------ - -AddActionToPopupCommand::AddActionToPopupCommand( const TQString &n, - FormWindow *fw, - PopupMenuEditor *m, - PopupMenuEditorItem *i, - int idx ) - : Command( n, fw ), menu( m ), item( i ), index( idx ) -{ } - -void AddActionToPopupCommand::execute() -{ - menu->insert( item, index ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void AddActionToPopupCommand::unexecute() -{ - item->hideMenu(); - int i = menu->find( item->action() ); - menu->remove( i ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -RemoveActionFromPopupCommand::RemoveActionFromPopupCommand( const TQString &n, - FormWindow *fw, - PopupMenuEditor *m, - int idx ) - : AddActionToPopupCommand( n, fw, m, 0, idx ) -{ - item = menu->at( index ); -} - -void RemoveActionFromPopupCommand::execute() -{ - AddActionToPopupCommand::unexecute(); -} - -void RemoveActionFromPopupCommand::unexecute() -{ - AddActionToPopupCommand::execute(); -} - -// ------------------------------------------------------------ - -ExchangeActionInPopupCommand::ExchangeActionInPopupCommand( const TQString &n, - FormWindow *fw, - PopupMenuEditor *m, - int a, - int b ) - : Command( n, fw ), menu( m ), c( a ), d( b ) -{ } - -void ExchangeActionInPopupCommand::execute() -{ - menu->exchange( c, d ); -} - -void ExchangeActionInPopupCommand::unexecute() -{ - execute(); -} - -// ------------------------------------------------------------ - -ActionEditor *ActionCommand::actionEditor() -{ - // FIXME: handle multiple action editors - return (ActionEditor *) formWindow()->mainWindow()->child( 0, "ActionEditor" ); -} - -// ------------------------------------------------------------ - -RenameActionCommand::RenameActionCommand( const TQString &n, - FormWindow *fw, - TQAction *a, - PopupMenuEditor *m, - TQString nm ) - : ActionCommand( n, fw, a ), menu( m ), newName( nm ) -{ - oldName = action->menuText(); -} - -void RenameActionCommand::execute() -{ - TQString actionText = newName; - actionText.replace("&&", "&"); - TQString menuText = newName; - action->setText( actionText ); - action->setMenuText( menuText ); - - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void RenameActionCommand::unexecute() -{ - action->setMenuText( oldName ); - action->setText( oldName ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -SetActionIconsCommand::SetActionIconsCommand( const TQString &n, - FormWindow *fw, - TQAction *a, - PopupMenuEditor *m, - TQIconSet &icons ) - : ActionCommand( n, fw, a ), menu( m ), newIcons( icons ) -{ - oldIcons = a->iconSet(); -} - -void SetActionIconsCommand::execute() -{ - action->setIconSet( newIcons ); - ActionEditor *ae = actionEditor(); - if ( ae ) - ae->updateActionIcon( action ); - MetaDataBase::setPropertyChanged( action, "iconSet", TRUE ); -} - -void SetActionIconsCommand::unexecute() -{ - action->setIconSet( oldIcons ); - ActionEditor *ae = actionEditor(); - if ( ae ) - ae->updateActionIcon( action ); - MetaDataBase::setPropertyChanged( action, "iconSet", TRUE ); -} - -// ------------------------------------------------------------ - -AddMenuCommand::AddMenuCommand( const TQString &n, - FormWindow *fw, - MenuBarEditor *b, - MenuBarEditorItem *i, - int idx ) - : Command( n, fw ), mb( b ), item( i ), name( 0 ), index( idx ) -{ } - -AddMenuCommand::AddMenuCommand( const TQString &n, - FormWindow *fw, - TQMainWindow *mw, - const TQString &nm ) - : Command( n, fw ), mb( 0 ), item( 0 ), name( nm ), index( -1 ) -{ - if ( mw ) - mb = (MenuBarEditor *)mw->child( 0, "MenuBarEditor" ); -} - -void AddMenuCommand::execute() -{ - TQString n; - TQMainWindow *mw = (TQMainWindow*)formWindow()->mainContainer(); - if ( !mb ) { - mb = new MenuBarEditor( formWindow(), mw ); - mb->setName( "MenuBarEditor" ); - formWindow()->insertWidget( mb, TRUE ); - } - if ( !item ) { - PopupMenuEditor *popup = new PopupMenuEditor( formWindow(), mw ); - popup->setName( "PopupMenuEditor" ); - formWindow()->insertWidget( popup, TRUE ); - mb->insertItem( name, popup, index ); - index = mb->findItem( popup ); - item = mb->item( index ); - } else { - PopupMenuEditor *popup = item->menu(); - popup->setName( item->menuText() ); - formWindow()->insertWidget( popup, TRUE ); - mb->insertItem( item, index ); - } - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void AddMenuCommand::unexecute() -{ - if ( !item ) { - tqWarning( "The AddMenuCommand was created without a menu item." ); - return; - } - item->menu()->hide(); - int i = mb->findItem( item ); - formWindow()->removeWidget( item->menu() ); - mb->removeItemAt( i ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -RemoveMenuCommand::RemoveMenuCommand( const TQString &n, - FormWindow *fw, - MenuBarEditor *b, - int idx ) - : AddMenuCommand( n, fw, b, 0, idx ) -{ - item = mb->item( index ); -} - -void RemoveMenuCommand::execute() -{ - mb->hideItem( index ); - AddMenuCommand::unexecute(); -} - -void RemoveMenuCommand::unexecute() -{ - AddMenuCommand::execute(); -} - -// ------------------------------------------------------------ - -ExchangeMenuCommand::ExchangeMenuCommand( const TQString &n, - FormWindow *fw, - MenuBarEditor *b, - int i, - int j ) - : Command( n, fw ), bar( b ), k( i ), l( j ) -{ } - -void ExchangeMenuCommand::execute() -{ - bar->exchange( k, l ); -} - -void ExchangeMenuCommand::unexecute() -{ - execute(); -} - -// ------------------------------------------------------------ - -MoveMenuCommand::MoveMenuCommand( const TQString &n, - FormWindow *fw, - MenuBarEditor *b, - int i, - int j ) - : Command( n, fw ), bar( b ), from( i ), to( j ) -{ } - -void MoveMenuCommand::execute() -{ - bar->hideItem( from ); - MenuBarEditorItem * i = bar->item( from ); - bar->removeItemAt( from ); - int t = ( from > to ? to : to - 1 ); - bar->insertItem( i, t ); -} - -void MoveMenuCommand::unexecute() -{ - bar->hideItem( to ); - int t = ( from > to ? to : to - 1 ); - MenuBarEditorItem * i = bar->item( t ); - bar->removeItemAt( t ); - bar->insertItem( i, from ); -} - -// ------------------------------------------------------------ - -RenameMenuCommand::RenameMenuCommand( const TQString &n, - FormWindow *fw, - MenuBarEditor *b, - TQString nm, - MenuBarEditorItem *i ) - : Command( n, fw ), bar( b ), item( i ), newName( nm ) -{ - oldName = item->menu()->name(); -} - -TQString RenameMenuCommand::makeLegal( const TQString &str ) -{ - // remove illegal characters - TQString d; - char c = 0, i = 0; - while ( !str.at(i).isNull() ) { - c = str.at(i).latin1(); - if ( c == '-' || c == ' ' ) - d += '_'; - else if ( ( c >= '0' && c <= '9') || ( c >= 'A' && c <= 'Z' ) - || c == '_' || ( c >= 'a' && c <= 'z' ) ) - d += c; - ++i; - } - return d; -} - -void RenameMenuCommand::execute() -{ - PopupMenuEditor *popup = item->menu(); - item->setMenuText( newName ); - TQString legal = makeLegal( newName ); - formWindow()->unify( TQT_TQOBJECT(popup), legal, TRUE ); - popup->setName( legal ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void RenameMenuCommand::unexecute() -{ - PopupMenuEditor *popup = item->menu(); - item->setMenuText( oldName ); - popup->setName( oldName ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -AddToolBoxPageCommand::AddToolBoxPageCommand( const TQString &n, FormWindow *fw, - TQToolBox *tw, const TQString &label ) - : Command( n, fw ), toolBox( tw ), toolBoxLabel( label ) -{ - toolBoxPage = new QDesignerWidget( formWindow(), toolBox, "page" ); - toolBoxPage->hide(); - index = -1; - MetaDataBase::addEntry( TQT_TQOBJECT(toolBoxPage) ); -} - -void AddToolBoxPageCommand::execute() -{ - index = toolBox->insertItem( index, toolBoxPage, toolBoxLabel); - toolBox->setCurrentIndex( index ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void AddToolBoxPageCommand::unexecute() -{ - toolBox->removeItem( toolBoxPage ); - toolBoxPage->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -// ------------------------------------------------------------ - -DeleteToolBoxPageCommand::DeleteToolBoxPageCommand( const TQString &n, FormWindow *fw, - TQToolBox *tw, TQWidget *page ) - : Command( n, fw ), toolBox( tw ), toolBoxPage( page ) -{ - toolBoxLabel = toolBox->itemLabel( toolBox->currentIndex() ); - index = toolBox->currentIndex(); -} - -void DeleteToolBoxPageCommand::execute() -{ - toolBox->removeItem( toolBoxPage ); - toolBoxPage->hide(); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} - -void DeleteToolBoxPageCommand::unexecute() -{ - index = toolBox->insertItem( index, toolBoxPage, toolBoxLabel ); - toolBox->setCurrentIndex( index ); - formWindow()->emitUpdateProperties( TQT_TQOBJECT(formWindow()->currentWidget()) ); - formWindow()->mainWindow()->objectHierarchy()->rebuild(); -} |