diff --git a/src/qml/elements/Avatar.qml b/src/qml/elements/Avatar.qml
index 6f36dc643dbc286de04c14dce53b659d6b87e64b..0bdd0c6525b5334a8009fe69bbebd5bca5ddf7af 100644
--- a/src/qml/elements/Avatar.qml
+++ b/src/qml/elements/Avatar.qml
@@ -28,31 +28,27 @@
* along with Kaidan. If not, see .
*/
-
import QtQuick 2.7
-import QtQuick.Layouts 1.3
-import org.kde.kirigami 2.8 as Kirigami
Item {
- id: avatar
- property string avatarUrl
- property string name
+ id: avatar
+ property string avatarUrl
+ property string name
- RoundImage {
- id: imageAvatar
- visible: avatarUrl
- source: avatarUrl
- fillMode: Image.PreserveAspectFit
- mipmap: true
- height: width
- anchors.fill: parent
- isRound: true
- }
+ RoundImage {
+ id: imageAvatar
+ visible: avatarUrl
+ source: avatarUrl
+ fillMode: Image.PreserveAspectFit
+ mipmap: true
+ height: width
+ anchors.fill: parent
+ }
- TextAvatar {
- id: textAvatar
- visible: !avatarUrl
- name: avatar.name
- anchors.fill: parent
- }
+ TextAvatar {
+ id: textAvatar
+ visible: !avatarUrl
+ name: avatar.name
+ anchors.fill: parent
+ }
}
diff --git a/src/qml/elements/MediaPreviewImage.qml b/src/qml/elements/MediaPreviewImage.qml
index e2441ef6fe5a0db5c1291f67bd686b3097f27568..b60417c6d04d4bf51734171d34525c4e61ff65d5 100644
--- a/src/qml/elements/MediaPreviewImage.qml
+++ b/src/qml/elements/MediaPreviewImage.qml
@@ -45,7 +45,7 @@ MediaPreview {
Layout.preferredWidth: Kirigami.Units.gridUnit * 32
Layout.maximumWidth: message ? messageSize : -1
- AnimatedImage {
+ RoundedImage {
id: image
fillMode: Image.PreserveAspectFit
diff --git a/src/qml/elements/RoundImage.qml b/src/qml/elements/RoundImage.qml
index 21777e175d4ebfa4998e6a8c1164b8a598e65229..6f6553208ca259170787b643972cc2b899f9c5db 100644
--- a/src/qml/elements/RoundImage.qml
+++ b/src/qml/elements/RoundImage.qml
@@ -29,24 +29,8 @@
*/
import QtQuick 2.7
-import QtGraphicalEffects 1.0
-Image {
+RoundedImage {
id: img
- property bool isRound: true
-
- layer.enabled: isRound
- layer.effect: OpacityMask {
- maskSource: Item {
- width: img.paintedWidth
- height: img.paintedHeight
-
- Rectangle {
- anchors.centerIn: parent
- width: Math.min(img.width, img.height)
- height: width
- radius: Math.min(width, height)
- }
- }
- }
+ radius: Math.min(width, height)
}
diff --git a/src/qml/elements/RoundedImage.qml b/src/qml/elements/RoundedImage.qml
new file mode 100644
index 0000000000000000000000000000000000000000..c3ae1f2d86cc5af9a5b5d0cfe4cc8e8a55ea0c3f
--- /dev/null
+++ b/src/qml/elements/RoundedImage.qml
@@ -0,0 +1,52 @@
+/*
+ * Kaidan - A user-friendly XMPP client for every device!
+ *
+ * Copyright (C) 2016-2019 Kaidan developers and contributors
+ * (see the LICENSE file for a full list of copyright authors)
+ *
+ * Kaidan is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * In addition, as a special exception, the author of Kaidan gives
+ * permission to link the code of its release with the OpenSSL
+ * project's "OpenSSL" library (or with modified versions of it that
+ * use the same license as the "OpenSSL" library), and distribute the
+ * linked executables. You must obey the GNU General Public License in
+ * all respects for all of the code used other than "OpenSSL". If you
+ * modify this file, you may extend this exception to your version of
+ * the file, but you are not obligated to do so. If you do not wish to
+ * do so, delete this exception statement from your version.
+ *
+ * Kaidan is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Kaidan. If not, see .
+ */
+
+import QtQuick 2.6
+import QtGraphicalEffects 1.0
+
+AnimatedImage {
+ id: img
+ property int radius: roundedCornersRadius
+
+ layer.enabled: true
+ layer.effect: OpacityMask {
+ maskSource: Item {
+ width: img.paintedWidth
+ height: img.paintedHeight
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: Math.min(img.width, img.height)
+ height: width
+ radius: img.radius
+ }
+ }
+ }
+}
diff --git a/src/qml/qml.qrc b/src/qml/qml.qrc
index 166938eda064fd30512b84bc94c7aba7ddd0f24a..18b50180027dc11849165a620768c172aa5c1b78 100644
--- a/src/qml/qml.qrc
+++ b/src/qml/qml.qrc
@@ -19,6 +19,7 @@
elements/RosterListItem.qml
elements/MessageCounter.qml
elements/ChatMessage.qml
+ elements/RoundedImage.qml
elements/RoundImage.qml
elements/IconButton.qml
elements/FileChooser.qml