summaryrefslogtreecommitdiffstats
path: root/fileinfoitem.cpp
diff options
context:
space:
mode:
authoram <am@f440f766-f032-0410-8965-dc7d17de2ca0>2009-11-08 20:55:40 +0000
committeram <am@f440f766-f032-0410-8965-dc7d17de2ca0>2009-11-08 20:55:40 +0000
commit7e4fd320c0c74bc45e60de18ac5d2b656aa4d821 (patch)
tree30ec693bbb2ebfaf9e8576bd4b2d78ce0a817d4c /fileinfoitem.cpp
parentcb094b007ec5b7c197a7df502a778a2ce919128f (diff)
downloadSheMov-7e4fd320c0c74bc45e60de18ac5d2b656aa4d821.tar.gz
SheMov-7e4fd320c0c74bc45e60de18ac5d2b656aa4d821.tar.bz2
SheMov-7e4fd320c0c74bc45e60de18ac5d2b656aa4d821.zip
-removed a lot of qDebug() includes
-turned the Fileinformation into a QTreeview, created a model for that git-svn-id: file:///var/svn/repos2/shemov/trunk@422 f440f766-f032-0410-8965-dc7d17de2ca0
Diffstat (limited to 'fileinfoitem.cpp')
-rw-r--r--fileinfoitem.cpp133
1 files changed, 133 insertions, 0 deletions
diff --git a/fileinfoitem.cpp b/fileinfoitem.cpp
new file mode 100644
index 0000000..0d2e605
--- /dev/null
+++ b/fileinfoitem.cpp
@@ -0,0 +1,133 @@
+/*
+ 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.
+*/
+
+#include <QFileInfo>
+#include <QVariant>
+#include <QLocale>
+
+#include "fileinfoitem.h"
+#include "moviemodel.h"
+#include "helper.h"
+
+FileInfoItem::FileInfoItem(const QString &fn, FileInfoItem *parent, QObject *oParent) : QObject(oParent){
+ mParent = parent;
+ mFullFilename = fn;
+ QFileInfo fi(fn);
+ mData << fi.fileName() << QVariant();
+}
+
+FileInfoItem::FileInfoItem(const QList<QVariant> &data, FileInfoItem *parent, QObject *oParent) : QObject(oParent){
+ mParent = parent;
+ mData = data;
+}
+
+FileInfoItem::FileInfoItem(const QString &title, const QModelIndex &index, FileInfoItem *parent, QObject *oParent) : QObject(oParent){
+ mIndex = index;
+ mParent = parent;
+ mData << title << QVariant();
+}
+
+FileInfoItem::~FileInfoItem() {
+ qDeleteAll(mChildren);
+ mChildren.clear();
+}
+
+FileInfoItem* FileInfoItem::child(int row){
+ return mChildren.value(row);
+}
+
+int FileInfoItem::childCount() const {
+ return mChildren.count();
+}
+
+int FileInfoItem::row() const {
+ if(mParent){
+ return mParent->mChildren.indexOf(const_cast<FileInfoItem*>(this));
+ }
+ return 0;
+}
+
+int FileInfoItem::columnCount() const {
+ return mData.count();
+}
+
+QVariant FileInfoItem::data(int column) const {
+ return mData.value(column);
+}
+
+FileInfoItem *FileInfoItem::parent() {
+ return mParent;
+}
+
+void FileInfoItem::populate() {
+ QFileInfo fi(mFullFilename);
+ QList<QVariant> d1;
+ d1 << tr("Size") << fi.size();
+ FileInfoItem *fi1 = new FileInfoItem(d1, this);
+ mChildren.append(fi1);
+ QString md5sum = Helper::md5Sum(mFullFilename);
+ QList<QVariant> d2;
+ d2 << tr("MD5-Sum") << md5sum;
+ FileInfoItem *fi2 = new FileInfoItem(d2, this);
+ mChildren.append(fi2);
+ QString mt = Helper::mimeType(mFullFilename);
+ QList<QVariant> d3;
+ d3 << tr("MIME-Type") << mt;
+ FileInfoItem *fi3 = new FileInfoItem(d3, this);
+ mChildren.append(fi3);
+}
+
+void FileInfoItem::populateFromIndex() {
+ const MovieModel *movieModel = static_cast<const MovieModel*>(mIndex.model());
+ Q_ASSERT(movieModel);
+ QLocale l;
+ QModelIndex idx = movieModel->index(mIndex.row(), MovieItem::Title, QModelIndex());
+ QList<QVariant> data1;
+ data1 << tr("Filename") << idx.data(MovieModel::FilenameRole);
+ FileInfoItem *fi1 = new FileInfoItem(data1, this);
+ mChildren.append(fi1);
+ QList<QVariant> data2;
+ data2 << tr("MD5-Sum") << idx.data(MovieModel::Md5Role);
+ FileInfoItem *fi2 = new FileInfoItem(data2, this);
+ mChildren.append(fi2);
+ QList<QVariant> data3;
+ data3 << tr("Size") << l.toString(idx.data(MovieModel::SizeRole).toLongLong());
+ FileInfoItem *fi3 = new FileInfoItem(data3, this);
+ mChildren.append(fi3);
+ QList<QVariant> data4;
+ data4 << tr("Genre") << idx.data(MovieModel::GenreRole);
+ FileInfoItem *fi4 = new FileInfoItem(data4, this);
+ mChildren.append(fi4);
+ QList<QVariant> data5;
+ data5 << tr("Quality") << idx.data(MovieModel::QualityRole);
+ FileInfoItem *fi5 = new FileInfoItem(data5, this);
+ mChildren.append(fi5);
+ QList<QVariant> data6;
+ data6 << tr("DVD");
+ int dvd = idx.data(MovieModel::DvdRole).toInt();
+ if(dvd != -1){
+ QString nr = QString("#%1").arg(dvd);
+ data6 << nr;
+ }else{
+ data6 << tr("(local)");
+ }
+ FileInfoItem *fi6 = new FileInfoItem(data6, this);
+ mChildren.append(fi6);
+}
+
+void FileInfoItem::appendChild(FileInfoItem *item) {
+ mChildren.append(item);
+}
+
+void FileInfoItem::removeChild(int row) {
+ if(row >= mChildren.count()){
+ return;
+ }
+ FileInfoItem *item = mChildren.takeAt(row);
+ delete item;
+}
+