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

📄 listboxeditorimpl.cpp

📁 Trolltech公司发布的基于C++图形开发环境
💻 CPP
字号:
/************************************************************************ Copyright (C) 2000 Trolltech AS.  All rights reserved.**** This file is part of Qt 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.**** 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.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#include "listboxeditorimpl.h"#include "pixmapchooser.h"#include "command.h"#include "formwindow.h"#include "mainwindow.h"#include <qlineedit.h>#include <qlabel.h>#include <qlistbox.h>#include <qpushbutton.h>#include <qcheckbox.h>ListBoxEditor::ListBoxEditor( QWidget *parent, QWidget *editWidget, FormWindow *fw )    : ListBoxEditorBase( parent, 0, TRUE ), formwindow( fw ){    connect( helpButton, SIGNAL( clicked() ), MainWindow::self, SLOT( showDialogHelp() ) );    listbox = (QListBox*)editWidget;    itemText->setText( "" );    itemText->setEnabled( FALSE );    itemPixmap->setText( "" );    itemChoosePixmap->setEnabled( FALSE );    itemDeletePixmap->setEnabled( FALSE );    QListBoxItem *i = 0;    for ( i = listbox->firstItem(); i; i = i->next() ) {	if ( i->pixmap() )	    (void)new QListBoxPixmap( preview, *i->pixmap(), i->text() );	else	    (void)new QListBoxText( preview, i->text() );    }    if ( preview->firstItem() )	preview->setCurrentItem( preview->firstItem() );}void ListBoxEditor::insertNewItem(){    QListBoxItem *i = new QListBoxText( preview, tr("New Item") );    preview->setCurrentItem( i );    preview->setSelected( i, TRUE );}void ListBoxEditor::deleteCurrentItem(){    delete preview->item( preview->currentItem() );    if ( preview->currentItem() != -1 )	preview->setSelected( preview->currentItem(), TRUE );}void ListBoxEditor::currentItemChanged( QListBoxItem *i ){    itemText->blockSignals( TRUE );    itemText->setText( "" );    itemPixmap->setText( "" );    itemText->blockSignals( FALSE );    if ( !i ) {	itemText->setEnabled( FALSE );	itemChoosePixmap->setEnabled( FALSE );	itemDeletePixmap->setEnabled( FALSE );	return;    }    itemText->blockSignals( TRUE );    itemText->setEnabled( TRUE );    itemChoosePixmap->setEnabled( TRUE );    itemDeletePixmap->setEnabled( i->pixmap() && !i->pixmap()->isNull() );    itemText->setText( i->text() );    if ( i->pixmap() )	itemPixmap->setPixmap( *i->pixmap() );    itemText->blockSignals( FALSE );}void ListBoxEditor::currentTextChanged( const QString &txt ){    if ( preview->currentItem() == -1 )	return;    preview->blockSignals( TRUE );    if ( preview->item( preview->currentItem() )->pixmap() )	preview->changeItem( *preview->item( preview->currentItem() )->pixmap(), txt, preview->currentItem() );    else	preview->changeItem( txt, preview->currentItem() );    preview->blockSignals( FALSE );}void ListBoxEditor::okClicked(){    applyClicked();    accept();}void ListBoxEditor::cancelClicked(){    reject();}void ListBoxEditor::applyClicked(){    QListBoxItem *i = 0;    QValueList<PopulateListBoxCommand::Item> items;    for ( i = preview->firstItem(); i; i = i->next() ) {	PopulateListBoxCommand::Item item;	if ( i->pixmap() )	    item.pix = *i->pixmap();	item.text = i->text();	items.append( item );    }    PopulateListBoxCommand *cmd = new PopulateListBoxCommand( tr( "Edit Items of '%1'" ).arg( listbox->name() ),							      formwindow, listbox, items );    cmd->execute();    formwindow->commandHistory()->addCommand( cmd );}void ListBoxEditor::choosePixmap(){    if ( preview->currentItem() == -1 )	return;    QPixmap pix;    if ( preview->item( preview->currentItem() )->pixmap() )    	pix = qChoosePixmap( this, formwindow, *preview->item( preview->currentItem() )->pixmap() );    else    	pix = qChoosePixmap( this, formwindow, QPixmap() );    if ( pix.isNull() )	return;    QString txt = preview->item( preview->currentItem() )->text();    preview->changeItem( pix, txt, preview->currentItem() );    itemDeletePixmap->setEnabled( TRUE );}void ListBoxEditor::moveItemUp(){    if ( preview->currentItem() < 1 )	return;    QListBoxItem *i = preview->item( preview->currentItem() );    bool hasPix = (bool)i->pixmap();    QPixmap pix;    if ( hasPix )	pix = *i->pixmap();    QString txt = i->text();    QListBoxItem *p = i->prev();    if ( p->pixmap() )	preview->changeItem( *p->pixmap(), p->text(), preview->currentItem() );    else	preview->changeItem( p->text(), preview->currentItem() );    if ( hasPix )	preview->changeItem( pix, txt, preview->currentItem() - 1 );    else	preview->changeItem( txt, preview->currentItem() - 1 );}void ListBoxEditor::moveItemDown(){    if ( preview->currentItem() == -1 || preview->currentItem() > (int)preview->count() - 2 )	return;    QListBoxItem *i = preview->item( preview->currentItem() );    bool hasPix = (bool)i->pixmap();    QPixmap pix;    if ( hasPix )	pix = *i->pixmap();    QString txt = i->text();    QListBoxItem *n = i->next();    if ( n->pixmap() )	preview->changeItem( *n->pixmap(), n->text(), preview->currentItem() );    else	preview->changeItem( n->text(), preview->currentItem() );    if ( hasPix )	preview->changeItem( pix, txt, preview->currentItem() + 1 );    else	preview->changeItem( txt, preview->currentItem() + 1 );}void ListBoxEditor::deletePixmap(){    if ( preview->currentItem() == -1 )	return;    QListBoxItem *i = preview->item( preview->currentItem() );    preview->changeItem( i->text(), preview->currentItem() );    itemDeletePixmap->setEnabled( FALSE );}

⌨️ 快捷键说明

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