void ActionEditor::newAction() { ActionItem *actionParent = (ActionItem*)listActions->selectedItem(); if ( actionParent ) { if ( !::qt_cast<QActionGroup*>(actionParent->actionGroup()) ) actionParent = (ActionItem*)actionParent->parent(); } ActionItem *i = 0; if ( actionParent ) i = new ActionItem( actionParent ); else i = new ActionItem( listActions, (bool)FALSE ); QAction *a = i->action(); QObject::connect( a, SIGNAL( destroyed( QObject * ) ), this, SLOT( removeConnections( QObject* ) ) ); MetaDataBase::addEntry( i->action() ); QString n = "Action"; formWindow->unify( i->action(), n, TRUE ); i->setText( 0, n ); i->action()->setName( n ); i->action()->setText( i->action()->name() ); if ( actionParent && actionParent->actionGroup() && actionParent->actionGroup()->usesDropDown() ) { i->action()->setToggleAction( TRUE ); MetaDataBase::setPropertyChanged( i->action(), "toggleAction", TRUE ); } MetaDataBase::setPropertyChanged( i->action(), "text", TRUE ); MetaDataBase::setPropertyChanged( i->action(), "name", TRUE ); listActions->setCurrentItem( i ); if ( !actionParent ) formWindow->actionList().append( i->action() ); if ( formWindow->formFile() ) formWindow->formFile()->setModified( TRUE ); }
QDragObject *ActionListView::dragObject() { ActionItem *i = (ActionItem*)currentItem(); if ( !i ) return 0; QStoredDrag *drag = 0; if ( i->action() ) { drag = new ActionDrag( i->action(), viewport() ); drag->setPixmap( i->action()->iconSet().pixmap() ); } else { drag = new ActionDrag( i->actionGroup(), viewport() ); drag->setPixmap( i->actionGroup()->iconSet().pixmap() ); } return drag; }
void ActionEditor::deleteAction() { if ( !currentAction ) return; QListViewItemIterator it( listActions ); ActionItem *ai = 0; while ( it.current() ) { ai = (ActionItem*)it.current(); if ( ai->action() == currentAction || ai->actionGroup() == currentAction ) { emit removing( currentAction ); formWindow->actionList().removeRef( currentAction ); delete currentAction; currentAction = 0; delete it.current(); break; } ++it; } if ( formWindow ) { formWindow->setActiveObject( formWindow->mainContainer() ); if ( formWindow->formFile() ) formWindow->formFile()->setModified( TRUE ); } }
QDragObject *ActionListView::dragObject() { ActionItem *i = (ActionItem*)currentItem(); if ( !i ) return 0; QStoredDrag *drag = 0; if ( i->action() ) { drag = new QStoredDrag( "application/x-designer-actions", viewport() ); QString s = QString::number( (long)i->action() ); // #### huha, that is evil drag->setEncodedData( QCString( s.latin1() ) ); drag->setPixmap( i->action()->iconSet().pixmap() ); } else { drag = new QStoredDrag( "application/x-designer-actiongroup", viewport() ); QString s = QString::number( (long)i->actionGroup() ); // #### huha, that is evil drag->setEncodedData( QCString( s.latin1() ) ); drag->setPixmap( i->actionGroup()->iconSet().pixmap() ); } return drag; }