Warning, /utilities/krecorder/src/contents/ui/components/FloatingActionButton.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2021-2022 Devin Lin <espidev@gmail.com>
0002 // SPDX-License-Identifier: GPL-3.0-or-later
0003
0004 import QtQuick
0005 import QtQuick.Controls as Controls
0006 import QtQuick.Templates as T
0007 import QtQuick.Layouts
0008
0009 import org.kde.kirigami as Kirigami
0010
0011 /**
0012 * @brief Floating button that can be used on pages to trigger actions.
0013 *
0014 * It is automatically anchored to be horizontally centered in the parent component, and towards the bottom.
0015 *
0016 * These anchors can be overridden.
0017 *
0018 * Example usage:
0019 * @code{.qml}
0020 * import QtQuick 2.15
0021 * import QtQuick.Layouts 1.15
0022 * import org.kde.kirigami 2.21 as Kirigami
0023 *
0024 * Kirigami.ScrollablePage {
0025 * title: i18n("Page with ListView")
0026 *
0027 * ListView {
0028 * model: 50
0029 * delegate: Kirigami.BasicListItem {
0030 * text: modelData
0031 * }
0032 *
0033 * Kirigami.FloatingActionButton {
0034 * icon.name: "list-add"
0035 * onClicked: {
0036 * // behaviour when clicked
0037 * }
0038 * }
0039 * }
0040 * }
0041 * @endcode
0042 */
0043 T.RoundButton {
0044 id: root
0045 width: implicitWidth
0046 height: implicitHeight
0047 implicitWidth: Kirigami.Units.gridUnit * 3
0048 implicitHeight: Kirigami.Units.gridUnit * 3
0049
0050 anchors.horizontalCenter: parent.horizontalCenter
0051 anchors.bottom: parent.bottom
0052 anchors.bottomMargin: Kirigami.Units.largeSpacing
0053
0054 background: Kirigami.ShadowedRectangle {
0055 anchors.fill: parent
0056 radius: root.radius
0057 color: root.pressed ? Qt.darker(Kirigami.Theme.highlightColor, 1.2) : Kirigami.Theme.highlightColor
0058 renderType: Kirigami.ShadowedRectangle.HighQuality
0059
0060 property color shadowColor: Qt.darker(Kirigami.Theme.backgroundColor, 1.5)
0061 shadow.color: Qt.rgba(shadowColor.r, shadowColor.g, shadowColor.b, 0.5)
0062 shadow.size: 7
0063 shadow.yOffset: 2
0064 }
0065
0066 contentItem: Item {
0067 Kirigami.Icon {
0068 anchors.centerIn: parent
0069 source: root.icon.name
0070 Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
0071 Kirigami.Theme.inherit: false
0072 isMask: true
0073 implicitWidth: Kirigami.Units.iconSizes.smallMedium
0074 implicitHeight: Kirigami.Units.iconSizes.smallMedium
0075 }
0076 }
0077 }