From 38d40c5aed23ba76add8fc421f26380c9973401e Mon Sep 17 00:00:00 2001 From: ubbo Date: Fri, 14 May 2010 11:22:44 +0000 Subject: start of using own model for attachment-table-view, not all functionality (saving / icons) back in place git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@328 34ebc366-c3a9-4b3c-9f84-69acf7962910 --- attachmenttablemodel.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 attachmenttablemodel.cpp (limited to 'attachmenttablemodel.cpp') diff --git a/attachmenttablemodel.cpp b/attachmenttablemodel.cpp new file mode 100644 index 0000000..6ca640b --- /dev/null +++ b/attachmenttablemodel.cpp @@ -0,0 +1,80 @@ +#include "attachmenttablemodel.h" + +/** compare with http://doc.qt.nokia.com/4.6/itemviews-addressbook.html + */ + +AttachmentTableModel::AttachmentTableModel(QObject *parent) : + QAbstractTableModel(parent) +{ +} + +AttachmentTableModel::AttachmentTableModel(QList mimeparts, QObject *parent) : + QAbstractTableModel(parent) +{ + listOfMimeparts = mimeparts; +} + +void AttachmentTableModel::add(MimePart mp) { + listOfMimeparts.append(mp); + //QModelIndex changedIndex0 = createIndex(listOfMimeparts.size(), 0); + //QModelIndex changedIndex1 = createIndex(listOfMimeparts.size(), 1); + + //emit(dataChanged(changedIndex0, changedIndex1)); + // TODO: check the data-changed function + reset(); +} + +int AttachmentTableModel::rowCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + return listOfMimeparts.size(); +} + +int AttachmentTableModel::columnCount(const QModelIndex &parent) const + { + Q_UNUSED(parent); + return 2; + } + +QVariant AttachmentTableModel::data(const QModelIndex &index, int role) const +{ + + //qDebug() << "called, index: " << index.column(); + + if (!index.isValid()) + return QVariant(); + + if (index.row() >= listOfMimeparts.size() || index.row() < 0) + return QVariant(); + + if (role == Qt::DisplayRole) { + MimePart mp = listOfMimeparts.at(index.row()); + + if (index.column() == 0) + return mp.getParam("Content-Type", "name"); + if (index.column() == 1) + return mp.getValue("Content-Type"); + } + return QVariant(); +} + +QVariant AttachmentTableModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + //qDebug() << "called, section: " << section; + if (role != Qt::DisplayRole) + return QVariant(); + + if (orientation == Qt::Horizontal) { + switch (section) { + case 0: + return tr("Filename"); + + case 1: + return tr("Contenttype"); + + default: + return QVariant(); + } + } + return QVariant(); +} -- cgit v1.2.3