summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenning Gruendl <henning.gruendl@qt.io>2021-12-02 13:18:02 +0100
committerTim Jenssen <tim.jenssen@qt.io>2021-12-02 23:33:28 +0000
commit73fb01f4b201f8b9cc4ff195c0068e5466e93712 (patch)
tree72a8214058ef8bb85ac984eb89f78391ff52a3f6
parent16c8f1a9b6f7658225c1c3f2a4ae6cecd97a5dfa (diff)
downloadqt-creator-73fb01f4b201f8b9cc4ff195c0068e5466e93712.tar.gz
QmlDesigner: Add support for video assets
* Add *.mp3 as sound asset * Add *.mp4 as video asset Change-Id: If96bab257abf9d0264e374b5f1f92b807b5349a2 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/componentcore/componentcore_constants.h1
-rw-r--r--src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp5
-rw-r--r--src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp5
-rw-r--r--src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h1
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon.pngbin0 -> 286 bytes
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon@2x.pngbin0 -> 399 bytes
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrary.qrc2
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsiconprovider.cpp2
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.cpp9
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.h1
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp3
11 files changed, 27 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h b/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h
index 49505d2ca7..6911ab27c7 100644
--- a/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h
+++ b/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h
@@ -221,6 +221,7 @@ const int priorityLast = 60;
const char addImagesDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources", "Image Files");
const char addFontsDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources", "Font Files");
const char addSoundsDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources", "Sound Files");
+const char addVideosDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources", "Video Files");
const char addShadersDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources", "Shader Files");
const char add3DAssetsDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources", "3D Assets");
const char addQt3DSPresentationsDisplayString[] = QT_TRANSLATE_NOOP("QmlDesignerAddResources",
diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp
index 13774c1265..4ac3692589 100644
--- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp
+++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp
@@ -1557,12 +1557,15 @@ void DesignerActionManager::createDefaultAddResourceHandler()
registerHandlers({"*.otf", "*.ttf"},
ModelNodeOperations::addFontToProject,
ComponentCoreConstants::addFontsDisplayString);
- registerHandlers({"*.wav"},
+ registerHandlers({"*.wav", "*.mp3"},
ModelNodeOperations::addSoundToProject,
ComponentCoreConstants::addSoundsDisplayString);
registerHandlers({"*.glsl", "*.glslv", "*.glslf", "*.vsh", "*.fsh", "*.vert", "*.frag"},
ModelNodeOperations::addShaderToProject,
ComponentCoreConstants::addShadersDisplayString);
+ registerHandlers({"*.mp4"},
+ ModelNodeOperations::addVideoToProject,
+ ComponentCoreConstants::addVideosDisplayString);
}
void DesignerActionManager::createDefaultModelNodePreviewImageHandlers()
diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
index b486740495..02633df9f8 100644
--- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
+++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
@@ -1077,6 +1077,11 @@ AddFilesResult addImageToProject(const QStringList &fileNames, const QString &de
return addFilesToProject(fileNames, getAssetDefaultDirectory("images", defaultDirectory));
}
+AddFilesResult addVideoToProject(const QStringList &fileNames, const QString &defaultDirectory)
+{
+ return addFilesToProject(fileNames, getAssetDefaultDirectory("videos", defaultDirectory));
+}
+
void createFlowActionArea(const SelectionContext &selectionContext)
{
AbstractView *view = selectionContext.view();
diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h
index feb7faa556..f9e39c06f4 100644
--- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h
+++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h
@@ -80,6 +80,7 @@ AddFilesResult addImageToProject(const QStringList &fileNames, const QString &di
AddFilesResult addFontToProject(const QStringList &fileNames, const QString &directory);
AddFilesResult addSoundToProject(const QStringList &fileNames, const QString &directory);
AddFilesResult addShaderToProject(const QStringList &fileNames, const QString &directory);
+AddFilesResult addVideoToProject(const QStringList &fileNames, const QString &directory);
void createFlowActionArea(const SelectionContext &selectionContext);
void addTransition(const SelectionContext &selectionState);
void addFlowEffect(const SelectionContext &selectionState, const TypeName &typeName);
diff --git a/src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon.png b/src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon.png
new file mode 100644
index 0000000000..df1b84e5c9
--- /dev/null
+++ b/src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon.png
Binary files differ
diff --git a/src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon@2x.png b/src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon@2x.png
new file mode 100644
index 0000000000..4b9f31faf3
--- /dev/null
+++ b/src/plugins/qmldesigner/components/itemlibrary/images/item-video-icon@2x.png
Binary files differ
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.qrc b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.qrc
index b1777bbbec..c6d60413d0 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.qrc
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.qrc
@@ -33,5 +33,7 @@
<file>images/x@2x.png</file>
<file>images/browse.png</file>
<file>images/browse@2x.png</file>
+ <file>images/item-video-icon.png</file>
+ <file>images/item-video-icon@2x.png</file>
</qresource>
</RCC>
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsiconprovider.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsiconprovider.cpp
index ece6e8abaa..ad6f313683 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsiconprovider.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsiconprovider.cpp
@@ -54,6 +54,8 @@ QPixmap ItemLibraryAssetsIconProvider::requestPixmap(const QString &id, QSize *s
pixmap = Utils::StyleHelper::dpiSpecificImageFile(":/ItemLibrary/images/asset_shader_48.png");
else if (ItemLibraryAssetsModel::supportedAudioSuffixes().contains(suffix))
pixmap = Utils::StyleHelper::dpiSpecificImageFile(":/ItemLibrary/images/asset_sound_48.png");
+ else if (ItemLibraryAssetsModel::supportedVideoSuffixes().contains(suffix))
+ pixmap = Utils::StyleHelper::dpiSpecificImageFile(":/ItemLibrary/images/item-video-icon.png");
if (size) {
size->setWidth(pixmap.width());
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.cpp
index caaaa37452..5fa13c3c16 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.cpp
@@ -167,7 +167,13 @@ const QStringList &ItemLibraryAssetsModel::supportedFontSuffixes()
const QStringList &ItemLibraryAssetsModel::supportedAudioSuffixes()
{
- static const QStringList retList {"*.wav"};
+ static const QStringList retList {"*.wav", "*.mp3"};
+ return retList;
+}
+
+const QStringList &ItemLibraryAssetsModel::supportedVideoSuffixes()
+{
+ static const QStringList retList {"*.mp4"};
return retList;
}
@@ -300,6 +306,7 @@ const QSet<QString> &ItemLibraryAssetsModel::supportedSuffixes() const
insertSuffixes(supportedShaderSuffixes());
insertSuffixes(supportedFontSuffixes());
insertSuffixes(supportedAudioSuffixes());
+ insertSuffixes(supportedVideoSuffixes());
insertSuffixes(supportedTexture3DSuffixes());
}
return allSuffixes;
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.h
index c1dcc845da..f762156349 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetsmodel.h
@@ -66,6 +66,7 @@ public:
static const QStringList &supportedShaderSuffixes();
static const QStringList &supportedFontSuffixes();
static const QStringList &supportedAudioSuffixes();
+ static const QStringList &supportedVideoSuffixes();
static const QStringList &supportedTexture3DSuffixes();
const QSet<QString> &previewableSuffixes() const;
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
index 4c02b25433..c8720385c0 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
@@ -552,6 +552,9 @@ QPair<QString, QByteArray> ItemLibraryWidget::getAssetTypeAndData(const QString
} else if (ItemLibraryAssetsModel::supportedAudioSuffixes().contains(suffix)) {
// No extra data for sounds
return {"application/vnd.bauhaus.libraryresource.sound", {}};
+ } else if (ItemLibraryAssetsModel::supportedVideoSuffixes().contains(suffix)) {
+ // No extra data for videos
+ return {"application/vnd.bauhaus.libraryresource.video", {}};
} else if (ItemLibraryAssetsModel::supportedTexture3DSuffixes().contains(suffix)) {
// Data: Image format (suffix)
return {"application/vnd.bauhaus.libraryresource.texture3d", suffix.toUtf8()};