/* 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 #include #include #include "delegates.h" #include "smglobals.h" #include "helper.h" /* Delegate for File no. */ QString FileNoDelegate::displayText(const QVariant &value, const QLocale &locale) const{ Q_UNUSED(locale); int no = value.toInt(); if(no){ return QString::number(no); } return QString(); } QWidget *FileNoDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const{ Q_UNUSED(option); QSpinBox *retval = new QSpinBox(parent); int no = index.data().toInt(); retval->setValue(no); return retval; } /* Delegate for file type */ FileTypeDelegate::FileTypeDelegate(QObject *parent) : QStyledItemDelegate(parent){ mFiletypeMap = SmGlobals::instance()->filetypeMap(); } QString FileTypeDelegate::displayText(const QVariant &value, const QLocale &locale) const{ Q_UNUSED(locale); int type = value.toInt(); QString retval = mFiletypeMap.value(type); if(!retval.isEmpty()){ return retval; } return tr("n/a"); } QWidget *FileTypeDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const{ Q_UNUSED(option); Q_UNUSED(index); QComboBox *retval = new QComboBox(parent); retval->addItems(mFiletypeMap.values()); return retval; } /* Delegate for Dvd no. */ QString DvdNoDelegate::displayText(const QVariant &value, const QLocale &locale) const{ Q_UNUSED(locale); int no = value.toInt(); if(no == -1){ return tr("(local)"); }else if(no == -2){ return tr("(origin)"); } QString retval = QString(tr("#%1")).arg(QString::number(no)); return retval; } /* Delegate for size */ QString SizeDelegate::displayText(const QVariant &value, const QLocale &locale) const{ // locale.toString() doesn't work, maybe b/c it's const Q_UNUSED(locale); QLocale l; return l.toString(value.toLongLong()); } /* Delegate for duration */ QString DurationDelegate::displayText(const QVariant &value, const QLocale &locale) const{ Q_UNUSED(locale); if(value.toString().contains("x") || value.toString() == "skipped"){ return value.toString(); } int secs = value.toFloat(); if(secs == 0){ return tr("n/a"); } Helper::Duration dur(secs); return dur.toString(); } /* Delegate for bitrate */ QString BitrateDelegate::displayText(const QVariant &value, const QLocale &locale) const{ Q_UNUSED(locale); int br = value.toInt() / 1000; QString retval = QString("%1 kb/s").arg(QString::number(br)); return retval; } /* Empty delegate */ QString EmptyDelegate::displayText(const QVariant &value, const QLocale &locale) const{ int i = value.toInt(); if(i < 1){ return QString(); } return QStyledItemDelegate::displayText(value, locale); }