diff options
Diffstat (limited to 'kio/kfile/kimagefilepreview.cpp')
-rw-r--r-- | kio/kfile/kimagefilepreview.cpp | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/kio/kfile/kimagefilepreview.cpp b/kio/kfile/kimagefilepreview.cpp deleted file mode 100644 index 0cc0ef2a7..000000000 --- a/kio/kfile/kimagefilepreview.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* - * This file is part of the KDE project - * Copyright (C) 2001 Martin R. Jones <mjones@kde.org> - * 2001 Carsten Pfeiffer <pfeiffer@kde.org> - * - * You can Freely distribute this program under the GNU Library General Public - * License. See the file "COPYING" for the exact licensing terms. - */ - -#include <tqlayout.h> -#include <tqlabel.h> -#include <tqcombobox.h> -#include <tqcheckbox.h> -#include <tqwhatsthis.h> -#include <tqtimer.h> - -#include <kapplication.h> -#include <kconfig.h> -#include <kglobal.h> -#include <kiconloader.h> -#include <kpushbutton.h> -#include <kstandarddirs.h> -#include <kdebug.h> -#include <klocale.h> -#include <kfiledialog.h> -#include <kfileitem.h> -#include <kio/previewjob.h> - -#include "kimagefilepreview.h" -#include "config-kfile.h" - -/**** KImageFilePreview ****/ - -KImageFilePreview::KImageFilePreview( TQWidget *parent ) - : KPreviewWidgetBase( parent ), - m_job( 0L ) -{ - TDEConfig *config = TDEGlobal::config(); - TDEConfigGroupSaver cs( config, ConfigGroup ); - autoMode = config->readBoolEntry( "Automatic Preview", true ); - - TQVBoxLayout *vb = new TQVBoxLayout( this, 0, KDialog::spacingHint() ); - - imageLabel = new TQLabel( this ); - imageLabel->setFrameStyle( TQFrame::NoFrame ); - imageLabel->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - imageLabel->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Expanding) ); - vb->addWidget( imageLabel ); - - TQHBoxLayout *hb = new TQHBoxLayout( 0 ); - vb->addLayout( hb ); - - autoPreview = new TQCheckBox( i18n("&Automatic preview"), this ); - autoPreview->setChecked( autoMode ); - hb->addWidget( autoPreview ); - connect( autoPreview, TQT_SIGNAL(toggled(bool)), TQT_SLOT(toggleAuto(bool)) ); - - previewButton = new KPushButton( SmallIconSet("thumbnail"), i18n("&Preview"), this ); - hb->addWidget( previewButton ); - connect( previewButton, TQT_SIGNAL(clicked()), TQT_SLOT(showPreview()) ); - - timer = new TQTimer( this ); - connect( timer, TQT_SIGNAL(timeout()), TQT_SLOT(showPreview()) ); - - setSupportedMimeTypes( TDEIO::PreviewJob::supportedMimeTypes() ); -} - -KImageFilePreview::~KImageFilePreview() -{ - if ( m_job ) - m_job->kill(); - - TDEConfig *config = TDEGlobal::config(); - TDEConfigGroupSaver cs( config, ConfigGroup ); - config->writeEntry( "Automatic Preview", autoPreview->isChecked() ); -} - -void KImageFilePreview::showPreview() -{ - // Pass a copy since clearPreview() will clear currentURL - KURL url = currentURL; - showPreview( url, true ); -} - -// called via KPreviewWidgetBase interface -void KImageFilePreview::showPreview( const KURL& url ) -{ - showPreview( url, false ); -} - -void KImageFilePreview::showPreview( const KURL &url, bool force ) -{ - if ( !url.isValid() ) { - clearPreview(); - return; - } - - if ( url != currentURL || force ) - { - clearPreview(); - currentURL = url; - - if ( autoMode || force ) - { - int w = imageLabel->contentsRect().width() - 4; - int h = imageLabel->contentsRect().height() - 4; - - m_job = createJob( url, w, h ); - if ( force ) // explicitly requested previews shall always be generated! - m_job->setIgnoreMaximumSize( true ); - - connect( m_job, TQT_SIGNAL( result( TDEIO::Job * )), - this, TQT_SLOT( slotResult( TDEIO::Job * ))); - connect( m_job, TQT_SIGNAL( gotPreview( const KFileItem*, - const TQPixmap& )), - TQT_SLOT( gotPreview( const KFileItem*, const TQPixmap& ) )); - - connect( m_job, TQT_SIGNAL( failed( const KFileItem* )), - this, TQT_SLOT( slotFailed( const KFileItem* ) )); - } - } -} - -void KImageFilePreview::toggleAuto( bool a ) -{ - autoMode = a; - if ( autoMode ) - { - // Pass a copy since clearPreview() will clear currentURL - KURL url = currentURL; - showPreview( url, true ); - } -} - -void KImageFilePreview::resizeEvent( TQResizeEvent * ) -{ - timer->start( 100, true ); // forces a new preview -} - -TQSize KImageFilePreview::sizeHint() const -{ - return TQSize( 20, 200 ); // otherwise it ends up huge??? -} - -TDEIO::PreviewJob * KImageFilePreview::createJob( const KURL& url, int w, int h ) -{ - KURL::List urls; - urls.append( url ); - return TDEIO::filePreview( urls, w, h, 0, 0, true, false ); -} - -void KImageFilePreview::gotPreview( const KFileItem* item, const TQPixmap& pm ) -{ - if ( item->url() == currentURL ) // should always be the case - imageLabel->setPixmap( pm ); -} - -void KImageFilePreview::slotFailed( const KFileItem* item ) -{ - if ( item->isDir() ) - imageLabel->clear(); - else if ( item->url() == currentURL ) // should always be the case - imageLabel->setPixmap( SmallIcon( "file_broken", KIcon::SizeLarge, - KIcon::DisabledState )); -} - -void KImageFilePreview::slotResult( TDEIO::Job *job ) -{ - if ( job == m_job ) - m_job = 0L; -} - -void KImageFilePreview::clearPreview() -{ - if ( m_job ) { - m_job->kill(); - m_job = 0L; - } - - imageLabel->clear(); - currentURL = KURL(); -} - -void KImageFilePreview::virtual_hook( int id, void* data ) -{ KPreviewWidgetBase::virtual_hook( id, data ); } - -#include "kimagefilepreview.moc" |