summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--actorwidget.cpp2
-rw-r--r--archivefilewidget.cpp37
-rw-r--r--archivefilewidget.h5
-rw-r--r--archiveviewwidget.cpp2
-rw-r--r--configurationdialog.cpp1
-rw-r--r--editarchiveitemdialog.cpp41
-rw-r--r--editarchiveitemdialog.h6
-rw-r--r--fileinfoitem.cpp133
-rw-r--r--fileinfoitem.h41
-rw-r--r--fileinfomodel.cpp185
-rw-r--r--fileinfomodel.h47
-rw-r--r--filesystemfileproxy.cpp1
-rw-r--r--filesystemwidget.cpp2
-rw-r--r--fileview.cpp1
-rw-r--r--listmodel.cpp1
-rw-r--r--movieitem.cpp4
-rw-r--r--shemov.cpp2
-rw-r--r--shemov.pro8
18 files changed, 445 insertions, 74 deletions
diff --git a/actorwidget.cpp b/actorwidget.cpp
index a62331e..c887088 100644
--- a/actorwidget.cpp
+++ b/actorwidget.cpp
@@ -11,8 +11,6 @@
#include <QTreeView>
#include <QLabel>
-#include <QDebug>
-
#include "actorwidget.h"
#include "actormodel.h"
diff --git a/archivefilewidget.cpp b/archivefilewidget.cpp
index f9ca5f8..8ddad26 100644
--- a/archivefilewidget.cpp
+++ b/archivefilewidget.cpp
@@ -16,26 +16,25 @@
#include <QLocale>
#include <QFileInfo>
#include <QScrollArea>
-
-#include <QDebug>
+#include <QTreeView>
#include "archivefilewidget.h"
#include "moviemodel.h"
#include "listmodel.h"
#include "helper.h"
#include "actorwidget.h"
+#include "fileinfomodel.h"
ArchiveFileWidget::ArchiveFileWidget(MovieModel *model, QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) , mModel(model){
QVBoxLayout *mainLayout = new QVBoxLayout;
//selected files
QLabel *l1 = new QLabel(tr("Selected files:"));
- mFiles = new QTextEdit;
- mFiles->setReadOnly(true);
- mFiles->setFont(QFont("Courier new"));
- mFiles->setTextColor(QColor(Qt::red));
- QScrollArea *sa = new QScrollArea;
- sa->setWidget(mFiles);
+ mFiles = new QTreeView;
+ mFiles->setHeaderHidden(true);
+ mInfoModel = new FileInfoModel(this);
+ mFiles->setModel(mInfoModel);
+
mainLayout->addWidget(l1);
mainLayout->addWidget(mFiles);
@@ -105,22 +104,10 @@ void ArchiveFileWidget::setActorsModel(ListModel *model){
void ArchiveFileWidget::setFiles(const QStringList &files){
mFileList = files;
- mFiles->clear();
- mMd5Sums.clear();
- QLocale l;
- QString html("<html><body style=\"color:#cd0003\">");
- foreach(QString f, files){
- QFileInfo info(f);
- qint64 size = info.size();
- QString md5 = Helper::md5Sum(f);
- QString filename = info.fileName();
- QString mimeType = Helper::mimeType(f);
- QString file = QString("<p>%1</p><ul><li>Size: %2</li><li>MD5-Sum: %3</li><li>Mime Type: %4</li></ul>").arg(filename).arg(l.toString(size)).arg(md5).arg(mimeType);
- html.append(file);
- mMd5Sums.insert(f, md5);
- }
- html.append("</body></html>");
- mFiles->setHtml(html);
+ mInfoModel->clear();
+ mInfoModel->addFiles(files);
+ mFiles->expandAll();
+ mFiles->resizeColumnToContents(0);
mActorWidget->clear();
mTitle->clear();
}
@@ -142,8 +129,6 @@ int ArchiveFileWidget::genreId() const{
int retval(-1);
if(idx.isValid()){
retval = mGenreModel->data(idx, ListModel::IdRole).toInt();
- }else{
- qDebug() << "genreId: invalid";
}
return retval;
}
diff --git a/archivefilewidget.h b/archivefilewidget.h
index 5470460..a3f52c7 100644
--- a/archivefilewidget.h
+++ b/archivefilewidget.h
@@ -21,6 +21,8 @@ class QStringList;
class MovieModel;
class ListModel;
class ActorWidget;
+class QTreeView;
+class FileInfoModel;
class ArchiveFileWidget : public QWidget {
Q_OBJECT
@@ -54,7 +56,8 @@ class ArchiveFileWidget : public QWidget {
MovieModel *mModel;
ListModel *mGenreModel;
ListModel *mActorsModel;
- QTextEdit *mFiles;
+ FileInfoModel *mInfoModel;
+ QTreeView *mFiles;
ActorWidget *mActorWidget;
QComboBox *mGenre;
QSpinBox *mQuality;
diff --git a/archiveviewwidget.cpp b/archiveviewwidget.cpp
index 810b133..af27041 100644
--- a/archiveviewwidget.cpp
+++ b/archiveviewwidget.cpp
@@ -19,8 +19,6 @@
#include <QDir>
#include <QRegExp>
-#include <QDebug>
-
#include "archiveviewwidget.h"
#include "archivefileview.h"
#include "moviemodel.h"
diff --git a/configurationdialog.cpp b/configurationdialog.cpp
index 617a52e..6c31232 100644
--- a/configurationdialog.cpp
+++ b/configurationdialog.cpp
@@ -18,7 +18,6 @@
#include <QApplication>
#include <QSettings>
#include <QRegExp>
-#include <QDebug>
#include "configurationdialog.h"
diff --git a/editarchiveitemdialog.cpp b/editarchiveitemdialog.cpp
index f24ad5f..20641a5 100644
--- a/editarchiveitemdialog.cpp
+++ b/editarchiveitemdialog.cpp
@@ -18,7 +18,8 @@
#include <QSplitter>
#include <QApplication>
#include <QModelIndex>
-#include <QLocale>
+//#include <QLocale>
+#include <QTreeView>
#include "editarchiveitemdialog.h"
#include "listmodel.h"
@@ -26,6 +27,7 @@
#include "listeditor.h"
#include "covereditor.h"
#include "coveritem.h"
+#include "fileinfomodel.h"
EditArchiveItemDialog::EditArchiveItemDialog(ListModel *genre, ListModel *actors, MovieModel *movies, QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mGenreModel(genre), mActorsModel(actors), mMovieModel(movies){
QWidget *w1 = new QWidget;
@@ -34,9 +36,12 @@ EditArchiveItemDialog::EditArchiveItemDialog(ListModel *genre, ListModel *actors
//movie information
QLabel *l1 = new QLabel(tr("Movie information"));
w1Layout->addWidget(l1);
- mMovieInfo = new QTextEdit;
+ /*mMovieInfo = new QTextEdit;
mMovieInfo->setReadOnly(true);
- mMovieInfo->setFont(QFont("Courier new"));
+ mMovieInfo->setFont(QFont("Courier new"));*/
+ mMovieInfo = new QTreeView;
+ mFileInfoModel = new FileInfoModel;
+ mMovieInfo->setModel(mFileInfoModel);
w1Layout->addWidget(mMovieInfo);
//actors
@@ -168,44 +173,24 @@ void EditArchiveItemDialog::setActors(){
}
void EditArchiveItemDialog::setMovieInfo(const QModelIndex &movie){
- QString html("<html><body style=\"color:#CD0003\"><ul>");
QModelIndex idx = mMovieModel->index(movie.row(), MovieItem::Title, QModelIndex());
- html.append(QString(tr("<li>Title: %1</li>")).arg(idx.data().toString()));
mTitle->setText(idx.data(MovieModel::TitleBaseRole).toString());
- html.append(QString(tr("<li>Filename: %1</li>")).arg(idx.data(MovieModel::FilenameRole).toString()));
- html.append(QString(tr("<li>Md5-Sum: %1</li>")).arg(idx.data(MovieModel::Md5Role).toString()));
- QLocale l;
- html.append(QString(tr("<li>Size: %1</li>")).arg(l.toString(idx.data(MovieModel::SizeRole).toLongLong())));
- html.append(QString(tr("<li>Genre: %1</li>")).arg(idx.data(MovieModel::GenreRole).toString()));
int genreIndex = mGenre->findText(idx.data().toString());
if(genreIndex != -1){
mGenre->setCurrentIndex(genreIndex);
}
- html.append(QString(tr("<li>Quality: %1</li>")).arg(l.toString(idx.data(MovieModel::QualityRole).toInt())));
mQuality->setValue(idx.data(MovieModel::QualityRole).toInt());
int dvd = idx.data(MovieModel::DvdRole).toInt();
- if(dvd != -1){
- html.append(QString(tr("<li>On DVD %1</li>")).arg(l.toString(dvd)));
- }else{
- html.append(QString(tr("<li>Not on DVD</li>")));
- }
mDvd->setValue(dvd);
int seriesno = idx.data(MovieModel::SeriesNoRole).toInt();
- if(seriesno == -1){
- html.append(QString(tr("<li>First or signle part</li>")));
- }else{
- html.append(QString(tr("<li>Part %1 in series</li>")).arg(QString::number(seriesno)));
- }
mSeriesNo->setValue(seriesno);
int partno = idx.data(MovieModel::PartNoRole).toInt();
- if(partno == -1){
- html.append(QString(tr("<li>Multipart: no</li>")));
- }else{
- html.append(QString(tr("<li>Multipart: part %1")).arg(QString::number(partno)));
- }
mPartNo->setValue(partno);
- html.append("</ul></body></html>");
- mMovieInfo->setHtml(html);
+ mFileInfoModel->clear();
+ mFileInfoModel->addIndex(idx.data().toString(), movie);
+ mMovieInfo->setHeaderHidden(true);
+ mMovieInfo->resizeColumnToContents(0);
+ mMovieInfo->expandAll();
}
void EditArchiveItemDialog::addActor(){
diff --git a/editarchiveitemdialog.h b/editarchiveitemdialog.h
index e4e041c..c436c6c 100644
--- a/editarchiveitemdialog.h
+++ b/editarchiveitemdialog.h
@@ -20,6 +20,8 @@ class QSpinBox;
class QTextEdit;
class QPushButton;
class QModelIndex;
+class QTreeView;
+class FileInfoModel;
class EditArchiveItemDialog : public QDialog {
Q_OBJECT
@@ -39,10 +41,12 @@ class EditArchiveItemDialog : public QDialog {
void setMovieInfo(const QModelIndex &movie);
ListModel *mGenreModel;
ListModel *mActorsModel;
+ FileInfoModel *mFileInfoModel;
MovieModel *mMovieModel;
QComboBox *mGenre;
QComboBox *mActors;
- QTextEdit *mMovieInfo;
+ //QTextEdit *mMovieInfo;
+ QTreeView *mMovieInfo;
QTextEdit *mActorsDisplay;
QSpinBox *mQuality;
QSpinBox *mSeriesNo;
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;
+}
+
diff --git a/fileinfoitem.h b/fileinfoitem.h
new file mode 100644
index 0000000..067fd06
--- /dev/null
+++ b/fileinfoitem.h
@@ -0,0 +1,41 @@
+/*
+ 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.
+*/
+
+#ifndef FILEINFOITEM_H
+#define FILEINFOITEM_H
+
+#include <QObject>
+#include <QModelIndex>
+
+class FileInfoItem : public QObject {
+ Q_OBJECT
+ public:
+ FileInfoItem(const QString &fn, FileInfoItem *parent = 0, QObject *oParent = 0);
+ FileInfoItem(const QList<QVariant> &data, FileInfoItem *parent, QObject *oParent = 0);
+ FileInfoItem(const QString &title, const QModelIndex &index, FileInfoItem *parent, QObject *oParent = 0);
+ virtual ~FileInfoItem();
+ FileInfoItem *child(int row);
+ int childCount() const;
+ int row() const;
+ int columnCount() const;
+ QVariant data(int column) const;
+ FileInfoItem *parent();
+ void populate();
+ void populateFromIndex();
+ void appendChild(FileInfoItem *item);
+ void removeChild(int row);
+
+ private:
+ FileInfoItem *mParent;
+ QList<QVariant> mData;
+ QString mFullFilename;
+ QModelIndex mIndex;
+ QList<FileInfoItem*> mChildren;
+};
+
+#endif
+
diff --git a/fileinfomodel.cpp b/fileinfomodel.cpp
new file mode 100644
index 0000000..681f1a1
--- /dev/null
+++ b/fileinfomodel.cpp
@@ -0,0 +1,185 @@
+/*
+ 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 <QIcon>
+#include <QColor>
+#include <QPalette>
+#include <QApplication>
+
+#include "fileinfomodel.h"
+#include "fileinfoitem.h"
+
+FileInfoModel::FileInfoModel(QObject *parent) : QAbstractItemModel(parent) {
+ QList<QVariant> rootData;
+ rootData << QVariant() << QVariant();
+ mRootItem = new FileInfoItem(rootData, 0);
+}
+
+FileInfoModel::~FileInfoModel() {
+ delete mRootItem;
+}
+
+QModelIndex FileInfoModel::index(int row, int column, const QModelIndex &parent) const{
+ if(!hasIndex(row, column, parent)){
+ return QModelIndex();
+ }
+ FileInfoItem *parentItem;
+ if(!parent.isValid()){
+ parentItem = mRootItem;
+ }else{
+ parentItem = static_cast<FileInfoItem*>(parent.internalPointer());
+ }
+ FileInfoItem *childItem = parentItem->child(row);
+ if(childItem){
+ return createIndex(row, column, childItem);
+ }
+ return QModelIndex();
+}
+
+QModelIndex FileInfoModel::parent(const QModelIndex &index) const {
+ if(!index.isValid()){
+ return QModelIndex();
+ }
+ FileInfoItem *childItem = static_cast<FileInfoItem*>(index.internalPointer());
+ Q_ASSERT(childItem);
+ if(!childItem){
+ return QModelIndex();
+ }
+ FileInfoItem *parentItem = childItem->parent();
+ if(parentItem == mRootItem){
+ return QModelIndex();
+ }
+ if(parentItem->row() == -1){
+ return QModelIndex();
+ }
+ return createIndex(parentItem->row(), 0, parentItem);
+}
+
+int FileInfoModel::rowCount(const QModelIndex &parent) const {
+ FileInfoItem *parentItem;
+ if(parent.column() > 0){
+ return 0;
+ }
+ if(!parent.isValid()){
+ parentItem = mRootItem;
+ }else{
+ parentItem = static_cast<FileInfoItem*>(parent.internalPointer());
+ }
+ return parentItem->childCount();
+}
+
+int FileInfoModel::columnCount(const QModelIndex &parent) const {
+ if(!parent.isValid()){
+ return mRootItem->columnCount();
+ }
+ FileInfoItem *item = static_cast<FileInfoItem*>(parent.internalPointer());
+ return item->columnCount();
+}
+
+QVariant FileInfoModel::data(const QModelIndex &index, int role) const {
+ if(!index.isValid()){
+ return QVariant();
+ }
+ FileInfoItem *item = static_cast<FileInfoItem*>(index.internalPointer());
+ switch(role) {
+ case Qt::DisplayRole:
+ return item->data(index.column());
+ break;
+ case Qt::DecorationRole: {
+ if((item->parent() == mRootItem) && (index.column() == 0)){
+ return QIcon(":/dildo.png");
+ }
+ break;
+ }
+ case Qt::ForegroundRole:
+ if((item->parent() == mRootItem) && (index.column() == 0)){
+ qApp->palette().color(QPalette::WindowText);
+ }
+ return Qt::blue;
+ break;
+ }
+ return QVariant();
+}
+
+Qt::ItemFlags FileInfoModel::flags(const QModelIndex &) const {
+ return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
+}
+
+QVariant FileInfoModel::headerData(int, Qt::Orientation, int) const {
+ return QVariant();
+}
+
+void FileInfoModel::addFiles(const QStringList &files){
+ mCurrentIndex = QModelIndex();
+ mTitle = QString();
+ mMode = File;
+ mCurrentFiles = files;
+ insertRows(0, files.count(), createIndex(0, 0, mRootItem));
+}
+
+void FileInfoModel::addIndex(const QString &title, const QModelIndex &idx){
+ mCurrentFiles.clear();
+ mMode = Index;
+ mCurrentIndex = idx;
+ mTitle = title;
+ insertRows(0, 1, createIndex(0, 0, mRootItem));
+}
+
+bool FileInfoModel::insertRows(int row, int count, const QModelIndex &parent){
+ if(mMode == File){
+ if(count != mCurrentFiles.count()){
+ return false;
+ }
+ }else{
+ if((count != 1) || !mCurrentIndex.isValid()){
+ return false;
+ }
+ }
+ beginInsertRows(parent, row, row + count - 1);
+ int i(0), j(0);
+ FileInfoItem *p = static_cast<FileInfoItem*>(parent.internalPointer());
+ if(!p){
+ p = mRootItem;
+ }
+ for(i = row, j = 0; i < (row + count); ++i, ++j){
+ FileInfoItem *item = 0;
+ if(mMode == File){
+ item = new FileInfoItem(mCurrentFiles.at(j), p);
+ item->populate();
+ }else{
+ item = new FileInfoItem(mTitle, mCurrentIndex, p);
+ item->populateFromIndex();
+ }
+ p->appendChild(item);
+ }
+ endInsertRows();
+ emit layoutChanged();
+ mCurrentFiles.clear();
+ return true;
+}
+
+bool FileInfoModel::removeRows(int row, int count, const QModelIndex &parent){
+ FileInfoItem *item = static_cast<FileInfoItem*>(parent.internalPointer());
+ if(!item){
+ item = mRootItem;
+ }
+ if(((row + count - 1) >= item->childCount()) || (count == 0)) {
+ return false;
+ }
+ beginRemoveRows(parent, row, row + (count - 1));
+ for(int i = row + count; i > row; --i){
+ item->removeChild(i - 1);
+ }
+ endRemoveRows();
+ emit layoutChanged();
+ return true;
+}
+
+void FileInfoModel::clear(){
+ removeRows(0, mRootItem->childCount(), QModelIndex());
+}
+
diff --git a/fileinfomodel.h b/fileinfomodel.h
new file mode 100644
index 0000000..326a88e
--- /dev/null
+++ b/fileinfomodel.h
@@ -0,0 +1,47 @@
+/*
+ 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.
+*/
+
+#ifndef FILEINFOMODEL_H
+#define FILEINFOMODEL_H
+
+#include <QAbstractItemModel>
+#include <QStringList>
+
+class FileInfoItem;
+
+class FileInfoModel : public QAbstractItemModel {
+ Q_OBJECT
+ public:
+ enum Mode { File, Index };
+ FileInfoModel(QObject *parent = 0);
+ virtual ~FileInfoModel();
+ QModelIndex index(int row, int column, const QModelIndex &parent) const;
+ QModelIndex parent(const QModelIndex &index) const;
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ QVariant headerData(int section, Qt::Orientation o, int role) const;
+ void addFiles(const QStringList &files);
+ void addIndex(const QString &title, const QModelIndex &idx);
+ void clear();
+
+ protected:
+ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+
+ private:
+ FileInfoItem *mRootItem;
+ QStringList mCurrentFiles;
+ QModelIndex mCurrentIndex;
+ QString mTitle;
+ Mode mMode;
+
+};
+
+#endif
+
diff --git a/filesystemfileproxy.cpp b/filesystemfileproxy.cpp
index 2379226..25fb12b 100644
--- a/filesystemfileproxy.cpp
+++ b/filesystemfileproxy.cpp
@@ -8,7 +8,6 @@
#include <QModelIndex>
#include <QVariant>
#include <QDirModel>
-#include <QDebug>
#include <QFileInfo>
#include "filesystemfileproxy.h"
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index e18528c..bd02098 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -22,8 +22,6 @@
#include <QAction>
#include <QRegExp>
-#include <QDebug>
-
#include "filesystemwidget.h"
#include "filesystemdirproxy.h"
#include "fileview.h"
diff --git a/fileview.cpp b/fileview.cpp
index 88cc15c..4e20e47 100644
--- a/fileview.cpp
+++ b/fileview.cpp
@@ -15,7 +15,6 @@
#include <QSortFilterProxyModel>
#include <QAction>
#include <QApplication>
-#include <QDebug>
#include "fileview.h"
#include "messagedialog.h"
diff --git a/listmodel.cpp b/listmodel.cpp
index 71a5040..2f32f1c 100644
--- a/listmodel.cpp
+++ b/listmodel.cpp
@@ -10,7 +10,6 @@
#include <QSqlQuery>
#include <QSqlError>
-#include <QDebug>
#include "listmodel.h"
#include "listitem.h"
diff --git a/movieitem.cpp b/movieitem.cpp
index 46519db..d4760f9 100644
--- a/movieitem.cpp
+++ b/movieitem.cpp
@@ -7,8 +7,6 @@
#include <QSqlQuery>
-#include <QDebug>
-
#include "movieitem.h"
#include "coveritem.h"
#include "helper.h"
@@ -21,7 +19,6 @@ MovieItem::MovieItem(int id, QObject *parent) : QObject(parent), mNumRows(9), m
populate();
setGenreName();
setActors();
- //setSize();
setCovers();
}
}
@@ -31,7 +28,6 @@ void MovieItem::setId(int id){
populate();
setGenreName();
setActors();
- //setSize();
setCovers();
}
diff --git a/shemov.cpp b/shemov.cpp
index e45cbb7..b4b7327 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -26,8 +26,6 @@
#include <QLocale>
#include <sys/vfs.h>
-#include <QDebug>
-
#include "shemov.h"
#include "filesystemwidget.h"
#include "fileview.h"
diff --git a/shemov.pro b/shemov.pro
index 1e7942c..0a62789 100644
--- a/shemov.pro
+++ b/shemov.pro
@@ -32,7 +32,9 @@ textenterdialog.cpp \
moviepropertiesdialog.cpp \
statisticsdialog.cpp \
actorwidget.cpp \
-actormodel.cpp
+actormodel.cpp \
+fileinfoitem.cpp \
+fileinfomodel.cpp
HEADERS = listitem.h \
listmodel.h \
movieitem.h \
@@ -63,7 +65,9 @@ textenterdialog.h \
moviepropertiesdialog.h \
statisticsdialog.h \
actorwidget.h \
-actormodel.h
+actormodel.h \
+fileinfoitem.h \
+fileinfomodel.h
LIBS += -lmagic
LIBS += -lcryptopp
INCLUDEPATH += /usr/include/cryptopp