From 76eb44f51faee92476ed509b700be9bc30be08a7 Mon Sep 17 00:00:00 2001 From: ZackaryWelch Date: Wed, 25 Oct 2017 17:09:02 -0400 Subject: Fixed image previews with video thumbnails --- src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp | 42 ++++++++++++----------- src-qt5/desktop-utils/lumina-fm/BrowserWidget.h | 4 ++- 2 files changed, 25 insertions(+), 21 deletions(-) (limited to 'src-qt5/desktop-utils/lumina-fm') diff --git a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp index dc00e92f..0384d892 100644 --- a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp +++ b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp @@ -12,7 +12,6 @@ #include #include -#include BrowserWidget::BrowserWidget(QString objID, QWidget *parent) : QWidget(parent){ //Setup the Widget/UI @@ -39,6 +38,7 @@ BrowserWidget::~BrowserWidget(){ } void BrowserWidget::changeDirectory(QString dir){ + qDebug() << "changing"; videoMap.clear(); if(BROWSER->currentDirectory()==dir){ return; } //already on this directory //qDebug() << "Change Directory:" << dir << historyList; @@ -111,6 +111,18 @@ bool BrowserWidget::hasHiddenFiles(){ } void BrowserWidget::showThumbnails(bool show){ + qDebug() << show << videoMap.size(); + for(QString file : videoMap.uniqueKeys()) { + QTreeWidgetItem *it = videoMap[file].first; + LVideoWidget *widget = videoMap[file].second; + if(show) { + widget->disableIcons(); + treeWidget->setItemWidget(it, 0, widget); + }else{ + widget->enableIcons(); + treeWidget->setItemWidget(it, 0, widget); + } + } BROWSER->showThumbnails(show); } @@ -128,8 +140,8 @@ void BrowserWidget::setThumbnailSize(int px){ treeWidget->setIconSize(QSize(px,px)); } for(QString file : videoMap.uniqueKeys()) { - QTreeWidgetItem *it = videoMap[file]; - LVideoWidget *widget = (LVideoWidget*)treeWidget->itemWidget(it, 0); + QTreeWidgetItem *it = videoMap[file].first; + LVideoWidget *widget = videoMap[file].second; widget->setIconSize(treeWidget->iconSize()); treeWidget->setItemWidget(it, 0, widget); } @@ -334,28 +346,18 @@ void BrowserWidget::itemDataAvailable(QIcon ico, LFileInfo *info){ treeWidget->addTopLevelItem(it); } }else{ - if(!BROWSER->showingThumbnails() && videoMap.size() !=0) { - for(QString file : videoMap.keys()) { - QTreeWidgetItem *it = videoMap[file]; - treeWidget->removeItemWidget(it, 0); - } - videoMap.clear(); - } if( ! treeWidget->findItems(info->fileName(), Qt::MatchExactly, 0).isEmpty() ) { it = treeWidget->findItems(info->fileName(), Qt::MatchExactly, 0).first(); - }else if(info->isVideo() && videoMap.find(info->absoluteFilePath()) == videoMap.end() && BROWSER->showingThumbnails()){ + }else if(info->isVideo() && videoMap.find(info->absoluteFilePath()) == videoMap.end()) { it = new CQTreeWidgetItem(treeWidget); treeWidget->addTopLevelItem(it); LVideoWidget *widget = new LVideoWidget(info->absoluteFilePath(), treeWidget->iconSize(), treeWidget); - videoMap.insert(info->absoluteFilePath(), it); + videoMap.insert(info->absoluteFilePath(), QPair(it, widget)); treeWidget->setItemWidget(it, 0, widget); - }else if(info->isVideo() && BROWSER->showingThumbnails()){ - it = videoMap[info->absoluteFilePath()]; - if(treeWidget->itemWidget(it, 0) != 0) { - LVideoWidget *widget = (LVideoWidget*)treeWidget->itemWidget(it, 0); - widget->setIconSize(treeWidget->iconSize()); - treeWidget->setItemWidget(it, 0, widget); - } + }else if(info->isVideo()) { + it = videoMap[info->absoluteFilePath()].first; + LVideoWidget *widget = videoMap[info->absoluteFilePath()].second; + widget->setIconSize(treeWidget->iconSize()); }else{ it = new CQTreeWidgetItem(treeWidget); treeWidget->addTopLevelItem(it); @@ -363,7 +365,7 @@ void BrowserWidget::itemDataAvailable(QIcon ico, LFileInfo *info){ } } //Now set/update all the data - if(!info->isVideo() || (info->isVideo() && !BROWSER->showingThumbnails())) + if(!info->isVideo()) it->setIcon(0, ico); it->setText(1, info->isDir() ? "" : LUtils::BytesToDisplaySize(info->size()) ); //size (1) it->setText(2, info->mimetype() ); //type (2) diff --git a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.h b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.h index 585aaa82..f041280c 100644 --- a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.h +++ b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.h @@ -12,6 +12,8 @@ #include #include +#include + #include "Browser.h" #include "widgets/DDListWidgets.h" @@ -23,7 +25,7 @@ private: int numItems; //used for checking if all the items have loaded yet QString ID, statustip; QStringList date_format, historyList; - QMap videoMap; + QMap> videoMap; bool freshload; //The drag and drop brower widgets -- cgit From 1e4bb99764f6012260adb4192604a392bd62bf0a Mon Sep 17 00:00:00 2001 From: ZackaryWelch Date: Wed, 25 Oct 2017 18:23:38 -0400 Subject: Fixed issues with previews and LVideoWidget sizing --- src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src-qt5/desktop-utils/lumina-fm') diff --git a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp index 0384d892..0983a7b4 100644 --- a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp +++ b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp @@ -38,7 +38,6 @@ BrowserWidget::~BrowserWidget(){ } void BrowserWidget::changeDirectory(QString dir){ - qDebug() << "changing"; videoMap.clear(); if(BROWSER->currentDirectory()==dir){ return; } //already on this directory //qDebug() << "Change Directory:" << dir << historyList; @@ -116,10 +115,10 @@ void BrowserWidget::showThumbnails(bool show){ QTreeWidgetItem *it = videoMap[file].first; LVideoWidget *widget = videoMap[file].second; if(show) { - widget->disableIcons(); + widget->enableIcons(); treeWidget->setItemWidget(it, 0, widget); }else{ - widget->enableIcons(); + widget->disableIcons(); treeWidget->setItemWidget(it, 0, widget); } } @@ -351,13 +350,14 @@ void BrowserWidget::itemDataAvailable(QIcon ico, LFileInfo *info){ }else if(info->isVideo() && videoMap.find(info->absoluteFilePath()) == videoMap.end()) { it = new CQTreeWidgetItem(treeWidget); treeWidget->addTopLevelItem(it); - LVideoWidget *widget = new LVideoWidget(info->absoluteFilePath(), treeWidget->iconSize(), treeWidget); + LVideoWidget *widget = new LVideoWidget(info->absoluteFilePath(), treeWidget->iconSize(), hasThumbnails(), treeWidget); videoMap.insert(info->absoluteFilePath(), QPair(it, widget)); treeWidget->setItemWidget(it, 0, widget); }else if(info->isVideo()) { it = videoMap[info->absoluteFilePath()].first; LVideoWidget *widget = videoMap[info->absoluteFilePath()].second; widget->setIconSize(treeWidget->iconSize()); + treeWidget->setItemWidget(it, 0, widget); }else{ it = new CQTreeWidgetItem(treeWidget); treeWidget->addTopLevelItem(it); -- cgit