summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fswidget.cpp17
-rw-r--r--helper.cpp18
-rw-r--r--helper.h1
3 files changed, 34 insertions, 2 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index 8423450..658b7ed 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -155,24 +155,29 @@ void FSWidget::removeItem(QComboBox *cb){
void FSWidget::gatherData(const QString &curDir){
mFileView->setSortingEnabled(false);
+ mFileView->setRootIsDecorated(false);
mModel->clear();
QStandardItem *root = mModel->invisibleRootItem();
QMimeDatabase mimedb;
mModel->setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("MIME") << tr("Size") << tr("Duration") << tr("MD5"));
+ QIcon videoIcon = Helper::icon(QColor(255,85,255), 'M');
+ QIcon imageIcon = Helper::icon(QColor(255,85,255), 'P');
+ QIcon otherIcon = Helper::icon(QColor(255,85,255), 'O');
+ QBrush blackBrush(Qt::black);
QDirIterator it(curDir, QDir::Files);
mFileView->setUpdatesEnabled(false);
while(it.hasNext()){
QFileInfo fi = it.next();
QMimeType mimeType = mimedb.mimeTypeForFile(fi);
+ QString mimeName = mimeType.name();
qint64 seconds = 0;
Helper::Duration dur;
QString durStr(tr("n/a"));
QLocale l;
QString size = l.toString(fi.size());
QString md5 = Helper::md5Sum(fi.absoluteFilePath());
- QIcon i(":/huge_bra.png");
- if(mimeType.name().startsWith("video")){
+ if(mimeName.startsWith("video")){
QJsonDocument jDoc = Helper::streamData(fi.absoluteFilePath());
QJsonObject jObj = jDoc.object();
QJsonValue durationV = jObj["format"].toObject()["duration"];
@@ -186,9 +191,17 @@ void FSWidget::gatherData(const QString &curDir){
QStandardItem *item = new QStandardItem;
item->setFont(f);
item->setEditable(false);
+ item->setForeground(blackBrush);
items << item;
}
items[0]->setText(fi.fileName());
+ if(mimeName.startsWith("video")){
+ items[0]->setIcon(videoIcon);
+ }else if(mimeName.startsWith("image")){
+ items[0]->setIcon(imageIcon);
+ }else{
+ items[0]->setIcon(otherIcon);
+ }
items[1]->setText(mimeType.name());
items[2]->setText(size);
items[2]->setTextAlignment(Qt::AlignRight);
diff --git a/helper.cpp b/helper.cpp
index b02c71d..5c343bc 100644
--- a/helper.cpp
+++ b/helper.cpp
@@ -432,4 +432,22 @@ namespace Helper {
return retval;
}
+ const QIcon icon(const QColor &bg, const QChar c, bool bold){
+ QImage img(32, 32, QImage::Format_ARGB32);
+ img.fill(QColor(0, 0, 0, 0));
+ QPainter *p = new QPainter(&img);
+ p->setBrush(bg);
+ p->setRenderHint(QPainter::Antialiasing);
+ p->setRenderHint(QPainter::TextAntialiasing);
+ p->setRenderHint(QPainter::SmoothPixmapTransform);
+ QFont f("courier new");
+ f.setPixelSize(30);
+ f.setBold(bold);
+ p->setPen(Qt::white);
+ p->drawEllipse(img.rect());
+ p->setFont(f);
+ p->drawText(img.rect(), Qt::AlignCenter, c);
+ delete p;
+ return QIcon(QPixmap::fromImage(img));
+ }
}
diff --git a/helper.h b/helper.h
index 747f57e..07d1e6d 100644
--- a/helper.h
+++ b/helper.h
@@ -50,6 +50,7 @@ namespace Helper {
QImage snapshot(const QString &path, int where);
QVariant picSize(const QString &path);
PicData convertArchivefileToPng(PicData data);
+ const QIcon icon(const QColor &bg, const QChar c, bool bold = true);
class Duration {
public:
Duration();