aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/AttachmentTableModel.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-05-12 02:14:58 +0000
committerSaturneric <[email protected]>2021-05-12 02:14:58 +0000
commit26691b14d7d3294769c1cb0d0e099efd75dcc6c6 (patch)
tree7e16cb949955e635bada530ba7fd23a43ef8e4bb /src/ui/AttachmentTableModel.cpp
parentSrouce Files Tidy and Reform (diff)
downloadGpgFrontend-26691b14d7d3294769c1cb0d0e099efd75dcc6c6.tar.gz
GpgFrontend-26691b14d7d3294769c1cb0d0e099efd75dcc6c6.zip
File Structure Modified.
Change Headers and Source Files Name. Modified CMake Structure.
Diffstat (limited to 'src/ui/AttachmentTableModel.cpp')
-rw-r--r--src/ui/AttachmentTableModel.cpp131
1 files changed, 131 insertions, 0 deletions
diff --git a/src/ui/AttachmentTableModel.cpp b/src/ui/AttachmentTableModel.cpp
new file mode 100644
index 00000000..d1056053
--- /dev/null
+++ b/src/ui/AttachmentTableModel.cpp
@@ -0,0 +1,131 @@
+/*
+ * attachmenttablemodel.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "ui/AttachmentTableModel.h"
+
+#include <utility>
+
+/** compare with http://doc.qt.nokia.com/4.6/itemviews-addressbook.html
+ */
+
+AttachmentTableModel::AttachmentTableModel(QObject *parent) :
+ QAbstractTableModel(parent) {
+}
+
+AttachmentTableModel::AttachmentTableModel(QList<MimePart> mimeparts, QObject *parent) :
+ QAbstractTableModel(parent) {
+ listOfMimeparts = std::move(mimeparts);
+}
+
+
+void AttachmentTableModel::add(const 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 signal
+ // reset();
+}
+
+MimePart AttachmentTableModel::getSelectedMimePart(QModelIndex index) {
+ return listOfMimeparts.at(index.row());
+}
+
+MimePart AttachmentTableModel::getMimePart(int index) {
+ return listOfMimeparts.at(index);
+}
+
+/*QList<MimePart> AttachmentTableModel::getSelectedMimeParts(QModelIndexList indexes){
+
+ foreach(QModelIndex index, indexes) {
+ qDebug() << "ir: "<< index.row();
+ }
+
+}*/
+
+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.header.getParam("Content-Type", "name");
+ if (index.column() == 1)
+ return mp.header.getValue("Content-Type");
+
+ }
+
+ // set icon
+ // TODO more generic matching, e.g. for audio
+ if (role == Qt::DecorationRole && index.column() == 0) {
+ MimePart mp = listOfMimeparts.at(index.row());
+ QString icon;
+ if (mp.header.getValue("Content-Type").startsWith("image")) {
+ icon = ":mimetypes/image-x-generic.png";
+ } else {
+ icon = mp.header.getValue("Content-Type").replace("/", "-");
+ icon = ":mimetypes/" + icon + ".png";
+ }
+ if (!QFile::exists(icon)) icon = ":mimetypes/unknown.png";
+ return QIcon(icon);
+ }
+
+ 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();
+}