⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listvieweditorimpl.cpp

📁 Trolltech公司发布的基于C++图形开发环境
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    itemText->setEnabled( TRUE );    itemChoosePixmap->setEnabled( TRUE );    itemDeletePixmap->setEnabled( i->pixmap( itemColumn->value() ) &&				  !i->pixmap( itemColumn->value() )->isNull() );    itemColumn->setEnabled( TRUE );    displayItem( i, itemColumn->value() );}void ListViewEditor::displayItem( QListViewItem *i, int col ){    itemText->blockSignals( TRUE );    itemText->setText( i->text( col ) );    itemText->blockSignals( FALSE );    itemPixmap->blockSignals( TRUE );    if ( i->pixmap( col ) )	itemPixmap->setPixmap( *i->pixmap( col ) );    else	itemPixmap->setText( "" );    itemPixmap->blockSignals( FALSE );}void ListViewEditor::itemColChanged( int col ){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    displayItem( i, col );    itemDeletePixmap->setEnabled( i->pixmap( col ) && !i->pixmap( col )->isNull() );}void ListViewEditor::itemDeleteClicked(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    delete i;    if ( itemsPreview->firstChild() ) {	itemsPreview->setCurrentItem( itemsPreview->firstChild() );	itemsPreview->setSelected( itemsPreview->firstChild(), TRUE );    }}void ListViewEditor::itemDownClicked(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    QListViewItemIterator it( i );    QListViewItem *parent = i->parent();    it++;    while ( it.current() ) {	if ( it.current()->parent() == parent )	    break;	it++;    }    if ( !it.current() )	return;    QListViewItem *other = it.current();    i->moveItem( other );}void ListViewEditor::itemNewClicked(){    QListViewItem *item = new QListViewItem( itemsPreview );    item->setText( 0, "Item" );    item->setRenameEnabled( 0, TRUE );    itemsPreview->setCurrentItem( item );    itemsPreview->setSelected( item, TRUE );    itemText->setFocus();    itemText->selectAll();}void ListViewEditor::itemNewSubClicked(){    QListViewItem *parent = itemsPreview->currentItem();    QListViewItem *item = 0;    if ( parent ) {	item = new QListViewItem( parent );	parent->setOpen( TRUE );    } else {	item = new QListViewItem( itemsPreview );    }    item->setText( 0, "Subitem" );    item->setRenameEnabled( 0, TRUE );    itemsPreview->setCurrentItem( item );    itemsPreview->setSelected( item, TRUE );}void ListViewEditor::itemPixmapChoosen(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    QPixmap pix;    if ( itemPixmap->pixmap() )	pix = qChoosePixmap( this, formwindow, *itemPixmap->pixmap() );    else	pix = qChoosePixmap( this, formwindow, QPixmap() );    if ( pix.isNull() )	return;    i->setPixmap( itemColumn->value(), QPixmap( pix ) );    itemPixmap->setPixmap( pix );    itemDeletePixmap->setEnabled( TRUE );}void ListViewEditor::itemPixmapDeleted(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    i->setPixmap( itemColumn->value(), QPixmap() );    itemPixmap->setText( "" );    itemDeletePixmap->setEnabled( FALSE );}void ListViewEditor::itemTextChanged( const QString &txt ){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    i->setText( itemColumn->value(), txt );}void ListViewEditor::itemUpClicked(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    QListViewItemIterator it( i );    QListViewItem *parent = i->parent();    --it;    while ( it.current() ) {	if ( it.current()->parent() == parent )	    break;	--it;    }    if ( !it.current() )	return;    QListViewItem *other = it.current();    other->moveItem( i );}void ListViewEditor::itemRightClicked(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    QListViewItemIterator it( i );    QListViewItem *parent = i->parent();    parent = parent ? parent->firstChild() : itemsPreview->firstChild();    if ( !parent )	return;    it++;    while ( it.current() ) {	if ( it.current()->parent() == parent )	    break;	it++;    }    if ( !it.current() )	return;    QListViewItem *other = it.current();    for ( int c = 0; c < itemsPreview->columns(); ++c ) {	QString s = i->text( c );	i->setText( c, other->text( c ) );	other->setText( c, s );	QPixmap pix;	if ( i->pixmap( c ) )	    pix = *i->pixmap( c );	if ( other->pixmap( c ) )	    i->setPixmap( c, *other->pixmap( c ) );	else	    i->setPixmap( c, QPixmap() );	other->setPixmap( c, pix );    }    itemsPreview->setCurrentItem( other );    itemsPreview->setSelected( other, TRUE );}void ListViewEditor::itemLeftClicked(){    QListViewItem *i = itemsPreview->currentItem();    if ( !i )	return;    QListViewItemIterator it( i );    QListViewItem *parent = i->parent();    if ( !parent )	return;    parent = parent->parent();    --it;    while ( it.current() ) {	if ( it.current()->parent() == parent )	    break;	--it;    }    if ( !it.current() )	return;    QListViewItem *other = it.current();    for ( int c = 0; c < itemsPreview->columns(); ++c ) {	QString s = i->text( c );	i->setText( c, other->text( c ) );	other->setText( c, s );	QPixmap pix;	if ( i->pixmap( c ) )	    pix = *i->pixmap( c );	if ( other->pixmap( c ) )	    i->setPixmap( c, *other->pixmap( c ) );	else	    i->setPixmap( c, QPixmap() );	other->setPixmap( c, pix );    }    itemsPreview->setCurrentItem( other );    itemsPreview->setSelected( other, TRUE );}void ListViewEditor::setupColumns(){    QHeader *h = listview->header();    for ( int i = 0; i < (int)h->count(); ++i ) {	Column col;	col.text = h->label( i );	col.pixmap = QPixmap();	if ( h->iconSet( i ) )	    col.pixmap = h->iconSet( i )->pixmap();	col.clickable = h->isClickEnabled( i );	col.resizable = h->isResizeEnabled( i );	if ( !col.pixmap.isNull() )	    col.item = new QListBoxPixmap( colPreview, col.pixmap, col.text );	else	    col.item = new QListBoxText( colPreview, col.text );	columns.append( col );    }    colText->setEnabled( FALSE );    colPixmap->setEnabled( FALSE );    colClickable->setEnabled( FALSE );    colResizable->setEnabled( FALSE );    if ( colPreview->firstItem() )	colPreview->setCurrentItem( colPreview->firstItem() );    numColumns = colPreview->count();}void ListViewEditor::setupItems(){    itemColumn->setMinValue( 0 );    itemColumn->setMaxValue( QMAX( numColumns - 1, 0 ) );    int i = 0;    QHeader *header = itemsPreview->header();    for ( QListBoxItem *item = colPreview->firstItem(); item; item = item->next() ) {	Column *col = findColumn( item );	if ( !col )	    continue;	if ( i >= itemsPreview->columns() )	    itemsPreview->addColumn( col->text );	header->setLabel( i, col->pixmap, col->text );	header->setResizeEnabled( col->resizable, i );	header->setClickEnabled( col->clickable, i );	++i;    }    while ( itemsPreview->columns() > i )	itemsPreview->removeColumn( i );    itemColumn->setValue( QMIN( numColumns - 1, itemColumn->value() ) );}ListViewEditor::Column *ListViewEditor::findColumn( QListBoxItem *i ){    if ( !i )	return 0;    for ( QValueList<Column>::Iterator it = columns.begin(); it != columns.end(); ++it ) {	if ( ( *it ).item == i )	    return &( *it );    }    return 0;}void ListViewEditor::initTabPage( const QString &page ){    numColumns = colPreview->count();    if ( page == tr( "&Items" ) ) {	setupItems();	if ( numColumns == 0 ) {	    itemNew->setEnabled( FALSE );	    itemNewSub->setEnabled( FALSE );	    itemText->setEnabled( FALSE );	    itemChoosePixmap->setEnabled( FALSE );	    itemDeletePixmap->setEnabled( FALSE );	    itemColumn->setEnabled( FALSE );	} else {	    itemNew->setEnabled( TRUE );	    itemNewSub->setEnabled( TRUE );	}    }}void ListViewEditor::emitItemRenamed( QListViewItem *, int, const QString & text ){    emit itemRenamed( text ); // Relay signal ( to QLineEdit )}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -