1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-11 16:22:09 -04:00

clipboard: Fix pinned entry logic

- Add keyboard nav to pinned entries
- Fix wrong copied selection upon Enter
This commit is contained in:
purian23
2026-02-09 20:53:48 -05:00
parent a168b12bb2
commit 0922e3e459
7 changed files with 158 additions and 15 deletions

View File

@@ -13,15 +13,17 @@ QtObject {
}
function selectNext() {
if (!ClipboardService.clipboardEntries || ClipboardService.clipboardEntries.length === 0) {
const entries = modal.activeTab === "saved" ? ClipboardService.pinnedEntries : ClipboardService.unpinnedEntries;
if (!entries || entries.length === 0) {
return;
}
ClipboardService.keyboardNavigationActive = true;
ClipboardService.selectedIndex = Math.min(ClipboardService.selectedIndex + 1, ClipboardService.clipboardEntries.length - 1);
ClipboardService.selectedIndex = Math.min(ClipboardService.selectedIndex + 1, entries.length - 1);
}
function selectPrevious() {
if (!ClipboardService.clipboardEntries || ClipboardService.clipboardEntries.length === 0) {
const entries = modal.activeTab === "saved" ? ClipboardService.pinnedEntries : ClipboardService.unpinnedEntries;
if (!entries || entries.length === 0) {
return;
}
ClipboardService.keyboardNavigationActive = true;
@@ -29,19 +31,25 @@ QtObject {
}
function copySelected() {
if (!ClipboardService.clipboardEntries || ClipboardService.clipboardEntries.length === 0 || ClipboardService.selectedIndex < 0 || ClipboardService.selectedIndex >= ClipboardService.clipboardEntries.length) {
const entries = modal.activeTab === "saved" ? ClipboardService.pinnedEntries : ClipboardService.unpinnedEntries;
if (!entries || entries.length === 0 || ClipboardService.selectedIndex < 0 || ClipboardService.selectedIndex >= entries.length) {
return;
}
const selectedEntry = ClipboardService.clipboardEntries[ClipboardService.selectedIndex];
const selectedEntry = entries[ClipboardService.selectedIndex];
modal.copyEntry(selectedEntry);
}
function deleteSelected() {
if (!ClipboardService.clipboardEntries || ClipboardService.clipboardEntries.length === 0 || ClipboardService.selectedIndex < 0 || ClipboardService.selectedIndex >= ClipboardService.clipboardEntries.length) {
const entries = modal.activeTab === "saved" ? ClipboardService.pinnedEntries : ClipboardService.unpinnedEntries;
if (!entries || entries.length === 0 || ClipboardService.selectedIndex < 0 || ClipboardService.selectedIndex >= entries.length) {
return;
}
const selectedEntry = ClipboardService.clipboardEntries[ClipboardService.selectedIndex];
modal.deleteEntry(selectedEntry);
const selectedEntry = entries[ClipboardService.selectedIndex];
if (modal.activeTab === "saved") {
modal.deletePinnedEntry(selectedEntry);
} else {
modal.deleteEntry(selectedEntry);
}
}
function handleKey(event) {