From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ktnef/gui/ktnefview.cpp | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 ktnef/gui/ktnefview.cpp (limited to 'ktnef/gui/ktnefview.cpp') diff --git a/ktnef/gui/ktnefview.cpp b/ktnef/gui/ktnefview.cpp new file mode 100644 index 000000000..abee5a73b --- /dev/null +++ b/ktnef/gui/ktnefview.cpp @@ -0,0 +1,136 @@ +/* + ktnefview.cpp + + Copyright (C) 2002 Michael Goffioul + + This file is part of KTNEF, the KDE TNEF support library/program. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "ktnefview.h" +#include +#include "attachpropertydialog.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include + +class Attachment : public QListViewItem +{ +public: + Attachment(QListView *parent, KTNEFAttach *attach); + ~Attachment(); + + KTNEFAttach* getAttachment() const { return attach_; } + +private: + KTNEFAttach *attach_; +}; + +Attachment::Attachment(QListView *parent, KTNEFAttach *attach) + : QListViewItem(parent, attach->name()), attach_(attach) +{ + setText(2, QString::number( attach_->size() )); + if (!attach_->fileName().isEmpty()) setText(0, attach_->fileName()); + KMimeType::Ptr mimeType = KMimeType::mimeType( attach_->mimeTag() ); + setText(1, mimeType->comment()); + QPixmap pix = loadRenderingPixmap( attach, parent->colorGroup().base() ); + if ( !pix.isNull() ) + setPixmap( 0, pix ); + else + setPixmap(0, mimeType->pixmap(KIcon::Small)); + setDragEnabled( true ); +} + +Attachment::~Attachment() +{ +} + +//------------------------------------------------------------------------------------------------------ + +KTNEFView::KTNEFView(QWidget *parent, const char *name) + : KListView(parent,name) +{ + attachments_.setAutoDelete(false); + addColumn(i18n("File Name")); + addColumn(i18n("File Type")); + addColumn(i18n("Size")); + setFrameStyle(QFrame::WinPanel|QFrame::Sunken); + setLineWidth(1); + setSelectionMode(QListView::Extended); + setHScrollBarMode(QScrollView::AlwaysOff); + setVScrollBarMode(QScrollView::AlwaysOn); + QTimer::singleShot( 0, this, SLOT(adjustColumnWidth()) ); +} + +KTNEFView::~KTNEFView() +{ +} + +void KTNEFView::setAttachments(QPtrList *list) +{ + clear(); + if (list) + { + QPtrListIterator it(*list); + for (;it.current();++it) + new Attachment(this, it.current()); + } +} + +void KTNEFView::resizeEvent(QResizeEvent *e) +{ + adjustColumnWidth(); + resizeContents(visibleWidth(),visibleHeight()); + if (e) QListView::resizeEvent(e); +} + +QPtrList* KTNEFView::getSelection() +{ + attachments_.clear(); + QListViewItem *item = firstChild(); + while (item) + { + if (item->isSelected()) attachments_.append(((Attachment*)item)->getAttachment()); + item = item->nextSibling(); + } + return &attachments_; +} + +void KTNEFView::startDrag() +{ + QListViewItemIterator it( this, QListViewItemIterator::Selected ); + QValueList list; + while ( it.current() ) + { + list << static_cast( it.current() )->getAttachment(); + ++it; + } + if ( !list.isEmpty() ) + emit dragRequested( list ); +} + +void KTNEFView::adjustColumnWidth() +{ + int w = visibleWidth()/2; + setColumnWidth(0,w); + setColumnWidth(1,w/2); + setColumnWidth(2,w/2); +} + +#include "ktnefview.moc" -- cgit v1.2.1