koPictureFilePreview.cc
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "koPictureFilePreview.h"
00022 #include "koPictureFilePreview.moc"
00023 #include <kdialog.h>
00024 #include <klocale.h>
00025 #include <kurl.h>
00026 #include <qbitmap.h>
00027 #include <qlayout.h>
00028 #include <qfileinfo.h>
00029 #include <qpainter.h>
00030 #include <qscrollview.h>
00031
00032 #include <kdebug.h>
00033
00034 #include <koPicture.h>
00035
00041 class KoPictureFilePreviewWidget : public QScrollView
00042 {
00043 public:
00044 KoPictureFilePreviewWidget( QWidget *parent )
00045 : QScrollView( parent ) { viewport()->setBackgroundMode( PaletteBase ); }
00046
00047 bool setPicture( const KURL& url )
00048 {
00049 KoPicture picture;
00050 if ( url.isLocalFile() )
00051 {
00052 if ( !picture.loadFromFile( url.path() ) )
00053 {
00054 return false;
00055 }
00056 }
00057 else
00058 {
00059
00060 if ( !picture.setKeyAndDownloadPicture( url, this ) )
00061 {
00062 return false;
00063 }
00064 }
00065 m_size = picture.getOriginalSize();
00066 m_picture = picture;
00067 resizeContents( m_size.width(), m_size.height() );
00068 repaintContents();
00069 return true;
00070 }
00071
00072 void setNullPicture(void)
00073 {
00074 m_picture=KoPicture();
00075 m_size=QSize();
00076 }
00077
00078 void drawContents( QPainter *p, int, int, int, int )
00079 {
00080 p->setBackgroundColor( Qt::white );
00081
00082 p->fillRect(0, 0, m_size.width(), m_size.height(), QBrush( Qt::white ));
00083 m_picture.draw( *p, 0 ,0, m_size.width(), m_size.height());
00084 }
00085
00086 private:
00087 KoPicture m_picture;
00088 QSize m_size;
00089 };
00090
00091 KoPictureFilePreview::KoPictureFilePreview( QWidget *parent )
00092 : KPreviewWidgetBase( parent )
00093 {
00094 QVBoxLayout *vb = new QVBoxLayout( this, KDialog::marginHint() );
00095 m_widget = new KoPictureFilePreviewWidget( this );
00096 vb->addWidget( m_widget, 1 );
00097 }
00098
00099 void KoPictureFilePreview::showPreview( const KURL &u )
00100 {
00101 m_widget->setPicture( u );
00102 }
00103
00104 void KoPictureFilePreview::clearPreview()
00105 {
00106 m_widget->setNullPicture();
00107 }
00108
00109 QString KoPictureFilePreview::clipartPattern()
00110 {
00111 return i18n( "*.svg *.wmf *.qpic|Clipart (*.svg *.wmf *.qpic)" );
00112 }
00113
00114 QStringList KoPictureFilePreview::clipartMimeTypes()
00115 {
00116 QStringList lst;
00117 lst << "image/svg+xml";
00118 lst << "image/x-wmf";
00119 lst << "image/x-vnd.trolltech.qpicture";
00120 return lst;
00121 }
This file is part of the documentation for lib Library Version 1.4.2.