Changeset 151886 in webkit
- Timestamp:
- Jun 22, 2013 11:14:13 PM (11 years ago)
- Location:
- trunk/Tools
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r151872 r151886 1 2013-06-22 Santosh Mahto <santosh.ma@samsung.com> 2 3 [EFL] Add support for MHTML save/load feature to MiniBrowser 4 https://bugs.webkit.org/show_bug.cgi?id=106620 5 6 Reviewed by Christophe Dumez. 7 8 Enable CTRL + S as save page in mhtml and CTRL + L to load any page 9 from filesystem. 10 11 * MiniBrowser/efl/CMakeLists.txt: 12 * MiniBrowser/efl/main.c: 13 (page_contents_callback): 14 (on_key_down): 15 (show_file_entry_dialog): generic function to show file enrty 16 selector dialogue 17 1 18 2013-06-21 Brent Fulgham <bfulgham@apple.com> 2 19 -
trunk/Tools/MiniBrowser/efl/CMakeLists.txt
r150376 r151886 41 41 ${ECORE_FILE_LIBRARIES} 42 42 ${EDJE_LIBRARIES} 43 ${EET_LIBRARIES} 43 44 ${EINA_LIBRARIES} 44 45 ${ELEMENTARY_LIBRARIES} -
trunk/Tools/MiniBrowser/efl/main.c
r151541 r151886 23 23 #include <Ecore_Evas.h> 24 24 #include <Ecore_Getopt.h> 25 #include <Eet.h> 25 26 #include <Eina.h> 26 27 #include <Elementary.h> … … 179 180 }; 180 181 182 static Eina_Stringshare *show_file_entry_dialog(Browser_Window *window, const char *label_tag, const char *default_text); 181 183 static Browser_Window *window_create(Evas_Object* opener, const char *url, int width, int height, Eina_Bool view_mode); 182 184 … … 348 350 elm_object_focus_set(window->search.search_field, EINA_FALSE); 349 351 evas_object_focus_set(window->ewk_view, EINA_TRUE); 352 } 353 354 static void save_page_contents_callback(Ewk_Page_Contents_Type type, const char *data, void *user_data) 355 { 356 Eet_File *ef; 357 Eina_Stringshare *fileName = (Eina_Stringshare *)user_data; 358 359 if (!eina_str_has_extension(fileName, ".mht")) { 360 Eina_Strbuf *fileNameWithMht = eina_strbuf_new(); 361 eina_strbuf_append_printf(fileNameWithMht, "%s.mht", fileName); 362 ef = eet_open(eina_strbuf_string_get(fileNameWithMht), EET_FILE_MODE_WRITE); 363 info("Saving file to: %s", eina_strbuf_string_get(fileNameWithMht)); 364 eina_strbuf_free(fileNameWithMht); 365 } else { 366 ef = eet_open(fileName, EET_FILE_MODE_WRITE); 367 info("Saving file to: %s", fileName); 368 } 369 370 if (!ef) { 371 info("ERROR: Could not create File"); 372 return; 373 } 374 375 eet_write(ef, "MHTML data", data, strlen(data), 0 /* compress */); 376 eet_close(ef); 377 info("SUCCESS: saved."); 378 379 eina_stringshare_del(fileName); 350 380 } 351 381 … … 424 454 window->current_zoom_level = DEFAULT_ZOOM_LEVEL; 425 455 info("Zoom to default (Ctrl + '0') was pressed, zoom level became %.2f", zoomLevels[window->current_zoom_level]); 456 } else if (ctrlPressed && !strcmp(ev->key, "s")) { 457 Eina_Strbuf *default_file = eina_strbuf_new(); 458 const char *home_path = getenv("HOME"); 459 const char *title = ewk_view_title_get(window->ewk_view); 460 eina_strbuf_append_printf(default_file, "%s/%s.mht", home_path ? home_path : "/home", title ? title : "title"); 461 info("Pressed (CTRL + S) : Saving Current Page."); 462 Eina_Stringshare *save_file_name = show_file_entry_dialog(window, "SAVE", eina_strbuf_string_get(default_file)); 463 if (!save_file_name) 464 return; 465 ewk_view_page_contents_get(ewk_view, EWK_PAGE_CONTENTS_TYPE_MHTML, save_page_contents_callback, (void *)save_file_name); 466 eina_strbuf_free(default_file); 467 } else if (ctrlPressed && !strcmp(ev->key, "l")) { 468 const char *home_path = getenv("HOME"); 469 Eina_Stringshare *open_file_name = show_file_entry_dialog(window, "LOAD", home_path ? home_path : "/home"); 470 if (!open_file_name) 471 return; 472 Eina_Strbuf *uri_path = eina_strbuf_new(); 473 eina_strbuf_append_printf(uri_path, "file://%s", open_file_name); 474 info("pressed (CTRL + L) : Loading Page %s", eina_strbuf_string_get(uri_path)); 475 ewk_view_url_set(ewk_view, eina_strbuf_string_get(uri_path)); 476 eina_strbuf_free(uri_path); 477 eina_stringshare_del(open_file_name); 426 478 } 427 479 } … … 946 998 947 999 ecore_main_loop_quit(); 1000 } 1001 1002 static Eina_Stringshare * 1003 show_file_entry_dialog(Browser_Window *window, const char *label_tag, const char *default_text) 1004 { 1005 Evas_Object *file_popup = elm_popup_add(window->elm_window); 1006 evas_object_size_hint_weight_set(file_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 1007 evas_object_show(file_popup); 1008 1009 Evas_Object *vbox = elm_box_add(file_popup); 1010 evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 1011 evas_object_size_hint_align_set(vbox, EVAS_HINT_FILL, EVAS_HINT_FILL); 1012 elm_object_content_set(file_popup, vbox); 1013 evas_object_show(vbox); 1014 1015 Evas_Object *label = elm_label_add(window->elm_window); 1016 elm_object_text_set(label, label_tag); 1017 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0); 1018 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, 0.5); 1019 evas_object_color_set(label, 23, 45, 67, 142); 1020 elm_box_pack_end(vbox, label); 1021 evas_object_show(label); 1022 1023 Evas_Object *fs_entry = elm_fileselector_entry_add(file_popup); 1024 elm_fileselector_entry_is_save_set(fs_entry, EINA_TRUE); 1025 evas_object_size_hint_align_set(fs_entry, EVAS_HINT_FILL, 0); 1026 elm_fileselector_entry_path_set(fs_entry, default_text); 1027 elm_object_text_set(fs_entry, "FileChooser"); 1028 elm_box_pack_end(vbox, fs_entry); 1029 evas_object_show(fs_entry); 1030 1031 Evas_Object *hbox = elm_box_add(file_popup); 1032 evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 1033 elm_box_horizontal_set(hbox, EINA_TRUE); 1034 evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL); 1035 elm_box_pack_end(vbox, hbox); 1036 evas_object_show(hbox); 1037 1038 Eina_Bool ok = EINA_FALSE; 1039 Evas_Object *ok_button = elm_button_add(file_popup); 1040 elm_object_text_set(ok_button, "OK"); 1041 evas_object_smart_callback_add(ok_button, "clicked", on_ok_clicked, &ok); 1042 elm_box_pack_end(hbox, ok_button); 1043 evas_object_show(ok_button); 1044 1045 Evas_Object *cancel_button = elm_button_add(file_popup); 1046 elm_object_text_set(cancel_button, "Cancel"); 1047 evas_object_smart_callback_add(cancel_button, "clicked", quit_event_loop, NULL); 1048 elm_box_pack_end(hbox, cancel_button); 1049 evas_object_show(cancel_button); 1050 1051 ecore_main_loop_begin(); 1052 1053 Eina_Stringshare *file_path = ok ? eina_stringshare_add(elm_fileselector_entry_path_get(fs_entry)) : NULL; 1054 evas_object_del(file_popup); 1055 return file_path; 948 1056 } 949 1057
Note: See TracChangeset
for help on using the changeset viewer.