diff --git a/module.desktop.in b/module.desktop.in index 2fbfba0..c367d61 100644 --- a/module.desktop.in +++ b/module.desktop.in @@ -9,12 +9,12 @@ Name[cs]= Name[de]= Name[el]= Name[eo]= -Name[es]= +Name[es]=Administrador del portapapeles Name[fr]= Name[gl]= Name[hu]= Name[it]= -Name[ja]= +Name[ja]=クリップボード Name[ko]= Name[pt]= Name[ru]= @@ -22,6 +22,8 @@ Name[sk]=Správca schránky Name[sr]= Name[tr]= Comment=Clipboard manager gadget for the Moksha/E desktop +Comment[es]=Administrador del portapapeles para el escritorio Moksha/E +Comment[ja]=Moksha/e デスクトップのクリップボード管理ガジェット Comment[sk]=Správca schránky pre desktop typu Moksha/E Icon=e-module-clipboard X-Enlightenment-ModuleType=utils diff --git a/po/LINGUAS b/po/LINGUAS index deaa1b9..d77f22f 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ -sk +es sk ja sl diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..b78d2d0 --- /dev/null +++ b/po/es.po @@ -0,0 +1,127 @@ +msgid "" +msgstr "" +"Project-Id-Version: clipboard\n" +"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2016-11-16 21:16+0100\n" +"PO-Revision-Date: 2016-11-11 20:18+0100\n" +"Last-Translator: Astroboy \n" +"Language-Team: spanish\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-KeywordsList: _;gettext;gettext_noop\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: .\n" + +#: src/e_mod_config.c:130 +msgid "Clipboards" +msgstr "Portapapeles" + +#: src/e_mod_config.c:131 +msgid " Use Copy (Ctrl-C)" +msgstr " Use Copiar (Ctrl-C)" + +#: src/e_mod_config.c:134 +msgid " Use Primary (Selection)" +msgstr " Use Primario (Selección)" + +#: src/e_mod_config.c:137 +msgid " Synchronize Clipboards" +msgstr " Sincronizar Portapapeles" + +#: src/e_mod_config.c:146 +msgid "History" +msgstr "Historia" + +#: src/e_mod_config.c:147 +msgid " Save History" +msgstr " Guardar Historia" + +#: src/e_mod_config.c:150 +msgid " Reverse Order" +msgstr " Orden Inverso" + +#: src/e_mod_config.c:153 +msgid " Confirm before Clearing" +msgstr " Confirmar antes de borrar" + +#: src/e_mod_config.c:156 +msgid " Items in History" +msgstr " Elementos en la Historia" + +#: src/e_mod_config.c:164 +msgid "Labels" +msgstr "Etiquetas" + +#: src/e_mod_config.c:165 src/e_mod_config.c:177 +msgid " Ignore Whitespace" +msgstr " Ignorar espacios en blanco" + +#: src/e_mod_config.c:168 +msgid " Label Length" +msgstr " Largo de la Etiqueta" + +#: src/e_mod_config.c:176 +msgid "Content" +msgstr "Contenido" + +#: src/e_mod_config.c:180 +msgid " Trim Whitespace" +msgstr " Eliminar Espacios en Blanco" + +#: src/e_mod_config.c:183 +msgid " Trim Newlines" +msgstr " Eliminar Nuevas Líneas" + +#: src/e_mod_config.c:209 +msgid "Clipboard Settings" +msgstr "Configuración del Portapapeles" + +#: src/e_mod_main.c:274 src/e_mod_main.c:382 +msgid "Settings" +msgstr "Configuración" + +#: src/e_mod_main.c:361 +msgid "Empty" +msgstr "Vacío" + +#: src/e_mod_main.c:369 +msgid "Clear" +msgstr "Limpiar" + +#: src/e_mod_main.c:603 +msgid "Confirm History Deletion" +msgstr "Confirmar Borrado del Historial" + +#: src/e_mod_main.c:605 +msgid "" +"You wish to delete the clipboards history.

Are you sure you want to " +"delete it?" +msgstr "" +"Desea borrar el historial del portapapeles.

¿Está segur@ de hacerlo? " + +#: src/e_mod_main.c:608 +msgid "Delete" +msgstr "Borrarlo" + +#: src/e_mod_main.c:608 +msgid "Keep" +msgstr "Mantenerlo" + +#: src/e_mod_main.c:762 src/e_mod_main.c:763 src/e_mod_main.c:764 +msgid "Clipboard" +msgstr "Portapapeles" + +#: src/e_mod_main.h:19 +msgid "Show History" +msgstr "Historia" + +#: src/e_mod_main.h:20 +msgid "Show Settings" +msgstr "Configuración" + +#: src/e_mod_main.h:21 +msgid "Clear History" +msgstr "Historia" diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..095c5b6 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,129 @@ +msgid "" +msgstr "" +"Project-Id-Version: clipboard\n" +"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2016-11-16 21:00+0100\n" +"PO-Revision-Date: 2016-11-21 17:42+0900\n" +"Last-Translator: BALLOON a.k.a. Fu-sen. (Keiichi SHIGA) \n" +"Language-Team: japanese\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"X-Poedit-KeywordsList: _;gettext;gettext_noop\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-SearchPath-0: .\n" + +#: src/e_mod_config.c:130 +msgid "Clipboards" +msgstr "クリップボード" + +#: src/e_mod_config.c:131 +msgid " Use Copy (Ctrl-C)" +msgstr " コピー (Ctrl-C) を使用" + +#: src/e_mod_config.c:134 +msgid " Use Primary (Selection)" +msgstr "プライマリ (セレクション) を使用" + +#: src/e_mod_config.c:137 +msgid " Synchronize Clipboards" +msgstr "クリップボードを同期する" + +#: src/e_mod_config.c:146 +msgid "History" +msgstr "履歴" + +#: src/e_mod_config.c:147 +msgid " Save History" +msgstr "履歴を保存" + +#: src/e_mod_config.c:150 +msgid " Reverse Order" +msgstr "並びを逆にする" + +#: src/e_mod_config.c:153 +msgid " Confirm before Clearing" +msgstr "削除前に確認する" + +#: src/e_mod_config.c:156 +msgid " Items in History" +msgstr "履歴項目" + +#: src/e_mod_config.c:164 +msgid "Labels" +msgstr "ラベル" + +#: src/e_mod_config.c:165 src/e_mod_config.c:177 +msgid " Ignore Whitespace" +msgstr "空白を無視" + +#: src/e_mod_config.c:168 +msgid " Label Length" +msgstr "ラベルの長さ" + +#: src/e_mod_config.c:176 +msgid "Content" +msgstr "内容" + +#: src/e_mod_config.c:180 +msgid " Trim Whitespace" +msgstr "空白を削除" + +#: src/e_mod_config.c:183 +msgid " Trim Newlines" +msgstr "改行を削除" + +#: src/e_mod_config.c:206 +msgid "Clipboard Settings" +msgstr "クリップボード設定" + +#: src/e_mod_main.c:274 src/e_mod_main.c:382 +msgid "Settings" +msgstr "設定" + +#: src/e_mod_main.c:361 +msgid "Empty" +msgstr "空" + +#: src/e_mod_main.c:369 +msgid "Clear" +msgstr "削除" + +#: src/e_mod_main.c:568 +msgid "Confirm History Deletion" +msgstr "履歴削除の確認" + +#: src/e_mod_main.c:570 +msgid "" +"You wish to delete the clipboards history.

Are you sure you want to " +"delete it?" +msgstr "" +"クリップボードの履歴を削除しようとしています。

削除を行ってよろしいで" +"すか?" + +#: src/e_mod_main.c:573 +msgid "Delete" +msgstr "削除" + +#: src/e_mod_main.c:573 +msgid "Keep" +msgstr "保持" + +#: src/e_mod_main.c:729 src/e_mod_main.c:730 src/e_mod_main.c:731 +msgid "Clipboard" +msgstr "クリップボード" + +#: src/e_mod_main.h:19 +msgid "Show History" +msgstr "履歴を表示" + +#: src/e_mod_main.h:20 +msgid "Show Settings" +msgstr "設定を表示" + +#: src/e_mod_main.h:21 +msgid "Clear History" +msgstr "履歴の削除" diff --git a/po/sk.po b/po/sk.po index 62f933e..41594ad 100644 --- a/po/sk.po +++ b/po/sk.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: clipboard\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2016-07-18 19:16-0400\n" +"POT-Creation-Date: 2016-11-16 21:16+0100\n" "PO-Revision-Date: 2016-07-18 20:18+0100\n" "Last-Translator: Stefan Uram \n" "Language-Team: slovak\n" @@ -75,32 +75,52 @@ msgstr " Zruš neviditeľné znaky" msgid " Trim Newlines" msgstr " Zruš znak konca riadku" -#: src/e_mod_main.c:273 src/e_mod_main.c:381 +#: src/e_mod_config.c:209 +msgid "Clipboard Settings" +msgstr "Nastavenia Správcu schránky" + +#: src/e_mod_main.c:274 src/e_mod_main.c:382 msgid "Settings" msgstr "Nastavenia" -#: src/e_mod_main.c:360 +#: src/e_mod_main.c:361 msgid "Empty" msgstr "Prázdne" -#: src/e_mod_main.c:368 +#: src/e_mod_main.c:369 msgid "Clear" msgstr "Vymaž" -#: src/e_mod_main.c:558 +#: src/e_mod_main.c:603 msgid "Confirm History Deletion" msgstr "Potvrď vymazanie histórie" -#: src/e_mod_main.c:560 +#: src/e_mod_main.c:605 msgid "" "You wish to delete the clipboards history.

Are you sure you want to " "delete it?" msgstr "Praješ si vymazať históriu.

Si si istý, že ju chceš vymazať?" -#: src/e_mod_main.c:563 +#: src/e_mod_main.c:608 msgid "Delete" msgstr "Vymaž" -#: src/e_mod_main.c:563 +#: src/e_mod_main.c:608 msgid "Keep" msgstr "Zrušiť" + +#: src/e_mod_main.c:762 src/e_mod_main.c:763 src/e_mod_main.c:764 +msgid "Clipboard" +msgstr "Správca schránky" + +#: src/e_mod_main.h:19 +msgid "Show History" +msgstr "Zobraziť históriu" + +#: src/e_mod_main.h:20 +msgid "Show Settings" +msgstr "Zobraziť nastavenia" + +#: src/e_mod_main.h:21 +msgid "Clear History" +msgstr "Vymazať históriu" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..f69033a --- /dev/null +++ b/po/sl.po @@ -0,0 +1,129 @@ +msgid "" +msgstr "" +"Project-Id-Version: clipboard\n" +"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2016-11-16 21:00+0100\n" +"PO-Revision-Date: 2016-11-19 15:51+0100\n" +"Last-Translator: Renato Rener \n" +"Language-Team: slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-KeywordsList: _;gettext;gettext_noop\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: src/e_mod_config.c:130 +msgid "Clipboards" +msgstr "Odložišča" + +#: src/e_mod_config.c:131 +msgid " Use Copy (Ctrl-C)" +msgstr "Uporabi kopiranje (Ctrl-C)" + +#: src/e_mod_config.c:134 +msgid " Use Primary (Selection)" +msgstr "Uporabi prvinsko (Izbor)" + +#: src/e_mod_config.c:137 +msgid " Synchronize Clipboards" +msgstr "Uskladi odložišča" + +#: src/e_mod_config.c:146 +msgid "History" +msgstr "Zgodovina" + +#: src/e_mod_config.c:147 +msgid " Save History" +msgstr "Shrani zgodovino" + +#: src/e_mod_config.c:150 +msgid " Reverse Order" +msgstr "Zamenjan vrstni red" + +#: src/e_mod_config.c:153 +msgid " Confirm before Clearing" +msgstr "Potrdi pred očiščenjem" + +#: src/e_mod_config.c:156 +msgid " Items in History" +msgstr "Predmeti zgodovine" + +#: src/e_mod_config.c:164 +msgid "Labels" +msgstr "Nalepke" + +#: src/e_mod_config.c:165 src/e_mod_config.c:177 +msgid " Ignore Whitespace" +msgstr "Ignoriraj prazno mesto" + +#: src/e_mod_config.c:168 +msgid " Label Length" +msgstr "Dolžina nalepke" + +#: src/e_mod_config.c:176 +msgid "Content" +msgstr "Vsebina" + +#: src/e_mod_config.c:180 +msgid " Trim Whitespace" +msgstr "Odstrani prazna mesta" + +#: src/e_mod_config.c:183 +msgid " Trim Newlines" +msgstr "Odstrani nove vrstice" + +#: src/e_mod_config.c:206 +msgid "Clipboard Settings" +msgstr "Nastavitve odložišča" + +#: src/e_mod_main.c:274 src/e_mod_main.c:382 +msgid "Settings" +msgstr "Nastavitve" + +#: src/e_mod_main.c:361 +msgid "Empty" +msgstr "Sprazni" + +#: src/e_mod_main.c:369 +msgid "Clear" +msgstr "Počisti" + +#: src/e_mod_main.c:568 +msgid "Confirm History Deletion" +msgstr "Potrdite brisanje zgodovine" + +#: src/e_mod_main.c:570 +msgid "" +"You wish to delete the clipboards history.

Are you sure you want to " +"delete it?" +msgstr "" +"Izbrisati hočete zgodovino odložišča.

Ali ste prepričani, da jo " +"hočete izbrisati?" + +#: src/e_mod_main.c:573 +msgid "Delete" +msgstr "Izbriši" + +#: src/e_mod_main.c:573 +msgid "Keep" +msgstr "Ohrani" + +#: src/e_mod_main.c:729 src/e_mod_main.c:730 src/e_mod_main.c:731 +msgid "Clipboard" +msgstr "Odložišče" + +#: src/e_mod_main.h:19 +msgid "Show History" +msgstr "Prikaži zgodovino" + +#: src/e_mod_main.h:20 +msgid "Show Settings" +msgstr "Prikaži nastavitve" + +#: src/e_mod_main.h:21 +msgid "Clear History" +msgstr "Počisti zgodovino" diff --git a/src/common.h b/src/common.h index 7577e1d..6261133 100644 --- a/src/common.h +++ b/src/common.h @@ -66,6 +66,8 @@ struct _Mod_Inst Ecore_X_Window win; /* Timer callback function to reguest Clipboard events */ Ecore_Timer *check_timer; + Ecore_Timer *delay_timer; + /* Callback function to handle clipboard events */ Eina_List *handle; /* Stores Clipboard History */ diff --git a/src/e_mod_config.c b/src/e_mod_config.c index 3e1904f..10e2e17 100644 --- a/src/e_mod_config.c +++ b/src/e_mod_config.c @@ -195,17 +195,20 @@ config_clipboard_module(E_Container *con, const char *params __UNUSED__) E_Config_Dialog *cfd; E_Config_Dialog_View *v; - if(e_config_dialog_find("E", "settings/clipboard")) return NULL; + if(e_config_dialog_find("Clipboard", "extensions/clipboard")) return NULL; + v = E_NEW(E_Config_Dialog_View, 1); + if (!v) return NULL; + v->create_cfdata = _create_data; v->free_cfdata = _free_data; v->basic.create_widgets = _basic_create_widgets; v->basic.apply_cfdata = _basic_apply_data; v->basic.check_changed = _basic_check_changed; - cfd = e_config_dialog_new(con, "Clipboard Settings", - "E", "preferences/clipboard", - "preferences-engine", 0, v, NULL); + cfd = e_config_dialog_new(con, D_("Clipboard Settings"), + "Clipboard", "extensions/clipboard", + 0, 0, v, NULL); clip_cfg->config_dialog = cfd; return cfd; } diff --git a/src/e_mod_main.c b/src/e_mod_main.c index f0a5a16..446a85c 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -424,6 +424,7 @@ _menu_fill(Instance *inst, Eina_Bool mouse_event) return dir; } + static Eina_Bool _cb_event_selection(Instance *instance, int type __UNUSED__, Ecore_X_Event_Selection_Notify * event) { @@ -460,6 +461,7 @@ _cb_event_selection(Instance *instance, int type __UNUSED__, Ecore_X_Event_Selec goto error; } _clip_add_item(cd); + } } error: @@ -472,12 +474,38 @@ _cb_event_owner(Instance *instance __UNUSED__, int type __UNUSED__, Ecore_X_Even EINA_SAFETY_ON_NULL_RETURN_VAL(event, ECORE_CALLBACK_DONE); /* If we lost owner of clipboard */ if (event->reason) - /* Reset clipboard and gain ownership of it */ + //~ /* Reset clipboard and gain ownership of it */ _cb_menu_item(eina_list_data_get(clip_inst->items)); return ECORE_CALLBACK_DONE; } +static Eina_Bool +_cb_xclip_apply_data(void *data) +{ + Ecore_Exe *exe; + char buf[PATH_MAX]; + + snprintf(buf, sizeof(buf), "cat ~/.xclip_clip.txt | xclip -selection clipboard"); + + exe = ecore_exe_run(buf, NULL); + if (exe) ecore_exe_free(exe); + return ECORE_CALLBACK_DONE; +} + +static Eina_Bool +_cb_xclip_save_data(void *data) +{ + Ecore_Exe *exe; + char buf[PATH_MAX]; + + snprintf(buf, sizeof(buf), "xclip -selection clipboard -o > ~/.xclip_clip.txt"); + + exe = ecore_exe_run(buf, NULL); + if (exe) ecore_exe_free(exe); + return ECORE_CALLBACK_DONE; +} + /* Updates clipboard content with the selected text of the modules Menu */ void _x_clipboard_update(const char *text) @@ -486,6 +514,13 @@ _x_clipboard_update(const char *text) EINA_SAFETY_ON_NULL_RETURN(text); clipboard.set(clip_inst->win, text, strlen(text) + 1); + + /* calling xclip callback */ + /* temporary solution for pasting content to the GTK environment + * xclip needs to be installed as dependency + * */ + clip_inst->delay_timer = ecore_timer_add(0.2, _cb_xclip_save_data, NULL); + clip_inst->delay_timer = ecore_timer_add(1.0, _cb_xclip_apply_data, NULL); } static void @@ -593,10 +628,8 @@ _cb_dialog_delete(void *data __UNUSED__) static Eina_Bool _cb_clipboard_request(void *data __UNUSED__) { - ecore_x_fixes_selection_notification_request(ECORE_X_ATOM_SELECTION_CLIPBOARD); clipboard.request(clip_inst->win, ECORE_X_SELECTION_TARGET_UTF8_STRING); - return EINA_TRUE; } static void @@ -668,7 +701,7 @@ e_modapi_init (E_Module *m) /* Display this Modules config info in the main Config Panel * Under Preferences catogory */ - e_configure_registry_item_add("preferences/clipboard", 10, + e_configure_registry_item_add("extensions/clipboard", 10, "Clipboard Settings", NULL, "edit-paste", config_clipboard_module); @@ -726,9 +759,9 @@ e_modapi_init (E_Module *m) act = e_action_add("clipboard"); if (act) { act->func.go = (void *) _cb_action_switch; - e_action_predef_name_set("Clipboard", ACT_FLOAT, "clipboard", "float", NULL, 0); - e_action_predef_name_set("Clipboard", ACT_CONFIG, "clipboard", "settings", NULL, 0); - e_action_predef_name_set("Clipboard", ACT_CLEAR, "clipboard", "clear", NULL, 0); + e_action_predef_name_set(D_("Clipboard"), ACT_FLOAT, "clipboard", "float", NULL, 0); + e_action_predef_name_set(D_("Clipboard"), ACT_CONFIG, "clipboard", "settings", NULL, 0); + e_action_predef_name_set(D_("Clipboard"), ACT_CLEAR, "clipboard", "clear", NULL, 0); } /* Create a global clip_inst for our module diff --git a/src/e_mod_main.h b/src/e_mod_main.h index f2954ee..ccfa8c6 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -16,9 +16,9 @@ #endif /* Key Board Bindings action names */ -#define ACT_FLOAT "Show History" -#define ACT_CONFIG "Show Settings" -#define ACT_CLEAR "Clear History" +#define ACT_FLOAT D_("Show History") +#define ACT_CONFIG D_("Show Settings") +#define ACT_CLEAR D_("Clear History") /* Macros used for config file versioning */ /* You can increment the EPOCH value if the old configuration is not diff --git a/src/utility.c b/src/utility.c index d717e5a..1b13a80 100644 --- a/src/utility.c +++ b/src/utility.c @@ -40,6 +40,7 @@ set_clip_content(char **content, char* text, int mode) { Eina_Bool ret = EINA_TRUE; char *temp, *trim; + char buf[50]; /* Sanity check */ if (!text) { WRN("ERROR: Text is NULL\n"); @@ -96,6 +97,7 @@ set_clip_name(char **name, char * text, int mode, int n) /* to be continued latter */ if (name) *name = _sanitize_ln(text, n, mode); + //~ *name = text; else { ERR("Error: Clip name pointer is Null!!"); return EINA_FALSE; @@ -123,12 +125,12 @@ _sanitize_ln(char *text, const unsigned int n, const int mode) if (mode) text = strip_whitespace(text, TRIM_SPACES); - + while (1) { chr = *text; if (chr == 0) break; - if (chr < 32) { + if ((chr < 32) && (chr >0)) { /* is it a tab */ if (chr == 9){ // default tab @@ -143,13 +145,17 @@ _sanitize_ln(char *text, const unsigned int n, const int mode) } } else { + /* assume char is ok and add to temp buffer */ *temp++ = *text++; + i++; } if (i == n) break; } *temp = 0; + + return ret; } diff --git a/src/x_clipboard.c b/src/x_clipboard.c index fe83b68..01dd639 100644 --- a/src/x_clipboard.c +++ b/src/x_clipboard.c @@ -171,8 +171,9 @@ _get_text_clipboard(Ecore_X_Event_Selection_Notify *event) if ((text_data->data.content == ECORE_X_SELECTION_CONTENT_TEXT) && (text_data->text)) - return text_data; + return text_data; } + return NULL; } @@ -180,7 +181,9 @@ Ecore_X_Selection_Data_Text * _get_text_primary(Ecore_X_Event_Selection_Notify *event) { Ecore_X_Selection_Data_Text *text_data; - +Ecore_Exe *exe; + + char buf[PATH_MAX]; if ((event->selection == ECORE_X_SELECTION_PRIMARY) && (strcmp(event->target, ECORE_X_SELECTION_TARGET_UTF8_STRING) == 0)) { @@ -190,6 +193,7 @@ _get_text_primary(Ecore_X_Event_Selection_Notify *event) (text_data->text)) return text_data; } + return NULL; }