summaryrefslogtreecommitdiffstats
path: root/tdevdesigner/designer/actiondnd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdevdesigner/designer/actiondnd.cpp')
-rw-r--r--tdevdesigner/designer/actiondnd.cpp728
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"