kfilepreview.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <kaction.h>
00023 #include <kfilepreview.h>
00024 #include <kfilepreview.moc>
00025
00026 #include "config-kfile.h"
00027
00028 KFilePreview::KFilePreview(KFileView *view, QWidget *parent, const char *name)
00029 : QSplitter(parent, name), KFileView()
00030 {
00031 if ( view )
00032 init( view );
00033 else
00034 init( new KFileIconView( (QSplitter*) this, "left" ));
00035 }
00036
00037
00038 KFilePreview::KFilePreview(QWidget *parent, const char *name) :
00039 QSplitter(parent, name), KFileView()
00040 {
00041 init( new KFileIconView((QSplitter*)this, "left") );
00042 }
00043
00044 KFilePreview::~KFilePreview()
00045 {
00046
00048
00049
00050
00051
00052
00053 if ( preview && preview->parentWidget() == this ) {
00054 preview->reparent(0L, 0, QPoint(0, 0), false);
00055 }
00056 }
00057
00058 void KFilePreview::init( KFileView *view )
00059 {
00060 setViewName( i18n("Preview") );
00061
00062 left = 0L;
00063 setFileView( view );
00064
00065 preview = new QWidget((QSplitter*)this, "preview");
00066 QString tmp = i18n("No preview available.");
00067 QLabel *l = new QLabel(tmp, preview);
00068 l->setMinimumSize(l->sizeHint());
00069 l->move(10, 5);
00070 preview->setMinimumWidth(l->sizeHint().width()+20);
00071 setResizeMode(preview, QSplitter::KeepSize);
00072
00073
00074
00075
00076 }
00077
00078 void KFilePreview::setFileView( KFileView *view )
00079 {
00080 Q_ASSERT( view );
00081
00082
00083
00084
00085
00086
00087
00088 delete left;
00089 view->widget()->reparent( this, QPoint(0,0) );
00090 view->KFileView::setViewMode(All);
00091 view->setParentView(this);
00092 view->setSorting( sorting() );
00093 left = view;
00094
00095 connect( left->signaler(), SIGNAL( fileHighlighted(const KFileItem*) ),
00096 SLOT( slotHighlighted( const KFileItem * )));
00097
00098
00099
00100
00101 }
00102
00103
00104
00105 void KFilePreview::setPreviewWidget(const QWidget *w, const KURL &)
00106 {
00107 left->setOnlyDoubleClickSelectsFiles( onlyDoubleClickSelectsFiles() );
00108
00109 if (w) {
00110 connect(this, SIGNAL( showPreview(const KURL &) ),
00111 w, SLOT( showPreview(const KURL &) ));
00112 connect( this, SIGNAL( clearPreview() ),
00113 w, SLOT( clearPreview() ));
00114 }
00115 else {
00116 preview->hide();
00117 return;
00118 }
00119
00120 delete preview;
00121 preview = const_cast<QWidget*>(w);
00122 preview->reparent((QSplitter*)this, 0, QPoint(0, 0), true);
00123 preview->resize(preview->sizeHint());
00124 preview->show();
00125 }
00126
00127 void KFilePreview::insertItem(KFileItem *item)
00128 {
00129 KFileView::insertItem( item );
00130 left->insertItem(item);
00131 }
00132
00133 void KFilePreview::setSorting( QDir::SortSpec sort )
00134 {
00135 left->setSorting( sort );
00136 KFileView::setSorting( left->sorting() );
00137 }
00138
00139 void KFilePreview::clearView()
00140 {
00141 left->clearView();
00142 emit clearPreview();
00143 }
00144
00145 void KFilePreview::updateView(bool b)
00146 {
00147 left->updateView(b);
00148 if(preview)
00149 preview->repaint(b);
00150 }
00151
00152 void KFilePreview::updateView(const KFileItem *i)
00153 {
00154 left->updateView(i);
00155 }
00156
00157 void KFilePreview::removeItem(const KFileItem *i)
00158 {
00159 if ( left->isSelected( i ) )
00160 emit clearPreview();
00161
00162 left->removeItem(i);
00163 KFileView::removeItem( i );
00164 }
00165
00166 void KFilePreview::listingCompleted()
00167 {
00168 left->listingCompleted();
00169 }
00170
00171 void KFilePreview::clear()
00172 {
00173 KFileView::clear();
00174 left->KFileView::clear();
00175 }
00176
00177 void KFilePreview::clearSelection()
00178 {
00179 left->clearSelection();
00180 emit clearPreview();
00181 }
00182
00183 void KFilePreview::selectAll()
00184 {
00185 left->selectAll();
00186 }
00187
00188 void KFilePreview::invertSelection()
00189 {
00190 left->invertSelection();
00191 }
00192
00193 bool KFilePreview::isSelected( const KFileItem *i ) const
00194 {
00195 return left->isSelected( i );
00196 }
00197
00198 void KFilePreview::setSelectionMode(KFile::SelectionMode sm) {
00199 left->setSelectionMode( sm );
00200 }
00201
00202 void KFilePreview::setSelected(const KFileItem *item, bool enable) {
00203 left->setSelected( item, enable );
00204 }
00205
00206 void KFilePreview::setCurrentItem( const KFileItem *item )
00207 {
00208 left->setCurrentItem( item );
00209 }
00210
00211 KFileItem * KFilePreview::currentFileItem() const
00212 {
00213 return left->currentFileItem();
00214 }
00215
00216 void KFilePreview::slotHighlighted(const KFileItem* item)
00217 {
00218 if ( item )
00219 emit showPreview( item->url() );
00220
00221 else {
00222 const KFileItemList *items = selectedItems();
00223 if ( items->count() == 1 )
00224 emit showPreview( items->getFirst()->url() );
00225 else
00226 emit clearPreview();
00227 }
00228
00229
00230
00231 left->ensureItemVisible(item);
00232 }
00233
00234 void KFilePreview::ensureItemVisible(const KFileItem *item)
00235 {
00236 left->ensureItemVisible(item);
00237 }
00238
00239 KFileItem * KFilePreview::firstFileItem() const
00240 {
00241 return left->firstFileItem();
00242 }
00243
00244 KFileItem * KFilePreview::nextItem( const KFileItem *item ) const
00245 {
00246 return left->nextItem( item );
00247 }
00248
00249 KFileItem * KFilePreview::prevItem( const KFileItem *item ) const
00250 {
00251 return left->prevItem( item );
00252 }
00253
00254 KActionCollection * KFilePreview::actionCollection() const
00255 {
00256 if ( left )
00257 return left->actionCollection();
00258 else {
00259 kdWarning() << "KFilePreview::actionCollection(): called before setFileView()." << endl;
00260 return KFileView::actionCollection();
00261 }
00262 }
00263
00264 void KFilePreview::readConfig( KConfig *config, const QString& group )
00265 {
00266 left->readConfig( config, group );
00267 }
00268
00269 void KFilePreview::writeConfig( KConfig *config, const QString& group )
00270 {
00271 left->writeConfig( config, group );
00272 }
00273
00274 void KFilePreview::virtual_hook( int id, void* data )
00275 { KFileView::virtual_hook( id, data ); }
00276
This file is part of the documentation for kdelibs Version 3.1.4.