Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'KFilePreview (./kdelibs/kfile/kfilepreview.h:44)

class KFilePreview : public QSplitter, public KFileView
{
    Q_OBJECT

public:
    KFilePreview(QWidget *parent, const char *name);
    virtual ~KFilePreview();

    virtual QWidget *widget() { return this; }
    virtual void clearView();

    virtual void updateView( bool );
    virtual void updateView(const KFileViewItem*);

    virtual void setSelectionMode( KFile::SelectionMode sm );

    virtual void clearSelection();
    virtual bool isSelected( const KFileViewItem * ) const;
    virtual void setSelected(const KFileViewItem *, bool);

    virtual void insertItem(KFileViewItem *);
    virtual void clear();

    void setPreviewWidget(const QWidget *w, const KURL &u);

    void ensureItemVisible(const KFileViewItem *);
    
signals:
    void showPreview(const KURL &);

protected slots:
    void activatedMenu(const KFileViewItem*);
    void selectDir(const KFileViewItem*);
    void highlightFile(const KFileViewItem*);
    void selectFile(const KFileViewItem*);

private:
    bool deleted, previewMode;
    KFileView *left;
    QWidget *preview;
    QString viewname;

private:
    class KFilePreviewPrivate;
    KFilePreviewPrivate *d;
};

kdelibs'KFilePreview::KFilePreview() (./kdelibs/kfile/kfilepreview.cpp:25)

KFilePreview::KFilePreview(QWidget *parent, const char *name) :
                           QSplitter(parent, name), KFileView() {

    // only default stuff for now
    KFileIconView *files = new KFileIconView((QSplitter*)this, "left");
    files->KFileView::setViewMode(All);
    left=files;
    files->setOperator(this);

    preview=new QWidget((QSplitter*)this, "preview");
    QString tmp=i18n("Sorry, no preview available.");
    QLabel *l=new QLabel(tmp, preview);
    l->setMinimumSize(l->sizeHint());
    l->move(10, 5);
    preview->setMinimumWidth(l->sizeHint().width()+20);
    setResizeMode(preview, QSplitter::KeepSize);
    deleted=false;
    previewMode=false;
    setViewName( i18n("Preview") );
}


kdelibs'KFilePreview::~KFilePreview() (./kdelibs/kfile/kfilepreview.cpp:46)

KFilePreview::~KFilePreview() {
    if(!deleted && preview) {
        delete preview;
        preview=0L;
    }
}


kdelibs'KFilePreview::setPreviewWidget() (./kdelibs/kfile/kfilepreview.cpp:53)

void KFilePreview::setPreviewWidget(const QWidget *w, const KURL &u) {

    if(w!=0L) {
        previewMode=true;
        connect(this, SIGNAL(showPreview(const KURL &)),
                w, SLOT(showPreview(const KURL &)));
    }
    else {
        previewMode=false;
        preview->hide();
        return;
    }

    if(preview) {
        deleted=true;
        delete preview;
    }
    preview=const_cast<QWidget*>(w);
    preview->reparent((QSplitter*)this, 0, QPoint(0, 0), true);
    preview->resize(preview->sizeHint());
    preview->show();
    emit showPreview(u);
}


kdelibs'KFilePreview::insertItem() (./kdelibs/kfile/kfilepreview.cpp:77)

void KFilePreview::insertItem(KFileViewItem *item) {
    left->insertItem(item);
}


kdelibs'KFilePreview::clearView() (./kdelibs/kfile/kfilepreview.cpp:81)

void KFilePreview::clearView() {
    left->clearView();
    if(preview)
        preview->erase();
}


kdelibs'KFilePreview::updateView() (./kdelibs/kfile/kfilepreview.cpp:87)

void KFilePreview::updateView(bool b) {
    left->updateView(b);
    if(preview)
        preview->repaint(b);
}


kdelibs'KFilePreview::updateView() (./kdelibs/kfile/kfilepreview.cpp:93)

void KFilePreview::updateView(const KFileViewItem *i) {
    left->updateView(i);
}


kdelibs'KFilePreview::clear() (./kdelibs/kfile/kfilepreview.cpp:97)

void KFilePreview::clear() {
    KFileView::clear();
    left->KFileView::clear();
    if(preview)
        preview->erase();
}


kdelibs'KFilePreview::clearSelection() (./kdelibs/kfile/kfilepreview.cpp:104)

void KFilePreview::clearSelection() {
    left->clearSelection();
}


kdelibs'KFilePreview::isSelected() (./kdelibs/kfile/kfilepreview.cpp:108)

bool KFilePreview::isSelected( const KFileViewItem *i ) const
{
    return left->isSelected( i );
}


kdelibs'KFilePreview::setSelectionMode() (./kdelibs/kfile/kfilepreview.cpp:113)

void KFilePreview::setSelectionMode(KFile::SelectionMode sm) {
    left->setSelectionMode( sm );
}


kdelibs'KFilePreview::setSelected() (./kdelibs/kfile/kfilepreview.cpp:117)

void KFilePreview::setSelected(const KFileViewItem *item, bool enable) {
    left->setSelected( item, enable );
}


kdelibs'KFilePreview::selectDir() (./kdelibs/kfile/kfilepreview.cpp:121)

void KFilePreview::selectDir(const KFileViewItem* item) {
    sig->activateDir(item);
}


kdelibs'KFilePreview::highlightFile() (./kdelibs/kfile/kfilepreview.cpp:125)

void KFilePreview::highlightFile(const KFileViewItem* item) {
    emit showPreview(item->url());

    sig->highlightFile(item);
    // the preview widget appears and takes some space of the left view,
    // so we may have to scroll to make the current item visible
    qApp->processEvents(); // the resizing and showing might be delayed
    left->ensureItemVisible(item);
}


kdelibs'KFilePreview::selectFile() (./kdelibs/kfile/kfilepreview.cpp:135)

void KFilePreview::selectFile(const KFileViewItem* item) {
    sig->activateFile(item);
}


kdelibs'KFilePreview::activatedMenu() (./kdelibs/kfile/kfilepreview.cpp:139)

void KFilePreview::activatedMenu(const KFileViewItem *item) {
    sig->activateMenu(item);
}


kdelibs'KFilePreview::ensureItemVisible() (./kdelibs/kfile/kfilepreview.cpp:143)

void KFilePreview::ensureItemVisible(const KFileViewItem *item) {
    left->ensureItemVisible(item);
}