aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml1
-rw-r--r--CMakeLists.txt8
-rw-r--r--lib/events/roommessageevent.cpp17
-rw-r--r--libqmatrixclient.pri2
4 files changed, 17 insertions, 11 deletions
diff --git a/.travis.yml b/.travis.yml
index 0b2967cf..c0e8c097 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,7 @@ addons:
packages:
- g++-5
- qt57base
+ - qt57multimedia
- valgrind
matrix:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a3193a4..c48a7ba9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,7 +40,9 @@ foreach (FLAG all "" pedantic extra error=return-type no-unused-parameter no-gnu
endif ()
endforeach ()
-find_package(Qt5 5.4.1 REQUIRED Network Gui)
+# Qt 5.6+ is the formal requirement but for the sake of supporting UBPorts
+# upstream Qt 5.4 is required.
+find_package(Qt5 5.4.1 REQUIRED Network Gui Multimedia)
get_filename_component(Qt5_Prefix "${Qt5_DIR}/../../../.." ABSOLUTE)
if (GTAD_PATH)
@@ -140,7 +142,7 @@ add_library(QMatrixClient ${libqmatrixclient_SRCS}
${libqmatrixclient_job_SRCS} ${libqmatrixclient_csdef_SRCS}
${libqmatrixclient_cswellknown_SRCS}
${libqmatrixclient_asdef_SRCS} ${libqmatrixclient_isdef_SRCS})
-set(API_VERSION "0.4")
+set(API_VERSION "0.5")
set_property(TARGET QMatrixClient PROPERTY VERSION "${API_VERSION}.0")
set_property(TARGET QMatrixClient PROPERTY SOVERSION ${API_VERSION} )
set_property(TARGET QMatrixClient PROPERTY
@@ -152,7 +154,7 @@ target_include_directories(QMatrixClient PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
-target_link_libraries(QMatrixClient Qt5::Core Qt5::Network Qt5::Gui)
+target_link_libraries(QMatrixClient Qt5::Core Qt5::Network Qt5::Gui Qt5::Multimedia)
add_executable(qmc-example ${example_SRCS})
target_link_libraries(qmc-example Qt5::Core QMatrixClient)
diff --git a/lib/events/roommessageevent.cpp b/lib/events/roommessageevent.cpp
index d63ae2fe..c3007fa0 100644
--- a/lib/events/roommessageevent.cpp
+++ b/lib/events/roommessageevent.cpp
@@ -23,6 +23,7 @@
#include <QtCore/QMimeDatabase>
#include <QtCore/QFileInfo>
#include <QtGui/QImageReader>
+#include <QtMultimedia/QMediaResource>
using namespace QMatrixClient;
using namespace EventContent;
@@ -102,24 +103,26 @@ TypedBase* contentFromFile(const QFileInfo& file, bool asGenericFile)
auto filePath = file.absoluteFilePath();
auto localUrl = QUrl::fromLocalFile(filePath);
auto mimeType = QMimeDatabase().mimeTypeForFile(file);
- auto payloadSize = file.size();
if (!asGenericFile)
{
auto mimeTypeName = mimeType.name();
if (mimeTypeName.startsWith("image/"))
- return new ImageContent(localUrl, payloadSize, mimeType,
- QImageReader(filePath).size());
+ return new ImageContent(localUrl, file.size(), mimeType,
+ QImageReader(filePath).size(),
+ file.fileName());
// duration can only be obtained asynchronously and can only be reliably
// done by starting to play the file. Left for a future implementation.
if (mimeTypeName.startsWith("video/"))
- return new VideoContent(localUrl, payloadSize, mimeType);
+ return new VideoContent(localUrl, file.size(), mimeType,
+ QMediaResource(localUrl).resolution(),
+ file.fileName());
if (mimeTypeName.startsWith("audio/"))
- return new AudioContent(localUrl, payloadSize, mimeType);
-
+ return new AudioContent(localUrl, file.size(), mimeType,
+ file.fileName());
}
- return new FileContent(localUrl, payloadSize, mimeType);
+ return new FileContent(localUrl, file.size(), mimeType, file.fileName());
}
RoomMessageEvent::RoomMessageEvent(const QString& plainBody,
diff --git a/libqmatrixclient.pri b/libqmatrixclient.pri
index 8ca43e56..eefaec67 100644
--- a/libqmatrixclient.pri
+++ b/libqmatrixclient.pri
@@ -1,4 +1,4 @@
-QT += network
+QT += network multimedia
CONFIG += c++14 warn_on rtti_off create_prl object_parallel_to_source
win32-msvc* {