diff options
author | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-11-08 20:55:40 +0000 |
---|---|---|
committer | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-11-08 20:55:40 +0000 |
commit | 7e4fd320c0c74bc45e60de18ac5d2b656aa4d821 (patch) | |
tree | 30ec693bbb2ebfaf9e8576bd4b2d78ce0a817d4c /fileinfoitem.cpp | |
parent | cb094b007ec5b7c197a7df502a778a2ce919128f (diff) | |
download | SheMov-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.cpp | 133 |
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; +} + |