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