diff options
author | Arno <am@disconnect.de> | 2010-07-31 16:26:10 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-07-31 16:26:10 +0200 |
commit | 8eba6e7f033617f3e7ea3bd9913105df0de74ae2 (patch) | |
tree | 8d4b93a4a686e6e57526b77033bb985fa9545036 /actormodel.cpp | |
parent | 6d3b28f9b12964b161b5a7ac0038435cfdd6e27b (diff) | |
download | SheMov-8eba6e7f033617f3e7ea3bd9913105df0de74ae2.tar.gz SheMov-8eba6e7f033617f3e7ea3bd9913105df0de74ae2.tar.bz2 SheMov-8eba6e7f033617f3e7ea3bd9913105df0de74ae2.zip |
Implement FilePropertiesDialog
Implemented a dialog for file properties. When the mime type says it's a
video, fork ffprobe to read the properties of all streams and show them
in a QTreeView powered by a SmTreeModel. If the mime type is image, use
QImage to read some properties and show them in the same dialog.
This commit introduces the new class FilePropertiesDialog. I also had to
implement a copy constructor for SmTreeItem. It obsoletes classes
ActorWidget, ActorModel and MoviePropertiesDialog.
Diffstat (limited to 'actormodel.cpp')
-rw-r--r-- | actormodel.cpp | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/actormodel.cpp b/actormodel.cpp deleted file mode 100644 index 14edcf8..0000000 --- a/actormodel.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - 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 "actormodel.h" - -ActorModel::ActorModel() {}; - -QModelIndex ActorModel::index(int row, int column, const QModelIndex &) const { - if((column != 0) || (row >= mItems.size()) || row < 0){ - return QModelIndex(); - } - return createIndex(row, 0, 0); -} - -QModelIndex ActorModel::index(const QVariant &item) const { - if(item == QVariant()){ - return QModelIndex(); - } - QString sItem = item.toString(); - for(int i = 0; i < mItems.size(); ++i){ - if(mItems.at(i) == sItem){ - return createIndex(i, 0, 0); - } - } - return QModelIndex(); -} - -int ActorModel::rowCount(const QModelIndex &) const { - return mItems.size(); -} - -QVariant ActorModel::data(const QModelIndex &index, int role) const { - if(!index.isValid() || (index.column() > 0) || (index.row() > mItems.size())){ - return QVariant(); - } - switch (role) { - case Qt::DisplayRole: - return mItems.at(index.row()); - break; - case Qt::DecorationRole: - return QIcon(":/dildo.png"); - break; - } - return QVariant(); -} - -bool ActorModel::insertRows(int row, int count, const QModelIndex &){ - beginInsertRows(QModelIndex(), row, row + count - 1); - for(int i = row; i < (row + count); ++i){ - mItems.insert(i, QString()); - } - endInsertRows(); - return true; -} - -bool ActorModel::removeRows(int row, int count, const QModelIndex &){ - if((row > mItems.size()) || ((row + count) > mItems.size())){ - return false; - } - beginRemoveRows(QModelIndex(), row, row + (count - 1)); - for(int i = row; i < (row + count); ++i){ - mItems.removeAt(i); - } - endRemoveRows(); - return true; -} - -bool ActorModel::setData(const QModelIndex &idx, const QVariant &data, int role){ - if(!idx.isValid() || (idx.column() != 0) || (role != Qt::EditRole)){ - return false; - } - mItems[idx.row()] = data.toString(); - qSort(mItems); - dataChanged(index(0, 0), index((mItems.size() - 1), 0)); - return true; -} - -bool ActorModel::addItem(const QVariant &data){ - if(mItems.contains(data.toString())){ - return false; - } - bool success = false; - if(insertRows(0, 1, QModelIndex())){ - QModelIndex idx = index(0, 0); - if(idx.isValid()){ - success = setData(idx, data, Qt::EditRole); - } - } - return success; -} - -bool ActorModel::removeItem(const QVariant &data){ - QModelIndex idx = index(data); - if(!idx.isValid()){ - return false; - } - bool retval = removeRows(idx.row(), 1, QModelIndex()); - if(retval){ - int lidx = mItems.indexOf(data.toString()); - if(lidx != -1){ - mItems.removeAt(lidx); - } - } - return retval; -} - -void ActorModel::clear() { - removeRows(0, mItems.size(), QModelIndex()); - mItems.clear(); -} - |