#include /********************************************************************** ** Copyright (C) 2001-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 sales@trolltech.com for ** information about TQt Commercial License Agreements. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ void PixmapCollectionEditor::init() { project = 0; setChooserMode( FALSE ); } void PixmapCollectionEditor::destroy() { } void PixmapCollectionEditor::addPixmap() { if ( !project ) return; TQString f; TQStringList pixmaps = qChoosePixmaps( this ); if ( pixmaps.isEmpty() ) return; TQString lastName; for ( TQStringList::ConstIterator it = pixmaps.begin(); it != pixmaps.end(); ++it ) { TQPixmap pm( *it ); if ( pm.isNull() ) continue; PixmapCollection::Pixmap pixmap; pixmap.pix = pm; TQFileInfo fi ( *it ); pixmap.name = fi.fileName(); pixmap.absname = fi.filePath(); if ( !project->pixmapCollection()->addPixmap( pixmap, FALSE ) ) continue; lastName = pixmap.name; } updateView(); TQIconViewItem *item = viewPixmaps->findItem( lastName ); if ( item ) { viewPixmaps->setCurrentItem( item ); viewPixmaps->ensureItemVisible( item ); } } void PixmapCollectionEditor::removePixmap() { if ( !project || !viewPixmaps->currentItem() ) return; project->pixmapCollection()->removePixmap( viewPixmaps->currentItem()->text() ); updateView(); } void PixmapCollectionEditor::updateView() { if ( !project ) return; viewPixmaps->clear(); TQValueList pixmaps = project->pixmapCollection()->pixmaps(); for ( TQValueList::Iterator it = pixmaps.begin(); it != pixmaps.end(); ++it ) { // #### might need to scale down the pixmap TQIconViewItem *item = new TQIconViewItem( viewPixmaps, (*it).name, scaledPixmap( (*it).pix ) ); //item->setRenameEnabled( TRUE ); // this will be a bit harder to implement item->setDragEnabled( FALSE ); item->setDropEnabled( FALSE ); } viewPixmaps->setCurrentItem( viewPixmaps->firstItem() ); currentChanged( viewPixmaps->firstItem() ); } void PixmapCollectionEditor::currentChanged( TQIconViewItem * i ) { buttonOk->setEnabled( !!i ); } void PixmapCollectionEditor::setChooserMode( bool c ) { chooser = c; if ( chooser ) { buttonClose->hide(); buttonOk->show(); buttonCancel->show(); buttonOk->setEnabled( FALSE ); buttonOk->setDefault( TRUE ); connect( viewPixmaps, TQT_SIGNAL( doubleClicked( TQIconViewItem * ) ), buttonOk, TQT_SIGNAL( clicked() ) ); connect( viewPixmaps, TQT_SIGNAL( returnPressed( TQIconViewItem * ) ), buttonOk, TQT_SIGNAL( clicked() ) ); setCaption( i18n( "Choose Image" ) ); } else { buttonClose->show(); buttonOk->hide(); buttonCancel->hide(); buttonClose->setDefault( TRUE ); } updateView(); } void PixmapCollectionEditor::setCurrentItem( const TQString & name ) { TQIconViewItem *i = viewPixmaps->findItem( name ); if ( i ) { viewPixmaps->setCurrentItem( i ); currentChanged( i ); } } void PixmapCollectionEditor::setProject( Project * pro ) { project = pro; updateView(); } TQPixmap PixmapCollectionEditor::scaledPixmap( const TQPixmap & p ) { TQPixmap pix( p ); if ( pix.width() < 50 && pix.height() < 50 ) return pix; TQImage img; img = pix; img = img.smoothScale( 50, 50 ); pix.convertFromImage( img ); return pix; }