Warning, /graphics/spectacle/src/Gui/Magnifier.qml is written in an unsupported language. File is not indexed.
0001 /* SPDX-FileCopyrightText: 2022 Noah Davis <noahadvs@gmail.com>
0002 * SPDX-FileCopyrightText: 2022 Marco Martin <mart@kde.org>
0003 * SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005
0006 import QtQuick
0007 import QtQuick.Window
0008 import QtQuick.Layouts
0009 import org.kde.kirigami as Kirigami
0010 import org.kde.spectacle.private
0011
0012 ShaderEffectSource {
0013 id: root
0014 required property AnnotationViewport viewport
0015 required property point targetPoint
0016 property int factor: 3
0017
0018 implicitWidth: {
0019 const w = Kirigami.Units.gridUnit * 10
0020 return w - w % factor - factor
0021 }
0022 implicitHeight: implicitWidth
0023 sourceItem: viewport
0024 sourceRect: Qt.rect((targetPoint.x - viewport.viewportRect.x) - implicitWidth / (factor * 2),
0025 (targetPoint.y - viewport.viewportRect.y) - implicitHeight / (factor * 2),
0026 implicitWidth / factor, implicitHeight / factor)
0027 smooth: false
0028
0029 Item {
0030 id: center
0031 x: contextWindow.dprRound((parent.implicitWidth - width) / 2)
0032 y: contextWindow.dprRound((parent.implicitHeight - height) / 2)
0033 width: root.factor * 3
0034 height: root.factor * 3
0035 }
0036
0037 Rectangle { // top
0038 anchors.top: parent.top
0039 anchors.bottom: center.top
0040 color: Kirigami.Theme.focusColor
0041 x: contextWindow.dprRound((parent.implicitWidth - width) / 2)
0042 width: root.factor
0043 }
0044 Rectangle { // bottom
0045 anchors.bottom: parent.bottom
0046 anchors.top: center.bottom
0047 color: Kirigami.Theme.focusColor
0048 x: contextWindow.dprRound((parent.implicitWidth - width) / 2)
0049 width: root.factor
0050 }
0051 Rectangle { // left
0052 anchors.left: parent.left
0053 anchors.right: center.left
0054 color: Kirigami.Theme.focusColor
0055 y: contextWindow.dprRound((parent.implicitHeight - height) / 2)
0056 height: root.factor
0057 }
0058 Rectangle { // right
0059 anchors.right: parent.right
0060 anchors.left: center.right
0061 color: Kirigami.Theme.focusColor
0062 y: contextWindow.dprRound((parent.implicitHeight - height) / 2)
0063 height: root.factor
0064 }
0065 }