Add sending of clipboard

This commit is contained in:
Leon Böttger committed 2025-03-26 19:02:38 +01:00
1 parent ea324ea7d8
commit a87387cd1d
19 files changed
+76 -12

No files matched your search

+38 -6
View File
@@ -30,13 +30,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDele
menu.addItem(NSMenuItem.separator())
// // Add "Recommended Apps" menu item
// let recommendedAppsItem = NSMenuItem(title: NSLocalizedString("RecommendedApps", value: "Recommended Apps", comment: ""), action: #selector(openRecommendedApps), keyEquivalent: "")
// menu.addItem(recommendedAppsItem)
let sendClipboardItem = NSMenuItem(title: "SendClipboard".localized(), action: #selector(sendClipboard), keyEquivalent: "")
menu.addItem(sendClipboardItem)
// Add "Recommended Apps" menu item
let recommendedAppsItem = NSMenuItem(title: NSLocalizedString("GetSupport", value: "Support", comment: ""), action: #selector(getSupport), keyEquivalent: "")
menu.addItem(recommendedAppsItem)
menu.addItem(NSMenuItem.separator())
let getSupportItem = NSMenuItem(title: NSLocalizedString("GetSupport", value: "Support", comment: ""), action: #selector(getSupport), keyEquivalent: "")
menu.addItem(getSupportItem)
// Add "Privacy Policy" menu item
let privacyPolicyItem = NSMenuItem(title: NSLocalizedString("PrivacyPolicy", value: "Privacy Policy", comment: ""), action: #selector(openPrivacyPolicy), keyEquivalent: "")
@@ -90,6 +91,37 @@ class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDele
}
@objc func sendClipboard() {
if let fileURL = saveClipboardToTempFile() {
let sharingService = NSSharingService(named: NSSharingService.Name("com.leonboettger.neardrop.ShareExtension"))
sharingService?.perform(withItems: [fileURL])
}
}
func saveClipboardToTempFile() -> URL? {
let pasteboard = NSPasteboard.general
guard let clipboardString = pasteboard.string(forType: .string) else {
log("No text found in clipboard.")
return nil
}
let tempDirectory = FileManager.default.temporaryDirectory
let fileURL = tempDirectory.appendingPathComponent("Clipboard".localized() + ".txt")
do {
try clipboardString.write(to: fileURL, atomically: true, encoding: .utf8)
return fileURL
} catch {
log("Failed to write file: \(error)")
return nil
}
}
@objc func openWelcomeScreen() {
// Create the welcome screen SwiftUI view
let welcomeView = WelcomeScreen {
+2 -1
View File
@@ -51,7 +51,8 @@
"GetSupport" = "Support";
"PrivacyPolicy" = "Privacy Policy";
"SendClipboard" = "Send Clipboard";
"Clipboard" = "Clipboard";
"DeviceCurrentlySendingFiles" = "%1$@ is sending you %2$@";
"UserManual" = "User Manual & Settings";
"Settings" = "Settings";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "التطبيقات الموصى بها";
"GetSupport" = "الدعم";
"PrivacyPolicy" = "سياسة الخصوصية";
"SendClipboard" = "إرسال الحافظة";
"Clipboard" = "الحافظة";
"DeviceCurrentlySendingFiles" = "%1$@ يرسل لك %2$@";
"UserManual" = "دليل المستخدم والإعدادات";
"Settings" = "الإعدادات";
+2
View File
@@ -44,6 +44,8 @@
"GetSupport" = "Support";
"PrivacyPolicy" = "Datenschutzerklärung";
"SendClipboard" = "Zwischenablage senden";
"Clipboard" = "Zwischenablage";
"DeviceCurrentlySendingFiles" = "%1$@ sendet dir %2$@";
"UserManual" = "Benutzerhandbuch & Einstellungen";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Apps recomendadas";
"GetSupport" = "Soporte";
"PrivacyPolicy" = "Política de privacidad";
"SendClipboard" = "Enviar Portapapeles";
"Clipboard" = "Portapapeles";
"DeviceCurrentlySendingFiles" = "%1$@ te está enviando %2$@";
"UserManual" = "Manual de usuario y Configuración";
"Settings" = "Configuración";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Applications recommandées";
"GetSupport" = "Support";
"PrivacyPolicy" = "Politique de confidentialité";
"SendClipboard" = "Envoyer le Presse-papiers";
"Clipboard" = "Presse-papiers";
"DeviceCurrentlySendingFiles" = "%1$@ vous envoie %2$@";
"UserManual" = "Manuel d'utilisation et Paramètres";
"Settings" = "Paramètres";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Ajánlott alkalmazások";
"GetSupport" = "Támogatás";
"PrivacyPolicy" = "Adatvédelmi irányelvek";
"SendClipboard" = "Vágólap küldése";
"Clipboard" = "Vágólap";
"DeviceCurrentlySendingFiles" = "%1$@ éppen küldi neked: %2$@";
"UserManual" = "Felhasználói kézikönyv és Beállítások";
"Settings" = "Beállítások";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "App consigliate";
"GetSupport" = "Supporto";
"PrivacyPolicy" = "Informativa sulla privacy";
"SendClipboard" = "Invia Appunti";
"Clipboard" = "Appunti";
"DeviceCurrentlySendingFiles" = "%1$@ ti sta inviando %2$@";
"UserManual" = "Manuale utente e Impostazioni";
"Settings" = "Impostazioni";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "おすすめアプリ";
"GetSupport" = "サポート";
"PrivacyPolicy" = "プライバシーポリシー";
"SendClipboard" = "クリップボードを送信";
"Clipboard" = "クリップボード";
"DeviceCurrentlySendingFiles" = "%1$@ が %2$@ を送信中";
"UserManual" = "ユーザーマニュアルと設定";
"Settings" = "設定";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "추천 앱";
"GetSupport" = "지원";
"PrivacyPolicy" = "개인정보 처리방침";
"SendClipboard" = "클립보드 보내기";
"Clipboard" = "클립보드";
"DeviceCurrentlySendingFiles" = "%1$@이(가) %2$@을(를) 보내는 중입니다";
"UserManual" = "사용자 매뉴얼 및 설정";
"Settings" = "설정";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Aanbevolen apps";
"GetSupport" = "Ondersteuning";
"PrivacyPolicy" = "Privacybeleid";
"SendClipboard" = "Klembord Verzenden";
"Clipboard" = "Klembord";
"DeviceCurrentlySendingFiles" = "%1$@ stuurt je %2$@";
"UserManual" = "Gebruikershandleiding en Instellingen";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Apps recomendados";
"GetSupport" = "Suporte";
"PrivacyPolicy" = "Política de Privacidade";
"SendClipboard" = "Enviar Área de Transferência";
"Clipboard" = "Área de Transferência";
"DeviceCurrentlySendingFiles" = "%1$@ está enviando %2$@ para você";
"UserManual" = "Manual do Usuário e Configurações";
"Settings" = "Configurações";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Aplicativos recomendados";
"GetSupport" = "Suporte";
"PrivacyPolicy" = "Política de privacidade";
"SendClipboard" = "Enviar Área de Transferência";
"Clipboard" = "Área de Transferência";
"DeviceCurrentlySendingFiles" = "%1$@ está a enviar-te %2$@";
"UserManual" = "Manual do Utilizador e Definições";
"Settings" = "Definições";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Aplicații recomandate";
"GetSupport" = "Suport";
"PrivacyPolicy" = "Politica de confidențialitate";
"SendClipboard" = "Trimite Clipboard-ul";
"Clipboard" = "Clipboard";
"DeviceCurrentlySendingFiles" = "%1$@ îți trimite %2$@";
"UserManual" = "Manual utilizator & Setări";
"Settings" = "Setări";
+2 -1
View File
@@ -44,7 +44,8 @@
"GetSupport" = "Поддержка";
"PrivacyPolicy" = "Политика конфиденциальности";
"SendClipboard" = "Отправить буфер обмена";
"Clipboard" = "Буфер обмена";
"DeviceCurrentlySendingFiles" = "%1$@ отправляет вам %2$@";
"UserManual" = "Руководство пользователя и Настройки";
"Settings" = "Настройки";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "แอปแนะนำ";
"GetSupport" = "การสนับสนุน";
"PrivacyPolicy" = "นโยบายความเป็นส่วนตัว";
"SendClipboard" = "ส่งคลิปบอร์ด";
"Clipboard" = "คลิปบอร์ด";
"DeviceCurrentlySendingFiles" = "%1$@ กำลังส่ง %2$@ ให้คุณ";
"UserManual" = "คู่มือผู้ใช้และการตั้งค่า";
"Settings" = "การตั้งค่า";
+2
View File
@@ -43,6 +43,8 @@
"RecommendedApps" = "Рекомендовані додатки";
"GetSupport" = "Підтримка";
"PrivacyPolicy" = "Політика конфіденційності";
"SendClipboard" = "Надіслати буфер обміну";
"Clipboard" = "Буфер обміну";
"DeviceCurrentlySendingFiles" = "%1$@ надсилає вам %2$@";
"UserManual" = "Керівництво користувача та налаштування";
"Settings" = "Налаштування";
@@ -43,6 +43,8 @@
"RecommendedApps" = "推荐应用";
"GetSupport" = "支持";
"PrivacyPolicy" = "隐私政策";
"SendClipboard" = "发送剪贴板";
"Clipboard" = "剪贴板";
"DeviceCurrentlySendingFiles" = "%1$@ 正在向你发送 %2$@";
"UserManual" = "用户手册与设置";
"Settings" = "设置";
+4 -4
View File
@@ -783,8 +783,8 @@
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SHARED_BUILD = 22;
SHARED_VERSION = 1.4.6;
SHARED_BUILD = 23;
SHARED_VERSION = 1.5;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
@@ -842,8 +842,8 @@
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = macosx;
SHARED_BUILD = 22;
SHARED_VERSION = 1.4.6;
SHARED_BUILD = 23;
SHARED_VERSION = 1.5;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};