Warning, /graphics/spectacle/src/Gui/CaptureModeButtonsColumn.qml is written in an unsupported language. File is not indexed.

0001 /* SPDX-FileCopyrightText: 2022 Noah Davis <noahadvs@gmail.com>
0002  * SPDX-License-Identifier: LGPL-2.0-or-later
0003  */
0004 
0005 import QtQuick
0006 import QtQuick.Layouts
0007 import QtQuick.Controls as QQC
0008 import org.kde.kirigami as Kirigami
0009 import org.kde.spectacle.private
0010 
0011 ColumnLayout {
0012     spacing: Kirigami.Units.mediumSpacing
0013     Repeater {
0014         model: SpectacleCore.captureModeModel
0015         delegate: QQC.DelayButton {
0016             id: button
0017             readonly property bool showCancel: Settings.captureMode === model.captureMode && SpectacleCore.captureTimeRemaining > 0
0018             Layout.fillWidth: true
0019             leftPadding: Kirigami.Units.mediumSpacing + QmlUtils.fontMetrics.descent
0020             rightPadding: Kirigami.Units.mediumSpacing + QmlUtils.fontMetrics.descent
0021             topPadding: Kirigami.Units.mediumSpacing
0022             bottomPadding: Kirigami.Units.mediumSpacing
0023             // Delay doesn't really matter since we set
0024             // progress directly and have no transition
0025             delay: 1
0026             transition: null
0027             progress: Settings.captureMode === model.captureMode ?
0028                 SpectacleCore.captureProgress : 0
0029             icon.name: showCancel ? "dialog-cancel" : ""
0030             text: showCancel ?
0031                 i18np("Cancel (%1 second)", "Cancel (%1 seconds)",
0032                         Math.ceil(SpectacleCore.captureTimeRemaining / 1000))
0033                 : model.display
0034             QQC.ToolTip.text: model.shortcuts
0035             QQC.ToolTip.visible: (hovered || pressed) && model.shortcuts.length > 0
0036             QQC.ToolTip.delay: Kirigami.Units.toolTipDelay
0037             onClicked: if (showCancel) {
0038                 SpectacleCore.cancelScreenshot()
0039             } else {
0040                 Settings.captureMode = model.captureMode
0041                 SpectacleCore.takeNewScreenshot()
0042             }
0043         }
0044     }
0045 }