summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filesystemfileproxy.cpp4
-rw-r--r--filesystemwidget.cpp2
-rw-r--r--fileview.cpp2
-rw-r--r--smdirmodel.cpp28
-rw-r--r--smdirmodel.h6
-rw-r--r--smdirwatcher.cpp8
-rw-r--r--smtreeview.cpp4
7 files changed, 26 insertions, 28 deletions
diff --git a/filesystemfileproxy.cpp b/filesystemfileproxy.cpp
index 249eeb4..01376da 100644
--- a/filesystemfileproxy.cpp
+++ b/filesystemfileproxy.cpp
@@ -43,12 +43,12 @@ QVariant FilesystemFileProxy::data(const QModelIndex &index, int role) const{
}
}
if(role == Qt::TextAlignmentRole){
- if(index.column() == SmDirModel::Size || index.column() == SmDirModel::Duration || index.column() == SmDirModel::Bitrate){
+ if(index.column() == SmDirModel::Size || index.column() == SmDirModel::DurSize || index.column() == SmDirModel::Bitrate){
return Qt::AlignRight;
}
}
if(role == Qt::FontRole){
- if(index.column() == SmDirModel::Md5sum || index.column() == SmDirModel::Duration || index.column() == SmDirModel::Bitrate){
+ if(index.column() == SmDirModel::Md5sum || index.column() == SmDirModel::DurSize || index.column() == SmDirModel::Bitrate){
return QFont("courier");
}
}
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index 6204727..a28fea3 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -43,7 +43,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar
mIconProvider = new SheMovIconProvider;
mModel->setIconProvider(mIconProvider);
- QStringList fHeaders = QStringList() << tr("Name") << tr("Size") << tr("Type") << tr("Created") << tr("Md5Sum") << tr("Duration") << tr("Bitrate") << tr("Full Path") << tr("Pic Size");
+ QStringList fHeaders = QStringList() << tr("Name") << tr("Size") << tr("Type") << tr("Created") << tr("Md5Sum") << tr("Dur./Size") << tr("Bitrate") << tr("Full Path");
mFileModel = new SmDirModel(fHeaders, this);
connect(mFileModel, SIGNAL(needResize()), this, SLOT(resizeFileView()));
diff --git a/fileview.cpp b/fileview.cpp
index c30a1e5..b6adee0 100644
--- a/fileview.cpp
+++ b/fileview.cpp
@@ -230,7 +230,7 @@ void FileView::selectedFilesChanged(){
Helper::Duration dur;
foreach(QModelIndex i, selected){
selSize += i.data(SmDirModel::SizeRole).toLongLong();
- Helper::Duration curDur = i.data(SmDirModel::DurationRole).value<Helper::Duration>();
+ Helper::Duration curDur = i.data(SmDirModel::DurSizeRole).value<Helper::Duration>();
dur = dur + curDur;
}
emit selectedSize(selSize);
diff --git a/smdirmodel.cpp b/smdirmodel.cpp
index cdec768..8a6c961 100644
--- a/smdirmodel.cpp
+++ b/smdirmodel.cpp
@@ -51,14 +51,12 @@ QVariant SmDirModel::data(const QModelIndex &index, int role) const{
return i->data(Created);
case Md5sumRole:
return i->data(Md5sum);
- case DurationRole:
- return i->data(Duration);
+ case DurSizeRole:
+ return i->data(DurSize);
case BitrateRole:
return i->data(Bitrate);
case FullPathRole:
return i->data(FullPath);
- case PicSizeRole:
- return i->data(PicSize);
case Qt::DecorationRole: {
if(index.column() == 0){
QStringList mime = i->data(Type).toString().split('/');
@@ -72,20 +70,18 @@ QVariant SmDirModel::data(const QModelIndex &index, int role) const{
}
}
case Qt::DisplayRole: {
- if(index.column() == Duration){
- Helper::Duration d = i->data(Duration).value<Helper::Duration>();
- if(d.isNull()){
- return QVariant();
+ if(index.column() == DurSize){
+ QVariant d = i->data(DurSize);
+ if(d.canConvert<Helper::Duration>()){
+ Helper::Duration dur = d.value<Helper::Duration>();
+ return dur.toString();
}
- return d.toString();
- }
- if(index.column() == PicSize){
- QSize size = i->data(PicSize).value<QSize>();
- if(!size.isValid()){
- return QVariant();
+ if(d.canConvert<QSize>()){
+ QSize size = d.value<QSize>();
+ QString retval = QString(tr("%1x%2 px").arg(QString::number(size.width())).arg(QString::number(size.height())));
+ return retval;
}
- QString retval = QString(tr("%1x%2 px").arg(QString::number(size.width())).arg(QString::number(size.height())));
- return retval;
+ return QVariant();
}
}
diff --git a/smdirmodel.h b/smdirmodel.h
index a0d4a9d..fac9041 100644
--- a/smdirmodel.h
+++ b/smdirmodel.h
@@ -22,9 +22,9 @@ class SmDataColletor;
class SmDirModel : public SmTreeModel {
Q_OBJECT
public:
- enum CustomRoles { NameRole = Qt::UserRole + 1, SizeRole = Qt::UserRole + 2, TypeRole = Qt::UserRole + 3, CreatedRole = Qt::UserRole + 4, Md5sumRole = Qt::UserRole + 5, DurationRole = Qt::UserRole + 6, BitrateRole = Qt::UserRole + 7, FullPathRole = Qt::UserRole + 8, PicSizeRole = Qt::UserRole + 9 };
- enum Fields { Name = 0, Size = 1, Type = 2, Created = 3, Md5sum = 4, Duration = 5, Bitrate = 6, FullPath = 7, PicSize = 8 };
- enum { NumFields = 9 };
+ enum CustomRoles { NameRole = Qt::UserRole + 1, SizeRole = Qt::UserRole + 2, TypeRole = Qt::UserRole + 3, CreatedRole = Qt::UserRole + 4, Md5sumRole = Qt::UserRole + 5, DurSizeRole = Qt::UserRole + 6, BitrateRole = Qt::UserRole + 7, FullPathRole = Qt::UserRole + 8 };
+ enum Fields { Name = 0, Size = 1, Type = 2, Created = 3, Md5sum = 4, DurSize = 5, Bitrate = 6, FullPath = 7 };
+ enum { NumFields = 8 };
enum FileDate { Access, Modified, Status };
explicit SmDirModel(const QStringList &headers, QObject *parent = 0);
~SmDirModel();
diff --git a/smdirwatcher.cpp b/smdirwatcher.cpp
index eaff3b3..2db94d9 100644
--- a/smdirwatcher.cpp
+++ b/smdirwatcher.cpp
@@ -144,13 +144,11 @@ const QList<QVariant> SmDataColletor::fileData(const QFileInfo &fi) const{
QList<QVariant> si = QList<QVariant>() << QVariant() << QVariant();
if(mime.startsWith("video")){
si = Helper::duration(fi.absoluteFilePath());
+ }else if(mime.startsWith("image")){
+ QImage img(fi.absoluteFilePath());
+ si[0] = img.size();
}
data << Helper::md5Sum(fi.absoluteFilePath());
data << si << fi.absoluteFilePath();
- if(mime.startsWith("image")){
- data << QImage(fi.absoluteFilePath()).size();
- }else{
- data << QVariant();
- }
return data;
}
diff --git a/smtreeview.cpp b/smtreeview.cpp
index feb64bf..36d7c07 100644
--- a/smtreeview.cpp
+++ b/smtreeview.cpp
@@ -28,6 +28,10 @@ void SmTreeView::readHeaderConfig(){
headerActions.insert(a->data().toInt(), a);
}
for(int i = 0; i < hv->count(); ++i){
+ // don't crash if header count is smaller than saved...
+ if(i >= mHeaderGroup->actions().count()){
+ continue;
+ }
if(!hv->isSectionHidden(i)){
headerActions.value(i)->setChecked(true);
}