Merge pull request #1232 from telans/screenshots-update
ScreenshotsPage fixes
This commit is contained in:
		 TheKodeToad
					TheKodeToad
				
			
				
					committed by
					
						 Sefa Eyeoglu
						Sefa Eyeoglu
					
				
			
			
				
	
			
			
			 Sefa Eyeoglu
						Sefa Eyeoglu
					
				
			
						parent
						
							34be098f12
						
					
				
				
					commit
					3cc68fcea4
				
			| @@ -97,17 +97,13 @@ public: | ||||
|             return; | ||||
|         if ((info.suffix().compare("png", Qt::CaseInsensitive) != 0)) | ||||
|             return; | ||||
|         int tries = 5; | ||||
|         while (tries) | ||||
|         { | ||||
|         if (!m_cache->stale(m_path)) | ||||
|             return; | ||||
|         QImage image(m_path); | ||||
|             if (image.isNull()) | ||||
|             { | ||||
|                 QThread::msleep(500); | ||||
|                 tries--; | ||||
|                 continue; | ||||
|         if (image.isNull()) { | ||||
|             m_resultEmitter.emitResultsFailed(m_path); | ||||
|             qDebug() << "Error loading screenshot: " + m_path + ". Perhaps too large?"; | ||||
|             return; | ||||
|         } | ||||
|         QImage small; | ||||
|         if (image.width() > image.height()) | ||||
| @@ -125,9 +121,6 @@ public: | ||||
|         QIcon icon(QPixmap::fromImage(square)); | ||||
|         m_cache->add(m_path, icon); | ||||
|         m_resultEmitter.emitResultsReady(m_path); | ||||
|             return; | ||||
|         } | ||||
|         m_resultEmitter.emitResultsFailed(m_path); | ||||
|     } | ||||
|     QString m_path; | ||||
|     SharedIconCachePtr m_cache; | ||||
| @@ -146,9 +139,12 @@ public: | ||||
|         m_thumbnailCache = std::make_shared<SharedIconCache>(); | ||||
|         m_thumbnailCache->add("placeholder", APPLICATION->getThemedIcon("screenshot-placeholder")); | ||||
|         connect(&watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString))); | ||||
|         // FIXME: the watched file set is not updated when files are removed | ||||
|     } | ||||
|     virtual ~FilterModel() { m_thumbnailingPool.waitForDone(500); } | ||||
|     virtual ~FilterModel() { | ||||
|         m_thumbnailingPool.clear(); | ||||
|         if (!m_thumbnailingPool.waitForDone(500)) | ||||
|             qDebug() << "Thumbnail pool took longer than 500ms to finish"; | ||||
|     } | ||||
|     virtual QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const | ||||
|     { | ||||
|         auto model = sourceModel(); | ||||
| @@ -215,10 +211,12 @@ private slots: | ||||
|     void fileChanged(QString filepath) | ||||
|     { | ||||
|         m_thumbnailCache->setStale(filepath); | ||||
|         thumbnailImage(filepath); | ||||
|         // reinsert the path... | ||||
|         watcher.removePath(filepath); | ||||
|         if (QFile::exists(filepath)) { | ||||
|             watcher.addPath(filepath); | ||||
|             thumbnailImage(filepath); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| private: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user