diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/assetslibrary')
4 files changed, 13 insertions, 65 deletions
diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp index 8b0a2cda8a..390eca6365 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp @@ -50,31 +50,17 @@ namespace QmlDesigner { -namespace { -ProjectExplorer::Target *activeTarget(ProjectExplorer::Project *project) -{ - if (project) - return project->activeTarget(); - - return {}; -} -} // namespace - -class ImageCacheData +class AssetsLibraryView::ImageCacheData { public: Sqlite::Database database{Utils::PathString{ - Core::ICore::cacheResourcePath("imagecache-v2.db").toString()}, + Core::ICore::cacheResourcePath("fontimagecache.db").toString()}, Sqlite::JournalMode::Wal, Sqlite::LockingMode::Normal}; ImageCacheStorage<Sqlite::Database> storage{database}; - ImageCacheConnectionManager connectionManager; - ImageCacheCollector collector{connectionManager}; ImageCacheFontCollector fontCollector; - ImageCacheGenerator generator{collector, storage}; ImageCacheGenerator fontGenerator{fontCollector, storage}; TimeStampProvider timeStampProvider; - AsynchronousImageCache cache{storage, generator, timeStampProvider}; AsynchronousImageCache asynchronousFontImageCache{storage, fontGenerator, timeStampProvider}; SynchronousImageCache synchronousFontImageCache{storage, timeStampProvider, fontCollector}; }; @@ -94,9 +80,8 @@ bool AssetsLibraryView::hasWidget() const WidgetInfo AssetsLibraryView::widgetInfo() { if (m_widget.isNull()) { - m_widget = new AssetsLibraryWidget{imageCacheData()->cache, - imageCacheData()->asynchronousFontImageCache, - imageCacheData()->synchronousFontImageCache}; + m_widget = new AssetsLibraryWidget{imageCacheData()->asynchronousFontImageCache, + imageCacheData()->synchronousFontImageCache}; } return createWidgetInfo(m_widget.data(), @@ -133,49 +118,18 @@ void AssetsLibraryView::setResourcePath(const QString &resourcePath) m_lastResourcePath = resourcePath; if (m_widget.isNull()) { - m_widget = new AssetsLibraryWidget{m_imageCacheData->cache, - m_imageCacheData->asynchronousFontImageCache, - m_imageCacheData->synchronousFontImageCache}; + m_widget = new AssetsLibraryWidget{imageCacheData()->asynchronousFontImageCache, + imageCacheData()->synchronousFontImageCache}; } m_widget->setResourcePath(resourcePath); } -ImageCacheData *AssetsLibraryView::imageCacheData() +AssetsLibraryView::ImageCacheData *AssetsLibraryView::imageCacheData() { - std::call_once(imageCacheFlag, [this]() { - m_imageCacheData = std::make_unique<ImageCacheData>(); - auto setTargetInImageCache = - [imageCacheData = m_imageCacheData.get()](ProjectExplorer::Target *target) { - if (target == imageCacheData->collector.target()) - return; - - if (target) - imageCacheData->cache.clean(); - - imageCacheData->collector.setTarget(target); - }; - - if (auto project = ProjectExplorer::SessionManager::startupProject(); project) { - m_imageCacheData->collector.setTarget(project->activeTarget()); - connect(project, - &ProjectExplorer::Project::activeTargetChanged, - this, - setTargetInImageCache); - } - connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, - this, - [=](ProjectExplorer::Project *project) { - setTargetInImageCache(activeTarget(project)); - }); - }); + std::call_once(imageCacheFlag, + [this]() { m_imageCacheData = std::make_unique<ImageCacheData>(); }); return m_imageCacheData.get(); } -AsynchronousImageCache &AssetsLibraryView::imageCache() -{ - return imageCacheData()->cache; -} - } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.h index ae623a183b..743d0bb30e 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.h +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.h @@ -34,7 +34,6 @@ namespace QmlDesigner { class AssetsLibraryWidget; -class ImageCacheData; class AsynchronousImageCache; class AssetsLibraryView : public AbstractView @@ -54,9 +53,8 @@ public: void setResourcePath(const QString &resourcePath); - AsynchronousImageCache &imageCache(); - private: + class ImageCacheData; ImageCacheData *imageCacheData(); std::once_flag imageCacheFlag; diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp index 1b6c4f64fb..162fadcf78 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp @@ -110,16 +110,14 @@ bool AssetsLibraryWidget::eventFilter(QObject *obj, QEvent *event) return QObject::eventFilter(obj, event); } -AssetsLibraryWidget::AssetsLibraryWidget(AsynchronousImageCache &imageCache, - AsynchronousImageCache &asynchronousFontImageCache, - SynchronousImageCache &synchronousFontImageCache) +AssetsLibraryWidget::AssetsLibraryWidget(AsynchronousImageCache &asynchronousFontImageCache, + SynchronousImageCache &synchronousFontImageCache) : m_itemIconSize(24, 24) , m_fontImageCache(synchronousFontImageCache) , m_assetsIconProvider(new AssetsLibraryIconProvider(synchronousFontImageCache)) , m_fileSystemWatcher(new Utils::FileSystemWatcher(this)) , m_assetsModel(new AssetsLibraryModel(m_fileSystemWatcher, this)) , m_assetsWidget(new QQuickWidget(this)) - , m_imageCache{imageCache} { m_assetCompressionTimer.setInterval(200); m_assetCompressionTimer.setSingleShot(true); diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h index abf91c3a8c..3128b823b3 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h @@ -60,8 +60,7 @@ class AssetsLibraryWidget : public QFrame Q_OBJECT public: - AssetsLibraryWidget(AsynchronousImageCache &imageCache, - AsynchronousImageCache &asynchronousFontImageCache, + AssetsLibraryWidget(AsynchronousImageCache &asynchronousFontImageCache, SynchronousImageCache &synchronousFontImageCache); ~AssetsLibraryWidget(); @@ -110,7 +109,6 @@ private: std::unique_ptr<PreviewTooltipBackend> m_fontPreviewTooltipBackend; QShortcut *m_qmlSourceUpdateShortcut = nullptr; - AsynchronousImageCache &m_imageCache; QPointer<Model> m_model; QStringList m_assetsToDrag; bool m_updateRetry = false; |