From b28b090fa90f34fd67d2f3906faf08881729ba60 Mon Sep 17 00:00:00 2001 From: rdavidek Date: Sat, 17 Jan 2026 14:23:36 +0100 Subject: [PATCH] clipboard implemented --- kfmanager.png | Bin 78937 -> 0 bytes .../kfmanager/service/ClipboardService.java | 130 ++++++++++++++ .../kfmanager/service/FileOperations.java | 5 + .../cz/kamma/kfmanager/ui/FilePanelTab.java | 158 +++++++++++++++++- .../cz/kamma/kfmanager/ui/MainWindow.java | 96 +++++++++-- src/main/resources/icon.png | Bin 1415162 -> 1780893 bytes 6 files changed, 367 insertions(+), 22 deletions(-) delete mode 100644 kfmanager.png create mode 100644 src/main/java/cz/kamma/kfmanager/service/ClipboardService.java diff --git a/kfmanager.png b/kfmanager.png deleted file mode 100644 index 3f025c5570744446362745be2ec28030a1a6a084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78937 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