mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-05 14:59:27 -05:00
107 lines
2.9 KiB
QML
107 lines
2.9 KiB
QML
pragma ComponentBehavior: Bound
|
|
import qs
|
|
import qs.modules.common
|
|
import qs.modules.common.functions
|
|
import qs.modules.common.widgets
|
|
import qs.services
|
|
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import Qt5Compat.GraphicalEffects
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import Quickshell.Wayland
|
|
import Quickshell.Widgets
|
|
import Quickshell.Hyprland
|
|
|
|
Scope {
|
|
id: root
|
|
|
|
function dismiss() {
|
|
GlobalStates.regionSelectorOpen = false;
|
|
}
|
|
|
|
Loader {
|
|
id: regionSelectorLoader
|
|
active: GlobalStates.regionSelectorOpen
|
|
|
|
sourceComponent: WRegionSelectionPanel {
|
|
onClosed: root.dismiss()
|
|
}
|
|
}
|
|
|
|
function screenshot() {
|
|
GlobalStates.regionSelectorOpen = true;
|
|
}
|
|
|
|
function ocr() {
|
|
GlobalStates.regionSelectorOpen = true;
|
|
regionSelectorLoader.item.mediaType = WRegionSelectionPanel.MediaType.Image;
|
|
regionSelectorLoader.item.imageAction = WRegionSelectionPanel.ImageAction.CharRecognition;
|
|
}
|
|
|
|
function record() {
|
|
GlobalStates.regionSelectorOpen = true;
|
|
regionSelectorLoader.item.mediaType = WRegionSelectionPanel.MediaType.Video;
|
|
regionSelectorLoader.item.videoAction = WRegionSelectionPanel.VideoAction.Record;
|
|
}
|
|
|
|
function recordWithSound() {
|
|
GlobalStates.regionSelectorOpen = true;
|
|
regionSelectorLoader.item.mediaType = WRegionSelectionPanel.MediaType.Video;
|
|
regionSelectorLoader.item.videoAction = WRegionSelectionPanel.VideoAction.RecordWithSound;
|
|
}
|
|
|
|
function search() {
|
|
GlobalStates.regionSelectorOpen = true;
|
|
regionSelectorLoader.item.mediaType = WRegionSelectionPanel.MediaType.Image;
|
|
regionSelectorLoader.item.imageAction = WRegionSelectionPanel.ImageAction.Search;
|
|
}
|
|
|
|
IpcHandler {
|
|
target: "region"
|
|
|
|
function screenshot() {
|
|
root.screenshot();
|
|
}
|
|
function ocr() {
|
|
root.ocr();
|
|
}
|
|
function record() {
|
|
root.record();
|
|
}
|
|
function recordWithSound() {
|
|
root.recordWithSound();
|
|
}
|
|
function search() {
|
|
root.search();
|
|
}
|
|
}
|
|
|
|
GlobalShortcut {
|
|
name: "regionScreenshot"
|
|
description: "Takes a screenshot of the selected region"
|
|
onPressed: root.screenshot()
|
|
}
|
|
GlobalShortcut {
|
|
name: "regionSearch"
|
|
description: "Searches the selected region"
|
|
onPressed: root.search()
|
|
}
|
|
GlobalShortcut {
|
|
name: "regionOcr"
|
|
description: "Recognizes text in the selected region"
|
|
onPressed: root.ocr()
|
|
}
|
|
GlobalShortcut {
|
|
name: "regionRecord"
|
|
description: "Records the selected region"
|
|
onPressed: root.record()
|
|
}
|
|
GlobalShortcut {
|
|
name: "regionRecordWithSound"
|
|
description: "Records the selected region with sound"
|
|
onPressed: root.recordWithSound()
|
|
}
|
|
}
|