ListViewEditor::ListViewEditor( QWidget *parent, QListView *lv, FormWindow *fw ) : ListViewEditorBase( parent, 0, TRUE ), listview( lv ), formwindow( fw ) { connect( helpButton, SIGNAL( clicked() ), MainWindow::self, SLOT( showDialogHelp() ) ); itemText->setEnabled( FALSE ); itemChoosePixmap->setEnabled( FALSE ); itemDeletePixmap->setEnabled( FALSE ); itemColumn->setEnabled( FALSE ); setupColumns(); PopulateListViewCommand::transferItems( listview, itemsPreview ); setupItems(); itemsPreview->setShowSortIndicator( listview->showSortIndicator() ); itemsPreview->setAllColumnsShowFocus( listview->allColumnsShowFocus() ); itemsPreview->setRootIsDecorated( listview->rootIsDecorated() ); if ( itemsPreview->firstChild() ) { itemsPreview->setCurrentItem( itemsPreview->firstChild() ); itemsPreview->setSelected( itemsPreview->firstChild(), TRUE ); } // Clamp on drag and drop to QListView ListViewDnd *itemsDnd = new ListViewDnd( itemsPreview ); itemsDnd->setDragMode( ListViewDnd::Internal | ListViewDnd::Move ); QObject::connect( itemsDnd, SIGNAL( dropped( QListViewItem * ) ), itemsDnd, SLOT( confirmDrop( QListViewItem * ) ) ); // Enable rename for all QListViewItems QListViewItemIterator it = ((QListView *)itemsPreview)->firstChild(); for ( ; *it; it++ ) (*it)->setRenameEnabled( 0, TRUE ); // Connect listview signal to signal-relay QObject::connect( itemsPreview, SIGNAL( itemRenamed( QListViewItem*, int, const QString & ) ), this, SLOT( emitItemRenamed(QListViewItem*, int, const QString&) ) ); // Connect signal-relay to QLineEdit "itemText" QObjectList *l = parent->queryList( "QLineEdit", "itemText" ); QObject *obj; QObjectListIt itemsLineEditIt( *l ); while ( (obj = itemsLineEditIt.current()) != 0 ) { ++itemsLineEditIt; QObject::connect( this, SIGNAL( itemRenamed( const QString & ) ), obj, SLOT( setText( const QString & ) ) ); } delete l; // Clamp on drag and drop to QListBox ListBoxDnd *columnsDnd = new ListBoxDnd( colPreview ); columnsDnd->setDragMode( ListBoxDnd::Internal | ListBoxDnd::Move ); QObject::connect( columnsDnd, SIGNAL( dropped( QListBoxItem * ) ), columnsDnd, SLOT( confirmDrop( QListBoxItem * ) ) ); // Clamp on rename to QListBox ListBoxRename *columnsRename = new ListBoxRename( colPreview ); QObject::connect( columnsRename, SIGNAL( itemTextChanged( const QString & ) ), this, SLOT( columnTextChanged( const QString & ) ) ); // Find QLineEdit "colText" and connect l = parent->queryList( "QLineEdit", "colText" ); QObjectListIt columnsLineEditIt( *l ); while ( (obj = columnsLineEditIt.current()) != 0 ) { ++columnsLineEditIt; QObject::connect( columnsRename, SIGNAL( itemTextChanged( const QString & ) ), obj, SLOT( setText( const QString & ) ) ); } delete l; }
EditFunctions::EditFunctions( QWidget *parent, FormWindow *fw, bool justSlots ) : EditFunctionsBase( parent, 0, TRUE ), formWindow( fw ) { connect( helpButton, SIGNAL( clicked() ), MainWindow::self, SLOT( showDialogHelp() ) ); id = 0; functList.clear(); QValueList<MetaDataBase::Function> functionList = MetaDataBase::functionList( fw ); for ( QValueList<MetaDataBase::Function>::Iterator it = functionList.begin(); it != functionList.end(); ++it ) { QListViewItem *i = new QListViewItem( functionListView ); i->setPixmap( 0, QPixmap::fromMimeSource( "designer_editslots.png" ) ); i->setText( 0, (*it).function ); i->setText( 1, (*it).returnType ); i->setText( 2, (*it).specifier ); i->setText( 3, (*it).access ); i->setText( 4, (*it).type ); FunctItem fui; fui.id = id; fui.oldName = (*it).function; fui.newName = fui.oldName; fui.oldRetTyp = (*it).returnType; fui.retTyp = fui.oldRetTyp; fui.oldSpec = (*it).specifier; fui.spec = fui.oldSpec; fui.oldAccess = (*it).access; fui.access = fui.oldAccess; fui.oldType = (*it).type; fui.type = fui.oldType; functList.append( fui ); functionIds.insert( i, id ); id++; if ( (*it).type == "slot" ) { if ( MetaDataBase::isSlotUsed( formWindow, MetaDataBase::normalizeFunction( (*it).function ).latin1() ) ) i->setText( 5, tr( "Yes" ) ); else i->setText( 5, tr( "No" ) ); } else { i->setText( 5, "---" ); } } boxProperties->setEnabled( FALSE ); functionName->setValidator( new AsciiValidator( TRUE, functionName ) ); if ( functionListView->firstChild() ) functionListView->setCurrentItem( functionListView->firstChild() ); showOnlySlots->setChecked( justSlots ); lastType = "function"; // Enable rename for all QListViewItems QListViewItemIterator lvit = functionListView->firstChild(); for ( ; *lvit; lvit++ ) (*lvit)->setRenameEnabled( 0, TRUE ); // Connect listview signal to signal-relay QObject::connect( functionListView, SIGNAL( itemRenamed( QListViewItem*, int, const QString & ) ), this, SLOT( emitItemRenamed(QListViewItem*, int, const QString&) ) ); // Connect signal-relay to QLineEdit "functionName" QObjectList *l = parent->queryList( "QLineEdit", "functionName" ); QObject *obj; QObjectListIt itemsLineEditIt( *l ); while ( (obj = itemsLineEditIt.current()) != 0 ) { ++itemsLineEditIt; QObject::connect( this, SIGNAL( itemRenamed( const QString & ) ), obj, SLOT( setText( const QString & ) ) ); } delete l; }