diff options
Diffstat (limited to 'tdevdesigner/designer/actiondnd.cpp')
-rw-r--r-- | tdevdesigner/designer/actiondnd.cpp | 728 |
1 files changed, 0 insertions, 728 deletions
diff --git a/tdevdesigner/designer/actiondnd.cpp b/tdevdesigner/designer/actiondnd.cpp deleted file mode 100644 index 33f0c4bf..00000000 --- a/tdevdesigner/designer/actiondnd.cpp +++ /dev/null @@ -1,728 +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 [email protected] for -** information about TQt Commercial License Agreements. -** -** Contact [email protected] if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -#include "actiondnd.h" -#include "command.h" -#include "defs.h" -#include "formwindow.h" -#include "mainwindow.h" -#include "metadatabase.h" -#include "widgetfactory.h" -#include "hierarchyview.h" - -#include <tqaction.h> -#include <tqapplication.h> -#include <tqbitmap.h> -#include <tqdragobject.h> -#include <tqinputdialog.h> -#include <tqlayout.h> -#include <tqmainwindow.h> -#include <tqmenudata.h> -#include <tqmessagebox.h> -#include <tqobjectlist.h> -#include <tqpainter.h> -#include <tqstyle.h> -#include <tqtimer.h> - -#include <tdelocale.h> - -TQAction *ActionDrag::the_action = 0; - -ActionDrag::ActionDrag(TQAction *action, TQWidget *source) -: TQStoredDrag("application/x-designer-actions", source) -{ - Q_ASSERT(the_action == 0); - the_action = action; -} - -ActionDrag::ActionDrag(TQActionGroup *group, TQWidget *source) -: TQStoredDrag("application/x-designer-actiongroup", source) -{ - Q_ASSERT(the_action == 0); - the_action = group; -} - -ActionDrag::ActionDrag(const TQString &type, TQAction *action, TQWidget *source) -: TQStoredDrag(type, source) -{ - Q_ASSERT(the_action == 0); - the_action = action; -} - -bool ActionDrag::canDecode(TQDropEvent *e) -{ - return e->provides( "application/x-designer-actions" ) || - e->provides( "application/x-designer-actiongroup" ) || - e->provides( "application/x-designer-separator" ); -} - -ActionDrag::~ActionDrag() -{ - the_action = 0; -} - -void QDesignerAction::init() -{ - MetaDataBase::addEntry( this ); - int id = WidgetDatabase::idFromClassName( WidgetFactory::classNameOf( this ) ); - WidgetFactory::saveDefaultProperties( this, id ); - WidgetFactory::saveChangedProperties( this, id ); -} - -void QDesignerActionGroup::init() -{ - MetaDataBase::addEntry( this ); - int id = WidgetDatabase::idFromClassName( WidgetFactory::classNameOf( this ) ); - WidgetFactory::saveDefaultProperties( this, id ); - WidgetFactory::saveChangedProperties( this, id ); -} - -bool QDesignerAction::addTo( TQWidget *w ) -{ - if ( !widgetToInsert ) - return TQAction::addTo( w ); - - if ( ::tqqt_cast<TQPopupMenu*>(w) ) - return FALSE; - - widgetToInsert->reparent( w, TQPoint( 0, 0 ), FALSE ); - widgetToInsert->show(); - addedTo( widgetToInsert, w ); - return TRUE; -} - -bool QDesignerAction::removeFrom( TQWidget *w ) -{ - if ( !widgetToInsert ) - return TQAction::removeFrom( w ); - - remove(); - return TRUE; -} - -void QDesignerAction::remove() -{ - if ( !widgetToInsert ) - return; - MainWindow::self->formWindow()->selectWidget( TQT_TQOBJECT(widgetToInsert), FALSE ); - widgetToInsert->reparent( 0, TQPoint( 0, 0 ), FALSE ); -} - -QDesignerToolBarSeparator::QDesignerToolBarSeparator(Qt::Orientation o , TQToolBar *parent, - const char* name ) - : TQWidget( parent, name ) -{ - connect( parent, TQT_SIGNAL(orientationChanged(Qt::Orientation)), - this, TQT_SLOT(setOrientation(Qt::Orientation)) ); - setOrientation( o ); - setBackgroundMode( parent->backgroundMode() ); - setBackgroundOrigin( ParentOrigin ); - setSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Minimum ) ); -} - -void QDesignerToolBarSeparator::setOrientation( Qt::Orientation o ) -{ - orient = o; -} - -void QDesignerToolBarSeparator::styleChange( TQStyle& ) -{ - setOrientation( orient ); -} - -TQSize QDesignerToolBarSeparator::sizeHint() const -{ - int extent = style().pixelMetric( TQStyle::PM_DockWindowSeparatorExtent, - this ); - if ( orient ==Qt::Horizontal ) - return TQSize( extent, 0 ); - else - return TQSize( 0, extent ); -} - -void QDesignerToolBarSeparator::paintEvent( TQPaintEvent * ) -{ - TQPainter p( this ); - TQStyle::SFlags flags = TQStyle::Style_Default; - - if ( orientation() ==Qt::Horizontal ) - flags |= TQStyle::Style_Horizontal; - - style().tqdrawPrimitive( TQStyle::PE_DockWindowSeparator, &p, rect(), - colorGroup(), flags ); -} - - - -QSeparatorAction::QSeparatorAction( TQObject *parent ) - : TQAction( parent, "qt_designer_separator" ), wid( 0 ) -{ -} - -bool QSeparatorAction::addTo( TQWidget *w ) -{ - if ( ::tqqt_cast<TQToolBar*>(w) ) { - TQToolBar *tb = (TQToolBar*)w; - wid = new QDesignerToolBarSeparator( tb->orientation(), tb ); - return TRUE; - } else if ( ::tqqt_cast<TQPopupMenu*>(w) ) { - idx = ( (TQPopupMenu*)w )->count(); - ( (TQPopupMenu*)w )->insertSeparator( idx ); - return TRUE; - } - return FALSE; -} - -bool QSeparatorAction::removeFrom( TQWidget *w ) -{ - if ( ::tqqt_cast<TQToolBar*>(w) ) { - delete wid; - return TRUE; - } else if ( ::tqqt_cast<TQPopupMenu*>(w) ) { - ( (TQPopupMenu*)w )->removeItemAt( idx ); - return TRUE; - } - return FALSE; -} - -TQWidget *QSeparatorAction::widget() const -{ - return wid; -} - - - -QDesignerToolBar::QDesignerToolBar( TQMainWindow *mw ) - : TQToolBar( mw ), lastIndicatorPos( -1, -1 ) -{ - insertAnchor = 0; - afterAnchor = TRUE; - setAcceptDrops( TRUE ); - MetaDataBase::addEntry( TQT_TQOBJECT(this) ); - lastIndicatorPos = TQPoint( -1, -1 ); - indicator = new QDesignerIndicatorWidget( this ); - indicator->hide(); - installEventFilter( this ); - widgetInserting = FALSE; - findFormWindow(); - mw->setDockEnabled( DockTornOff, FALSE ); -} - -QDesignerToolBar::QDesignerToolBar( TQMainWindow *mw, Dock dock ) - : TQToolBar( TQString(), mw, dock), lastIndicatorPos( -1, -1 ) -{ - insertAnchor = 0; - afterAnchor = TRUE; - setAcceptDrops( TRUE ); - indicator = new QDesignerIndicatorWidget( this ); - indicator->hide(); - MetaDataBase::addEntry( TQT_TQOBJECT(this) ); - installEventFilter( this ); - widgetInserting = FALSE; - findFormWindow(); - mw->setDockEnabled( DockTornOff, FALSE ); -} - -void QDesignerToolBar::findFormWindow() -{ - TQWidget *w = this; - while ( w ) { - formWindow = ::tqqt_cast<FormWindow*>(w); - if ( formWindow ) - break; - w = w->parentWidget(); - } -} - -void QDesignerToolBar::addAction( TQAction *a ) -{ - actionList.append( a ); - connect( a, TQT_SIGNAL( destroyed() ), this, TQT_SLOT( actionRemoved() ) ); - if ( ::tqqt_cast<TQActionGroup*>(a) ) { - ( (QDesignerActionGroup*)a )->widget()->installEventFilter( this ); - actionMap.insert( ( (QDesignerActionGroup*)a )->widget(), a ); - } else if ( ::tqqt_cast<QSeparatorAction*>(a) ) { - ( (QSeparatorAction*)a )->widget()->installEventFilter( this ); - actionMap.insert( ( (QSeparatorAction*)a )->widget(), a ); - } else { - ( (QDesignerAction*)a )->widget()->installEventFilter( this ); - actionMap.insert( ( (QDesignerAction*)a )->widget(), a ); - } -} - -static void fixObject( TQObject *&o ) -{ - while ( o && o->parent() && !::tqqt_cast<QDesignerToolBar*>(o->parent()) ) - o = o->parent(); -} - -bool QDesignerToolBar::eventFilter( TQObject *o, TQEvent *e ) -{ - if ( !o || !e || o->inherits( TQDOCKWINDOWHANDLE_OBJECT_NAME_STRING ) || o->inherits( "TQDockWindowTitleBar" ) ) - return TQToolBar::eventFilter( o, e ); - - if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(this) && e->type() == TQEvent::MouseButtonPress && - ( ( TQMouseEvent*)e )->button() == Qt::LeftButton ) { - mousePressEvent( (TQMouseEvent*)e ); - return TRUE; - } - - if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(this) ) - return TQToolBar::eventFilter( o, e ); - - if ( e->type() == TQEvent::MouseButtonPress ) { - TQMouseEvent *ke = (TQMouseEvent*)e; - fixObject( o ); - if ( !o ) - return FALSE; - buttonMousePressEvent( ke, o ); - return TRUE; - } else if(e->type() == TQEvent::ContextMenu ) { - TQContextMenuEvent *ce = (TQContextMenuEvent*)e; - fixObject( o ); - if( !o ) - return FALSE; - buttonContextMenuEvent( ce, o ); - return TRUE; - } else if ( e->type() == TQEvent::MouseMove ) { - TQMouseEvent *ke = (TQMouseEvent*)e; - fixObject( o ); - if ( !o ) - return FALSE; - buttonMouseMoveEvent( ke, o ); - return TRUE; - } else if ( e->type() == TQEvent::MouseButtonRelease ) { - TQMouseEvent *ke = (TQMouseEvent*)e; - fixObject( o ); - if ( !o ) - return FALSE; - buttonMouseReleaseEvent( ke, o ); - return TRUE; - } else if ( e->type() == TQEvent::DragEnter ) { - TQDragEnterEvent *de = (TQDragEnterEvent*)e; - if (ActionDrag::canDecode(de)) - de->accept(); - } else if ( e->type() == TQEvent::DragMove ) { - TQDragMoveEvent *de = (TQDragMoveEvent*)e; - if (ActionDrag::canDecode(de)) - de->accept(); - } - - return TQToolBar::eventFilter( o, e ); -} - -void QDesignerToolBar::paintEvent( TQPaintEvent *e ) -{ - TQToolBar::paintEvent( e ); - if ( e->rect() != rect() ) - return; - lastIndicatorPos = TQPoint( -1, -1 ); -} - -void QDesignerToolBar::contextMenuEvent( TQContextMenuEvent *e ) -{ - e->accept(); - TQPopupMenu menu( 0 ); - menu.insertItem( i18n( "Delete Toolbar" ), 1 ); - int res = menu.exec( e->globalPos() ); - if ( res != -1 ) { - RemoveToolBarCommand *cmd = new RemoveToolBarCommand( i18n( "Delete Toolbar '%1'" ).arg( name() ), - formWindow, 0, this ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - } -} - -void QDesignerToolBar::mousePressEvent( TQMouseEvent *e ) -{ - widgetInserting = FALSE; - if ( e->button() == Qt::LeftButton && - MainWindow::self->currentTool() != POINTER_TOOL && - MainWindow::self->currentTool() != ORDER_TOOL && - MainWindow::self->currentTool() != CONNECT_TOOL && - MainWindow::self->currentTool() != BUDDY_TOOL ) - widgetInserting = TRUE; -} - -void QDesignerToolBar::mouseReleaseEvent( TQMouseEvent *e ) -{ - if ( widgetInserting ) - doInsertWidget( mapFromGlobal( e->globalPos() ) ); - widgetInserting = FALSE; -} - -void QDesignerToolBar::buttonMouseReleaseEvent( TQMouseEvent *e, TQObject *w ) -{ - if ( widgetInserting ) - doInsertWidget( mapFromGlobal( e->globalPos() ) ); - else if ( w->isWidgetType() && formWindow->widgets()->find( w ) ) { - formWindow->clearSelection( FALSE ); - formWindow->selectWidget( w ); - } - widgetInserting = FALSE; -} - -void QDesignerToolBar::buttonContextMenuEvent( TQContextMenuEvent *e, TQObject *o ) -{ - e->accept(); - TQPopupMenu menu( 0 ); - const int ID_DELETE = 1; - const int ID_SEP = 2; - const int ID_DELTOOLBAR = 3; - TQMap<TQWidget*, TQAction*>::Iterator it = actionMap.find( (TQWidget*)o ); - if ( it != actionMap.end() && ::tqqt_cast<QSeparatorAction*>(*it) ) - menu.insertItem( i18n( "Delete Separator" ), ID_DELETE ); - else - menu.insertItem( i18n( "Delete Item" ), ID_DELETE ); - menu.insertItem( i18n( "Insert Separator" ), ID_SEP ); - menu.insertSeparator(); - menu.insertItem( i18n( "Delete Toolbar" ), ID_DELTOOLBAR ); - int res = menu.exec( e->globalPos() ); - if ( res == ID_DELETE ) { - TQMap<TQWidget*, TQAction*>::Iterator it = actionMap.find( (TQWidget*)o ); - if ( it == actionMap.end() ) - return; - TQAction *a = *it; - int index = actionList.find( a ); - RemoveActionFromToolBarCommand *cmd = new RemoveActionFromToolBarCommand( - i18n( "Delete Action '%1' From Toolbar '%2'" ). - arg( a->name() ).arg( caption() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - } else if ( res == ID_SEP ) { - calcIndicatorPos( mapFromGlobal( e->globalPos() ) ); - TQAction *a = new QSeparatorAction( 0 ); - int index = actionList.findRef( *actionMap.find( insertAnchor ) ); - if ( index != -1 && afterAnchor ) - ++index; - if ( !insertAnchor ) - index = 0; - - AddActionToToolBarCommand *cmd = new AddActionToToolBarCommand( - i18n( "Add Separator to Toolbar '%1'" ). - arg( a->name() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - } else if ( res == ID_DELTOOLBAR ) { - RemoveToolBarCommand *cmd = new RemoveToolBarCommand( i18n( "Delete Toolbar '%1'" ).arg( name() ), - formWindow, 0, this ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - } -} - -void QDesignerToolBar::buttonMousePressEvent( TQMouseEvent *e, TQObject * ) -{ - widgetInserting = FALSE; - - if ( e->button() == Qt::MidButton ) - return; - - if ( e->button() == Qt::LeftButton && - MainWindow::self->currentTool() != POINTER_TOOL && - MainWindow::self->currentTool() != ORDER_TOOL && - MainWindow::self->currentTool() != CONNECT_TOOL && - MainWindow::self->currentTool() != BUDDY_TOOL ) { - widgetInserting = TRUE; - return; - } - - dragStartPos = e->pos(); -} - -void QDesignerToolBar::removeWidget( TQWidget *w ) -{ - TQMap<TQWidget*, TQAction*>::Iterator it = actionMap.find( w ); - if ( it == actionMap.end() ) - return; - TQAction *a = *it; - int index = actionList.find( a ); - RemoveActionFromToolBarCommand *cmd = - new RemoveActionFromToolBarCommand( i18n( "Delete Action '%1' From Toolbar '%2'" ). - arg( a->name() ).arg( caption() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - TQApplication::sendPostedEvents(); - adjustSize(); -} - -void QDesignerToolBar::buttonMouseMoveEvent( TQMouseEvent *e, TQObject *o ) -{ - if ( widgetInserting || ( e->state() & Qt::LeftButton ) == 0 ) - return; - if ( TQABS( TQPoint( dragStartPos - e->pos() ).manhattanLength() ) < TQApplication::startDragDistance() ) - return; - TQMap<TQWidget*, TQAction*>::Iterator it = actionMap.find( (TQWidget*)o ); - if ( it == actionMap.end() ) - return; - TQAction *a = *it; - if ( !a ) - return; - int index = actionList.find( a ); - RemoveActionFromToolBarCommand *cmd = - new RemoveActionFromToolBarCommand( i18n( "Delete Action '%1' From Toolbar '%2'" ). - arg( a->name() ).arg( caption() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - TQApplication::sendPostedEvents(); - adjustSize(); - - TQString type = ::tqqt_cast<TQActionGroup*>(a) ? TQString( "application/x-designer-actiongroup" ) : - ::tqqt_cast<QSeparatorAction*>(a) ? TQString( "application/x-designer-separator" ) : TQString( "application/x-designer-actions" ); - TQStoredDrag *drag = new ActionDrag( type, a, this ); - drag->setPixmap( a->iconSet().pixmap() ); - if ( ::tqqt_cast<QDesignerAction*>(a) ) { - if ( formWindow->widgets()->find( ( (QDesignerAction*)a )->widget() ) ) - formWindow->selectWidget( ( TQT_TQOBJECT(( (QDesignerAction*)a )->widget())), FALSE ); - } - if ( !drag->drag() ) { - AddActionToToolBarCommand *cmd = new AddActionToToolBarCommand( i18n( "Add Action '%1' to Toolbar '%2'" ). - arg( a->name() ).arg( caption() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - } - lastIndicatorPos = TQPoint( -1, -1 ); - indicator->hide(); -} - -#ifndef TQT_NO_DRAGANDDROP - -void QDesignerToolBar::dragEnterEvent( TQDragEnterEvent *e ) -{ - widgetInserting = FALSE; - lastIndicatorPos = TQPoint( -1, -1 ); - if (ActionDrag::canDecode(e)) - e->accept(); -} - -void QDesignerToolBar::dragMoveEvent( TQDragMoveEvent *e ) -{ - if (ActionDrag::canDecode(e)) { - e->accept(); - drawIndicator( calcIndicatorPos( e->pos() ) ); - } -} - -void QDesignerToolBar::dragLeaveEvent( TQDragLeaveEvent * ) -{ - indicator->hide(); - insertAnchor = 0; - afterAnchor = TRUE; -} - -void QDesignerToolBar::dropEvent( TQDropEvent *e ) -{ - if (!ActionDrag::canDecode(e)) - return; - - e->accept(); - - indicator->hide(); - TQAction *a = 0; - int index = actionList.findRef( *actionMap.find( insertAnchor ) ); - if ( index != -1 && afterAnchor ) - ++index; - if ( !insertAnchor ) - index = 0; - if ( e->provides( "application/x-designer-actions" ) || - e->provides( "application/x-designer-separator" ) ) { - if ( e->provides( "application/x-designer-actions" ) ) - a = ::tqqt_cast<QDesignerAction*>(ActionDrag::action()); - else - a = ::tqqt_cast<QSeparatorAction*>(ActionDrag::action()); - } else { - a = ::tqqt_cast<QDesignerActionGroup*>(ActionDrag::action()); - } - - if ( actionList.findRef( a ) != -1 ) { - TQMessageBox::warning( MainWindow::self, i18n( "Insert/Move Action" ), - i18n( "Action '%1' has already been added to this toolbar.\n" - "An Action may only occur once in a given toolbar." ). - arg( a->name() ) ); - return; - } - - AddActionToToolBarCommand *cmd = new AddActionToToolBarCommand( i18n( "Add Action '%1' to Toolbar '%2'" ). - arg( a->name() ).arg( caption() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - - lastIndicatorPos = TQPoint( -1, -1 ); -} - -#endif - -void QDesignerToolBar::reInsert() -{ - TQAction *a = 0; - actionMap.clear(); - clear(); - for ( a = actionList.first(); a; a = actionList.next() ) { - a->addTo( this ); - if ( ::tqqt_cast<TQActionGroup*>(a) ) { - actionMap.insert( ( (QDesignerActionGroup*)a )->widget(), a ); - if ( ( (QDesignerActionGroup*)a )->widget() ) - ( (QDesignerActionGroup*)a )->widget()->installEventFilter( this ); - } else if ( ::tqqt_cast<QDesignerAction*>(a) ) { - actionMap.insert( ( (QDesignerAction*)a )->widget(), a ); - ( (QDesignerAction*)a )->widget()->installEventFilter( this ); - } else if ( ::tqqt_cast<QSeparatorAction*>(a) ) { - actionMap.insert( ( (QSeparatorAction*)a )->widget(), a ); - ( (QSeparatorAction*)a )->widget()->installEventFilter( this ); - } - } - TQApplication::sendPostedEvents(); - adjustSize(); -} - -void QDesignerToolBar::actionRemoved() -{ - actionList.removeRef( (TQAction*)sender() ); -} - -TQPoint QDesignerToolBar::calcIndicatorPos( const TQPoint &pos ) -{ - if ( orientation() ==Qt::Horizontal ) { - TQPoint pnt( width() - 2, 0 ); - insertAnchor = 0; - afterAnchor = TRUE; - TQObjectList clo = childrenListObject(); - if ( clo.isEmpty() ) - return pnt; - pnt = TQPoint( 13, 0 ); - TQObjectListIt it( clo ); - TQObject * obj; - while( (obj=it.current()) != 0 ) { - ++it; - if ( obj->isWidgetType() && - qstrcmp( "qt_dockwidget_internal", obj->name() ) != 0 ) { - TQWidget *w = (TQWidget*)obj; - if ( w->x() < pos.x() ) { - pnt.setX( w->x() + w->width() + 1 ); - insertAnchor = w; - afterAnchor = TRUE; - } - } - } - return pnt; - } else { - TQPoint pnt( 0, height() - 2 ); - insertAnchor = 0; - afterAnchor = TRUE; - TQObjectList clo = childrenListObject(); - if ( clo.isEmpty() ) - return pnt; - pnt = TQPoint( 0, 13 ); - TQObjectListIt it( clo ); - TQObject * obj; - while( (obj=it.current()) != 0 ) { - ++it; - if ( obj->isWidgetType() && - qstrcmp( "qt_dockwidget_internal", obj->name() ) != 0 ) { - TQWidget *w = (TQWidget*)obj; - if ( w->y() < pos.y() ) { - pnt.setY( w->y() + w->height() + 1 ); - insertAnchor = w; - afterAnchor = TRUE; - } - } - } - return pnt; - } -} - -void QDesignerToolBar::drawIndicator( const TQPoint &pos ) -{ - if ( lastIndicatorPos == pos ) - return; - bool wasVsisible = indicator->isVisible(); - if ( orientation() ==Qt::Horizontal ) { - indicator->resize( 3, height() ); - if ( pos != TQPoint( -1, -1 ) ) - indicator->move( pos.x() - 1, 0 ); - indicator->show(); - indicator->raise(); - lastIndicatorPos = pos; - } else { - indicator->resize( width(), 3 ); - if ( pos != TQPoint( -1, -1 ) ) - indicator->move( 0, pos.y() - 1 ); - indicator->show(); - indicator->raise(); - lastIndicatorPos = pos; - } - if ( !wasVsisible ) - TQApplication::sendPostedEvents(); -} - -void QDesignerToolBar::doInsertWidget( const TQPoint &p ) -{ - if ( formWindow != MainWindow::self->formWindow() ) - return; - calcIndicatorPos( p ); - TQWidget *w = WidgetFactory::create( MainWindow::self->currentTool(), this, 0, TRUE ); - installEventFilters( w ); - MainWindow::self->formWindow()->insertWidget( w, TRUE ); - QDesignerAction *a = new QDesignerAction( w, parent() ); - int index = actionList.findRef( *actionMap.find( insertAnchor ) ); - if ( index != -1 && afterAnchor ) - ++index; - if ( !insertAnchor ) - index = 0; - AddActionToToolBarCommand *cmd = new AddActionToToolBarCommand( i18n( "Add Widget '%1' to Toolbar '%2'" ). - arg( w->name() ).arg( caption() ), - formWindow, a, this, index ); - formWindow->commandHistory()->addCommand( cmd ); - cmd->execute(); - MainWindow::self->resetTool(); -} - -void QDesignerToolBar::clear() -{ - for ( TQAction *a = actionList.first(); a; a = actionList.next() ) { - if ( ::tqqt_cast<QDesignerAction*>(a) ) - ( (QDesignerAction*)a )->remove(); - } - TQToolBar::clear(); -} - -void QDesignerToolBar::installEventFilters( TQWidget *w ) -{ - if ( !w ) - return; - TQObjectList *l = w->queryList( TQWIDGET_OBJECT_NAME_STRING ); - for ( TQObject *o = l->first(); o; o = l->next() ) - o->installEventFilter( this ); - delete l; -} - -//#include "actiondnd.moc" |