From 24206804e050da8f6e007a7a84ec48bea1f70492 Mon Sep 17 00:00:00 2001 From: Albert Malewski Date: Tue, 8 Sep 2015 09:44:29 +0200 Subject: [PATCH 01/16] Fixed radio selection in settings [Issue] https://bugs.tizen.org/jira/browse/TT-154 [Problem] Cannot select any item in radio list at Web contents Sharing section. [Cause] Every radio was set to one group. Missing state valuesof radios. [Solution] Added enums with state values and separate radio buttons within 3 lists. [Verify] Launch browser > More Menu > Settings > Obs You should be able to select any radio in settings. Change-Id: I894d6527770c51066be60372cc3e69646c21ff82 --- services/SettingsUI/SettingsUI.cpp | 16 ++++++++++++++-- services/SettingsUI/SettingsUI.h | 15 +++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/services/SettingsUI/SettingsUI.cpp b/services/SettingsUI/SettingsUI.cpp index 2b68784..0799958 100644 --- a/services/SettingsUI/SettingsUI.cpp +++ b/services/SettingsUI/SettingsUI.cpp @@ -156,35 +156,47 @@ void SettingsUI::showSettingsPage() elm_check_state_set(history_checkbox, EINA_TRUE); edje_object_signal_callback_add(elm_layout_edje_get(m_items_layout), "mouse,clicked,1", "history_cb_text", __checkbox_label_click_cb, (void*)id); - Evas_Object *accept_all_rb = elm_radio_add(m_items_layout); elm_object_style_set(accept_all_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "accept_all_rb", accept_all_rb); + Evas_Object *sharingRequestGroup = accept_all_rb; + elm_radio_state_value_set(accept_all_rb, SR_ACCEPT_ALL); Evas_Object *ask_rb = elm_radio_add(m_items_layout); elm_object_style_set(ask_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "ask_rb", ask_rb); + elm_radio_group_add(ask_rb, sharingRequestGroup); + elm_radio_state_value_set(ask_rb, SR_ASK); Evas_Object *sr_disable_rb = elm_radio_add(m_items_layout); elm_object_style_set(sr_disable_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "sr_disable_rb", sr_disable_rb); + elm_radio_group_add(sr_disable_rb, sharingRequestGroup); + elm_radio_state_value_set(sr_disable_rb, SR_DISABLE); Evas_Object *bs_enable_rb = elm_radio_add(m_items_layout); elm_object_style_set(bs_enable_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "bs_enable_rb", bs_enable_rb); + Evas_Object *bookmarkSyncGroup = bs_enable_rb; + elm_radio_state_value_set(bs_enable_rb, BS_ENABLE); Evas_Object *bs_disable_rb = elm_radio_add(m_items_layout); elm_object_style_set(bs_disable_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "bs_disable_rb", bs_disable_rb); + elm_radio_group_add(bs_disable_rb, bookmarkSyncGroup); + elm_radio_state_value_set(bs_disable_rb, BS_DISABLE); Evas_Object *ts_enable_rb = elm_radio_add(m_items_layout); elm_object_style_set(ts_enable_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "ts_enable_rb", ts_enable_rb); + Evas_Object *tabSyncGroup = ts_enable_rb; + elm_radio_state_value_set(ts_enable_rb, TS_ENABLE); Evas_Object *ts_disable_rb = elm_radio_add(m_items_layout); elm_object_style_set(ts_disable_rb, "settings_radio"); elm_layout_content_set(m_items_layout, "ts_disable_rb", ts_disable_rb); - + elm_radio_group_add(ts_disable_rb, tabSyncGroup); + elm_radio_state_value_set(ts_disable_rb, TS_DISABLE); } Evas_Object* SettingsUI::listActionBarContentGet(void* data, Evas_Object* obj , const char* part) diff --git a/services/SettingsUI/SettingsUI.h b/services/SettingsUI/SettingsUI.h index 8adbf4d..70ffab2 100644 --- a/services/SettingsUI/SettingsUI.h +++ b/services/SettingsUI/SettingsUI.h @@ -63,7 +63,6 @@ private: static void _closetabs_clicked(void * data, Evas_Object * obj, void * event_info); static void _onotherdevices_clicked(void * data, Evas_Object * obj, void * event_info); -private: Evas_Object *m_settings_layout; Evas_Object *m_genListActionBar; Evas_Object *m_scroller; @@ -73,7 +72,19 @@ private: Elm_Gengrid_Item_Class * m_item_class; std::string m_edjFilePath; - + enum SharingRequest { + SR_DISABLE = 0, + SR_ASK, + SR_ACCEPT_ALL, + }; + enum BookmarkSync { + BS_DISABLE = 0, + BS_ENABLE + }; + enum TabSync { + TS_DISABLE = 0, + TS_ENABLE + }; }; } -- 2.7.4 From 7d65e7f2db89b41bec2a6d89283921bf3515a95e Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Tue, 8 Sep 2015 16:04:20 +0200 Subject: [PATCH 02/16] Fixed crash while loading page without title. [Issue] https://bugs.tizen.org/jira/browse/TT-162 [Problem] Browser crashed while loading page. [Cause] There was no check if page title is empty while comparing. [Solution] Changed compering to URL, added check if it's empty. [Verify] Launch browser > go to: http://jmajnert.github.io/tests/localStorage_test/localStoragePersistance.html refresh page > close browser > open again > go to previous site. Browser shouldn't crash. Change-Id: Icc19ad7a327d97fe6ff79777b0fc819189cf660a Signed-off-by: Maciej Skrzypkowski --- services/HistoryService/HistoryService.cpp | 64 ++++++++---------------------- services/HistoryService/HistoryService.h | 4 +- 2 files changed, 18 insertions(+), 50 deletions(-) diff --git a/services/HistoryService/HistoryService.cpp b/services/HistoryService/HistoryService.cpp index b5826ef..1d93507 100644 --- a/services/HistoryService/HistoryService.cpp +++ b/services/HistoryService/HistoryService.cpp @@ -88,24 +88,9 @@ int HistoryService::getHistoryItemsCount(){ return count; } -static int __get_duplicated_ids_p(int **ids, int *count, const int limit, const int offset, - const bp_history_offset order_column_offset, const int ordering, - const bp_history_offset check_column_offset, - const char *keyword, const int is_like) -{ - bp_history_rows_cond_fmt conds; - conds.limit = limit; - conds.offset = offset; - conds.ordering = ordering; - conds.order_offset = order_column_offset; - conds.period_offset = BP_HISTORY_O_DATE_CREATED; - conds.period_type = BP_HISTORY_DATE_ALL; - - return bp_history_adaptor_get_cond_ids_p(ids, count, &conds, check_column_offset, keyword, is_like); -} - -bool isDuplicate(const char* title) +bool HistoryService::isDuplicate(const char* url) const { + M_ASSERT(url); int *ids=nullptr; int count=0; bp_history_rows_cond_fmt conds; @@ -120,21 +105,22 @@ bool isDuplicate(const char* title) BROWSER_LOGD("Error! Could not get ids!"); } - bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_TITLE | BP_HISTORY_O_FAVICON | BP_HISTORY_O_DATE_CREATED); + bp_history_offset offset = (BP_HISTORY_O_URL | BP_HISTORY_O_DATE_CREATED); - for(int i = 0; i< count; i++){ + for (int i = 0; i < count; i++) { bp_history_info_fmt history_info; - bp_history_adaptor_get_info(ids[i],offset,&history_info); - if(!strcmp(history_info.title, title)) { - int freq; - bp_history_adaptor_get_frequency(ids[i], &freq); - bp_history_adaptor_set_frequency(ids[i], freq + 1); - bp_history_adaptor_set_date_visited(ids[i],-1); - return true; + bp_history_adaptor_get_info(ids[i], offset, &history_info); + if (!history_info.url) { + BROWSER_LOGD("Warning: history entry without url!"); + } else if (!strcmp(history_info.url, url)) { + int freq; + bp_history_adaptor_get_frequency(ids[i], &freq); + bp_history_adaptor_set_frequency(ids[i], freq + 1); + bp_history_adaptor_set_date_visited(ids[i],-1); + return true; } } return false; - } std::shared_ptr HistoryService::getHistoryAll() @@ -284,7 +270,7 @@ void HistoryService::addHistoryItem(std::shared_ptr his,std::shared his->setFavIcon(his->getFavIcon()); his->setThumbnail(thumbnail); - if(isDuplicate(his->getTitle().c_str())) + if (isDuplicate(his->getUrl().c_str())) return; int id = -1; @@ -330,14 +316,6 @@ void HistoryService::addHistoryItem(std::shared_ptr his,std::shared historyAdded(his); } - -void HistoryService::insertOrRefresh(std::shared_ptr hi) { - /** - * No browser- provider implementation till now. Needs to be done - */ - //getStorageManager()->insertOrRefresh(hi); -} - void HistoryService::clearAllHistory() { bp_history_adaptor_reset(); @@ -357,7 +335,9 @@ int HistoryService::getHistoryId(const std::string & url) int *ids = nullptr; int ids_count = 0; int ret = bp_history_adaptor_get_cond_ids_p(&ids ,&ids_count, &conds, BP_HISTORY_O_URL, url.c_str(), 0); - if (ids_count!=0){ + if (ret < 0) { + BROWSER_LOGD("Error! Could not get ids!"); + } else if (ids_count != 0) { int i = *ids; free(ids); return i; @@ -390,9 +370,7 @@ std::shared_ptr HistoryService::getHistoryItem(int * ids, int idNum int m_year = item_time_info->tm_year; int m_month = item_time_info->tm_mon + 1; - int m_day = item_time_info->tm_yday; int m_month_day = item_time_info->tm_mday; - int m_date = date; int min = item_time_info->tm_min; int hour = item_time_info->tm_hour; int sec = item_time_info->tm_sec; @@ -465,13 +443,5 @@ std::shared_ptr HistoryService::getHistoryItems(bp_history_da return ret_history_list; } -int HistoryService::getHistoryVisitCounter(const std::string & url) -{ /** - * No browser- provider implementation till now. Needs to be done - */ -// return getStorageManager()->getHistoryVisitCounter(url); - -} - } } diff --git a/services/HistoryService/HistoryService.h b/services/HistoryService/HistoryService.h index f8e10e1..7764bd3 100644 --- a/services/HistoryService/HistoryService.h +++ b/services/HistoryService/HistoryService.h @@ -44,7 +44,6 @@ public: int getHistoryId(const std::string & url); void addHistoryItem(std::shared_ptr hi, std::shared_ptr thumbnail=std::shared_ptr()); - void insertOrRefresh(std::shared_ptr hi); void clearAllHistory(); void clearURLHistory(const std::string & url); std::shared_ptr getHistoryItem(const std::string & url); @@ -58,7 +57,6 @@ public: std::shared_ptr getMostVisitedHistoryItems(); std::shared_ptr getHistoryItemsByURL(const std::string & url, int maxItems); int getHistoryItemsCount(); - int getHistoryVisitCounter(const std::string & url); void setStorageServiceTestMode(bool testmode = true); boost::signals2::signalhistoryEmpty; @@ -79,7 +77,7 @@ private: std::shared_ptr getHistoryItem(int* ids, int idNumber = 0); std::shared_ptr getHistoryItems(bp_history_date_defs period = BP_HISTORY_DATE_TODAY); std::shared_ptr getStorageManager(); - + bool isDuplicate(const char* url) const; }; } -- 2.7.4 From 5b81863b07ce0a44a3edcf285155248b473bcd51 Mon Sep 17 00:00:00 2001 From: "t.dakowicz" Date: Thu, 10 Sep 2015 15:55:02 +0200 Subject: [PATCH 03/16] Fixed bookmark creation [Issue#] N/A [Problem] Bookmarks couldn't be created [Cause] Variables used in 'bp_bookmark_adaptor_easy_create()' had some not initialized values [Solution] std::memset before passing its reference [Verify] Check if bookmarks can be created Change-Id: I861e70a6f6fa8e980423eb2721899421de9c485b --- services/BookmarkService/BookmarkService.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/BookmarkService/BookmarkService.cpp b/services/BookmarkService/BookmarkService.cpp index 322e826..edb3469 100644 --- a/services/BookmarkService/BookmarkService.cpp +++ b/services/BookmarkService/BookmarkService.cpp @@ -102,6 +102,8 @@ std::shared_ptr BookmarkService::addToBookmarks( } bp_bookmark_info_fmt info; + + std::memset(&info, 0, sizeof(bp_bookmark_info_fmt)); info.type = 0; info.parent = dirId; info.sequence = -1; @@ -457,6 +459,8 @@ int BookmarkService::update_bookmark(int id, const char *title, const char *uri, } } bp_bookmark_info_fmt info; + + std::memset(&info, 0, sizeof(bp_bookmark_info_fmt)); info.type = -1; info.parent = parent_id; info.sequence = order; -- 2.7.4 From 3a188631e8fb54f91fb5f1f17d16f95af299b955 Mon Sep 17 00:00:00 2001 From: "t.dakowicz" Date: Wed, 9 Sep 2015 15:57:01 +0200 Subject: [PATCH 04/16] TT-101 Fixed URL bar update and added doc icon [Issue#] https://bugs.tizen.org/jira/browse/TT-101 [Problem] URL bar shows wrong URL after back/forward action [Cause] Multiple URL changes and lack of direct connection to proper SimpleURI method [Solution] Added direct connection to SimpleURI::changeUri and added doc icon for pages not loaded completely (placeholder) [Verify] Check if back/forward action causes correct URL update Change-Id: Ibc5cad20397328789d3bfcc07e0852d41d1a87b7 --- services/MoreMenuUI/MoreMenuUI.cpp | 22 ++++++++++++++++++++-- services/MoreMenuUI/MoreMenuUI.h | 2 +- services/MoreMenuUI/edc/MoreMenu.edc | 1 + services/MoreMenuUI/images/ico_url.png | Bin 0 -> 4317 bytes services/SimpleUI/SimpleUI.cpp | 20 ++++++++++++++------ services/SimpleUI/SimpleUI.h | 2 +- services/SimpleURI/SimpleURI.cpp | 2 +- services/SimpleURI/SimpleURI.h | 2 +- services/WebKitEngineService/WebView.cpp | 4 +--- services/WebKitEngineService/WebView.h | 2 +- 10 files changed, 41 insertions(+), 16 deletions(-) create mode 100755 services/MoreMenuUI/images/ico_url.png diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index 088ae44..7489ab6 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -119,15 +119,33 @@ void MoreMenuUI::showCurrentTab() void MoreMenuUI::setFavIcon(std::shared_ptr favicon) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - if(favicon && favicon->imageType != tools::BrowserImage::ImageTypeNoImage){ + if(favicon && favicon->imageType != tools::BrowserImage::ImageTypeNoImage) { + if(m_icon) + evas_object_del(m_icon); + m_icon = tizen_browser::tools::EflTools::getEvasImage(favicon, m_current_tab_bar); - if(m_icon){ + if(m_icon) { evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon); evas_object_show(m_icon); } } + else { + setDocIcon(); + } +} + +void MoreMenuUI::setDocIcon() +{ + if(m_icon) + evas_object_del(m_icon); + + m_icon = elm_icon_add(m_mm_layout); + elm_image_file_set(m_icon, m_edjFilePath.c_str(), "ico_url.png"); + evas_object_size_hint_weight_set(m_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(m_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(m_current_tab_bar, "favicon", m_icon); } void MoreMenuUI::setWebTitle(const std::string& title) diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index 4bbf489..06e4017 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -88,6 +88,7 @@ private: static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); static void _exitClicked(); + void setDocIcon(); void newFolderPopup(std::string); void NewFolderCreate(Evas_Object * popup_content); void CancelClicked(Evas_Object * popup_content); @@ -101,7 +102,6 @@ private: static void __cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); static void __cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); -private: Evas_Object *m_current_tab_bar; std::shared_ptr m_new_folder_popup; Evas_Object *m_mm_layout; diff --git a/services/MoreMenuUI/edc/MoreMenu.edc b/services/MoreMenuUI/edc/MoreMenu.edc index 553416b..fcfd99a 100644 --- a/services/MoreMenuUI/edc/MoreMenu.edc +++ b/services/MoreMenuUI/edc/MoreMenu.edc @@ -54,6 +54,7 @@ RESOURCE_IMAGE_LOSSY("ic_more_desktopview_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_share_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_setting_foc.png") RESOURCE_IMAGE_LOSSY("ic_more_exit_foc.png") +RESOURCE_IMAGE_LOSSY("ico_url.png") #define WIDTH 1920 #define HEIGHT 366 diff --git a/services/MoreMenuUI/images/ico_url.png b/services/MoreMenuUI/images/ico_url.png new file mode 100755 index 0000000000000000000000000000000000000000..fa4625fc1f1a8030525bc08442f52c814ee9ad1f GIT binary patch literal 4317 zcmV<35F+o1P)Oz@Z0f2-7z;ux~O9+4z06=<WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bXU&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWwr)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>={htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~mM9!g3B(KJ}#RZ#@)!hR|78Dq|Iq-afF%KE1Brn_fm;Im z_u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!LkCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^Ra2?+}vI|Pk#IRF3#4@pEp zRA}Dqo6C<}R}sd)ug<+a-EBJ)5<8IiDaT4A7AWjNV#NX}OI9q95MqG@2%O-6ADMWP z$i^fg2qB`ZS+Qk_6bXdHe}E7oi98C4lGC*A!qfRYpeFwI>bl9U#j?heU|wY9Z*lGkT0zqv4T<|lEa!0xf@?#BU~0^pKI z03azzwim$7BPhAty^wT`4$s|p?`_a0tPStgFpt$KjnXK&qDgYgKKU@_3r^>Q_^8DiJA3ue7aw0d z^W*Q=BLPkV5=d4gKQ^;}*LA(p?sT%ED5w~>2^=uhZtKS4yr!og&g;7F#uyI)FiDX# zHHK|~n^1-)?kSQ7J;op*zp*eM&c5`k#aCYZd9h>Q+X_vRR(HCc{_MHuYXJ4AMCwm} zey9G&-~Sd#Vz3bd0!ar@rA5!1kP-n3KycS109r-AAIvy);nmkay7-Y@14~P? zvM9r-Rk3PiZeEDnN{MI#w@GmpFN@A6yC;6tDZyU)r$uGJ4$r$7D zkmZlO`G-G-9Ru%Drm=Zv7>E=?$oTBnzbd+a5JLD5fH{yin=Eksi!m)*2f!hhPPqH= zxvTFUy!_j@v+ao1{aT6j)p+gFOnu?y*FNr*Wf7~g@2(R@J|uad*?Jldp#|tr^q3LI z=dWE0vsZq1z1{BCV-G9|d6uv5dl%20t^mxRf93UJb!EALbOhi*Nv$M$4v-LX$R7on zRaMnmUbRNY+6@SCU&c;{IaB#UcYB(igYa9x)FgUzb4t16nI+)2Kjg@X}MpD zM?DzbY%>5$x6siKN$pWe72BA~GWj?o2R zMbbiY@Oqf_{y!|0Lb#pEO&fOdVr+mzmPNDhUIM1O-*e4r78GMdmSrKv_%whgl84k| z3;g_#z9#?+X>NDV=ILL&^h7$PJeuNRoX6!i-U`wu$Nc9CxYz63r^Wr}3Rvr9@&f{F zBl-*;v_+W!Pk<-D6W|H(1b6~G0iFO)fG5Bc;0f>qcmg~Do&ZmP_iEfrgWNWoTKJ$? zSOB4rPgR#(;ib5RQj!L-&}tN!}VU%HaFn-uriChanged.connect(boost::bind(&SimpleUI::filterURL, this, _1)); + m_webEngine->uriChanged.connect(boost::bind(&SimpleURI::changeUri, m_simpleURI.get(), _1)); m_webEngine->uriChanged.connect(boost::bind(&SimpleUI::webEngineURLChanged, this, _1)); m_webEngine->uriOnTabChanged.connect(boost::bind(&SimpleUI::checkTabId,this,_1)); m_webEngine->webViewClicked.connect(boost::bind(&SimpleURI::clearFocus, m_simpleURI.get())); @@ -853,11 +854,9 @@ void SimpleUI::filterURL(const std::string& url) //addBookmarkEnable(false); } -void SimpleUI::webEngineURLChanged(const std::string& url) +void SimpleUI::webEngineURLChanged(const std::string url) { BROWSER_LOGD("webEngineURLChanged:%s", url.c_str()); - - m_simpleURI->changeUri(url); m_simpleURI->clearFocus(); bookmarkCheck(); } @@ -1174,11 +1173,8 @@ void SimpleUI::showMoreMenu() (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.moremenuui")); M_ASSERT(m_moreMenuUI); - m_webEngine->favIconChanged.disconnect_all_slots(); m_webEngine->favIconChanged.connect(boost::bind(&MoreMenuUI::setFavIcon, m_moreMenuUI.get(), _1)); - m_webEngine->titleChanged.disconnect_all_slots(); m_webEngine->titleChanged.connect(boost::bind(&MoreMenuUI::setWebTitle, m_moreMenuUI.get(), _1)); - m_webEngine->uriChanged.disconnect_all_slots(); m_webEngine->uriChanged.connect(boost::bind(&MoreMenuUI::setURL, m_moreMenuUI.get(), _1)); m_moreMenuUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this, _1)); m_moreMenuUI->historyUIClicked.connect(boost::bind(&SimpleUI::showHistoryUI, this,_1)); @@ -1202,6 +1198,18 @@ void SimpleUI::showMoreMenu() void SimpleUI::closeMoreMenu(const std::string& str) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_webEngine->favIconChanged.disconnect(boost::bind(&MoreMenuUI::setFavIcon, m_moreMenuUI.get(), _1)); + m_webEngine->titleChanged.disconnect(boost::bind(&MoreMenuUI::setWebTitle, m_moreMenuUI.get(), _1)); + m_webEngine->uriChanged.disconnect(boost::bind(&MoreMenuUI::setURL, m_moreMenuUI.get(), _1)); + m_moreMenuUI->bookmarkManagerClicked.disconnect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this, _1)); + m_moreMenuUI->historyUIClicked.disconnect(boost::bind(&SimpleUI::showHistoryUI, this,_1)); + m_moreMenuUI->settingsClicked.disconnect(boost::bind(&SimpleUI::showSettingsUI, this,_1)); + m_moreMenuUI->closeMoreMenuClicked.disconnect(boost::bind(&SimpleUI::closeMoreMenu, this,_1)); + m_moreMenuUI->switchToMobileMode.disconnect(boost::bind(&SimpleUI::switchToMobileMode, this)); + m_moreMenuUI->switchToDesktopMode.disconnect(boost::bind(&SimpleUI::switchToDesktopMode, this)); + m_moreMenuUI->addToBookmarkClicked.disconnect(boost::bind(&SimpleUI::addBookmarkFolders, this)); + m_moreMenuUI->AddBookmarkInput.disconnect(boost::bind(&SimpleUI::addToBookmarks, this,_1)); + m_moreMenuUI->BookmarkFolderCreated.disconnect(boost::bind(&SimpleUI::newFolderMoreMenu, this,_1,_2)); m_moreMenuUI.reset(); } diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index 8c13280..476d5dd 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -195,7 +195,7 @@ private: * For filtered addresses we need to hide real URI so the user would be confused. * and this is a back function that checks if address emited from browser should be changed. */ - void webEngineURLChanged(const std::string& url); + void webEngineURLChanged(const std::string url); void onmostHistoryvisitedClicked(); void onBookmarkvisitedClicked(); /** diff --git a/services/SimpleURI/SimpleURI.cpp b/services/SimpleURI/SimpleURI.cpp index cc07c13..2c5b9ba 100644 --- a/services/SimpleURI/SimpleURI.cpp +++ b/services/SimpleURI/SimpleURI.cpp @@ -96,7 +96,7 @@ Evas_Object * SimpleURI::getContent(Evas_Object *main_layout) return m_entry_layout; } -void SimpleURI::changeUri(const std::string &newUri) +void SimpleURI::changeUri(const std::string newUri) { BROWSER_LOGD("%s: newUri=%s", __func__, newUri.c_str()); elm_entry_entry_set(m_entry, elm_entry_utf8_to_markup(newUri.c_str())); diff --git a/services/SimpleURI/SimpleURI.h b/services/SimpleURI/SimpleURI.h index ad268c5..77ec107 100644 --- a/services/SimpleURI/SimpleURI.h +++ b/services/SimpleURI/SimpleURI.h @@ -50,7 +50,7 @@ public: Evas_Object * getContent() { return m_entry_layout;}; - void changeUri(const std::string&); + void changeUri(const std::string); boost::signals2::signal uriChanged; void setFavIcon(std::shared_ptr favicon); diff --git a/services/WebKitEngineService/WebView.cpp b/services/WebKitEngineService/WebView.cpp index 3c5c5d4..3355e32 100644 --- a/services/WebKitEngineService/WebView.cpp +++ b/services/WebKitEngineService/WebView.cpp @@ -616,7 +616,7 @@ void WebView::__urlChanged(void * data, Evas_Object * /* obj */, void * event_in m_webEngine = std::dynamic_pointer_cast, tizen_browser::core::AbstractService>( tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webkitengineservice")); M_ASSERT(m_webEngine); - self->uriChanged(fromChar(reinterpret_cast(event_info))); + self->uriChanged(self->getURI()); self->tabIdChecker(self->m_tabId); } @@ -841,8 +841,6 @@ const TabId& WebView::getTabId(){ std::shared_ptr WebView::getFavicon() { BROWSER_LOGD("%s:%d, TabId: %s", __PRETTY_FUNCTION__, __LINE__, m_tabId.toString().c_str()); - if(faviconImage.get()) - return faviconImage; Evas_Object * favicon = ewk_context_icon_database_icon_object_add(ewk_view_context_get(m_ewkView), ewk_view_url_get(m_ewkView),evas_object_evas_get(m_ewkView)); faviconImage = EflTools::getBrowserImage(favicon); diff --git a/services/WebKitEngineService/WebView.h b/services/WebKitEngineService/WebView.h index 98b3e65..1672438 100644 --- a/services/WebKitEngineService/WebView.h +++ b/services/WebKitEngineService/WebView.h @@ -134,7 +134,7 @@ public: // signals boost::signals2::signal)> favIconChanged; boost::signals2::signal titleChanged; - boost::signals2::signal uriChanged; + boost::signals2::signal uriChanged; boost::signals2::signal tabIdChecker; boost::signals2::signal loadFinished; -- 2.7.4 From dbb8a09c87417077fe87ec3e8939ad8bd5dd918c Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Thu, 10 Sep 2015 14:34:17 +0200 Subject: [PATCH 05/16] Added thubnail and history links clicking for detail popup. [Issue] https://bugs.tizen.org/jira/browse/TT-144 [Problem] Detail popup missed thumbnail. [Cause] N/A [Solution] Added thumbnail in proper size. [Verify] Launch browser > open few pages > check thubnails Most Visited view in detail popup, check if history links in popup are clickable. Change-Id: I50d3e2862fc672a41de8cdc50f790f48f19ff21d Signed-off-by: Maciej Skrzypkowski --- core/Tools/EflTools.cpp | 3 - services/HistoryService/HistoryItem.cpp | 2 +- services/HistoryService/HistoryItem.h | 2 +- services/MainUI/DetailPopup.cpp | 43 +++++++++++++-- services/MainUI/DetailPopup.h | 10 ++++ services/MainUI/MainUI.cpp | 14 ++--- services/MainUI/MainUI.h | 4 +- services/MainUI/edc/DetailPopup.edc | 73 +++++++++++++++++++++++-- services/MainUI/edc/MainUI.edc | 18 +++--- services/MainUI/images/ic_popup_list_arrow.png | Bin 0 -> 3070 bytes services/SimpleUI/SimpleUI.cpp | 2 +- 11 files changed, 133 insertions(+), 38 deletions(-) create mode 100644 services/MainUI/images/ic_popup_list_arrow.png diff --git a/core/Tools/EflTools.cpp b/core/Tools/EflTools.cpp index f6cf03d..b8e1f49 100644 --- a/core/Tools/EflTools.cpp +++ b/core/Tools/EflTools.cpp @@ -83,9 +83,6 @@ Evas_Object * getEvasImage(std::shared_ptr b_image, Evas_Object * } else { BROWSER_LOGD("Image loaded"); evas_object_image_fill_set(eo_image, 0, 0, b_image->width, b_image->height); - - //EFL BUG without resizing image is not displayed - evas_object_resize(eo_image, b_image->width, b_image->height); } return eo_image; }; diff --git a/services/HistoryService/HistoryItem.cpp b/services/HistoryService/HistoryItem.cpp index 1d9ce89..6808685 100644 --- a/services/HistoryService/HistoryItem.cpp +++ b/services/HistoryService/HistoryItem.cpp @@ -87,7 +87,7 @@ void HistoryItem::setUrl(const std::string & url) m_url = url; } -std::string HistoryItem::getUrl() +std::string HistoryItem::getUrl() const { return m_url; } diff --git a/services/HistoryService/HistoryItem.h b/services/HistoryService/HistoryItem.h index 1d1e7ab..98875b9 100644 --- a/services/HistoryService/HistoryItem.h +++ b/services/HistoryService/HistoryItem.h @@ -51,7 +51,7 @@ public: bool operator!=(const HistoryItem& other); void setUrl(const std::string & url); - std::string getUrl(); + std::string getUrl() const; void setTitle(const std::string & title); std::string getTitle() const; diff --git a/services/MainUI/DetailPopup.cpp b/services/MainUI/DetailPopup.cpp index 4aa5604..9d2f1ea 100644 --- a/services/MainUI/DetailPopup.cpp +++ b/services/MainUI/DetailPopup.cpp @@ -16,15 +16,19 @@ #include +#include +#include #include "BrowserAssert.h" #include "DetailPopup.h" #include "BrowserLogger.h" #include "Tools/GeneralTools.h" +#include "Tools/EflTools.h" #include "MainUI.h" namespace tizen_browser{ namespace base_ui{ +const char * DetailPopup::URL_SEPARATOR = " - "; const int DetailPopup::HISTORY_ITEMS_NO = 5; DetailPopup::DetailPopup(MainUI *mainUI) @@ -62,14 +66,20 @@ void DetailPopup::createLayout(Evas_Object *parent) edje_object_signal_callback_add(elm_layout_edje_get(m_layout), "mouse,clicked,1", "thumbnail", _url_click, this); elm_layout_text_set(m_layout, "history_title", "History"); elm_layout_text_set(m_layout, "url", tools::clearURL(m_item->getUrl())); + m_historyList = elm_genlist_add(m_layout); evas_object_size_hint_weight_set(m_historyList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(m_historyList, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(m_historyList, "pressed", _history_url_click, this); + for (auto it = m_prevItems->begin(); it != m_prevItems->end(); ++it) { + elm_genlist_item_append(m_historyList, m_history_item_class, it->get(), nullptr, ELM_GENLIST_ITEM_NONE, nullptr, this); + } evas_object_show(m_historyList); elm_object_part_content_set(m_layout, "history_list", m_historyList); - for (auto it = m_prevItems->begin(); it != m_prevItems->end(); ++it) { - elm_genlist_item_append(m_historyList, m_history_item_class, it->get(), nullptr, ELM_GENLIST_ITEM_NONE, nullptr, this); + if (m_item->getThumbnail()) { + Evas_Object * thumb = tools::EflTools::getEvasImage(m_item->getThumbnail(), m_layout); + elm_object_part_content_set(m_layout, "thumbnail", thumb); } evas_object_show(m_layout); @@ -88,18 +98,19 @@ void DetailPopup::hide() edje_object_signal_callback_del(elm_layout_edje_get(m_layout), "mouse,clicked,1", "bg", _bg_click); edje_object_signal_callback_del(elm_layout_edje_get(m_layout), "mouse,clicked,1", "url_over", _url_click); edje_object_signal_callback_del(elm_layout_edje_get(m_layout), "mouse,clicked,1", "thumbnail", _url_click); + evas_object_smart_callback_del(m_historyList, "pressed", _history_url_click); elm_genlist_clear(m_historyList); evas_object_hide(m_layout); } -void DetailPopup::_bg_click(void* data, Evas_Object* obj, const char* emission, const char* source) +void DetailPopup::_bg_click(void* data, Evas_Object*, const char*, const char*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); DetailPopup *dp = reinterpret_cast(data); dp->hide(); } -void DetailPopup::_url_click(void* data, Evas_Object* obj, const char* emission, const char* source) +void DetailPopup::_url_click(void* data, Evas_Object*, const char*, const char*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); DetailPopup *dp = reinterpret_cast(data); @@ -107,14 +118,34 @@ void DetailPopup::_url_click(void* data, Evas_Object* obj, const char* emission, dp->openURLInNewTab(dp->m_item, dp->m_mainUI->isDesktopMode()); } -char* DetailPopup::_get_history_link_text(void* data, Evas_Object* obj, const char* part) +void DetailPopup::_history_url_click(void* data, Evas_Object*, void* event_info) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Elm_Object_Item *glit = reinterpret_cast(event_info); + void *itemData = elm_object_item_data_get(glit); + services::HistoryItem *item = reinterpret_cast(itemData); + + DetailPopup *dp = reinterpret_cast(data); + // find shared pointer pointed to HistoryItem object + auto it = std::find_if(dp->m_prevItems->begin(), + dp->m_prevItems->end(), + [item] (const std::shared_ptr i) + { return i.get() == item; } + ); + std::shared_ptr itemPtr= *it; + dp->hide(); + dp->openURLInNewTab(itemPtr, dp->m_mainUI->isDesktopMode()); +} + +char* DetailPopup::_get_history_link_text(void* data, Evas_Object*, const char* part) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); services::HistoryItem *item = reinterpret_cast(data); if (!strcmp(part, "page_dsc")) { if (item != nullptr) { - return strdup(tools::clearURL(item->getUrl())); + std::string text = item->getTitle() + URL_SEPARATOR + tools::clearURL(item->getUrl()); + return strdup(text.c_str()); } } return strdup(""); diff --git a/services/MainUI/DetailPopup.h b/services/MainUI/DetailPopup.h index 1ad8a02..953e9b8 100644 --- a/services/MainUI/DetailPopup.h +++ b/services/MainUI/DetailPopup.h @@ -53,10 +53,18 @@ namespace base_ui{ static void _url_click(void *data, Evas_Object *obj, const char *emission, const char *source); /** + * @brief History genlist item click callback + */ + static void _history_url_click(void *data, Evas_Object *o, void *event_info); + + /** * @brief Hide popup */ void hide(); + /** + * @brief Create main layout and all compnents. + */ void createLayout(Evas_Object *parent); /** @@ -71,6 +79,8 @@ namespace base_ui{ std::string edjFilePath; std::shared_ptr m_item; std::shared_ptr m_prevItems; + + static const char * URL_SEPARATOR; }; } diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index 6dbdbbc..1367a87 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -33,8 +33,8 @@ namespace base_ui{ const int SMALL_TILES_ROWS = 2; const int MAX_TILES_NUMBER = 5; -const int MainUI::MAX_TILE_WIDTH = 784; -const int MainUI::MAX_TILE_HEIGHT = 498; +const int MainUI::MAX_THUMBNAIL_WIDTH = 840; +const int MainUI::MAX_THUMBNAIL_HEIGHT = 648; EXPORT_SERVICE(MainUI, "org.tizen.browser.mainui") @@ -50,12 +50,6 @@ typedef struct _BookmarkItemData std::shared_ptr mainUI; } BookmarkItemData; -struct ItemData{ - tizen_browser::base_ui::MainUI * mainUI; - const char* button_name; - Elm_Object_Item * e_item; -}; - MainUI::MainUI() : m_parent(nullptr) , m_layout(nullptr) @@ -360,7 +354,7 @@ void MainUI::addBookmarkItems(std::vector(data); if (!strcmp(part, "page_title")) { @@ -372,7 +366,7 @@ char* MainUI::_grid_text_get(void *data, Evas_Object *obj, const char *part) return strdup(""); } -char* MainUI::_grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part) +char* MainUI::_grid_bookmark_text_get(void *data, Evas_Object *, const char *part) { BookmarkItemData *itemData = reinterpret_cast(data); if (!strcmp(part, "page_title")) { diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 667a844..9814981 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -63,8 +63,8 @@ public: boost::signals2::signal bookmarkClicked; boost::signals2::signal bookmarkManagerClicked; - static const int MAX_TILE_WIDTH; - static const int MAX_TILE_HEIGHT; + static const int MAX_THUMBNAIL_WIDTH; + static const int MAX_THUMBNAIL_HEIGHT; private: void createItemClasses(); diff --git a/services/MainUI/edc/DetailPopup.edc b/services/MainUI/edc/DetailPopup.edc index 5a2ea1b..dd291d8 100644 --- a/services/MainUI/edc/DetailPopup.edc +++ b/services/MainUI/edc/DetailPopup.edc @@ -2,7 +2,9 @@ collections { group { name: "popup"; - + images { + image: "ic_popup_list_arrow.png" COMP; + } parts { part { name: "bg"; type: RECT; @@ -44,10 +46,8 @@ collections { } part { name: "thumbnail"; - //type: SWALLOW; TODO: change to swallow while adding thumbnail to Detail popup - type: RECT; + type: SWALLOW; description { - color: 113 128 147 255; min: 840 648; max: 840 648; visible: 1; @@ -90,8 +90,8 @@ collections { type: TEXT; description { visible: 1; - min: 428 122; - max: 428 122; + min: 408 122; + max: 408 122; align: 0.0 0.0; fixed: 1 1; color: 51 51 51 255; @@ -117,6 +117,29 @@ collections { } } + part { name: "url_arrow"; + type: IMAGE; + scale: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.5; + min: 38 38; + max: 38 38; + image.normal: "ic_popup_list_arrow.png"; + rel1 { + to: "url_bg"; + relative: 0.0 0.0; + offset: 442 0; + } + rel2 { + to: "url_bg"; + relative: 1.0 1.0; + } + } + } + part { name: "url_over"; type: RECT; mouse_events: 1; @@ -229,6 +252,10 @@ collections { color: 255 255 255 255; align: 0.0 0.0; } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 0 119 246 255; + } } part { name: "page_dsc"; @@ -253,8 +280,42 @@ collections { align: 0 0.5; } } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + + part { name: "dsc_over"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + visible: 1; + color: 0 0 0 0; + rel1.to: "bg"; + rel2.to: "bg"; + } } } + programs { + program { + name: "mouse_in_url"; + signal: "mouse,in"; + source: "dsc_over"; + action: STATE_SET "selected" 0.0; + target: "bg"; + target: "page_dsc"; + } + program { + name: "mouse_out_url"; + signal: "mouse,out"; + source: "dsc_over"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "page_dsc"; + } + } } } \ No newline at end of file diff --git a/services/MainUI/edc/MainUI.edc b/services/MainUI/edc/MainUI.edc index de77956..030e8dd 100644 --- a/services/MainUI/edc/MainUI.edc +++ b/services/MainUI/edc/MainUI.edc @@ -402,8 +402,8 @@ group { name: "elm/genlist/item/big_grid_item/default"; fixed: 1 0; align: 0.0 0.0; color : 231 231 231 255; - min: 784 498; - max: 784 498; + min: 784 577; // size adjusted to max thubnail with and height + max: 784 577; rel1 { relative: 0.0 0.0; to: "bg"; } @@ -494,8 +494,9 @@ group { name: "elm/genlist/item/big_grid_item/default"; color: 113 128 147 255; visible: 1; rel1 { - to: "elm.thumbnail"; - relative: 0.0 1.0; + to: "bg"; + relative: 0.0 0.0; + offset: 0 498; // thumbnail height } rel2 { relative: 1.0 1.0; @@ -666,8 +667,8 @@ group { name: "elm/genlist/item/small_grid_item/default"; fixed: 1 0; align: 0.0 0.0; color : 231 231 231 255; - min: 378 198; - max: 378 198; + min: 378 292; // size adjusted to max thubnail with and height + max: 378 292; rel1 { relative: 0.0 0.0; to: "bg"; } @@ -758,8 +759,9 @@ group { name: "elm/genlist/item/small_grid_item/default"; color: 113 128 147 255; visible: 1; rel1 { - to: "elm.thumbnail"; - relative: 0.0 1.0; + to: "bg"; + relative: 0.0 0.0; + offset: 0 198; // thumbnail height } rel2 { relative: 1.0 1.0; diff --git a/services/MainUI/images/ic_popup_list_arrow.png b/services/MainUI/images/ic_popup_list_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..d54f171ca0cb46306d4f82628944d8bbe99d2faf GIT binary patch literal 3070 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003gNklg1YgT% zP$bdcX4-(+-Giq%1H)E(_?UB>-AX0L=#Xg?Sb-JTjBx{O=LmZTMnEr_Os$)T>W{kL zV2r8Rbbx-~j&g&c_5yd78w_>zcmx)JVbcM-E$*WyU=q)H;3O9q zz)Mu_IdB8O9AE%%QMuQ^^=si$oI#N*>X$lFtN+@S({f4uQ154bH}xfMWGAPoTvk7$ zT64KfKd~*L6`TVC(8wy=sDL8@8cN)XSVM@y$S8NO!63va0-sDzE}8u)oFc0Ne&pRlMV%-v9sr M07*qoM6N<$f)5?NF8}}l literal 0 HcmV?d00001 diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index f4380d7..2747a12 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -801,7 +801,7 @@ void SimpleUI::loadFinished() if(!m_webEngine->isPrivateMode()){ m_historyService->addHistoryItem(std::make_shared (m_webEngine->getURI(), m_webEngine->getTitle(), - m_webEngine->getFavicon()), m_webEngine->getSnapshotData(MainUI::MAX_TILE_WIDTH, MainUI::MAX_TILE_HEIGHT)); + m_webEngine->getFavicon()), m_webEngine->getSnapshotData(MainUI::MAX_THUMBNAIL_WIDTH, MainUI::MAX_THUMBNAIL_HEIGHT)); } #if 0 if(!m_platformInputManager->getPointerModeEnabled()) -- 2.7.4 From 098dc33d176296cba8110a84b32fb99e4d75140e Mon Sep 17 00:00:00 2001 From: Albert Malewski Date: Thu, 10 Sep 2015 15:14:29 +0200 Subject: [PATCH 06/16] HistoryUI Refactor [Issue] https://bugs.tizen.org/jira/browse/TT-157 [Problem] Improper view navigation is used. [Cause] N/A [Solution] Implemented needed methods: void init(Evas_Object *parent) Evas_Object* getContent() void showUI() void hideUI() [Verify] Launch browser > More Menu > History > Obs History should be displayed correctly. It needs implementation on SimpleUI side - when it's done, show() function should removed. Change-Id: I83500ec9053f9ac9fc418f63f7b87f5a24a38c92 --- services/HistoryUI/HistoryUI.cpp | 139 ++++++++++++++++++++++++++++----------- services/HistoryUI/HistoryUI.h | 10 ++- 2 files changed, 107 insertions(+), 42 deletions(-) diff --git a/services/HistoryUI/HistoryUI.cpp b/services/HistoryUI/HistoryUI.cpp index f9c3a12..8443e04 100644 --- a/services/HistoryUI/HistoryUI.cpp +++ b/services/HistoryUI/HistoryUI.cpp @@ -53,80 +53,139 @@ HistoryUI::HistoryUI() , m_itemClassToday(nullptr) , m_gengrid(nullptr) , m_parent(nullptr) - , m_item_class(nullptr) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_edjFilePath = EDJE_DIR; m_edjFilePath.append("HistoryUI/History.edj"); + m_item_class = crateItemClass(); } HistoryUI::~HistoryUI() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_itemClassToday) + elm_gengrid_item_class_free(m_itemClassToday); +} + +void HistoryUI::showUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_history_layout); + m_gengrid = createGengrid(m_history_layout); + addItems(); + evas_object_show(m_actionBar); + evas_object_show(m_history_layout); +} +void HistoryUI::hideUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_history_layout); + evas_object_del(m_genListToday); + m_genListToday = nullptr; + evas_object_del(m_gengrid); + m_gengrid = nullptr; + evas_object_hide(m_actionBar); + evas_object_hide(m_history_layout); } +// TODO: Remove this function when proper view handling will be introduced void HistoryUI::show(Evas_Object* parent) { - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - m_history_layout = elm_layout_add(parent); - elm_layout_file_set(m_history_layout, m_edjFilePath.c_str(), "history-layout"); - evas_object_size_hint_weight_set(m_history_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_history_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(m_history_layout); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + init(parent); + m_history_layout = createHistoryUILayout(m_parent); + showUI(); +} + +void HistoryUI::init(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); + m_parent = parent; +} - showActionBar(); +Evas_Object* HistoryUI::getContent() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!m_history_layout) + m_history_layout = createHistoryUILayout(m_parent); + return m_history_layout; +} - m_gengrid = elm_gengrid_add(m_history_layout); - elm_object_part_content_set(m_history_layout, "history_gengird", m_gengrid); +Evas_Object* HistoryUI::createHistoryUILayout(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + Evas_Object* history_layout = elm_layout_add(parent); + elm_layout_file_set(history_layout, m_edjFilePath.c_str(), "history-layout"); + evas_object_size_hint_weight_set(history_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(history_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - if (!m_item_class) { - m_item_class = elm_gengrid_item_class_new(); - m_item_class->item_style = "history_item"; - m_item_class->func.text_get = _grid_text_get; - m_item_class->func.content_get = _history_grid_content_get; - m_item_class->func.state_get = nullptr; - m_item_class->func.del = nullptr; - } + m_actionBar = createActionBar(history_layout); + m_gengrid = createGengrid(history_layout); - elm_gengrid_align_set(m_gengrid, 0, 0); - elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE); - elm_gengrid_horizontal_set(m_gengrid, EINA_TRUE); - elm_gengrid_highlight_mode_set(m_gengrid, EINA_TRUE); - elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON); - elm_scroller_page_size_set(m_gengrid, 0, 580); + return history_layout; +} - evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); +Evas_Object* HistoryUI::createGengrid(Evas_Object* history_layout) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(history_layout); + elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); + Evas_Object* gengrid = elm_gengrid_add(history_layout); + elm_object_part_content_set(history_layout, "history_gengird", gengrid); + + elm_gengrid_align_set(gengrid, 0, 0); + elm_gengrid_select_mode_set(gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_gengrid_multi_select_set(gengrid, EINA_FALSE); + elm_gengrid_horizontal_set(gengrid, EINA_TRUE); + elm_gengrid_highlight_mode_set(gengrid, EINA_TRUE); + elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON); + elm_scroller_page_size_set(gengrid, 0, 580); + evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); double efl_scale = elm_config_scale_get() / elm_app_base_scale_get(); - elm_gengrid_item_size_set(m_gengrid, 580 * efl_scale, 580 * efl_scale); + elm_gengrid_item_size_set(gengrid, 580 * efl_scale, 580 * efl_scale); + return gengrid; +} - addItems(); +Elm_Gengrid_Item_Class* HistoryUI::crateItemClass() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Elm_Gengrid_Item_Class* item_class = elm_gengrid_item_class_new(); + item_class->item_style = "history_item"; + item_class->func.text_get = _grid_text_get; + item_class->func.content_get = _history_grid_content_get; + item_class->func.state_get = nullptr; + item_class->func.del = nullptr; + return item_class; } -void HistoryUI::showActionBar() +Evas_Object* HistoryUI::createActionBar(Evas_Object* history_layout) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_actionBar = elm_layout_add(m_history_layout); - elm_object_part_content_set(m_history_layout, "action_bar_history", m_actionBar); - evas_object_size_hint_weight_set(m_actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); + Evas_Object* actionBar = elm_layout_add(history_layout); + elm_object_part_content_set(history_layout, "action_bar_history", actionBar); + evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_file_set(m_actionBar, m_edjFilePath.c_str(), "action_bar"); + elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); - Evas_Object *button = elm_button_add(m_actionBar); + Evas_Object *button = elm_button_add(actionBar); elm_object_style_set(button, "history_button"); evas_object_smart_callback_add(button, "clicked", HistoryUI::_clearHistory_clicked, this); - elm_object_part_content_set(m_actionBar, "clearhistory_click", button); + elm_object_part_content_set(actionBar, "clearhistory_click", button); - button = elm_button_add(m_actionBar); + button = elm_button_add(actionBar); elm_object_style_set(button, "history_button"); evas_object_smart_callback_add(button, "clicked", HistoryUI::_close_clicked_cb, this); - elm_object_part_content_set(m_actionBar, "close_click", button); + elm_object_part_content_set(actionBar, "close_click", button); - evas_object_show(m_actionBar); + return actionBar; } void HistoryUI::_close_clicked_cb(void * data, Evas_Object*, void*) diff --git a/services/HistoryUI/HistoryUI.h b/services/HistoryUI/HistoryUI.h index 83bd6f6..c849f5f 100644 --- a/services/HistoryUI/HistoryUI.h +++ b/services/HistoryUI/HistoryUI.h @@ -36,14 +36,18 @@ class BROWSER_EXPORT HistoryUI public: HistoryUI(); ~HistoryUI(); - void init(Evas_Object *main_layout); + void init(Evas_Object *parent); + Evas_Object* getContent(); + void showUI(); + void hideUI(); + Evas_Object* createGengrid(Evas_Object* history_layout); virtual std::string getName(); void addHistoryItem(std::shared_ptr); void addHistoryItems(std::shared_ptr); void removeHistoryItem(const std::string& uri); void clearItems(); void hide(); - void showActionBar(); + Evas_Object* createActionBar(Evas_Object* history_layout); void show(Evas_Object *main_layout); void addItems(); boost::signals2::signal closeHistoryUIClicked; @@ -51,6 +55,8 @@ public: boost::signals2::signal)> historyItemClicked; boost::signals2::signal)> historyDeleteClicked; private: + Evas_Object* createHistoryUILayout(Evas_Object* parent); + Elm_Gengrid_Item_Class* crateItemClass(); static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _history_grid_content_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part); -- 2.7.4 From d9fda64ac39d92bb6cf2ca4078d1dde4fa418a8c Mon Sep 17 00:00:00 2001 From: Albert Malewski Date: Fri, 11 Sep 2015 10:27:53 +0200 Subject: [PATCH 07/16] Implementing AbstractUIComponent's new interface methods in SettingsUI [Issue] https://bugs.tizen.org/jira/browse/TT-157 [Problem] Improper view navigation is used. [Cause] N/A [Solution] Implemented needed methods: void init(Evas_Object *parent) Evas_Object* getContent() void showUI() void hideUI() [Verify] Launch browser > More Menu > Settings > Obs Settings should be displayed correctly. It needs implementation on SimpleUI side - when it's done, show() function should be removed. Change-Id: Ic28f501398cf55de4b4a5a9d5bae20bada55c525 --- services/SettingsUI/SettingsUI.cpp | 126 ++++++++++++++++++++--------------- services/SettingsUI/SettingsUI.h | 12 ++-- services/SettingsUI/edc/Settings.edc | 2 +- 3 files changed, 83 insertions(+), 57 deletions(-) diff --git a/services/SettingsUI/SettingsUI.cpp b/services/SettingsUI/SettingsUI.cpp index 0799958..c51b6ff 100644 --- a/services/SettingsUI/SettingsUI.cpp +++ b/services/SettingsUI/SettingsUI.cpp @@ -39,8 +39,6 @@ struct ItemData { SettingsUI::SettingsUI() : m_settings_layout(nullptr) - , m_genListActionBar(nullptr) - , m_itemClassActionBar(nullptr) , m_parent(nullptr) , m_item_class(nullptr) , m_scroller(nullptr) @@ -56,74 +54,97 @@ SettingsUI::~SettingsUI() } -void SettingsUI::show(Evas_Object* parent) +void SettingsUI::init(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - m_settings_layout = elm_layout_add(parent); - elm_layout_file_set(m_settings_layout, m_edjFilePath.c_str(), "settings-layout"); - evas_object_size_hint_weight_set(m_settings_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_settings_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + M_ASSERT(parent); + m_parent = parent; +} + +Evas_Object* SettingsUI::getContent() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!m_settings_layout) + m_settings_layout = createSettingsUILayout(m_parent); + return m_settings_layout; +} + +void SettingsUI::showUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_show(m_scroller); + evas_object_show(m_items_layout); evas_object_show(m_settings_layout); + evas_object_show(m_actionBar); +} - showActionBar(); - showSettingsPage(); +void SettingsUI::hideUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + evas_object_hide(m_scroller); + evas_object_hide(m_items_layout); + evas_object_hide(m_settings_layout); + evas_object_hide(m_actionBar); } -void SettingsUI::showActionBar() +Evas_Object* SettingsUI::createSettingsUILayout(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); elm_theme_extension_add(nullptr, m_edjFilePath.c_str()); - m_genListActionBar = elm_genlist_add(m_settings_layout); - elm_object_part_content_set(m_settings_layout, "actionbar_swallow", m_genListActionBar); - elm_genlist_homogeneous_set(m_genListActionBar, EINA_FALSE); - elm_genlist_multi_select_set(m_genListActionBar, EINA_FALSE); - elm_genlist_select_mode_set(m_genListActionBar, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(m_genListActionBar, ELM_LIST_LIMIT); - elm_genlist_decorate_mode_set(m_genListActionBar, EINA_TRUE); - evas_object_size_hint_weight_set(m_genListActionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - m_itemClassActionBar = elm_genlist_item_class_new(); - m_itemClassActionBar->item_style = "settings_action_bar_items"; - m_itemClassActionBar->func.text_get = nullptr; - m_itemClassActionBar->func.content_get = &listActionBarContentGet; - m_itemClassActionBar->func.state_get = nullptr; - m_itemClassActionBar->func.del = nullptr; + Evas_Object* settings_layout = elm_layout_add(parent); + elm_layout_file_set(settings_layout, m_edjFilePath.c_str(), "settings-layout"); + evas_object_size_hint_weight_set(settings_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(settings_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + m_actionBar = createActionBar(settings_layout); + m_scroller = createSettingsPage(settings_layout); + return settings_layout; +} - ItemData *id = new ItemData; - id->settingsUI = this; - Elm_Object_Item *elmItem = elm_genlist_item_append(m_genListActionBar, //genlist - m_itemClassActionBar, //item Class - id, - nullptr, //parent item - ELM_GENLIST_ITEM_NONE, //item type - nullptr, - nullptr //data passed to above function - ); - id->e_item = elmItem; +void SettingsUI::show(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + init(parent); + m_settings_layout = createSettingsUILayout(m_parent); + showUI(); +} +Evas_Object* SettingsUI::createActionBar(Evas_Object* settings_layout) +{ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object* actionBar = elm_layout_add(settings_layout); + elm_object_part_content_set(settings_layout, "actionbar_swallow", actionBar); + evas_object_size_hint_weight_set(actionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(actionBar, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_layout_file_set(actionBar, m_edjFilePath.c_str(), "action_bar"); + Evas_Object *close_click_btn = elm_button_add(actionBar); + elm_object_style_set(close_click_btn, "basic_button"); + evas_object_smart_callback_add(close_click_btn, "clicked", SettingsUI::close_clicked_cb, this); + elm_object_part_content_set(actionBar, "close_click", close_click_btn); + + return actionBar; } -void SettingsUI::showSettingsPage() +Evas_Object* SettingsUI::createSettingsPage(Evas_Object* settings_layout) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); ItemData *id = new ItemData; id->settingsUI = this; - m_scroller = elm_scroller_add(m_settings_layout); - m_items_layout = elm_layout_add(m_scroller); - elm_object_content_set(m_scroller, m_items_layout); + Evas_Object* scroller = elm_scroller_add(settings_layout); + m_items_layout = elm_layout_add(scroller); + elm_object_content_set(scroller, m_items_layout); elm_layout_file_set(m_items_layout, m_edjFilePath.c_str(), "settings_items"); - elm_object_part_content_set(m_settings_layout, "settings_scroller_swallow", m_scroller); - evas_object_size_hint_weight_set(m_scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(settings_layout, "settings_scroller_swallow", scroller); + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_scroller_policy_set(m_items_layout, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_AUTO); - elm_scroller_bounce_set(m_scroller, EINA_TRUE, EINA_FALSE); - elm_scroller_propagate_events_set(m_scroller, EINA_TRUE); - evas_object_show(m_scroller); - evas_object_show(m_items_layout); + elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_FALSE); + elm_scroller_propagate_events_set(scroller, EINA_TRUE); Evas_Object *del_selected_data_button = elm_button_add(m_items_layout); elm_object_style_set(del_selected_data_button, "basic_button"); @@ -197,6 +218,8 @@ void SettingsUI::showSettingsPage() elm_layout_content_set(m_items_layout, "ts_disable_rb", ts_disable_rb); elm_radio_group_add(ts_disable_rb, tabSyncGroup); elm_radio_state_value_set(ts_disable_rb, TS_DISABLE); + + return scroller; } Evas_Object* SettingsUI::listActionBarContentGet(void* data, Evas_Object* obj , const char* part) @@ -243,9 +266,9 @@ void SettingsUI::close_clicked_cb(void* data, Evas_Object*, void*) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (data) { - ItemData * id = static_cast(data); - id->settingsUI->closeSettingsUIClicked(std::string()); - id->settingsUI->clearItems(); + SettingsUI * s_ui = static_cast(data); + s_ui->closeSettingsUIClicked(std::string()); + s_ui->clearItems(); } } @@ -294,7 +317,6 @@ void SettingsUI::clearItems() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); hide(); - elm_genlist_clear(m_genListActionBar); } } diff --git a/services/SettingsUI/SettingsUI.h b/services/SettingsUI/SettingsUI.h index 70ffab2..d07c9d4 100644 --- a/services/SettingsUI/SettingsUI.h +++ b/services/SettingsUI/SettingsUI.h @@ -35,10 +35,14 @@ class BROWSER_EXPORT SettingsUI public: SettingsUI(); ~SettingsUI(); + void init(Evas_Object* parent); + Evas_Object* getContent(); + void showUI(); + void hideUI(); void show(Evas_Object *main_layout); virtual std::string getName(); - void showActionBar(); - void showSettingsPage(); + Evas_Object* createActionBar(Evas_Object* settings_layout); + Evas_Object* createSettingsPage(Evas_Object* settings_layout); void clearItems(); void hide(); @@ -48,6 +52,7 @@ public: boost::signals2::signal closeSettingsUIClicked; private: + Evas_Object* createSettingsUILayout(Evas_Object* parent); static Evas_Object* listActionBarContentGet(void *data, Evas_Object *obj, const char *part); static Evas_Object* listSettingsGenlistContentGet(void *data, Evas_Object *obj, const char *part); @@ -64,10 +69,9 @@ private: static void _onotherdevices_clicked(void * data, Evas_Object * obj, void * event_info); Evas_Object *m_settings_layout; - Evas_Object *m_genListActionBar; + Evas_Object *m_actionBar; Evas_Object *m_scroller; Evas_Object *m_items_layout; - Elm_Genlist_Item_Class *m_itemClassActionBar; Evas_Object *m_parent; Elm_Gengrid_Item_Class * m_item_class; diff --git a/services/SettingsUI/edc/Settings.edc b/services/SettingsUI/edc/Settings.edc index 603c8d0..e22ae4c 100644 --- a/services/SettingsUI/edc/Settings.edc +++ b/services/SettingsUI/edc/Settings.edc @@ -1197,7 +1197,7 @@ group { name: "settings_items"; } -group { name: "elm/genlist/item/settings_action_bar_items/default"; +group { name: "action_bar"; min: 1920 104; max: 1920 104; data.item: "texts" "settings_title"; -- 2.7.4 From c88073101a90e6d53e149b26e06cc49547785fde Mon Sep 17 00:00:00 2001 From: Marcin Lapinski Date: Tue, 1 Sep 2015 13:33:29 +0200 Subject: [PATCH 08/16] SimpleUI refactoring [Issue#:] https://bugs.tizen.org/jira/browse/TT-157 [Problem:] Function exec() covers functionality which will be covered by different classes; [Cause:] N/A [Sollution:] Splitted huge exec() to few smaller. [Verify:] Refactor is not affecting browsers behaviour. Change-Id: I073154a3116ef7ff9723e2445737a699f59e214e --- services/SimpleUI/SimpleUI.cpp | 510 +++++++++++++++++++---------------------- services/SimpleUI/SimpleUI.h | 14 +- 2 files changed, 244 insertions(+), 280 deletions(-) diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 2747a12..0f539a5 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -77,6 +77,7 @@ SimpleUI::SimpleUI() , m_wvIMEStatus(false) , m_ewkContext(ewk_context_new()) { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); elm_init(0, nullptr); Evas_Object *main_window = elm_win_util_standard_add("browserApp", "browserApp"); if (main_window == nullptr) @@ -86,7 +87,7 @@ SimpleUI::SimpleUI() } SimpleUI::~SimpleUI() { - BROWSER_LOGD("%s", __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_sessionService->getStorage()->deleteSession(m_currentSession); /// \todo Auto-generated destructor stub evas_object_del(m_window.get()); @@ -95,7 +96,7 @@ SimpleUI::~SimpleUI() { void SimpleUI::destroyUI() { - BROWSER_LOGD("%s", __func__); + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); evas_object_del(m_window.get()); } @@ -119,19 +120,15 @@ std::shared_ptr SimpleUI::getHistory() return m_historyService->getHistoryToday(); } - std::vector > SimpleUI::getBookmarkFolders(int folder_id) { return m_favoriteService->getBookmarkFolders(folder_id); } - - int SimpleUI::exec(const std::string& _url) { BROWSER_LOGD("[%s] _url=%s, initialised=%d", __func__, _url.c_str(), m_initialised); std::string url = _url; - Session::Session lastSession; if(!m_initialised){ if (m_window.get()) { @@ -139,147 +136,37 @@ int SimpleUI::exec(const std::string& _url) config.load(""); m_tabLimit = boost::any_cast (config.get("TAB_LIMIT")); m_favoritesLimit = boost::any_cast (config.get("FAVORITES_LIMIT")); - elm_win_alpha_set(m_window.get(), EINA_FALSE); - // creating main window + // Set up main window + //TODO: These functions seems redundant. Check if these functions are neccessary. int width = 0; int height = 0; ecore_wl_screen_size_get(&width, &height); evas_object_move(m_window.get(), 0, 0); evas_object_resize(m_window.get(), width, height); - // create main layout - m_mainLayout = elm_layout_add(m_window.get()); - evas_object_size_hint_weight_set(m_mainLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(m_window.get(), m_mainLayout); - - ///\todo Integrate with pointer / tab mode switch elm_win_focus_highlight_style_set(m_window.get(), "invisible"); - //elm_config_focus_highlight_animate_set(EINA_TRUE); - - m_errorLayout = elm_layout_add(m_window.get()); - evas_object_size_hint_weight_set(m_errorLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - //elm_win_resize_object_add(m_window.get(), m_errorLayout); //set global show tooltip timeout elm_config_tooltip_delay_set( boost::any_cast (config.get("TOOLTIP_DELAY"))); loadThemes(); - if(!elm_layout_file_set(m_mainLayout, edjePath("SimpleUI/MainLayout.edj").c_str(), "main_layout")) - throw std::runtime_error("Layout file not found: " + edjePath("SimpleUI/MainLayout.edj")); - - //elm_object_style_set(m_errorLayout, "error_message"); - if(!elm_layout_file_set(m_errorLayout, edjePath("SimpleUI/ErrorMessage.edj").c_str(), "error_message")) - throw std::runtime_error("Layout file not found: " + edjePath("SimpleUI/ErrorMessage.edj")); - - // load && initialize components - // simpleURI - BROWSER_LOGD("[%s:%d] service: simpleURI ", __PRETTY_FUNCTION__, __LINE__); - m_simpleURI = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.simpleuri")); - M_ASSERT(m_simpleURI); - - // webengine - BROWSER_LOGD("[%s:%d] service: webkitengineservice ", __PRETTY_FUNCTION__, __LINE__); - m_webEngine = - std::dynamic_pointer_cast - ,tizen_browser::core::AbstractService> - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webkitengineservice")); - M_ASSERT(m_webEngine); - m_webEngine->init(m_mainLayout); - - // bookmarks UI - BROWSER_LOGD("[%s:%d] service: bookmarksui ", __PRETTY_FUNCTION__, __LINE__); - - // favorites service - BROWSER_LOGD("[%s:%d] service: favoriteservice ", __PRETTY_FUNCTION__, __LINE__); - std::string favoriteService(boost::any_cast < std::string > (config.get("favorite_service_name"))); - BROWSER_LOGD("favorite config"); - m_favoriteService = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService(favoriteService)); - BROWSER_LOGD("favorite create"); - M_ASSERT(m_favoriteService); - m_favoriteService->synchronizeBookmarks(); - BROWSER_LOGD("favorite before getBookmarks"); - m_favoriteService->getBookmarks(); - BROWSER_LOGD("favorite after getBookmarks"); - - // history service - BROWSER_LOGD("[%s:%d] service: historyservice ", __PRETTY_FUNCTION__, __LINE__); - m_historyService = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyservice")); - M_ASSERT(m_historyService); - + loadUIServices(); + loadModelServices(); + createActions(); - // Platforminputmanager - BROWSER_LOGD("[%s:%d] service: platforminputmanager ", __PRETTY_FUNCTION__, __LINE__); - m_platformInputManager = - std::dynamic_pointer_cast - - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.platforminputmanager")); - M_ASSERT(m_platformInputManager); - m_platformInputManager->init(m_window.get()); - m_platformInputManager->returnPressed.connect(boost::bind(&elm_exit)); - m_platformInputManager->backPressed.connect(boost::bind(&SimpleUI::onBackPressed, this)); + // create view layouts + m_mainLayout = createWebLayout(m_window.get()); + elm_win_resize_object_add(m_window.get(), m_mainLayout); - createActions(); + m_errorLayout = createErrorLayout(m_window.get()); - // left buttons - leftButtonBar = std::make_shared(m_mainLayout, "SimpleUI/LeftButtonBar.edj", "left_button_bar"); - leftButtonBar->addAction(m_back, "prev_button"); - leftButtonBar->addAction(m_forward, "next_button"); - leftButtonBar->addAction(m_reload, "refresh_stop_button"); - //register action that will be used later by buttons - leftButtonBar->registerEnabledChangedCallback(m_stopLoading, "refresh_stop_button"); - - // right buttons - rightButtonBar = std::make_shared(m_mainLayout, "SimpleUI/RightButtonBar.edj", "right_button_bar"); - rightButtonBar->addAction(m_tab, "tab_button"); - rightButtonBar->addAction(m_showMoreMenu, "setting_button"); - - m_progressBar = elm_progressbar_add(m_mainLayout); - elm_object_style_set(m_progressBar,"play_buffer"); - - webTitleBar = std::make_shared(m_mainLayout, "SimpleUI/WebTitleBar.edj", "web_title_bar"); - elm_object_part_content_set(m_mainLayout, "web_title_bar", webTitleBar->getContent()); - - elm_object_part_content_set(m_mainLayout, "uri_entry", m_simpleURI->getContent(m_mainLayout)); - elm_object_part_content_set(m_mainLayout, "uri_bar_buttons_left", leftButtonBar->getContent()); - elm_object_part_content_set(m_mainLayout, "uri_bar_buttons_right", rightButtonBar->getContent()); - - // connecting all together - m_simpleURI->uriChanged.connect(boost::bind(&SimpleUI::filterURL, this, _1)); - m_webEngine->uriChanged.connect(boost::bind(&SimpleURI::changeUri, m_simpleURI.get(), _1)); - m_webEngine->uriChanged.connect(boost::bind(&SimpleUI::webEngineURLChanged, this, _1)); - m_webEngine->uriOnTabChanged.connect(boost::bind(&SimpleUI::checkTabId,this,_1)); - m_webEngine->webViewClicked.connect(boost::bind(&SimpleURI::clearFocus, m_simpleURI.get())); - m_webEngine->backwardEnableChanged.connect(boost::bind(&SimpleUI::backEnable, this, _1)); - m_webEngine->forwardEnableChanged.connect(boost::bind(&SimpleUI::forwardEnable, this, _1)); - m_webEngine->loadStarted.connect(boost::bind(&SimpleUI::loadStarted, this)); - m_webEngine->loadProgress.connect(boost::bind(&SimpleUI::progressChanged,this,_1)); - m_webEngine->loadFinished.connect(boost::bind(&SimpleUI::loadFinished, this)); - m_webEngine->loadStop.connect(boost::bind(&SimpleUI::loadFinished, this)); - m_webEngine->loadError.connect(boost::bind(&SimpleUI::loadError, this)); - m_webEngine->confirmationRequest.connect(boost::bind(&SimpleUI::handleConfirmationRequest, this, _1)); - m_webEngine->tabCreated.connect(boost::bind(&SimpleUI::tabCreated, this)); - m_webEngine->tabClosed.connect(boost::bind(&SimpleUI::tabClosed,this,_1)); - m_webEngine->titleChanged.connect(boost::bind(&WebTitleBar::show, webTitleBar.get(), _1)); - m_webEngine->IMEStateChanged.connect(boost::bind(&SimpleUI::setwvIMEStatus, this, _1)); - - m_favoriteService->bookmarkAdded.connect(boost::bind(&SimpleUI::onBookmarkAdded, this,_1)); - m_favoriteService->bookmarkDeleted.connect(boost::bind(&SimpleUI::onBookmarkRemoved, this, _1)); - - //m_historyService->historyEmpty.connect(boost::bind(&SimpleUI::disableHistoryButton, this, _1)); - m_historyService->historyAdded.connect(boost::bind(&SimpleUI::onHistoryAdded, this,_1)); - m_historyService->historyDeleted.connect(boost::bind(&SimpleUI::onHistoryRemoved, this,_1)); + //this needs to be called after UI is estabilished + initModelServices(); + connectModelSignals(); + connectUISignals(); connectActions(); elm_layout_signal_callback_add(m_simpleURI->getContent(), "slide_websearch", "elm", SimpleUI::favicon_clicked, this); @@ -287,65 +174,208 @@ int SimpleUI::exec(const std::string& _url) // show main layout and window evas_object_show(m_mainLayout); evas_object_show(m_window.get()); - - m_netErrorHandler = std::unique_ptr(new tizen_browser::basic_ui::NetworkErrorHandler); - m_netErrorHandler->networkError.connect(boost::bind(&SimpleUI::onNetworkError, this)); - m_netErrorHandler->networkConnected.connect(boost::bind(&SimpleUI::onNetworkConnected, this)); - - m_sessionService = std::dynamic_pointer_cast - < - tizen_browser::services::SessionStorage, - tizen_browser::core::AbstractService - >(tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.sessionStorageService")); - if(m_sessionService){ - lastSession = std::move(m_sessionService->getStorage()->getLastSession()); - m_currentSession = std::move(m_sessionService->getStorage()->createSession()); - } - } m_initialised = true; + } - m_mainUI = std::dynamic_pointer_cast - (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.mainui")); - M_ASSERT(m_mainUI.get()); - - m_historyService->historyAllDeleted.connect(boost::bind(&tizen_browser::base_ui::MainUI::clearHistoryGenlist, m_mainUI.get())); - m_mainUI->getDetailPopup().openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); - m_mainUI->mostVisitedTileClicked.connect(boost::bind(&SimpleUI::onMostVisitedTileClicked, this, _1, _2)); - m_mainUI->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this,_1)); - m_mainUI->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this,_1)); - m_mainUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this,_1)); - } - - if (url.empty()) { - BROWSER_LOGD("[%s]: changing to homeUrl", __func__); - switchViewToHomePage(); -#if MERGE_ME // Not sure if this should be enabled - filterURL(HomePageURL); -#endif - if(lastSession.items().size() >= 1){ - for(auto iter=lastSession.items().begin(), - end=lastSession.items().end(); - iter != end; - iter++ - ){ - openNewTab(iter->second); - } - m_sessionService->getStorage()->deleteSession(lastSession); - } - } - else - openNewTab(url); - - BROWSER_LOGD("[%s]:%d url=%s", __func__, __LINE__, url.c_str()); + m_currentSession = std::move(m_sessionService->getStorage()->createSession()); + if (url.empty()) + { + BROWSER_LOGD("[%s]: changing to homeUrl", __func__); + switchViewToHomePage(); + restoreLastSession(); + } + else + openNewTab(url); m_simpleURI->setFocus(); + BROWSER_LOGD("[%s]:%d url=%s", __func__, __LINE__, url.c_str()); return 0; } +Evas_Object* SimpleUI::createWebLayout(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + // create web layout + Evas_Object* web_layout = elm_layout_add(parent); + evas_object_size_hint_weight_set(web_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + elm_layout_file_set(web_layout, edjePath("SimpleUI/MainLayout.edj").c_str(), "main_layout"); + + // left buttons + leftButtonBar = std::make_shared(web_layout, "SimpleUI/LeftButtonBar.edj", "left_button_bar"); + leftButtonBar->addAction(m_back, "prev_button"); + leftButtonBar->addAction(m_forward, "next_button"); + leftButtonBar->addAction(m_reload, "refresh_stop_button"); + + //register action that will be used later by buttons" + leftButtonBar->registerEnabledChangedCallback(m_stopLoading, "refresh_stop_button"); + + // right buttons + rightButtonBar = std::make_shared(web_layout, "SimpleUI/RightButtonBar.edj", "right_button_bar"); + rightButtonBar->addAction(m_tab, "tab_button"); + rightButtonBar->addAction(m_showMoreMenu, "setting_button"); + + // progress bar + m_progressBar = elm_progressbar_add(web_layout); + elm_object_style_set(m_progressBar,"play_buffer"); + + //URL bar (Evas Object is shipped by SimpleURI object) + elm_object_part_content_set(web_layout, "uri_entry", m_simpleURI->getContent(web_layout)); + elm_object_part_content_set(web_layout, "uri_bar_buttons_left", leftButtonBar->getContent()); + elm_object_part_content_set(web_layout, "uri_bar_buttons_right", rightButtonBar->getContent()); + + return web_layout; +} + +Evas_Object* SimpleUI::createErrorLayout(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object* errorLayout = elm_layout_add(parent); + evas_object_size_hint_weight_set(errorLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + elm_layout_file_set(errorLayout, edjePath("SimpleUI/ErrorMessage.edj").c_str(), "error_message"); + + return errorLayout; +} + +void SimpleUI::restoreLastSession() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_sessionService); + Session::Session lastSession = std::move(m_sessionService->getStorage()->getLastSession()); + if(lastSession.items().size() >= 1) + { + for(auto iter=lastSession.items().begin(), end=lastSession.items().end(); iter != end; ++iter) + { + openNewTab(iter->second); + } + m_sessionService->getStorage()->deleteSession(lastSession); + } +} + + +//TODO: Move all service creation here: +void SimpleUI::loadUIServices() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_simpleURI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.simpleuri")); + + m_mainUI = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.mainui")); + + m_netErrorHandler = + std::unique_ptr + + (new tizen_browser::basic_ui::NetworkErrorHandler); +} + +void SimpleUI::connectUISignals() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + M_ASSERT(m_simpleURI.get()); + m_simpleURI->uriChanged.connect(boost::bind(&SimpleUI::filterURL, this, _1)); + + M_ASSERT(m_mainUI.get()); + m_mainUI->getDetailPopup().openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); + m_mainUI->mostVisitedTileClicked.connect(boost::bind(&SimpleUI::onMostVisitedTileClicked, this, _1, _2)); + m_mainUI->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this,_1)); + m_mainUI->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this,_1)); + m_mainUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::onBookmarkManagerButtonClicked, this,_1)); +} + +void SimpleUI::loadModelServices() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_webEngine = + std::dynamic_pointer_cast + ,tizen_browser::core::AbstractService> + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.webkitengineservice")); + + m_favoriteService = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.favoriteservice")); + + m_historyService = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.historyservice")); + + m_platformInputManager = + std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.platforminputmanager")); + + m_sessionService = std::dynamic_pointer_cast + + (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.sessionStorageService")); +} + +void SimpleUI::initModelServices() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + M_ASSERT(m_webEngine); + M_ASSERT(m_mainLayout); + m_webEngine->init(m_mainLayout); + + M_ASSERT(m_favoriteService); + m_favoriteService->synchronizeBookmarks(); + m_favoriteService->getBookmarks(); + + M_ASSERT(m_platformInputManager); + m_platformInputManager->init(m_window.get()); +} + +void SimpleUI::connectModelSignals() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + + m_webEngine->uriChanged.connect(boost::bind(&SimpleUI::webEngineURLChanged, this, _1)); + m_webEngine->uriChanged.connect(boost::bind(&SimpleURI::changeUri, m_simpleURI.get(), _1)); + m_webEngine->uriOnTabChanged.connect(boost::bind(&SimpleUI::checkTabId,this,_1)); + m_webEngine->webViewClicked.connect(boost::bind(&SimpleURI::clearFocus, m_simpleURI.get())); + m_webEngine->backwardEnableChanged.connect(boost::bind(&SimpleUI::backEnable, this, _1)); + m_webEngine->forwardEnableChanged.connect(boost::bind(&SimpleUI::forwardEnable, this, _1)); + m_webEngine->loadStarted.connect(boost::bind(&SimpleUI::loadStarted, this)); + m_webEngine->loadProgress.connect(boost::bind(&SimpleUI::progressChanged,this,_1)); + m_webEngine->loadFinished.connect(boost::bind(&SimpleUI::loadFinished, this)); + m_webEngine->loadStop.connect(boost::bind(&SimpleUI::loadFinished, this)); + m_webEngine->loadError.connect(boost::bind(&SimpleUI::loadError, this)); + m_webEngine->confirmationRequest.connect(boost::bind(&SimpleUI::handleConfirmationRequest, this, _1)); + m_webEngine->tabCreated.connect(boost::bind(&SimpleUI::tabCreated, this)); + m_webEngine->tabClosed.connect(boost::bind(&SimpleUI::tabClosed,this,_1)); + m_webEngine->IMEStateChanged.connect(boost::bind(&SimpleUI::setwvIMEStatus, this, _1)); + + m_favoriteService->bookmarkAdded.connect(boost::bind(&SimpleUI::onBookmarkAdded, this,_1)); + m_favoriteService->bookmarkDeleted.connect(boost::bind(&SimpleUI::onBookmarkRemoved, this, _1)); + + //m_historyService->historyEmpty.connect(boost::bind(&SimpleUI::disableHistoryButton, this, _1)); + m_historyService->historyAdded.connect(boost::bind(&SimpleUI::onHistoryAdded, this,_1)); + m_historyService->historyDeleted.connect(boost::bind(&SimpleUI::onHistoryRemoved, this,_1)); + //TODO "clearHistoryGenlist" should be renamed to "onHistoryDeleteFinished" + //and "historyAllDeleted"should be renamed to historyDeleteFinished" + m_historyService->historyAllDeleted.connect(boost::bind(&MainUI::clearHistoryGenlist, m_mainUI.get())); + + m_platformInputManager->returnPressed.connect(boost::bind(&elm_exit)); + m_platformInputManager->backPressed.connect(boost::bind(&SimpleUI::onBackPressed, this)); + +} + +//TODO: move it to WebUI void SimpleUI::loadThemes() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); elm_theme_extension_add(nullptr, edjePath("SimpleUI/ZoomItem.edj").c_str()); elm_theme_extension_add(nullptr, edjePath("SimpleUI/TabItem.edj").c_str()); elm_theme_extension_add(nullptr, edjePath("SimpleUI/ErrorMessage.edj").c_str()); @@ -356,6 +386,7 @@ void SimpleUI::loadThemes() void SimpleUI::createActions() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); ///\todo Add MulitStateAction. and convert m_stopLoading and m_reload actons to it? m_back = sharedAction(new Action("Back")); @@ -376,18 +407,10 @@ void SimpleUI::createActions() m_tab = sharedAction(new Action("Tabs")); m_tab->setToolTip("Tab page"); m_tab->setIcon("browser/toolbar_tab"); - //m_tab->setCheckable(true); m_showMoreMenu = sharedAction(new Action("Settings")); m_showMoreMenu->setToolTip("Settings"); m_showMoreMenu->setIcon("browser/toolbar_setting"); -/* - m_settingPointerMode = sharedAction(new Action("Pointer mode")); - m_settingPointerMode->setToolTip("Switch to Pointer Mode"); - m_settingPointerMode->setCheckable(true); - m_settingPointerMode->setChecked(m_platformInputManager->getPointerModeEnabled()); - m_settingPointerMode->setEnabled(true); -*/ m_settingPrivateBrowsing = sharedAction(new Action("Private browsing")); m_settingPrivateBrowsing->setToolTip("On exit from private mode all cookies, history, and stored data will be deleted"); @@ -434,11 +457,7 @@ void SimpleUI::connectActions() m_tab->triggered.connect(boost::bind(&SimpleUI::showTabUI, this)); m_showMoreMenu->triggered.connect(boost::bind(&SimpleUI::showMoreMenu, this)); -// m_settingPointerMode->toggled.connect(boost::bind(&tizen_browser::services::PlatformInputManager::setPointerModeEnabled, m_platformInputManager.get(), _1)); m_settingPrivateBrowsing->toggled.connect(boost::bind(&SimpleUI::settingsPrivateModeSwitch, this, _1)); -// m_settingDeleteHistory->triggered.connect(boost::bind(&SimpleUI::settingsDeleteHistory, this)); -// m_settingDeleteData->triggered.connect(boost::bind(&SimpleUI::settingsDeleteData, this));; -// m_settingDeleteFavorite->triggered.connect(boost::bind(&SimpleUI::settingsDeleteFavorite, this));; } void SimpleUI::updateURIBarView() @@ -499,16 +518,6 @@ bool SimpleUI::isErrorPageActive() void SimpleUI::switchViewToHomePage() { -#if MERGE_ME // remove - if(!isHomePageActive()){ - evas_object_hide(elm_object_part_content_get(m_mainLayout,"web_view")); - elm_object_part_content_unset(m_mainLayout, "web_view"); - elm_object_part_content_set(m_mainLayout, "web_view", m_bookmarksUI->getContent()); - evas_object_show(m_bookmarksUI->getContent()); - //m_simpleURI->changeUri(HomePageURL); - filterURL(HomePageURL); - } -#endif BROWSER_LOGD("[%s:%d] isHomePageActive : %d", __PRETTY_FUNCTION__, __LINE__, m_isHomePageActive); if(isHomePageActive()) return; @@ -528,8 +537,6 @@ void SimpleUI::switchViewToHomePage() elm_object_signal_emit(m_mainLayout, "shiftback_uri", "ui"); elm_object_signal_emit(m_simpleURI->getContent(), "shiftback_uribg", "ui"); - webTitleBar->hide(); - hideProgressBar(); } @@ -577,23 +584,13 @@ void SimpleUI::bookmarkCheck() //addBookmarkEnable(m_favoriteService->countBookmarksAndSubFolders() < m_favoritesLimit); } } - +// Consider removing these functions void SimpleUI::onBookmarkAdded(std::shared_ptr bookmarkItem) { -#if 0 - BROWSER_LOGI("Bookmark added with address %s",bookmarkItem->getAddress().c_str()); - bookmarkCheck(); - webTitleBar->removeFavIcon(); - webTitleBar->show("Added to favorites"); -#endif } void SimpleUI::onHistoryAdded(std::shared_ptr historyItem) { -#if 0 - m_mainUI->addHistoryItem(historyItem); - BROWSER_LOGI("Bookmark added with address %s",historyItem->getUrl().c_str()); -#endif } void SimpleUI::onOpenURLInNewTab(std::shared_ptr historyItem, bool desktopMode) @@ -678,20 +675,15 @@ void SimpleUI::onBookmarkDeleteClicked(std::shared_ptrdeleteBookmark(bookmarkItem->getAddress()); } +// Consider removing these functions void SimpleUI::onBookmarkRemoved(const std::string& uri) { -#if 0 BROWSER_LOGD("[%s] deleted %s", __func__, uri.c_str()); - bookmarkCheck(); - webTitleBar->removeFavIcon(); - webTitleBar->show("Removed from favorites"); -#endif } void SimpleUI::onHistoryRemoved(const std::string& uri) { BROWSER_LOGD("[%s] deleted %s", __func__, uri.c_str()); - //m_mainUI->removeHistoryItem(uri.c_str()); } void SimpleUI::onReturnPressed(MenuButton *m) @@ -738,14 +730,10 @@ void SimpleUI::stopEnable(bool enable) void SimpleUI::addBookmarkEnable(bool enable) { - //MERGE_ME - //m_bookmark->setEnabled(enable); } void SimpleUI::removeBookmarkEnable(bool enable) { - //MERGE_ME - //m_unbookmark->setEnabled(enable); } void SimpleUI::zoomEnable(bool enable) { @@ -769,11 +757,6 @@ void SimpleUI::loadStarted() if(!m_webEngine->isPrivateMode()){ m_currentSession.updateItem(m_webEngine->currentTabId().toString(), m_webEngine->getURI()); } - -#if 0 - if(!m_platformInputManager->getPointerModeEnabled()) - elm_object_focus_set(leftButtonBar->getButton("refresh_stop_button"), EINA_TRUE); -#endif } void SimpleUI::progressChanged(double progress) @@ -803,10 +786,6 @@ void SimpleUI::loadFinished() m_webEngine->getTitle(), m_webEngine->getFavicon()), m_webEngine->getSnapshotData(MainUI::MAX_THUMBNAIL_WIDTH, MainUI::MAX_THUMBNAIL_HEIGHT)); } -#if 0 - if(!m_platformInputManager->getPointerModeEnabled()) - elm_object_focus_set(leftButtonBar->getButton("refresh_stop_button"), EINA_TRUE); -#endif } void SimpleUI::loadError() @@ -830,8 +809,7 @@ void SimpleUI::setErrorButtons() void SimpleUI::filterURL(const std::string& url) { - BROWSER_LOGD("[%s] url=%s", __func__, url.c_str()); - + BROWSER_LOGD("[%s:%d] url=%s", __PRETTY_FUNCTION__, __LINE__, url.c_str()); //check for special urls (like: 'about:home') //if there will be more addresses may be we should //create some kind of std::man @@ -1057,38 +1035,13 @@ void SimpleUI::authPopupButtonClicked(PopupButtons button, std::shared_ptrgetContent(m_mainLayout)); - evas_object_hide(rightButtonBar->getContent()); - evas_object_hide(leftButtonBar->getContent()); - elm_object_part_content_unset(m_mainLayout, "uri_entry"); - elm_object_part_content_unset(m_mainLayout, "uri_bar_buttons_left"); - elm_object_part_content_unset(m_mainLayout, "uri_bar_buttons_right"); -} - -void SimpleUI::showURIBar() -{ - elm_object_part_content_unset(m_mainLayout, "uri_entry"); - elm_object_part_content_unset(m_mainLayout, "uri_bar_buttons_left"); - elm_object_part_content_unset(m_mainLayout, "uri_bar_buttons_right"); - elm_object_part_content_set(m_mainLayout, "uri_entry", m_simpleURI->getContent(m_mainLayout)); - elm_object_part_content_set(m_mainLayout, "uri_bar_buttons_left", leftButtonBar->getContent()); - elm_object_part_content_set(m_mainLayout, "uri_bar_buttons_right", rightButtonBar->getContent()); - evas_object_show(m_simpleURI->getContent(m_mainLayout)); - evas_object_show(leftButtonBar->getContent()); - evas_object_show(rightButtonBar->getContent()); - m_simpleURI->setFocus(); -} -#endif - void SimpleUI::hideWebView() { - evas_object_hide(elm_object_part_content_get(m_mainLayout,"web_view")); - elm_object_part_content_unset(m_mainLayout, "web_view"); + evas_object_hide(elm_object_part_content_get(m_mainLayout,"web_view")); + elm_object_part_content_unset(m_mainLayout, "web_view"); } +//TODO: move it to ViewController void SimpleUI::hideMainUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -1261,6 +1214,7 @@ void SimpleUI::showBookmarkManagerMenu() void SimpleUI::updateBookmarkManagerGenGrid(int folder_id) { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_bookmarkManagerUI->updateGengrid(); m_bookmarkManagerUI->addBookmarkFolderItems(getBookmarkFolders(folder_id)); m_bookmarkManagerUI->addBookmarkItems(getBookmarks(folder_id)); @@ -1286,12 +1240,14 @@ void SimpleUI::closeBookmarkManagerMenu(std::string& str) void SimpleUI::openLinkFromPopup(const std::string &uri) { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); filterURL(uri); hidePopup(); } void SimpleUI::hideHistory() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); hidePopup(); } @@ -1334,8 +1290,6 @@ void SimpleUI::onDeleteSelectedDataButton(PopupButtons button, std::shared_ptr< m_webEngine->clearPrivateData(); if (dataText.find("HISTORY") != std::string::npos) m_historyService->clearAllHistory(); - //webTitleBar->removeFavIcon(); - //webTitleBar->show("History deleted"); } } @@ -1356,9 +1310,6 @@ void SimpleUI::onDeleteMostVisitedButton(PopupButtons button, std::shared_ptr< P if(button == OK){ BROWSER_LOGD("[%s]: OK", __func__); BROWSER_LOGD("[%s]: Deleting most visited", __func__); - /*m_historyService->clearAllHistory(); - webTitleBar->removeFavIcon(); - webTitleBar->show("History deleted");*/ } } @@ -1379,8 +1330,6 @@ void SimpleUI::onResetBrowserButton(PopupButtons button, std::shared_ptr< PopupD if(button == OK){ BROWSER_LOGD("[%s]: OK", __func__); BROWSER_LOGD("[%s]: Resetting browser", __func__); - /*webTitleBar->removeFavIcon(); - webTitleBar->show("History deleted");*/ } } @@ -1454,7 +1403,6 @@ void SimpleUI::onNetworkConnected() } } - void SimpleUI::showProgressBar() { elm_object_signal_emit(m_mainLayout, "show_progressbar_bg", "ui"); @@ -1474,7 +1422,7 @@ void SimpleUI::searchWebPage(std::string &text, int flags) m_webEngine->searchOnWebsite(text, flags); } -void SimpleUI::favicon_clicked(void *data, Evas_Object */*obj*/, const char */*emission*/, const char */*source*/) +void SimpleUI::favicon_clicked(void *data, Evas_Object *, const char *, const char *) { BROWSER_LOGD("[%s],", __func__); SimpleUI *self = reinterpret_cast(data); @@ -1487,22 +1435,25 @@ void SimpleUI::favicon_clicked(void *data, Evas_Object */*obj*/, const char */*e void SimpleUI::addToBookmarks(int folder_id) { BROWSER_LOGD("[%s,%d],", __func__, __LINE__); - if (m_favoriteService) - { if( m_webEngine && !m_webEngine->getURI().empty()) - { m_favoriteService->addToBookmarks(m_webEngine->getURI(), m_webEngine->getTitle(), std::string(), - m_webEngine->getSnapshotData(373, 240), - m_webEngine->getFavicon(),(unsigned int)folder_id); - } - } + if (m_favoriteService) + { + if( m_webEngine && !m_webEngine->getURI().empty()) + { + m_favoriteService->addToBookmarks(m_webEngine->getURI(), m_webEngine->getTitle(), std::string(), + m_webEngine->getSnapshotData(373, 240), + m_webEngine->getFavicon(),(unsigned int)folder_id); + } + } } +//TODO: This probably should be replaced by direct call of m_moreMenuUI->getBookmarkFolderList +// as it does nothing more. void SimpleUI::addBookmarkFolders(void) { if(m_moreMenuUI) m_moreMenuUI->getBookmarkFolderList(getBookmarkFolders(ROOT_FOLDER)); } - void SimpleUI::newFolderBookmarkManager(const char* title, int by_operator) { BROWSER_LOGD("[%s,%d],", __func__, __LINE__); @@ -1531,7 +1482,8 @@ void SimpleUI::newFolderMoreMenu(const char* title, int by_operator) } } -void SimpleUI::deleteBookmark(void) +//TODO: Replace by direct call. +void SimpleUI::deleteBookmark() { if (m_favoriteService) m_favoriteService->deleteBookmark(m_webEngine->getURI()); diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index 476d5dd..bd2eb6e 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -81,8 +81,19 @@ public: void destroyUI(); private: + // setup functions + void loadThemes(); void createActions(); void connectActions(); + void loadUIServices(); + void connectUISignals(); + void loadModelServices(); + void initModelServices(); + void connectModelSignals(); + void restoreLastSession(); + Evas_Object* createWebLayout(Evas_Object* parent); + Evas_Object* createErrorLayout(Evas_Object* parent); + void backEnable(bool enable); void forwardEnable(bool enable); @@ -125,6 +136,8 @@ private: std::vector > getBookmarkFolders(int folder_id); std::shared_ptr getHistory(); std::shared_ptr getMostVisitedItems(); + + //UI signal handling functions void onBookmarkAdded(std::shared_ptr bookmarkItem); void onBookmarkClicked(std::shared_ptr bookmarkItem); @@ -146,7 +159,6 @@ private: void onActionTriggered(const Action& action); - void loadThemes(); void setwvIMEStatus(bool status); -- 2.7.4 From f51dfb522dbcf29774a91bc1f697258347c107e9 Mon Sep 17 00:00:00 2001 From: "t.dakowicz" Date: Fri, 11 Sep 2015 13:16:44 +0200 Subject: [PATCH 09/16] TT-165 Fixed browser crash after opening page from history/bookmarks [Issue#] https://bugs.tizen.org/jira/browse/TT-165 [Problem] Browser's crash after opening a page from bookmarks/history [Cause] Favicon was inserted into freed object [Solution] Added disconnects from signals after closing MoreMenu [Verify] New Tab -> MoreMenu -> History -> open page or New Tab -> Bookmarks -> open page Check if browser crashes Please keep in mind that disconnects are needed here because views are removed when exiting, which won't be done in future new browser's structure. Change-Id: I7a8db96b35d397b88196bbdbba21f526c73c2ec8 --- services/SimpleUI/SimpleUI.cpp | 28 ++++++++++++++++------------ services/SimpleUI/SimpleUI.h | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 0f539a5..43dea86 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -599,12 +599,12 @@ void SimpleUI::onOpenURLInNewTab(std::shared_ptrgetUrl(); if(m_historyUI) { // TODO: remove this section when naviframes will be available m_historyUI->clearItems(); - m_historyUI = nullptr; + closeHistoryUI(std::string()); } if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available m_moreMenuUI->clearItems(); - m_moreMenuUI = nullptr; + closeMoreMenu(std::string()); } openNewTab(historyAddress, desktopMode); } @@ -645,6 +645,7 @@ void SimpleUI::onBookmarkManagerButtonClicked(const std::string&) BROWSER_LOGD("[%s]", __func__); if(m_mainUI) { // TODO: remove this section when naviframes will be available m_mainUI->clearBookmarkGengrid(); + m_mainUI->clearHistoryGenlist(); } if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available @@ -659,12 +660,12 @@ void SimpleUI::onBookmarkClicked(std::shared_ptrgetAddress(); if(m_bookmarkManagerUI) { // TODO: remove this section when naviframes will be available m_bookmarkManagerUI->clearItems(); - m_bookmarkManagerUI = nullptr; + closeBookmarkManagerMenu(std::string()); } if(m_moreMenuUI) { // TODO: remove this section when naviframes will be available m_moreMenuUI->clearItems(); - m_moreMenuUI = nullptr; + closeMoreMenu(std::string()); } openNewTab(bookmarkAddress); } @@ -1085,6 +1086,9 @@ void SimpleUI::showHistoryUI(const std::string& str) void SimpleUI::closeHistoryUI(const std::string& str) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_historyUI->clearHistoryClicked.disconnect(boost::bind(&SimpleUI::onClearHistoryClicked, this,_1)); + m_historyUI->closeHistoryUIClicked.disconnect(boost::bind(&SimpleUI::closeHistoryUI, this,_1)); + m_historyUI->historyItemClicked.disconnect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, true)); // desktop mode as default m_historyUI.reset(); } @@ -1197,13 +1201,9 @@ void SimpleUI::showBookmarkManagerMenu() (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.bookmarkmanagerui")); M_ASSERT(m_bookmarkManagerUI); - m_bookmarkManagerUI->closeBookmarkManagerClicked.disconnect_all_slots(); m_bookmarkManagerUI->closeBookmarkManagerClicked.connect(boost::bind(&SimpleUI::closeBookmarkManagerMenu, this,_1)); - m_bookmarkManagerUI->saveFolderClicked.disconnect_all_slots(); m_bookmarkManagerUI->saveFolderClicked.connect(boost::bind(&SimpleUI::newFolderBookmarkManager, this,_1,_2)); - m_bookmarkManagerUI->bookmarkItemClicked.disconnect_all_slots(); m_bookmarkManagerUI->bookmarkItemClicked.connect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1)); - m_bookmarkManagerUI->folderItemClicked.disconnect_all_slots(); m_bookmarkManagerUI->folderItemClicked.connect(boost::bind(&SimpleUI::updateBookmarkManagerGenGrid, this,_1)); m_bookmarkManagerUI->show(m_window.get()); m_bookmarkManagerUI->addBookmarkFolderItems(getBookmarkFolders(ROOT_FOLDER)); @@ -1222,19 +1222,23 @@ void SimpleUI::updateBookmarkManagerGenGrid(int folder_id) m_curr_folder_id = folder_id; } -void SimpleUI::closeBookmarkManagerMenu(std::string& str) +void SimpleUI::closeBookmarkManagerMenu(const std::string& str) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_bookmarkManagerUI->closeBookmarkManagerClicked.disconnect(boost::bind(&SimpleUI::closeBookmarkManagerMenu, this,_1)); + m_bookmarkManagerUI->saveFolderClicked.disconnect(boost::bind(&SimpleUI::newFolderBookmarkManager, this,_1,_2)); + m_bookmarkManagerUI->bookmarkItemClicked.disconnect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1)); + m_bookmarkManagerUI->folderItemClicked.disconnect(boost::bind(&SimpleUI::updateBookmarkManagerGenGrid, this,_1)); m_bookmarkManagerUI.reset(); if(m_moreMenuUI) { - m_moreMenuUI.reset(); + closeMoreMenu(std::string()); showMoreMenu(); } if(m_mainUI) { - m_mainUI->addBookmarkItems(getBookmarks()); - m_mainUI->showBookmarks(); + m_mainUI->addHistoryItems(getMostVisitedItems()); + m_mainUI->showHistory(); } } diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index bd2eb6e..ce52557 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -258,7 +258,7 @@ private: void showProgressBar(); void hideProgressBar(); - void closeBookmarkManagerMenu(std::string& str); + void closeBookmarkManagerMenu(const std::string& str); void updateBookmarkManagerGenGrid(int folder_id); void showBookmarkManagerMenu(); -- 2.7.4 From 2b530a8ed593b9418c7c8fa9f7fe44d0e521a486 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Mon, 14 Sep 2015 12:25:36 +0200 Subject: [PATCH 10/16] Refactoring - removed genlist from Quick Access tiles. [Issue] N/A [Problem] Genlist were unneeded for tiles. [Cause] N/A [Solution] Removed genlist, added aditional swallows for tiles. Change-Id: I9a561d2973c9db0b70f413792dfdab4a2e7c24ab Signed-off-by: Maciej Skrzypkowski --- services/MainUI/DetailPopup.cpp | 1 + services/MainUI/MainUI.cpp | 176 ++++------- services/MainUI/MainUI.h | 19 +- services/MainUI/edc/MainUI.edc | 638 ++++++++++++++++++++-------------------- 4 files changed, 382 insertions(+), 452 deletions(-) diff --git a/services/MainUI/DetailPopup.cpp b/services/MainUI/DetailPopup.cpp index 9d2f1ea..a058691 100644 --- a/services/MainUI/DetailPopup.cpp +++ b/services/MainUI/DetailPopup.cpp @@ -101,6 +101,7 @@ void DetailPopup::hide() evas_object_smart_callback_del(m_historyList, "pressed", _history_url_click); elm_genlist_clear(m_historyList); evas_object_hide(m_layout); + evas_object_del(m_layout); } void DetailPopup::_bg_click(void* data, Evas_Object*, const char*, const char*) diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index 1367a87..afddf7c 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -31,12 +31,19 @@ namespace tizen_browser{ namespace base_ui{ -const int SMALL_TILES_ROWS = 2; -const int MAX_TILES_NUMBER = 5; +EXPORT_SERVICE(MainUI, "org.tizen.browser.mainui") + +const int MainUI::MAX_TILES_NUMBER = 5; const int MainUI::MAX_THUMBNAIL_WIDTH = 840; const int MainUI::MAX_THUMBNAIL_HEIGHT = 648; - -EXPORT_SERVICE(MainUI, "org.tizen.browser.mainui") +const int MainUI::BIG_TILE_INDEX = 0; +const std::vector MainUI::TILES_NAMES = { + "elm.swallow.big", + "elm.swallow.small_first", + "elm.swallow.small_second", + "elm.swallow.small_third", + "elm.swallow.small_fourth" +}; typedef struct _HistoryItemData { @@ -53,16 +60,11 @@ typedef struct _BookmarkItemData MainUI::MainUI() : m_parent(nullptr) , m_layout(nullptr) - , m_bookmarksButton(nullptr) - , m_mostVisitedButton(nullptr) , m_bookmarksView(nullptr) , m_mostVisitedView(nullptr) + , m_bookmarksButton(nullptr) + , m_mostVisitedButton(nullptr) , m_bookmarkGengrid(nullptr) - , m_genListLeft(nullptr) - , m_genListCenter(nullptr) - , m_genListRight(nullptr) - , m_big_item_class(nullptr) - , m_small_item_class(nullptr) , m_bookmark_item_class(nullptr) , m_detailPopup(this) { @@ -76,32 +78,12 @@ MainUI::MainUI() MainUI::~MainUI() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - elm_genlist_item_class_free(m_big_item_class); - elm_genlist_item_class_free(m_small_item_class); elm_gengrid_item_class_free(m_bookmark_item_class); } void MainUI::createItemClasses() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - if (!m_big_item_class) { - m_big_item_class = elm_genlist_item_class_new(); - m_big_item_class->item_style = "big_grid_item"; - m_big_item_class->func.text_get = _grid_text_get; - m_big_item_class->func.content_get = _grid_content_get; - m_big_item_class->func.state_get = nullptr; - m_big_item_class->func.del = nullptr; - } - - if (!m_small_item_class) { - m_small_item_class = elm_genlist_item_class_new(); - m_small_item_class->item_style = "small_grid_item"; - m_small_item_class->func.text_get = _grid_text_get; - m_small_item_class->func.content_get = _grid_content_get; - m_small_item_class->func.state_get = nullptr; - m_small_item_class->func.del = nullptr; - } - if (!m_bookmark_item_class) { m_bookmark_item_class = elm_gengrid_item_class_new(); m_bookmark_item_class->item_style = "grid_item"; @@ -150,37 +132,6 @@ Evas_Object* MainUI::createMostVisitedView (Evas_Object * parent) evas_object_size_hint_weight_set(mostVisitedLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (mostVisitedLayout, EVAS_HINT_FILL, EVAS_HINT_FILL); - Evas_Object* genListLeft = elm_genlist_add(mostVisitedLayout); - - elm_genlist_homogeneous_set(genListLeft, EINA_FALSE); - elm_genlist_multi_select_set(genListLeft, EINA_FALSE); - elm_genlist_select_mode_set(genListLeft, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(genListLeft, ELM_LIST_LIMIT); - evas_object_size_hint_weight_set(genListLeft, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - elm_object_part_content_set(mostVisitedLayout, "elm.swallow.left", genListLeft); - m_genListLeft = genListLeft; - - Evas_Object* genListCenter = elm_genlist_add(mostVisitedLayout); - elm_genlist_homogeneous_set(genListCenter, EINA_FALSE); - elm_genlist_multi_select_set(genListCenter, EINA_FALSE); - elm_genlist_select_mode_set(genListCenter, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(genListCenter, ELM_LIST_LIMIT); - evas_object_size_hint_weight_set(genListCenter, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - elm_object_part_content_set(mostVisitedLayout, "elm.swallow.center", genListCenter); - m_genListCenter = genListCenter; - - Evas_Object* genListRight = elm_genlist_add(mostVisitedLayout); - elm_genlist_homogeneous_set(genListRight, EINA_FALSE); - elm_genlist_multi_select_set(genListRight, EINA_FALSE); - elm_genlist_select_mode_set(genListRight, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(genListRight, ELM_LIST_LIMIT); - evas_object_size_hint_weight_set(genListRight, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - elm_object_part_content_set(mostVisitedLayout, "elm.swallow.right", genListRight); - m_genListRight=genListRight; - Evas_Object* topButtons = createTopButtons(mostVisitedLayout); elm_object_part_content_set(mostVisitedLayout, "elm.swallow.layoutTop", topButtons); @@ -272,21 +223,21 @@ Evas_Object* MainUI::createBottomButton(Evas_Object *parent) return layoutBottom; } -void MainUI::_mostVisited_clicked(void * data, Evas_Object * /* obj */, void * event_info) +void MainUI::_mostVisited_clicked(void * data, Evas_Object *, void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); MainUI* mainUI = reinterpret_cast(data); mainUI->mostVisitedClicked(std::string()); } -void MainUI::_bookmark_clicked(void * data, Evas_Object * /* obj */, void * event_info) +void MainUI::_bookmark_clicked(void * data, Evas_Object *, void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); MainUI* mainUI = reinterpret_cast(data); mainUI->bookmarkClicked(std::string()); } -void MainUI::_bookmark_manager_clicked(void * data, Evas_Object * /* obj */, void * event_info) +void MainUI::_bookmark_manager_clicked(void * data, Evas_Object *, void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); MainUI* mainUI = static_cast(data); @@ -296,33 +247,38 @@ void MainUI::_bookmark_manager_clicked(void * data, Evas_Object * /* obj */, voi void MainUI::addHistoryItem(std::shared_ptr hi) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - if (m_map_history_views.size() >= MAX_TILES_NUMBER) - return; + M_ASSERT(m_historyItems.size() < MAX_TILES_NUMBER); + int tileNumber = m_historyItems.size(); HistoryItemData *itemData = new HistoryItemData(); itemData->item = hi; itemData->mainUI = std::shared_ptr(this); - Elm_Object_Item* historyView = nullptr; - - if (m_map_history_views.empty()) - { - BROWSER_LOGD("%s:%d %s m_map_history_views.size %d", __FILE__, __LINE__, __func__, m_map_history_views.size()); - historyView = elm_genlist_item_append(m_genListLeft, m_big_item_class, itemData, nullptr, ELM_GENLIST_ITEM_NONE, nullptr, this); - } else if (m_map_history_views.size() <= SMALL_TILES_ROWS) { - BROWSER_LOGD("%s:%d %s m_map_history_views.size %d", __FILE__, __LINE__, __func__, m_map_history_views.size()); - historyView = elm_genlist_item_append(m_genListCenter, m_small_item_class, itemData, nullptr, ELM_GENLIST_ITEM_NONE, nullptr, this); - } else { - BROWSER_LOGD("%s:%d %s m_map_history_views.size %d", __FILE__, __LINE__, __func__, m_map_history_views.size()); - historyView = elm_genlist_item_append(m_genListRight, m_small_item_class, itemData, nullptr, ELM_GENLIST_ITEM_NONE, nullptr, this); - } - m_map_history_views.insert(std::pair(hi->getUrl(),historyView)); + Evas_Object* tile = elm_layout_add(m_mostVisitedView); + if (tileNumber == BIG_TILE_INDEX) + elm_layout_file_set(tile, edjFilePath.c_str(), "big_tile"); + else + elm_layout_file_set(tile, edjFilePath.c_str(), "small_tile"); + evas_object_size_hint_weight_set(tile, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set (tile, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(tile); + elm_object_part_content_set(m_mostVisitedView, TILES_NAMES[tileNumber].c_str(), tile); + m_tiles.push_back(tile); + + elm_layout_text_set(tile, "page_title", hi->getTitle().c_str()); + elm_layout_text_set(tile, "page_url", hi->getUrl().c_str()); + Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(hi->getThumbnail(), m_parent); + elm_object_part_content_set(tile, "elm.thumbnail", thumb); + edje_object_signal_callback_add(elm_layout_edje_get(tile), "mouse,clicked,1", "over", _thumbClicked, itemData); + + m_historyItems.push_back(hi); } void MainUI::addHistoryItems(std::shared_ptr items) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); int i = 0; + m_historyItems.clear(); for (auto it = items->begin(); it != items->end(); ++it) { i++; if (i > MAX_TILES_NUMBER) @@ -354,17 +310,6 @@ void MainUI::addBookmarkItems(std::vector(data); - if (!strcmp(part, "page_title")) { - return strdup(itemData->item->getTitle().c_str()); - } - if (!strcmp(part, "page_url")) { - return tools::clearURL(itemData->item->getUrl()); - } - return strdup(""); -} char* MainUI::_grid_bookmark_text_get(void *data, Evas_Object *, const char *part) { @@ -378,29 +323,6 @@ char* MainUI::_grid_bookmark_text_get(void *data, Evas_Object *, const char *par return strdup(""); } -Evas_Object * MainUI::_grid_content_get(void *data, Evas_Object *obj, const char *part) -{ - BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part); - HistoryItemData *itemData = reinterpret_cast(data); - - if (!strcmp(part, "elm.thumbnail")) { - if (itemData->item->getThumbnail()) { - Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(itemData->item->getThumbnail(), itemData->mainUI->m_parent); - return thumb; - } - else { - return nullptr; - } - } - else if (!strcmp(part, "elm.thumbButton")) { - Evas_Object *thumbButton = elm_button_add(obj); - elm_object_style_set(thumbButton, "thumbButton"); - evas_object_smart_callback_add(thumbButton, "clicked", _thumbSelected, data); - return thumbButton; - } - return nullptr; -} - Evas_Object * MainUI::_grid_bookmark_content_get(void *data, Evas_Object *obj, const char *part) { BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part); @@ -424,8 +346,16 @@ Evas_Object * MainUI::_grid_bookmark_content_get(void *data, Evas_Object *obj, c return nullptr; } -void MainUI::_thumbSelected(void * data, Evas_Object * /* obj */, void * /* event_info */) +void MainUI::_thumbSelected(void * data, Evas_Object * , void *) { + BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + HistoryItemData * itemData = reinterpret_cast(data); + itemData->mainUI->mostVisitedTileClicked(itemData->item, DetailPopup::HISTORY_ITEMS_NO); +} + +void MainUI::_thumbClicked(void* data, Evas_Object *, const char *, const char *) +{ + BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); HistoryItemData * itemData = reinterpret_cast(data); itemData->mainUI->mostVisitedTileClicked(itemData->item, DetailPopup::HISTORY_ITEMS_NO); } @@ -434,10 +364,10 @@ void MainUI::clearHistoryGenlist() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - elm_genlist_clear(m_genListRight); - elm_genlist_clear(m_genListLeft); - elm_genlist_clear(m_genListCenter); - m_map_history_views.clear(); + for (auto it = m_tiles.begin(); it != m_tiles.end(); ++it) + edje_object_signal_callback_del(elm_layout_edje_get(*it), "mouse,clicked,1", "over", _thumbClicked); + + m_historyItems.clear(); } void MainUI::showHistory() @@ -455,7 +385,7 @@ void MainUI::showHistory() elm_object_focus_set(m_mostVisitedButton, true); - if (m_map_history_views.empty()) { + if (m_historyItems.empty()) { setEmptyView(true); return; } @@ -511,10 +441,6 @@ void MainUI::openDetailPopup(std::shared_ptr currItem, st void MainUI::showNoHistoryLabel() { - evas_object_hide(elm_object_part_content_get(m_mostVisitedView, "elm.swallow.left")); - evas_object_hide(elm_object_part_content_get(m_mostVisitedView, "elm.swallow.right")); - evas_object_hide(elm_object_part_content_get(m_mostVisitedView, "elm.swallow.center")); - elm_layout_text_set(m_mostVisitedView, "elm.text.empty", "No visited site"); elm_layout_signal_emit(m_mostVisitedView, "empty,view", "mainui"); } diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 9814981..7994674 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -75,14 +75,10 @@ private: Evas_Object* createBottomButton(Evas_Object *parent); Evas_Object* createTopButtons(Evas_Object *parent); - static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); - static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part); static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_bookmark_content_get(void *data, Evas_Object *obj, const char *part); - static void _itemSelected(void * data, Evas_Object * obj, void * event_info); - static void _item_deleted(void *data, Evas_Object *obj); static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); - static void _deleteBookmark(void *data, Evas_Object *obj, void *event_info); + static void _thumbClicked(void *data, Evas_Object *obj, const char *emission, const char *source); void setEmptyView(bool empty); void showNoHistoryLabel(); @@ -97,20 +93,19 @@ private: Evas_Object *m_bookmarksButton; Evas_Object *m_mostVisitedButton; Evas_Object *m_bookmarkGengrid; - Evas_Object *m_genListLeft; - Evas_Object *m_genListCenter; - Evas_Object *m_genListRight; + std::vector m_tiles; - Elm_Gengrid_Item_Class * m_big_item_class; - Elm_Gengrid_Item_Class * m_small_item_class; Elm_Gengrid_Item_Class * m_bookmark_item_class; - DetailPopup m_detailPopup; - std::multimap m_map_history_views; + services::HistoryItemVector m_historyItems; std::map m_map_bookmark_views; bool m_gengridSetup; std::string edjFilePath; bool m_desktopMode; + + static const int MAX_TILES_NUMBER; + static const int BIG_TILE_INDEX; + static const std::vector TILES_NAMES; }; } diff --git a/services/MainUI/edc/MainUI.edc b/services/MainUI/edc/MainUI.edc index 030e8dd..0625a90 100644 --- a/services/MainUI/edc/MainUI.edc +++ b/services/MainUI/edc/MainUI.edc @@ -20,43 +20,33 @@ collections { #define ITEM_WIDTH 374 #define PARENT_ITEM_HEIGHT 36 - group{ - name: "elm/button/base/invisible_button"; - parts{ - part{ - name: "button"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - color: 0 0 0 0; - } - } - part{ - name: "over"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - rel1 { relative: 0.0 0.0;to: "button";} - rel2 { relative: 1.0 1.0;to: "button";} - color: 0 0 0 0; - } +group{ + name: "elm/button/base/invisible_button"; + parts{ + part{ + name: "button"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 1; + fixed: 1 1; + color: 0 0 0 0; } } - programs{ - program { - name: "mouse_click"; - signal: "mouse,clicked,1"; - source: "over"; - script { - emit("elm,action,click", ""); - } + part{ + name: "over"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 1; + fixed: 1 1; + rel1 { relative: 0.0 0.0;to: "button";} + rel2 { relative: 1.0 1.0;to: "button";} + color: 0 0 0 0; } } } +} group { name: "elm/button/base/thumbButton"; images { @@ -90,243 +80,314 @@ group { name: "mv_bookmarks"; data { item: "focus_highlight" "off"; } - images { - image: "web_shadow.png" COMP; - } - color_classes{ - color_class{ - name: "defaultBgColor"; - color: 18 22 34 255; - } - color_class{ - name: "focusBgColor"; - color: 0 119 246 255; + images { + image: "web_shadow.png" COMP; + } + color_classes{ + color_class{ + name: "defaultBgColor"; + color: 18 22 34 255; + } + color_class{ + name: "focusBgColor"; + color: 0 119 246 255; + } + color_class{ + name: "imageHighlight"; + color: 255 255 255 102; + } + color_class{ + name: "focusbtBgColor"; + color: 22 120 224 255; + } + color_class{ + name: "titleTextColor"; + color: 74 74 74 255; + } + color_class{ + name: "focusTextColor"; + color: 255 255 255 255; + } + color_class{ + name: "highlightTextColor"; + color: 255 255 255 51; + } + color_class{ + name: "urlTextColor"; + color: 116 116 116 204; + } + color_class{ + name: "transparent"; + color: 0 0 0 0; + } + } + + parts { + part { name: "layoutTop_bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 255 255 255 255; + min: 0 181; + max: -1 181; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 0; offset: 0 104; + } + rel2{ + relative: 1 1; + } } - color_class{ - name: "imageHighlight"; - color: 255 255 255 102; + } + part { name: "gengrid_bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 255 255 255 255; + min: 1920 626; + max: -1 626; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + to: "layoutTop_bg"; + relative: 0 1; + } + rel2{ + relative: 1 1; + } } - color_class{ - name: "focusbtBgColor"; - color: 22 120 224 255; + } + part { name: "layoutBottom_bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 255 255 255 255; + min: 1920 181; + max: 1920 181; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 1; to: "gengrid_bg"; + } + rel2{ + relative: 1 1; + } } - color_class{ - name: "titleTextColor"; - color: 74 74 74 255; + } + + part { name: "elm.swallow.grid"; + type: SWALLOW; + description { state: "default" 0.0; + min: 1920 614; + max: 1920 614; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 0; to: "gengrid_bg"; offset: 63 0; + } + rel2 { + relative: 1 1; + offset: 0 0; + } } - color_class{ - name: "focusTextColor"; - color: 255 255 255 255; + } + + part { name: "center_rect"; + type: RECT; + description { state: "default" 0.0; + min: 1592 614; + max: 1592 614; + visible: 0; + align: 0.5 0.0; + rel1 { + to: "gengrid_bg"; + relative: 0 0; + } + rel2 { + to: "gengrid_bg"; + relative: 1 1; + } } - color_class{ - name: "highlightTextColor"; - color: 255 255 255 51; + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 229 229 229 255; } - color_class{ - name: "urlTextColor"; - color: 116 116 116 204; + } + + part { name: "elm.swallow.big"; + type: SWALLOW; + description { state: "default" 0.0; + min: 784 614; + max: 784 614; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + relative: 0 0; to: "center_rect"; + } + rel2 { + relative: 1 1; + offset: 0 0; + } } - color_class{ - name: "transparent"; - color: 0 0 0 0; + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; } } - parts { - part { name: "layoutTop_bg"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - color: 255 255 255 255; - min: 0 181; - max: -1 181; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 0; offset: 0 104; - } - rel2{ - relative: 1 1; - } + part { name: "elm.swallow.small_first"; + type: SWALLOW; + description { state: "default" 0.0; + min: 378 294; + max: 378 294; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + to: "center_rect"; + relative: 0 0; + offset: 810 0; } - } - part { name: "gengrid_bg"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - color: 255 255 255 255; - min: 1920 626; - max: -1 626; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - to: "layoutTop_bg"; - relative: 0 1; - } - rel2{ - relative: 1 1; - } + rel2{ + to: "center_rect"; + relative: 1 1; + offset: 0 0; } } - part { name: "layoutBottom_bg"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - color: 255 255 255 255; - min: 1920 181; - max: 1920 181; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 1; to: "gengrid_bg"; - } - rel2{ - relative: 1 1; - } - } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; } + } - part { name: "elm.swallow.grid"; - type: SWALLOW; - description { state: "default" 0.0; - min: 1920 614; - max: 1920 614; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 0; to: "gengrid_bg"; offset: 63 0; - } - rel2 { - relative: 1 1; - offset: 0 0; - } + part { name: "elm.swallow.small_second"; + type: SWALLOW; + description { state: "default" 0.0; + min: 378 294; + max: 378 294; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + to: "center_rect"; + relative: 0 0; + offset: 810 320; + } + rel2{ + to: "center_rect"; + relative: 1 1; + offset: 0 0; } } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } - part { name: "center_rect"; - type: RECT; - description { state: "default" 0.0; - min: 1592 614; - max: 1592 614; - visible: 0; - align: 0.5 0.0; - rel1 { - to: "gengrid_bg"; - relative: 0 0; - } - rel2 { - to: "gengrid_bg"; - relative: 1 1; - } + part { name: "elm.swallow.small_third"; + type: SWALLOW; + description { state: "default" 0.0; + min: 378 294; + max: 378 294; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + to: "center_rect"; + relative: 0 0; + offset: 1214 0; } - description { state: "empty" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 229 229 229 255; + rel2 { + to: "center_rect"; + relative: 1 1; + offset: 0 0; } } - part { name: "elm.swallow.left"; - type: SWALLOW; - description { state: "default" 0.0; - min: 784 614; - max: 784 614; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 0; to: "center_rect"; - } - rel2 { - relative: 1 1; - offset: 0 0; - } - } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; } - part { name: "elm.swallow.center"; - type: SWALLOW; - description { state: "default" 0.0; - min: 378 614; - max: 378 614; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - to: "center_rect"; - relative: 0 0; - offset: 810 0; - } - rel2{ - to: "center_rect"; - relative: 1 1; - offset: 0 0; - } + } + + part { name: "elm.swallow.small_fourth"; + type: SWALLOW; + description { state: "default" 0.0; + min: 378 294; + max: 378 294; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + to: "center_rect"; + relative: 0 0; + offset: 1214 320; } - } - part { name: "elm.swallow.right"; - type: SWALLOW; - description { state: "default" 0.0; - min: 378 614; - max: 378 614; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - to: "center_rect"; - relative: 0 0; - offset: 1214 0; - } - rel2 { - to: "center_rect"; - relative: 1 1; - offset: 0 0; - } + rel2 { + to: "center_rect"; + relative: 1 1; + offset: 0 0; } } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } - part { name: "elm.swallow.layoutTop"; - type: SWALLOW; - description { state: "default" 0.0; - min: 1920 181; - max: 1920 181; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 0; to: "layoutTop_bg"; - } - rel2 { - relative: 1 1; - offset: 0 0; - } + part { name: "elm.swallow.layoutTop"; + type: SWALLOW; + description { state: "default" 0.0; + min: 1920 181; + max: 1920 181; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 0; to: "layoutTop_bg"; + } + rel2 { + relative: 1 1; + offset: 0 0; } } - part { name: "uri_bar_shadow"; - type: IMAGE; - scale: 1; - repeat_events: 1; - description { - state: "default" 0.0; - visible: 1; - align: 0.0 0.0; - fixed: 0 0; - min: 1920 14; - max: 1920 14; - image.normal: "web_shadow.png"; - rel1 { relative: 0.0 0.0; to: "elm.swallow.layoutTop"; } - rel2 { relative: 1.0 1.0; } + } + + part { name: "uri_bar_shadow"; + type: IMAGE; + scale: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 0 0; + min: 1920 14; + max: 1920 14; + image.normal: "web_shadow.png"; + rel1 { relative: 0.0 0.0; to: "elm.swallow.layoutTop"; } + rel2 { relative: 1.0 1.0; } + } + } + + part { name: "elm.swallow.layoutBottom"; + type: SWALLOW; + description { state: "default" 0.0; + min: 1920 181; + max: 1920 181; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + to: "layoutBottom_bg"; + relative: 0 0; } - } - part { name: "elm.swallow.layoutBottom"; - type: SWALLOW; - description { state: "default" 0.0; - min: 1920 181; - max: 1920 181; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 0; to: "layoutBottom_bg"; - } - rel2 { - relative: 1 1; - offset: 0 0; - } + rel2 { + relative: 1 1; + offset: 0 0; } + } } part { name: "elm.text.empty"; @@ -362,6 +423,11 @@ group { name: "mv_bookmarks"; signal: "empty,view"; source: "mainui"; action: STATE_SET "empty" 0.0; + target: "elm.swallow.big"; + target: "elm.swallow.small_first"; + target: "elm.swallow.small_second"; + target: "elm.swallow.small_third"; + target: "elm.swallow.small_fourth"; target: "elm.text.empty"; target: "center_rect"; } @@ -371,13 +437,18 @@ group { name: "mv_bookmarks"; action: STATE_SET "default" 0.0; target: "elm.text.empty"; target: "center_rect"; + target: "elm.swallow.big"; + target: "elm.swallow.small_first"; + target: "elm.swallow.small_second"; + target: "elm.swallow.small_third"; + target: "elm.swallow.small_fourth"; } } } -group { name: "elm/genlist/item/big_grid_item/default"; +group { name: "big_tile"; data.item: "texts" "page_title page_url"; - data.item: "contents" "elm.thumbnail elm.thumbButton"; + data.item: "contents" "elm.thumbnail"; min: 600 614; max: 600 614; images { @@ -531,14 +602,6 @@ group { name: "elm/genlist/item/big_grid_item/default"; align: 0 0.5; } } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - //color_class: highlightTextColor; - } } part { name: "page_url"; @@ -564,25 +627,9 @@ group { name: "elm/genlist/item/big_grid_item/default"; align: 0 0.5; } } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - //color_class: highlightTextColor; - } } - part { name: "elm.thumbButton"; - type: SWALLOW; - description { state: "default" 0.0; - rel1.to: "bg"; - rel2.to: "bg"; - } - } - - part { name: "over2"; + part { name: "over"; type: RECT; mouse_events: 1; repeat_events: 1; @@ -592,22 +639,12 @@ group { name: "elm/genlist/item/big_grid_item/default"; rel2.to: "background"; } } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - rel1.to: "background"; - rel2.to: "background"; - } - } } programs{ program { name: "mouse_in"; signal: "mouse,in"; - source: "over2"; + source: "over"; action: STATE_SET "selected" 0.0; target: "background"; target: "border_top"; @@ -616,7 +653,7 @@ group { name: "elm/genlist/item/big_grid_item/default"; } program { name: "mouse_out"; signal: "mouse,out"; - source: "over2"; + source: "over"; action: STATE_SET "default" 0.0; target: "background"; target: "border_top"; @@ -626,9 +663,9 @@ group { name: "elm/genlist/item/big_grid_item/default"; } } -group { name: "elm/genlist/item/small_grid_item/default"; +group { name: "small_tile"; data.item: "texts" "page_title page_url"; - data.item: "contents" "elm.thumbnail elm.thumbButton"; + data.item: "contents" "elm.thumbnail"; images { image: "web_frame_selected.png" COMP; image: "ico_bg_round_shape_37x37.png" COMP; @@ -839,15 +876,7 @@ group { name: "elm/genlist/item/small_grid_item/default"; } } - part { name: "elm.thumbButton"; - type: SWALLOW; - description { state: "default" 0.0; - rel1.to: "bg"; - rel2.to: "bg"; - } - } - - part { name: "over2"; + part { name: "over"; type: RECT; mouse_events: 1; repeat_events: 1; @@ -857,23 +886,12 @@ group { name: "elm/genlist/item/small_grid_item/default"; rel2.to: "background"; } } - - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - rel1.to: "background"; - rel2.to: "background"; - } - } } programs { program { name: "mouse_in"; signal: "mouse,in"; - source: "over2"; + source: "over"; action: STATE_SET "selected" 0.0; target: "background"; target: "border_top"; @@ -882,7 +900,7 @@ group { name: "elm/genlist/item/small_grid_item/default"; } program { name: "mouse_out"; signal: "mouse,out"; - source: "over2"; + source: "over"; action: STATE_SET "default" 0.0; target: "background"; target: "border_top"; @@ -1053,7 +1071,7 @@ group { name: "elm/gengrid/item/grid_item/default"; } } - part { name: "over2"; + part { name: "over"; type: RECT; mouse_events: 1; repeat_events: 1; @@ -1063,22 +1081,12 @@ group { name: "elm/gengrid/item/grid_item/default"; rel2.to: "background"; } } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - rel1.to: "background"; - rel2.to: "background"; - } - } } programs{ program { name: "mouse_in"; signal: "mouse,in"; - source: "over2"; + source: "over"; action: STATE_SET "selected" 0.0; target: "background"; target: "focus_highlight"; @@ -1086,7 +1094,7 @@ group { name: "elm/gengrid/item/grid_item/default"; } program { name: "mouse_out"; signal: "mouse,out"; - source: "over2"; + source: "over"; action: STATE_SET "default" 0.0; target: "background"; target: "focus_highlight"; -- 2.7.4 From 571cf603958864b0df21cb070d5b7a281c11d2e6 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Mon, 14 Sep 2015 13:07:04 +0200 Subject: [PATCH 11/16] Added proper handler for bookmark click in Quick Access view. [Issue] N/A [Problem] Clicking on bookmark caused opening popup or crashing. [Cause] Wrong callback was assigned to bookmark click. [Solution] Changed callback to opening new tab. Change-Id: I85dbaa29ba83005e25a4796f80a80c901a23a1f9 Signed-off-by: Maciej Skrzypkowski --- services/MainUI/MainUI.cpp | 6 +++--- services/MainUI/MainUI.h | 3 ++- services/SimpleUI/SimpleUI.cpp | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index afddf7c..3822075 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -340,17 +340,17 @@ Evas_Object * MainUI::_grid_bookmark_content_get(void *data, Evas_Object *obj, c else if (!strcmp(part, "elm.thumbButton")) { Evas_Object *thumbButton = elm_button_add(obj); elm_object_style_set(thumbButton, "thumbButton"); - evas_object_smart_callback_add(thumbButton, "clicked", _thumbSelected, data); + evas_object_smart_callback_add(thumbButton, "clicked", _thumbBookmarkClicked, data); return thumbButton; } return nullptr; } -void MainUI::_thumbSelected(void * data, Evas_Object * , void *) +void MainUI::_thumbBookmarkClicked(void * data, Evas_Object * , void *) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); HistoryItemData * itemData = reinterpret_cast(data); - itemData->mainUI->mostVisitedTileClicked(itemData->item, DetailPopup::HISTORY_ITEMS_NO); + itemData->mainUI->openURLInNewTab(itemData->item, itemData->mainUI->isDesktopMode()); } void MainUI::_thumbClicked(void* data, Evas_Object *, const char *, const char *) diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 7994674..94fa9d9 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -59,6 +59,7 @@ public: void addBookmarkItems(std::vector >); boost::signals2::signal, int)> mostVisitedTileClicked; + boost::signals2::signal, bool)> openURLInNewTab; boost::signals2::signal mostVisitedClicked; boost::signals2::signal bookmarkClicked; boost::signals2::signal bookmarkManagerClicked; @@ -77,7 +78,7 @@ private: static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_bookmark_content_get(void *data, Evas_Object *obj, const char *part); - static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); + static void _thumbBookmarkClicked(void * data, Evas_Object * obj, void * event_info); static void _thumbClicked(void *data, Evas_Object *obj, const char *emission, const char *source); void setEmptyView(bool empty); void showNoHistoryLabel(); diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 43dea86..6d39786 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -286,6 +286,7 @@ void SimpleUI::connectUISignals() M_ASSERT(m_mainUI.get()); m_mainUI->getDetailPopup().openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); + m_mainUI->openURLInNewTab.connect(boost::bind(&SimpleUI::onOpenURLInNewTab, this, _1, _2)); m_mainUI->mostVisitedTileClicked.connect(boost::bind(&SimpleUI::onMostVisitedTileClicked, this, _1, _2)); m_mainUI->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this,_1)); m_mainUI->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this,_1)); -- 2.7.4 From 1fc1fc36ce625d77f2580448a0505d3c26a8902e Mon Sep 17 00:00:00 2001 From: Marcin Lapinski Date: Fri, 11 Sep 2015 13:54:40 +0200 Subject: [PATCH 12/16] BookmarkManagerUI Implementing new AbstractUIComponent methods. [Issue#:] https://bugs.tizen.org/jira/browse/TT-157 [Problem:] New window management class needs AbstractUIComponent to have some view managing functions. [Cause:] N/A [Solution:] Implemented needed methods: void init(Evas_Object* parent) Evas_Object* getContent() void showUI() void hideUI() [Verify:] Change is not affecting browsers behaviour. Change-Id: Ia8f4eca29b82a54f239671f32bc6c43f9a47b7fe --- services/BookmarkManagerUI/BookmarkManagerUI.cpp | 97 ++++++++++++++++++------ services/BookmarkManagerUI/BookmarkManagerUI.h | 15 +++- 2 files changed, 87 insertions(+), 25 deletions(-) diff --git a/services/BookmarkManagerUI/BookmarkManagerUI.cpp b/services/BookmarkManagerUI/BookmarkManagerUI.cpp index cd50471..5d08bf0 100644 --- a/services/BookmarkManagerUI/BookmarkManagerUI.cpp +++ b/services/BookmarkManagerUI/BookmarkManagerUI.cpp @@ -58,16 +58,78 @@ BookmarkManagerUI::BookmarkManagerUI() BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); edjFilePath = EDJE_DIR; edjFilePath.append("BookmarkManagerUI/BookmarkManagerUI.edj"); + createGengridItemClasses(); } BookmarkManagerUI::~BookmarkManagerUI() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if(m_folder_item_class) + elm_gengrid_item_class_free(m_folder_item_class); + if(m_bookmark_item_class) + elm_gengrid_item_class_free(m_bookmark_item_class); +} + +void BookmarkManagerUI::createGengridItemClasses() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + m_folder_item_class = elm_gengrid_item_class_new(); + m_folder_item_class->item_style = "grid_bm_item"; + m_folder_item_class->func.text_get = _grid_folder_text_get; + m_folder_item_class->func.content_get = _grid_folder_content_get; + m_folder_item_class->func.state_get = nullptr; + m_folder_item_class->func.del = nullptr; + + m_bookmark_item_class = elm_gengrid_item_class_new(); + m_bookmark_item_class->item_style = "grid_ds_item"; + m_bookmark_item_class->func.text_get = _grid_bookmark_text_get; + m_bookmark_item_class->func.content_get = _grid_bookmark_content_get; + m_bookmark_item_class->func.state_get = nullptr; + m_bookmark_item_class->func.del = nullptr; } void BookmarkManagerUI::show(Evas_Object* parent) { + init(parent); + b_mm_layout=createBookmarksLayout(m_parent); + showUI(); +} + +void BookmarkManagerUI::init(Evas_Object* parent) +{ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); m_parent = parent; +} + +void BookmarkManagerUI::showUI() +{ + evas_object_show(b_mm_layout); + //regenerate gengrid and genlist + createGenGrid(); + showTopContent(); +} + +void BookmarkManagerUI::hideUI() +{ + evas_object_hide(b_mm_layout); + evas_object_del(m_gengrid); + m_gengrid=nullptr; + evas_object_del(m_genList); + m_genList=nullptr; +} + +Evas_Object* BookmarkManagerUI::getContent() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if (!b_mm_layout) + b_mm_layout = createBookmarksLayout(m_parent); + return b_mm_layout; +} + +Evas_Object* BookmarkManagerUI::createBookmarksLayout(Evas_Object* parent) +{ m_folder.clear(); elm_theme_extension_add(nullptr, edjFilePath.c_str()); b_mm_layout = elm_layout_add(parent); @@ -77,28 +139,14 @@ void BookmarkManagerUI::show(Evas_Object* parent) evas_object_show(b_mm_layout); createGenGrid(); - - if (!m_folder_item_class) { - m_folder_item_class = elm_gengrid_item_class_new(); - m_folder_item_class->item_style = "grid_bm_item"; - m_folder_item_class->func.text_get = _grid_folder_text_get; - m_folder_item_class->func.content_get = _grid_folder_content_get; - m_folder_item_class->func.state_get = nullptr; - m_folder_item_class->func.del = nullptr; - } - - if (!m_bookmark_item_class) { - m_bookmark_item_class = elm_gengrid_item_class_new(); - m_bookmark_item_class->item_style = "grid_ds_item"; - m_bookmark_item_class->func.text_get = _grid_bookmark_text_get; - m_bookmark_item_class->func.content_get = _grid_bookmark_content_get; - m_bookmark_item_class->func.state_get = nullptr; - m_bookmark_item_class->func.del = nullptr; - } + return b_mm_layout; } +//TODO: Make parend the argument and return created object to make code more modular. +// (After fixing window managment) void BookmarkManagerUI::createGenGrid() { + //TODO: After fixing window managment remove this. if(m_gengrid != nullptr) evas_object_del(m_gengrid); @@ -117,6 +165,9 @@ void BookmarkManagerUI::createGenGrid() elm_gengrid_item_size_set(m_gengrid, 404 * efl_scale, 320 * efl_scale); } +//TODO: Remove externall calls and make it private method. +// Make parend the argument and return created object +// to make code more modular.(After fixing window managment) void BookmarkManagerUI::showTopContent() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -269,7 +320,7 @@ Evas_Object * BookmarkManagerUI::getGenList() return m_genList; } -Evas_Object * BookmarkManagerUI::getContent() +Evas_Object * BookmarkManagerUI::getGenGrid() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); return m_gengrid; @@ -315,8 +366,8 @@ void BookmarkManagerUI::addBookmarkFolderItems(std::vector); @@ -62,7 +69,11 @@ public: boost::signals2::signal folderItemClicked; private: + Evas_Object* createBookmarksLayout(Evas_Object* parent); void createGenGrid(); + void createGengridItemClasses(); + Evas_Object *getGenList(); + Evas_Object *getGenGrid(); static char* _grid_folder_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_folder_content_get(void *data, Evas_Object *obj, const char *part); static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part); -- 2.7.4 From 06372d9557fd613262a21fe287bcb36b40e14fd0 Mon Sep 17 00:00:00 2001 From: Albert Malewski Date: Mon, 14 Sep 2015 14:12:12 +0200 Subject: [PATCH 13/16] Removed inheritance of AbstractUIComponent in MainUI and SimpleURI classes [Issue] https://bugs.tizen.org/jira/browse/TT-157 [Problem] MainUI and SimpleURI classes are not UI components in fact. They are not suspected to call AbstractUIComponent's methods. [Cause] N/A [Solution] Removed inheritance of AbstractUIComponent in MainUI and SimpleURI classes. [Verify] This patch does not change browser's behaviour. Change-Id: I048c6ad288df7af331efda6552565b83a112af08 --- services/MainUI/MainUI.h | 3 +-- services/SimpleURI/SimpleURI.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index 94fa9d9..0ebc78d 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -34,8 +34,7 @@ namespace base_ui{ //TODO: This class name is not revelant to what this class actually does. //Rename this class and file to "QuickAccessUI". class BROWSER_EXPORT MainUI - : public tizen_browser::interfaces::AbstractUIComponent - , public tizen_browser::core::AbstractService + : public tizen_browser::core::AbstractService { public: MainUI(); diff --git a/services/SimpleURI/SimpleURI.h b/services/SimpleURI/SimpleURI.h index 77ec107..e28abed 100644 --- a/services/SimpleURI/SimpleURI.h +++ b/services/SimpleURI/SimpleURI.h @@ -34,8 +34,7 @@ namespace tizen_browser{ namespace base_ui{ class BROWSER_EXPORT SimpleURI - : public tizen_browser::interfaces::AbstractUIComponent - , public tizen_browser::core::AbstractService + : public tizen_browser::core::AbstractService { public: enum IconType{ -- 2.7.4 From aadbbcd9df9a8a91e392602f4541dd3f0ef086e6 Mon Sep 17 00:00:00 2001 From: Marcin Lapinski Date: Mon, 14 Sep 2015 18:16:49 +0200 Subject: [PATCH 14/16] TabUI Implementing new AbstractUIComponent methods. [Issue#:] https://bugs.tizen.org/jira/browse/TT-157 [Problem:] New window management class needs AbstractUIComponent to have some view managing functions. [Cause:] N/A [Solution:] Implemented needed methods: void init(Evas_Object* parent) Evas_Object* getContent() void showUI() void hideUI() [Verify:] Change is not affecting browsers behaviour. Change-Id: I6d4a91af909722050564690510f64e9c331b7fe5 --- services/TabUI/TabUI.cpp | 90 +++++++++++++++++++++++++++++++++++++----------- services/TabUI/TabUI.h | 8 +++++ 2 files changed, 77 insertions(+), 21 deletions(-) diff --git a/services/TabUI/TabUI.cpp b/services/TabUI/TabUI.cpp index e93f03e..a3e0916 100644 --- a/services/TabUI/TabUI.cpp +++ b/services/TabUI/TabUI.cpp @@ -76,17 +76,59 @@ void TabUI::createTabItemClass() void TabUI::show(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + init(parent); + m_tab_layout = createTabUILayout(m_parent); + showUI(); +} + +void TabUI::showUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_tab_layout); + evas_object_show(m_tab_layout); + //regenerate gengrid + m_gengrid = createGengrid(m_tab_layout); + elm_object_part_content_set(m_tab_layout, "tab_gengrid", m_gengrid); + evas_object_show(m_gengrid); + + evas_object_show(elm_layout_content_get(m_tab_layout, "action_bar")); + evas_object_show(elm_layout_content_get(m_tab_layout, "top_bar")); +} + +void TabUI::hideUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_tab_layout); + evas_object_hide(m_tab_layout); + + //delete gengrid + evas_object_del(m_gengrid); + m_gengrid = nullptr; + + evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar")); + evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar")); +} + +void TabUI::init(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); M_ASSERT(parent); m_parent = parent; - //TODO:check if there is no some memory leak due to not destroying previous instance of this UI element. - m_tab_layout = createTabUILayout(parent); - evas_object_show(m_tab_layout); +} + +Evas_Object* TabUI::getContent() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if(!m_tab_layout) + m_tab_layout = createTabUILayout(m_parent); + return m_tab_layout; } Evas_Object* TabUI::createTabUILayout(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - M_ASSERT(parent); + Evas_Object* tab_layout = elm_layout_add(parent); elm_layout_file_set(tab_layout, m_edjFilePath.c_str(), "tab-layout"); evas_object_size_hint_weight_set(tab_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -98,31 +140,34 @@ Evas_Object* TabUI::createTabUILayout(Evas_Object* parent) buttonBar = createActionBar(tab_layout); elm_object_part_content_set(tab_layout, "action_bar", buttonBar); + return tab_layout; +} - //create gengrid containing tabs - m_gengrid = elm_gengrid_add(tab_layout); - elm_object_part_content_set(tab_layout, "tab_gengrid", m_gengrid); +Evas_Object* TabUI::createGengrid(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); - M_ASSERT(m_parent); - elm_gengrid_align_set(m_gengrid, 0, 0); - elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE); - elm_gengrid_horizontal_set(m_gengrid, EINA_TRUE); - elm_gengrid_highlight_mode_set(m_gengrid, EINA_TRUE); - elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF); - elm_scroller_page_size_set(m_gengrid, 0, 327); + Evas_Object* gengrid = elm_gengrid_add(parent); - evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_gengrid_align_set(gengrid, 0, 0); + elm_gengrid_select_mode_set(gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_gengrid_multi_select_set(gengrid, EINA_FALSE); + elm_gengrid_horizontal_set(gengrid, EINA_TRUE); + elm_gengrid_highlight_mode_set(gengrid, EINA_TRUE); + elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF); + elm_scroller_page_size_set(gengrid, 0, 327); + + evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); double efl_scale = elm_config_scale_get() / elm_app_base_scale_get(); - elm_gengrid_item_size_set(m_gengrid, 364 * efl_scale, 320 * efl_scale); - evas_object_event_callback_add(m_gengrid, EVAS_CALLBACK_MOUSE_IN, _focus_in, this); + elm_gengrid_item_size_set(gengrid, 364 * efl_scale, 320 * efl_scale); + evas_object_event_callback_add(gengrid, EVAS_CALLBACK_MOUSE_IN, _focus_in, this); - return tab_layout; + return gengrid; } - Evas_Object* TabUI::createActionBar(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); @@ -170,6 +215,7 @@ void TabUI::_close_clicked(void* data, Evas_Object*, void*) void TabUI::hide() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar")); evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar")); evas_object_hide(elm_layout_content_get(m_tab_layout, "tab_gengrid")); @@ -368,6 +414,7 @@ void TabUI::clearItems() Evas_Object* TabUI::createNoHistoryLabel() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); Evas_Object *label = elm_label_add(m_parent); elm_object_text_set(label, "No favorite websites."); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -389,6 +436,7 @@ void TabUI::closeAllTabs() void TabUI::setEmptyGengrid(bool setEmpty) { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (setEmpty) { elm_object_part_content_set(m_gengrid, "elm.swallow.empty", createNoHistoryLabel()); } else { diff --git a/services/TabUI/TabUI.h b/services/TabUI/TabUI.h index 21cd5b2..d650052 100644 --- a/services/TabUI/TabUI.h +++ b/services/TabUI/TabUI.h @@ -36,6 +36,12 @@ class BROWSER_EXPORT TabUI public: TabUI(); ~TabUI(); + //AbstractUIComponent interface implementation + void showUI(); + void hideUI(); + void init(Evas_Object *parent); + Evas_Object* getContent(); + void show(Evas_Object *parent); virtual std::string getName(); void clearItems(); @@ -54,6 +60,7 @@ public: boost::signals2::signal tabsCount; private: + static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _tab_grid_content_get(void *data, Evas_Object *obj, const char *part); static void _itemSelected(void * data, Evas_Object * obj, void * event_info); @@ -72,6 +79,7 @@ private: Evas_Object* createTabUILayout(Evas_Object* parent); Evas_Object* createActionBar(Evas_Object* parent); + Evas_Object* createGengrid(Evas_Object* parent); Evas_Object* createTopButtons(Evas_Object* parent); Evas_Object* createNoHistoryLabel(); void createTabItemClass(); -- 2.7.4 From 67476fe16d898eb94f7baa0d32a870cf054e1834 Mon Sep 17 00:00:00 2001 From: Marcin Lapinski Date: Mon, 14 Sep 2015 15:48:57 +0200 Subject: [PATCH 15/16] MoreMenuUI Implementing new AbstractUIComponent methods. [Issue#:] https://bugs.tizen.org/jira/browse/TT-157 [Problem:] New window management class needs AbstractUIComponent to have some view managing functions. [Cause:] N/A [Solution:] Implemented needed methods: void init(Evas_Object* parent) Evas_Object* getContent() void showUI() void hideUI() [Verify:] Change is not affecting browsers behaviour. Change-Id: I4aef907e35f5240be86c259f4d6705a43c93ee4a --- services/MoreMenuUI/MoreMenuUI.cpp | 130 +++++++++++++++++++++++++++---------- services/MoreMenuUI/MoreMenuUI.h | 16 +++++ 2 files changed, 112 insertions(+), 34 deletions(-) diff --git a/services/MoreMenuUI/MoreMenuUI.cpp b/services/MoreMenuUI/MoreMenuUI.cpp index 7489ab6..4db8fd8 100644 --- a/services/MoreMenuUI/MoreMenuUI.cpp +++ b/services/MoreMenuUI/MoreMenuUI.cpp @@ -45,55 +45,113 @@ typedef struct _MoreItemData } MoreMenuItemData; MoreMenuUI::MoreMenuUI() - : m_gengrid(NULL) - , m_parent(NULL) - , m_item_class(NULL) + : m_gengrid(nullptr) + , m_parent(nullptr) + , m_item_class(nullptr) + , m_mm_layout(nullptr) , m_desktopMode(true) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_edjFilePath = EDJE_DIR; m_edjFilePath.append("MoreMenuUI/MoreMenu.edj"); + m_item_class = crateItemClass(); } MoreMenuUI::~MoreMenuUI() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + if (m_item_class) + elm_gengrid_item_class_free(m_item_class); } -void MoreMenuUI::show(Evas_Object* parent, bool desktopMode) +Elm_Gengrid_Item_Class* MoreMenuUI::crateItemClass() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Elm_Gengrid_Item_Class* item_class = elm_gengrid_item_class_new(); + item_class->item_style = "menu_item"; + item_class->func.text_get = _grid_text_get; + item_class->func.content_get = _grid_content_get; + item_class->func.state_get = NULL; + item_class->func.del = NULL; + return item_class; +} + +void MoreMenuUI::init(Evas_Object* parent) { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(parent); m_parent = parent; - m_desktopMode = desktopMode; - elm_theme_extension_add(NULL, m_edjFilePath.c_str()); - m_mm_layout = elm_layout_add(parent); - elm_layout_file_set(m_mm_layout, m_edjFilePath.c_str(), "moremenu-layout"); - evas_object_size_hint_weight_set(m_mm_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_mm_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(m_mm_layout); - - m_gengrid = elm_gengrid_add(m_mm_layout); - elm_object_part_content_set(m_mm_layout, "elm.swallow.grid", m_gengrid); - - if (!m_item_class) { - m_item_class = elm_gengrid_item_class_new(); - m_item_class->item_style = "menu_item"; - m_item_class->func.text_get = _grid_text_get; - m_item_class->func.content_get = _grid_content_get; - m_item_class->func.state_get = NULL; - m_item_class->func.del = NULL; - } +} - elm_gengrid_align_set(m_gengrid, 0, 0); - elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE); - elm_gengrid_horizontal_set(m_gengrid, EINA_FALSE); - elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - elm_scroller_page_size_set(m_gengrid, 0, 327); - evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_gengrid_item_size_set(m_gengrid, 364 * efl_scale, 320 * efl_scale); +void MoreMenuUI::show(Evas_Object* parent, bool desktopMode) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + init(parent); + //TODO: move this function call to SimpleUI::initUIServices after introducing new window managment. + setDesktopMode(desktopMode); + m_mm_layout=createMoreMenuLayout(parent); + showUI(); +} +void MoreMenuUI::showUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + evas_object_show(getContent()); + //regenerate gengrid + m_gengrid=createGengrid(getContent()); addItems(); + elm_object_part_content_set(getContent(), "elm.swallow.grid", m_gengrid); +} + +void MoreMenuUI::hideUI() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_mm_layout); + evas_object_hide(getContent()); + //destroy gengrid + evas_object_del(m_gengrid); +} + + +Evas_Object* MoreMenuUI::getContent() +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + M_ASSERT(m_parent); + if(!m_mm_layout) + m_mm_layout = createMoreMenuLayout(m_parent); + return m_mm_layout; +} + +Evas_Object* MoreMenuUI::createMoreMenuLayout(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + elm_theme_extension_add(NULL, m_edjFilePath.c_str()); + Evas_Object* mm_layout = elm_layout_add(parent); + elm_layout_file_set(mm_layout, m_edjFilePath.c_str(), "moremenu-layout"); + evas_object_size_hint_weight_set(mm_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(mm_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + evas_object_show(mm_layout); + return mm_layout; +} + +Evas_Object* MoreMenuUI::createGengrid(Evas_Object* parent) +{ + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + Evas_Object* gengrid = elm_gengrid_add(parent); + elm_object_part_content_set(parent, "elm.swallow.grid", gengrid); + + elm_gengrid_align_set(gengrid, 0, 0); + elm_gengrid_select_mode_set(gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_gengrid_multi_select_set(gengrid, EINA_FALSE); + elm_gengrid_horizontal_set(gengrid, EINA_FALSE); + elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_scroller_page_size_set(gengrid, 0, 327); + evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_gengrid_item_size_set(gengrid, 364 * efl_scale, 320 * efl_scale); + return gengrid; } void MoreMenuUI::showCurrentTab() @@ -138,6 +196,7 @@ void MoreMenuUI::setFavIcon(std::shared_ptr void MoreMenuUI::setDocIcon() { + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if(m_icon) evas_object_del(m_icon); @@ -188,7 +247,7 @@ void MoreMenuUI::_close_clicked(void* data, Evas_Object*, void*) void MoreMenuUI::AddBookmarkPopupCalled() { - + BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); m_add_bookmark_popup = std::make_shared(m_mm_layout); m_add_bookmark_popup->show(); m_add_bookmark_popup->addBookmarkFolderItems(m_map_bookmark_folder_list); @@ -234,8 +293,8 @@ void MoreMenuUI::CancelClicked(Evas_Object*) void MoreMenuUI::addToBookmarks(int folder_id) { - AddBookmarkInput(folder_id); BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); + AddBookmarkInput(folder_id); m_add_bookmark_popup->hide(); m_add_bookmark_popup.reset(); } @@ -476,6 +535,9 @@ void MoreMenuUI::_thumbSelected(void* data, Evas_Object*, void*) case EXIT_BROWSER: _exitClicked(); break; + default: + BROWSER_LOGD("[%s:%d] Warning: Unhandled button.", __PRETTY_FUNCTION__, __LINE__); + break; } } } diff --git a/services/MoreMenuUI/MoreMenuUI.h b/services/MoreMenuUI/MoreMenuUI.h index 06e4017..4b0fccb 100644 --- a/services/MoreMenuUI/MoreMenuUI.h +++ b/services/MoreMenuUI/MoreMenuUI.h @@ -61,10 +61,21 @@ class BROWSER_EXPORT MoreMenuUI public: MoreMenuUI(); ~MoreMenuUI(); + + //AbstractUIComponent interface methods + void init(Evas_Object* parent); + Evas_Object* getContent(); + void showUI(); + void hideUI(); + + void setDesktopMode(bool desktopMode) {m_desktopMode = desktopMode;} + void show(Evas_Object *main_layout, bool desktopMode); + //TODO: remove this function after new view managment introduction. void showCurrentTab(); virtual std::string getName(); void addItems(); + //TODO: remove this function after new view managment introduction. void hide(); void clearItems(); void getBookmarkFolderList(std::vector > ); @@ -75,14 +86,19 @@ public: boost::signals2::signal addToBookmarkClicked; boost::signals2::signal AddBookmarkInput; boost::signals2::signal BookmarkFolderCreated; + //TODO: remove redundant argument from this signal. boost::signals2::signal bookmarkManagerClicked; boost::signals2::signal BookmarkFoldersListImport; boost::signals2::signal historyUIClicked; boost::signals2::signal settingsClicked; + //TODO: remove redundant argument from this signal. boost::signals2::signal closeMoreMenuClicked; boost::signals2::signal switchToMobileMode; boost::signals2::signal switchToDesktopMode; private: + Elm_Gengrid_Item_Class* crateItemClass(); + Evas_Object* createMoreMenuLayout(Evas_Object* parent); + Evas_Object* createGengrid(Evas_Object* parent); static char* _grid_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_content_get(void *data, Evas_Object *obj, const char *part); static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); -- 2.7.4 From cce3446c1bc84eafa4f047511e071bd50c5e24e2 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Tue, 15 Sep 2015 10:33:12 +0200 Subject: [PATCH 16/16] Remove unused classes. [Issue#] N/A [Problem] These classes were unused. [Cause] N/A [Solution] Delete classes and theirs references. [Verify] Run browser, check if page browsing works. Change-Id: I11bd790c0cec58dfa7e13f7b9d553a8b822e69a3 Signed-off-by: Maciej Skrzypkowski --- services/MainUI/MainUI.cpp | 7 +- services/MainUI/edc/MainUI.edc | 20 +- services/SimpleUI/CMakeLists.txt | 25 -- services/SimpleUI/HistoryList.cpp | 317 -------------- services/SimpleUI/HistoryList.h | 95 ----- services/SimpleUI/NetworkErrorHandler.cpp | 57 --- services/SimpleUI/NetworkErrorHandler.h | 65 --- services/SimpleUI/RelatedWebPages.cpp | 156 ------- services/SimpleUI/RelatedWebPages.h | 54 --- services/SimpleUI/Settings.cpp | 334 --------------- services/SimpleUI/Settings.h | 92 ----- services/SimpleUI/SimpleScroller.cpp | 68 --- services/SimpleUI/SimpleScroller.h | 43 -- services/SimpleUI/SimpleUI.cpp | 76 ---- services/SimpleUI/SimpleUI.h | 28 -- services/SimpleUI/TabList.cpp | 288 ------------- services/SimpleUI/TabList.h | 84 ---- services/SimpleUI/WebTitleBar.cpp | 122 ------ services/SimpleUI/WebTitleBar.h | 76 ---- services/SimpleUI/ZoomList.cpp | 144 ------- services/SimpleUI/ZoomList.h | 72 ---- services/SimpleUI/edc/EntryPopup.edc | 51 --- services/SimpleUI/edc/HistoryItem.edc | 660 ------------------------------ services/SimpleUI/edc/RelatedPages.edc | 298 -------------- services/SimpleUI/edc/Settings.edc | 574 -------------------------- services/SimpleUI/edc/TabItem.edc | 513 ----------------------- services/SimpleUI/edc/WebTitleBar.edc | 116 ------ services/SimpleUI/edc/ZoomItem.edc | 221 ---------- 28 files changed, 20 insertions(+), 4636 deletions(-) delete mode 100644 services/SimpleUI/HistoryList.cpp delete mode 100644 services/SimpleUI/HistoryList.h delete mode 100644 services/SimpleUI/NetworkErrorHandler.cpp delete mode 100644 services/SimpleUI/NetworkErrorHandler.h delete mode 100644 services/SimpleUI/RelatedWebPages.cpp delete mode 100644 services/SimpleUI/RelatedWebPages.h delete mode 100644 services/SimpleUI/Settings.cpp delete mode 100644 services/SimpleUI/Settings.h delete mode 100644 services/SimpleUI/SimpleScroller.cpp delete mode 100644 services/SimpleUI/SimpleScroller.h delete mode 100644 services/SimpleUI/TabList.cpp delete mode 100644 services/SimpleUI/TabList.h delete mode 100644 services/SimpleUI/WebTitleBar.cpp delete mode 100644 services/SimpleUI/WebTitleBar.h delete mode 100644 services/SimpleUI/ZoomList.cpp delete mode 100644 services/SimpleUI/ZoomList.h delete mode 100644 services/SimpleUI/edc/EntryPopup.edc delete mode 100644 services/SimpleUI/edc/HistoryItem.edc delete mode 100644 services/SimpleUI/edc/RelatedPages.edc delete mode 100644 services/SimpleUI/edc/Settings.edc delete mode 100644 services/SimpleUI/edc/TabItem.edc delete mode 100644 services/SimpleUI/edc/WebTitleBar.edc delete mode 100644 services/SimpleUI/edc/ZoomItem.edc diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index 3822075..d5bec80 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -277,8 +277,8 @@ void MainUI::addHistoryItem(std::shared_ptr hi) void MainUI::addHistoryItems(std::shared_ptr items) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + clearHistoryGenlist(); int i = 0; - m_historyItems.clear(); for (auto it = items->begin(); it != items->end(); ++it) { i++; if (i > MAX_TILES_NUMBER) @@ -364,9 +364,12 @@ void MainUI::clearHistoryGenlist() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - for (auto it = m_tiles.begin(); it != m_tiles.end(); ++it) + for (auto it = m_tiles.begin(); it != m_tiles.end(); ++it) { edje_object_signal_callback_del(elm_layout_edje_get(*it), "mouse,clicked,1", "over", _thumbClicked); + evas_object_del(*it); + } + m_tiles.clear(); m_historyItems.clear(); } diff --git a/services/MainUI/edc/MainUI.edc b/services/MainUI/edc/MainUI.edc index 0625a90..8dfe2be 100644 --- a/services/MainUI/edc/MainUI.edc +++ b/services/MainUI/edc/MainUI.edc @@ -46,6 +46,16 @@ group{ } } } + programs{ + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "over"; + script { + emit("elm,action,click", ""); + } + } + } } group { name: "elm/button/base/thumbButton"; @@ -222,7 +232,7 @@ group { name: "mv_bookmarks"; min: 784 614; max: 784 614; align: 0.0 0.0; - fixed: 0 0; + fixed: 1 1; visible: 1; rel1 { relative: 0 0; to: "center_rect"; @@ -244,7 +254,7 @@ group { name: "mv_bookmarks"; min: 378 294; max: 378 294; align: 0.0 0.0; - fixed: 0 0; + fixed: 1 1; visible: 1; rel1 { to: "center_rect"; @@ -269,7 +279,7 @@ group { name: "mv_bookmarks"; min: 378 294; max: 378 294; align: 0.0 0.0; - fixed: 0 0; + fixed: 1 1; visible: 1; rel1 { to: "center_rect"; @@ -294,7 +304,7 @@ group { name: "mv_bookmarks"; min: 378 294; max: 378 294; align: 0.0 0.0; - fixed: 0 0; + fixed: 1 1; visible: 1; rel1 { to: "center_rect"; @@ -319,7 +329,7 @@ group { name: "mv_bookmarks"; min: 378 294; max: 378 294; align: 0.0 0.0; - fixed: 0 0; + fixed: 1 1; visible: 1; rel1 { to: "center_rect"; diff --git a/services/SimpleUI/CMakeLists.txt b/services/SimpleUI/CMakeLists.txt index 0e0a5fd..af5a134 100644 --- a/services/SimpleUI/CMakeLists.txt +++ b/services/SimpleUI/CMakeLists.txt @@ -1,35 +1,17 @@ project(SimpleUI) set(SimpleUI_SRCS - NetworkErrorHandler.cpp - HistoryList.cpp SimpleUI.cpp ButtonBar.cpp SimplePopup.cpp - ZoomList.cpp - TabList.cpp BookmarksManager.cpp - Settings.cpp - SimpleScroller.cpp - WebTitleBar.cpp - RelatedWebPages.cpp - CustomPopup.cpp ) set(SimpleUI_HEADERS - NetworkErrorHandler.h SimpleUI.h ButtonBar.h SimplePopup.h - ZoomList.h - TabList.h BookmarksManager.h - Settings.h - SimpleScroller.h - HistoryList.h - WebTitleBar.h - RelatedWebPages.h - CustomPopup.h ) include(Coreheaders) @@ -101,17 +83,10 @@ set(edcFiles LeftButtonBar.edc RightButtonBar.edc AuthenticationPopup.edc - TabItem.edc - ZoomItem.edc BookmarksManager.edc - Settings.edc ScrollerDefault.edc - HistoryItem.edc - WebTitleBar.edc ErrorMessage.edc - RelatedPages.edc Tooltip.edc - CustomPopup.edc ) foreach(edec ${edcFiles}) diff --git a/services/SimpleUI/HistoryList.cpp b/services/SimpleUI/HistoryList.cpp deleted file mode 100644 index 508ae8f..0000000 --- a/services/SimpleUI/HistoryList.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "HistoryList.h" -#include "BrowserAssert.h" -#include "BrowserLogger.h" -#include "HistoryItem.h" -#include "EflTools.h" -#include - -#if MERGE_ME -#include -#include -#include -#include -#endif - -namespace tizen_browser -{ -namespace base_ui -{ - - -HistoryList::HistoryList(std::shared_ptr mainWindow, Evas_Object* parentButton) - : MenuButton(mainWindow, parentButton) - ,m_genList(NULL) - ,m_itemClass(NULL) - ,m_lastFocusedItem(NULL) - ,m_deleteSelected(false) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - std::string edjFilePath = EDJE_DIR; - edjFilePath.append("SimpleUI/HistoryItem.edj"); - elm_theme_extension_add(0, edjFilePath.c_str()); - - itemWidth = atoi(edje_file_data_get(edjFilePath.c_str(),"item_width")); - itemHeight = atoi(edje_file_data_get(edjFilePath.c_str(),"item_height")); - parentItemHeight = atoi(edje_file_data_get(edjFilePath.c_str(),"parent_item_height")); - itemsCounter = 0; - parentItemsCounter = 0; - - m_genList = elm_genlist_add(m_window.get()); - elm_object_style_set(m_genList, "history"); - elm_genlist_homogeneous_set(m_genList, EINA_FALSE); - elm_genlist_multi_select_set(m_genList, EINA_FALSE); - elm_genlist_select_mode_set(m_genList, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_genlist_mode_set(m_genList, ELM_LIST_LIMIT); - elm_genlist_decorate_mode_set(m_genList, EINA_TRUE); - evas_object_size_hint_weight_set(m_genList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - evas_object_smart_callback_add(m_genList, "item,focused", focusItem, this); - evas_object_smart_callback_add(m_genList, "item,unfocused", unFocusItem, NULL); - - m_itemClass = elm_genlist_item_class_new(); - m_itemClass->item_style = "history_item"; - m_itemClass->func.text_get = &listItemTextGet; - m_itemClass->func.content_get = &listItemContentGet; - m_itemClass->func.state_get = 0; - m_itemClass->func.del = 0; - - m_itemClassNoFavicon = elm_genlist_item_class_new(); - m_itemClassNoFavicon->item_style = "history_item_no_favicon"; - m_itemClassNoFavicon->func.text_get = &listItemTextGet; - m_itemClassNoFavicon->func.content_get = &listItemContentGet; - m_itemClassNoFavicon->func.state_get = 0; - m_itemClassNoFavicon->func.del = 0; - - m_parentItemClass= elm_genlist_item_class_new(); - m_parentItemClass->item_style = "history_parent_item"; - m_parentItemClass->func.text_get = &listParentItemTextGet; - m_parentItemClass->func.content_get = 0; - m_parentItemClass->func.state_get = 0; - m_parentItemClass->func.del = 0; -} - -HistoryList::~HistoryList() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -} - -void HistoryList::addItem(const std::shared_ptr item) -{ - BROWSER_LOGD("[%s:%d]:%s ", __PRETTY_FUNCTION__, __LINE__, item->getTitle().c_str()); - //first check if ther's a date item. - GroupIterator parenIter = m_groupParent.find(item->getLastVisit().date()); - Elm_Object_Item* groupParent; - - ItemData * id = new ItemData; - id->h_list = this; - id->h_item = item.get(); - if(parenIter == m_groupParent.end()){ - groupParent = elm_genlist_item_append(m_genList, //genlist - m_parentItemClass, //item Class - //id.get(), //item data - id, - 0, //parent item - ELM_GENLIST_ITEM_GROUP,//item type - paretn_item_clicked_cb, - NULL //data passed to above function - ); - elm_object_item_disabled_set(groupParent, EINA_TRUE); - m_groupParent[item->getLastVisit().date()] = groupParent; - ++parentItemsCounter; - } else { - groupParent = parenIter->second; - } - - Elm_Object_Item* elmItem = elm_genlist_item_append(m_genList, //genlist - item->getFavIcon()->dataSize ? m_itemClass : m_itemClassNoFavicon, //item Class - //id.get(), //item data - id, - groupParent, //parent item - ELM_GENLIST_ITEM_NONE,//item type - NULL, - NULL //data passed to above function - ); - id->e_item = elmItem; - -// m_items.push_back(item); - ++itemsCounter; -} - -void HistoryList::clearList() -{ - elm_genlist_clear(m_genList); - itemsCounter = 0; - parentItemsCounter = 0; - m_groupParent.clear(); -} - -void HistoryList::addItems(tzSrv::HistoryItemVector items) -{ - clearList(); - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - tzSrv::HistoryItemVectorConstIter end = items.end(); - for(tzSrv::HistoryItemVectorConstIter item = items.begin(); item!=end; item++){ - addItem(*item); - } -} - -Evas_Object* HistoryList::getContent() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - return m_genList; -} - -MenuButton::ListSize HistoryList::calculateSize() -{ - ListSize result; - - result.width = itemWidth; - - result.height = itemsCounter*itemHeight + parentItemsCounter*parentItemHeight + 16; //"16" is size of frame - if (result.height > 868) - result.height = 868; - - return result; -} - -Evas_Object* HistoryList::getFirstFocus() -{ - return m_genList; -} - -Evas_Object* HistoryList::listItemContentGet(void* data, Evas_Object* obj, const char* part) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - ItemData * id = static_cast(data); - if(!strcmp(part, "favicon") && id->h_item->getFavIcon()) - { - return tizen_browser::tools::EflTools::getEvasImage(id->h_item->getFavIcon(), obj); - } - else if(!strcmp(part, "content_click")) - { - Evas_Object *content_click = elm_button_add(obj); - elm_object_style_set(content_click, "invisible_button"); - evas_object_smart_callback_add(content_click, "clicked", HistoryList::item_clicked_cb, id); - return content_click; - } - else if(!strcmp(part, "del_click")) - { - Evas_Object *del_click = elm_button_add(obj); - elm_object_style_set(del_click, "invisible_button"); - evas_object_smart_callback_add(del_click, "clicked", HistoryList::item_delete_clicked_cb, id); - return del_click; - } - return NULL; -} - -char* HistoryList::listItemTextGet(void* data, Evas_Object* /* obj */, const char* part) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - ItemData * id = static_cast(data); - if(!strcmp(part, "page_title")) - { - if(!id->h_item->getTitle().empty()){ - return strdup(id->h_item->getTitle().c_str()); - } - } - else if(!strcmp(part, "page_url")) - { - if(!id->h_item->getUrl().empty()){ - return strdup(id->h_item->getUrl().c_str()); - } - } -#if MERGE_ME - else if(!strcmp(part, "page_time")) - { - std::string retstr = boost::posix_time::to_simple_string(id->h_item->getLastVisit().time_of_day()); - return strdup(retstr.c_str()); - } -#endif - return strdup(""); -} - -void HistoryList::item_clicked_cb(void* data, Evas_Object* /* obj */, void* /* event_info */) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - ItemData * id = static_cast(data); - id->h_list->clickedHistoryItem(id->h_item->getUrl()); -} - -void HistoryList::item_delete_clicked_cb(void* data, Evas_Object* /* obj */, void* /* event_info */) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - ItemData * id = static_cast(data); - id->h_list->deleteHistoryItem(id->h_item->getUrl()); - elm_object_item_del(id->e_item); - elm_genlist_item_update(id->e_item); - BROWSER_LOGD("[%s:%d] Genlist count: %d", __PRETTY_FUNCTION__, __LINE__, elm_genlist_items_count(id->h_list->m_genList)); -} - -char* HistoryList::listParentItemTextGet(void* data, Evas_Object* /* obj */, const char* /* part */ ) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - ///\todo fix year out of range - ItemData * id = static_cast(data); - std::string retstr = boost::gregorian::to_simple_string(id->h_item->getLastVisit().date()); - return strdup(retstr.c_str()); - -} - -void HistoryList::paretn_item_clicked_cb(void* /* data */, Evas_Object* /* obj */, void* /* event_info */) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -} - -void HistoryList::focusItem(void* data, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,in", "content_click"); - - HistoryList *self = static_cast(data); - self->m_lastFocusedItem = item; -} - -void HistoryList::unFocusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - ItemData * id = reinterpret_cast(elm_object_item_data_get(item)); - M_ASSERT(id); - elm_object_item_signal_emit(item, "mouse,out", "content_click"); - elm_object_item_signal_emit(item, "mouse,out", "del_click"); - id->h_list->m_deleteSelected = false; -} - -void HistoryList::rightPressed() -{ - if(m_lastFocusedItem && elm_object_focus_get(elm_object_item_widget_get(m_lastFocusedItem))) { - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,in", "del_click"); - m_deleteSelected = true; - } -} - -void HistoryList::leftPressed() -{ - if(m_lastFocusedItem && elm_object_focus_get(elm_object_item_widget_get(m_lastFocusedItem))) { - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,out", "del_click"); - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,in", "content_click"); - m_deleteSelected = false; - } -} - -void HistoryList::enterPressed() -{ - if(m_lastFocusedItem && elm_object_focus_get(elm_object_item_widget_get(m_lastFocusedItem))) { - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - ItemData * id = reinterpret_cast(elm_object_item_data_get(m_lastFocusedItem)); - M_ASSERT(id); - if(m_deleteSelected) { - deleteHistoryItem(id->h_item->getUrl()); - elm_object_item_del(m_lastFocusedItem); - elm_genlist_item_update(m_lastFocusedItem); - } - else - clickedHistoryItem(id->h_item->getUrl()); - } -} - -} /* end of namespace base_ui */ -} /* end of namespace tizen_browser */ diff --git a/services/SimpleUI/HistoryList.h b/services/SimpleUI/HistoryList.h deleted file mode 100644 index 098f41f..0000000 --- a/services/SimpleUI/HistoryList.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef HISTORYLIST_H -#define HISTORYLIST_H -#include -#include -#include -#include - -#include -#include -#include - -#include "MenuButton.h" - -#include "HistoryItem.h" - -namespace tizen_browser -{ -namespace base_ui -{ - -namespace tzSrv = tizen_browser::services; - -class HistoryList : public MenuButton -{ -public: - HistoryList(std::shared_ptr mainWindow, Evas_Object* parentButton); - ~HistoryList(); - void addItems(tzSrv::HistoryItemVector items); - void addItem(const std::shared_ptr item); - virtual Evas_Object *getContent(); - virtual ListSize calculateSize(); - virtual Evas_Object* getFirstFocus(); - boost::signals2::signal clickedHistoryItem; - boost::signals2::signal deleteHistoryItem; - void clearList(); - - void rightPressed(); - void leftPressed(); - void enterPressed(); - -private: - - static Evas_Object* listItemContentGet(void *data, Evas_Object *obj, const char *part); - static char* listItemTextGet(void *data, Evas_Object *obj, const char *part); - static char* listParentItemTextGet(void *data, Evas_Object *obj, const char *part); - - static void paretn_item_clicked_cb(void *data, Evas_Object *obj, void *event_info); - static void item_clicked_cb(void *data, Evas_Object *obj, void *event_info); - static void item_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info); - -private: - struct ItemData{ - tizen_browser::base_ui::HistoryList * h_list; - tizen_browser::services::HistoryItem * h_item; - Elm_Object_Item * e_item; - }; - Evas_Object *m_genList; - Elm_Genlist_Item_Class *m_itemClass; - Elm_Genlist_Item_Class *m_itemClassNoFavicon; - Elm_Genlist_Item_Class *m_parentItemClass; - int itemsCounter; - int parentItemsCounter; - int itemHeight; - int itemWidth; - int parentItemHeight; - std::map m_groupParent; - typedef std::map::iterator GroupIterator; - - static void focusItem(void* data, Evas_Object* obj, void* event_info); - static void unFocusItem(void* data, Evas_Object* obj, void* event_info); - - Elm_Object_Item *m_lastFocusedItem; - bool m_deleteSelected; -}; - -} /* end of namespace base_ui */ -} /* end of namespace tizen_browser */ - -#endif // HISTORYLIST_H diff --git a/services/SimpleUI/NetworkErrorHandler.cpp b/services/SimpleUI/NetworkErrorHandler.cpp deleted file mode 100644 index 0c6f148..0000000 --- a/services/SimpleUI/NetworkErrorHandler.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "NetworkErrorHandler.h" - -#if PLATFORM(TIZEN) -#include -#endif - -namespace tizen_browser -{ -namespace basic_ui -{ - -NetworkErrorHandler::NetworkErrorHandler() -{ -#if PLATFORM(TIZEN) - connection_create(&connection); - connection_set_type_changed_cb(connection, onConnectionStateChanged, this); -#endif -} - -NetworkErrorHandler::~NetworkErrorHandler() -{ -#if PLATFORM(TIZEN) - connection_unset_type_changed_cb(connection); - connection_destroy(connection); -#endif -} - -#if PLATFORM(TIZEN) -void NetworkErrorHandler::onConnectionStateChanged(connection_type_e type, void* user_data) -{ - NetworkErrorHandler *self = static_cast(user_data); - if(type == CONNECTION_TYPE_DISCONNECTED){ - self->networkError(); - }else{ - self->networkConnected(); - } -} -#endif - -} /* end of namespace basic_ui */ -} /* end of namespace tizen_browser */ diff --git a/services/SimpleUI/NetworkErrorHandler.h b/services/SimpleUI/NetworkErrorHandler.h deleted file mode 100644 index 2b39f92..0000000 --- a/services/SimpleUI/NetworkErrorHandler.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef NETWORKINGERRORHANDLER_H -#define NETWORKINGERRORHANDLER_H - -#include "browser_config.h" -#include - -#if PLATFORM(TIZEN) -#include -#endif - -#include - -namespace tizen_browser -{ -namespace basic_ui -{ - - - -class NetworkErrorHandler -{ - -public: - NetworkErrorHandler(); - ~NetworkErrorHandler(); - - boost::signals2::signal networkError; - boost::signals2::signal networkConnected; - -private: -#if PLATFORM(TIZEN) - static void onConnectionStateChanged(connection_type_e type, void* user_data); -#endif - - /** - * @brief Typedef, RAI for connection ptr. - * - * dlopen return void* - * dlclose return int - */ -#if PLATFORM(TIZEN) - connection_h connection; -#endif -}; - -} /* end of namespace basic_ui */ -} /* end of namespace tizen_browser */ - -#endif // NETWORKINGERRORHANDLER_H diff --git a/services/SimpleUI/RelatedWebPages.cpp b/services/SimpleUI/RelatedWebPages.cpp deleted file mode 100644 index 7a52a86..0000000 --- a/services/SimpleUI/RelatedWebPages.cpp +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "RelatedWebPages.h" -#include "BrowserLogger.h" -#include "BrowserAssert.h" -#include "Tools/EflTools.h" - -namespace tizen_browser{ -namespace base_ui{ - -typedef struct _BookmarkItemData -{ - std::shared_ptr item; - std::shared_ptr relatedWebPages; -} BookmarkItemData; - -RelatedWebPages::RelatedWebPages() : m_parent(NULL), m_gengrid(NULL), m_item_class(NULL), m_gengridSetup(false) -{ - -} - -void RelatedWebPages::init(Evas_Object* p) -{ - m_parent = p; - m_gengrid = elm_gengrid_add(m_parent); - - evas_object_smart_callback_add(m_gengrid, "item,focused", focusItem, NULL); - evas_object_smart_callback_add(m_gengrid, "item,unfocused", unFocusItem, NULL); - - if (!m_item_class) { - m_item_class = elm_genlist_item_class_new(); - m_item_class->item_style = "rel_page_item"; - m_item_class->func.text_get = NULL; - m_item_class->func.content_get = _grid_content_get; - m_item_class->func.state_get = NULL; - m_item_class->func.del = NULL; - } -} - -void RelatedWebPages::addRelatedPage(std::shared_ptr bi) -{ - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - BookmarkItemData *itemData = new BookmarkItemData(); - itemData->item = bi; - itemData->relatedWebPages = std::shared_ptr(this); - /*Elm_Object_Item* bookmarkView =*/ elm_gengrid_item_append(m_gengrid, m_item_class, itemData, NULL, this); - //m_map_bookmark_views.insert(std::pair(bi->getAddress(),bookmarkView)); - - //setEmptyGengrid(false); -} - -Evas_Object * RelatedWebPages::_grid_content_get(void *data, Evas_Object *obj, const char *part) -{ - BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part); - BookmarkItemData *itemData = reinterpret_cast(data); - - if (!strcmp(part, "elm.thumbnail")) { - if (itemData->item->getThumbnail()) { - Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(itemData->item->getThumbnail(), itemData->relatedWebPages->m_parent); - return thumb; - } - else { - return NULL; - } - } - else if (!strcmp(part, "elm.label")) { - Evas_Object *label = elm_label_add(obj); - elm_object_style_set(label, "rel_pages_label"); - elm_object_text_set(label, itemData->item->getTittle().c_str()); - return label; - } - else if (!strcmp(part, "elm.thumbButton")) { - Evas_Object *thumbButton = elm_button_add(obj); - elm_object_style_set(thumbButton, "thumbButton"); - evas_object_smart_callback_add(thumbButton, "clicked", RelatedWebPages::_thumbSelected, data); - return thumbButton; - } - return NULL; -} - -Evas_Object * RelatedWebPages::getContent() -{ - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - M_ASSERT(m_parent); - - /*if(!elm_gengrid_items_count(m_gengrid)) - elm_object_part_content_set(m_gengrid, "elm.swallow.empty", createNoBookmarksLabel());*/ - - if(!m_gengridSetup) { - std::string edjFilePath = EDJE_DIR; - edjFilePath.append("SimpleUI/RelatedPages.edj"); - elm_theme_extension_add(NULL, edjFilePath.c_str()); - - - elm_object_style_set(m_gengrid, "rel_pages"); - - elm_gengrid_align_set(m_gengrid, 0, 0); - elm_gengrid_item_size_set(m_gengrid, 252, 222); - elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE); - elm_gengrid_horizontal_set(m_gengrid, EINA_FALSE); - elm_gengrid_highlight_mode_set(m_gengrid, EINA_TRUE); - elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - elm_scroller_page_size_set(m_gengrid, 0, 327); - - evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); - - m_gengridSetup = true; - } - return m_gengrid; -} - -void RelatedWebPages::deleteAllItems() -{ - BROWSER_LOGD("Deleting all items from gengrid"); - elm_gengrid_clear(m_gengrid); -} - -void RelatedWebPages::_thumbSelected(void * data, Evas_Object * /*obj*/, void * /*event_info*/) -{ - BookmarkItemData * itemData = reinterpret_cast(data); - itemData->relatedWebPages->bookmarkClicked(itemData->item); -} - -void RelatedWebPages::focusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,in", "over2"); -} - -void RelatedWebPages::unFocusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,out", "over2"); -} - -} - -} diff --git a/services/SimpleUI/RelatedWebPages.h b/services/SimpleUI/RelatedWebPages.h deleted file mode 100644 index 0be0119..0000000 --- a/services/SimpleUI/RelatedWebPages.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef RELATEDWEBPAGES_H -#define RELATEDWEBPAGES_H - -#include -#include "BookmarkItem.h" - -#include - -namespace tizen_browser{ -namespace base_ui{ - -class RelatedWebPages -{ -public: - RelatedWebPages(); - void init(Evas_Object* p); - Evas_Object* getContent(); - void addRelatedPage(std::shared_ptr bi); - void deleteAllItems(); - - boost::signals2::signal)> bookmarkClicked; - -private: - Evas_Object *m_parent, *m_gengrid; - Elm_Gen_Item_Class *m_item_class; - bool m_gengridSetup; - - static Evas_Object* _grid_content_get(void *data, Evas_Object *obj, const char *part); - static void _thumbSelected(void * data, Evas_Object * obj, void * event_info); - static void focusItem(void* data, Evas_Object* obj, void* event_info); - static void unFocusItem(void* data, Evas_Object* obj, void* event_info); -}; - -} - -} - -#endif // RELATEDWEBPAGES_H diff --git a/services/SimpleUI/Settings.cpp b/services/SimpleUI/Settings.cpp deleted file mode 100644 index db9c61b..0000000 --- a/services/SimpleUI/Settings.cpp +++ /dev/null @@ -1,334 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Settings.h" -#include -#include -#include -#include -#include -#include "BrowserLogger.h" - -namespace tizen_browser -{ -namespace base_ui -{ - -SettingsItem::SettingsItem() - : action(std::make_shared()) -{ - -} -SettingsItem::SettingsItem( std::shared_ptr action) - : action(action) -{ - -} - - -SettingsItem::SettingsItem(const SettingsItem& source) - : action(source.action) -{ - -} -SettingsItem::SettingsItem(const SettingsItem* source) - : action(source->action) -{ - -} - - -SettingsItem::~SettingsItem() -{ - //elm_genlist_item_class_free(m_itemClass);?? -} - -Settings::Settings(std::shared_ptr< Evas_Object > mainWindow, Evas_Object* parentButton) - : MenuButton(mainWindow, parentButton) - , m_genlist(0) - , m_itemClass(0) - , m_internalPopup(0) - , m_internalPopupVisible(false) - , m_pointerModeEnabled(true) -{ - std::string edjFilePath = EDJE_DIR; - edjFilePath.append("SimpleUI/Settings.edj"); - elm_theme_extension_add(0, edjFilePath.c_str()); - - m_genlist = elm_genlist_add(m_window.get()); - - evas_object_smart_callback_add(m_genlist, "item,focused", focusItem, NULL); - evas_object_smart_callback_add(m_genlist, "item,unfocused", unFocusItem, NULL); - - elm_object_style_set(m_genlist, "settings"); - elm_genlist_homogeneous_set(m_genlist, EINA_TRUE); - elm_genlist_multi_select_set(m_genlist, EINA_FALSE); - - elm_genlist_select_mode_set(m_genlist, ELM_OBJECT_SELECT_MODE_ALWAYS); - - m_itemClass = elm_genlist_item_class_new(); - m_itemClass->item_style = "settings_item"; - - m_itemClass->func.text_get = &gridTextGet; - m_itemClass->func.content_get = &gridOptionLabelGet; - m_itemClass->func.state_get = 0; - m_itemClass->func.del = 0; -} - -Settings::~Settings() -{ - -} - -Evas_Object* Settings::getContent() -{ - return m_genlist; -} - -tizen_browser::base_ui::MenuButton::ListSize Settings::calculateSize() -{ - ListSize result; - - result.width = 490; - result.height = 426; - - return result; -} - -Evas_Object* Settings::getFirstFocus() -{ - return m_genlist; -} - -void Settings::addAction(sharedAction action) -{ - std::shared_ptr settingsItem = std::make_shared(action); - BROWSER_LOGD("[%s] %x: %s", __func__ , settingsItem.get(), settingsItem->action->getText().c_str() ); - Elm_Object_Item* elmItem= elm_genlist_item_append(m_genlist, //genlist - m_itemClass, //item Class - settingsItem.get(), //item data - 0, //parent item - ELM_GENLIST_ITEM_NONE,//item type - itemClicked, - this - ); - m_settingsItemsMap[elmItem] = settingsItem; - BROWSER_LOGD("[%s:%d] \n\t %x:%s ", __PRETTY_FUNCTION__, __LINE__, elmItem, settingsItem->action->getText().c_str()); - if(!settingsItem->action->isEnabled()){ - elm_object_item_disabled_set(elmItem, EINA_TRUE); - } - if(settingsItem->action->isCheckable()){ - elm_object_item_signal_emit(elmItem, - (settingsItem->action->isChecked() ? "switch,on" : "switch,off") - , "SettingsModel"); - } else { - elm_object_item_signal_emit(elmItem, "switch,hide", "SettingsModel"); - } - action->enabledChanged.connect(boost::bind(&Settings::onEnabledChanged, this, action)); - m_actionButtonMap[action] = elmItem; -} - -void Settings::onEnabledChanged(sharedAction action) -{ - BROWSER_LOGD("[%s]", __func__); - refreshAction(action); -} - -void Settings::refreshAction(sharedAction action) -{ - BROWSER_LOGD("[%s]", __func__); - if(action->isEnabled()) - elm_object_item_disabled_set(m_actionButtonMap[action], EINA_FALSE); - else - elm_object_item_disabled_set(m_actionButtonMap[action], EINA_TRUE); -} - -char* Settings::gridTextGet(void* data, Evas_Object* /*obj*/, const char* part) -{ - BROWSER_LOGD("[%s]", __func__); - SettingsItem *settingsItem =reinterpret_cast(data); - if(!strcmp(part, "optionName")){ - if(!settingsItem->action->getText().empty()){ - return strdup(settingsItem->action->getText().c_str()); - } - } - return strdup(""); -} - -Evas_Object* Settings::gridOptionLabelGet(void* data, Evas_Object* obj, const char* part) -{ - SettingsItem *settingsItem =reinterpret_cast(data); - if(!strcmp(part, "optionValue")){ - if(settingsItem->action->isEnabled() && settingsItem->action->isCheckable()){ - Evas_Object *label = elm_label_add(obj); - elm_object_text_set(label, (settingsItem->action->isChecked() ? "On" :"Off" )); - elm_object_style_set(label, "settings_label"); - return label; - } - } - return NULL; - -} - -void Settings::itemClicked(void* data, Evas_Object* /*o*/, void* event_info) -{ - BROWSER_LOGD("[%s]", __func__); - - Settings* settings = reinterpret_cast(data); - Elm_Object_Item* elmItem = reinterpret_cast(event_info); - BROWSER_LOGD("[%s:%d] \n\t %x", __PRETTY_FUNCTION__, __LINE__, elmItem); - if(settings->m_settingsItemsMap.count(elmItem)){ - std::shared_ptr settingsItem(settings->m_settingsItemsMap[elmItem]);// elm_object_item_data_get(elmItem) - if(settingsItem->action->isEnabled()){ - if(settingsItem->action->isCheckable()) { - settings->showInternalPopup(elmItem); - } else{ - settingsItem->action->trigger(); - } - } - } -} - -void Settings::showInternalPopup(Elm_Object_Item* listItem) -{ - BROWSER_LOGD("[%s]", __func__); - m_internalPopupVisible = true; - m_trackedItem = listItem; - - if(!m_internalPopup){ - m_internalPopup = elm_ctxpopup_add(m_window.get()); - evas_object_smart_callback_add(m_internalPopup, "dismissed", Settings::dismissedCtxPopup, this); - } - Evas_Object * buttonBox = elm_box_add(m_internalPopup); - Evas_Object * radioOn = elm_radio_add(m_internalPopup); - Evas_Object * radioOff = elm_radio_add(m_internalPopup); - - - elm_object_text_set(radioOn, "On"); - elm_object_text_set(radioOff, "Off"); - - elm_object_style_set(radioOn, "settings_radio"); - elm_object_style_set(radioOff, "settings_radio"); - - elm_box_pack_end(buttonBox, radioOn); - elm_box_pack_end(buttonBox, radioOff); - - m_checkState = (m_settingsItemsMap[m_trackedItem]->action->isChecked() ? CheckStateOn : CheckStateOff ); - - elm_radio_state_value_set(radioOn, CheckStateOn);//true - elm_radio_value_pointer_set(radioOn, reinterpret_cast(&m_checkState)); - - elm_radio_state_value_set(radioOff, CheckStateOff);//false - elm_radio_value_pointer_set(radioOff, reinterpret_cast(&m_checkState)); - - elm_radio_group_add(radioOff, radioOn); - - evas_object_smart_callback_add(radioOn, "changed", radioChanged, this); - evas_object_smart_callback_add(radioOff, "changed", radioChanged, this); - - evas_object_size_hint_weight_set(buttonBox, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(buttonBox, EVAS_HINT_FILL, EVAS_HINT_FILL); - - evas_object_show(buttonBox); - evas_object_show(radioOn); - evas_object_show(radioOff); - - - elm_object_content_set(m_internalPopup, buttonBox); - elm_ctxpopup_direction_priority_set(m_internalPopup, - ELM_CTXPOPUP_DIRECTION_DOWN, - ELM_CTXPOPUP_DIRECTION_DOWN, - ELM_CTXPOPUP_DIRECTION_DOWN, - ELM_CTXPOPUP_DIRECTION_DOWN); - Evas_Coord w,h,x,y; - -#if PLATFORM(TIZEN) - evas_object_geometry_get(elm_object_item_track(m_trackedItem), &x, &y, &w, &h); - - BROWSER_LOGD("[%s:%d] \n\tx:%d; y:%d; w:%d; h:%d ", __PRETTY_FUNCTION__, __LINE__, - x, y, w, h); - evas_object_move(m_internalPopup, x + 354, y);//354 is proper value -#endif - - elm_object_style_set(m_internalPopup, "settings_button"); - evas_object_show(m_internalPopup); - if(!m_pointerModeEnabled) - elm_object_focus_set(radioOn, EINA_TRUE); - elm_object_item_signal_emit(m_trackedItem, "selected", "SettingsModel"); - elm_object_signal_emit(m_genlist, "show_popup", "SettingsModel"); -} - -void Settings::dismissedCtxPopup(void* data, Evas_Object* obj, void* /*event_info*/) -{ - BROWSER_LOGD("[%s]", __func__); - Settings* settings = static_cast(data); - evas_object_hide(obj); - settings->m_internalPopup = 0; - elm_object_signal_emit(settings->m_genlist, "hide_popup", "SettingsModel"); - elm_object_item_signal_emit(settings->m_trackedItem, "unselected", "SettingsModel"); - -#if PLATFORM(TIZEN) - elm_object_item_untrack(settings->m_trackedItem); -#endif - settings->m_internalPopupVisible = false; -} - -void Settings::radioChanged(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Settings *settings = static_cast(data); - std::shared_ptr settingsItem(settings->m_settingsItemsMap[settings->m_trackedItem]); - settingsItem->action->toggle(); - elm_object_item_signal_emit(settings->m_trackedItem, - (settingsItem->action->isChecked() ? "switch,on" : "switch,off") - , "SettingsModel"); - elm_genlist_item_update(settings->m_trackedItem); - elm_object_signal_emit(settings->m_internalPopup, "elm,state,hide", "elm"); -} - -void Settings::focusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,in", "option*"); -} - -void Settings::unFocusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,out", "option*"); -} - -void Settings::setPointerModeEnabled (bool enabled) -{ - m_pointerModeEnabled = enabled; -} - -bool Settings::canBeDismissed() -{ - BROWSER_LOGD("[%s]", __func__); - bool internalPopupVisible = m_internalPopup && m_internalPopupVisible; - if(internalPopupVisible) { - elm_ctxpopup_dismiss(m_internalPopup); - return false; - } - return true; -} - -}//namespace base_ui - -}//namespace tizen_browser diff --git a/services/SimpleUI/Settings.h b/services/SimpleUI/Settings.h deleted file mode 100644 index f8a086e..0000000 --- a/services/SimpleUI/Settings.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SETTINGS_H -#define SETTINGS_H -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Action.h" -#include "MenuButton.h" - -namespace tizen_browser -{ -namespace base_ui -{ - -struct SettingsItem{ - std::shared_ptr action; - SettingsItem(); - SettingsItem(std::shared_ptr action); - SettingsItem(const SettingsItem& source); - SettingsItem(const SettingsItem* source); - ~SettingsItem(); -}; - - -class Settings: public MenuButton -{ -public: - Settings(std::shared_ptr< Evas_Object > mainWindow, Evas_Object* parentButton); - ~Settings(); - virtual Evas_Object *getContent(); - virtual ListSize calculateSize(); - virtual Evas_Object* getFirstFocus(); - void addAction(sharedAction action); - void onEnabledChanged(sharedAction action); - void refreshAction(sharedAction action); - void setPointerModeEnabled (bool enabled); - - virtual bool canBeDismissed(); -private: - static char *gridTextGet(void *data, Evas_Object* obj, const char *part); - static Evas_Object *gridOptionLabelGet(void* data, Evas_Object* /*obj*/, const char* part); - static void itemClicked(void *data, Evas_Object *o, void *event_info); - - void showInternalPopup(Elm_Object_Item* parent); - static void dismissedCtxPopup(void* data, Evas_Object* obj, void* event_info); - static void radioChanged(void *data, Evas_Object *obj, void *event_info); - -private: - Evas_Object *m_genlist; - Evas_Object *m_internalPopup; - Elm_Object_Item *m_trackedItem; - Elm_Genlist_Item_Class *m_itemClass; - bool m_internalPopupVisible; - bool m_pointerModeEnabled; - std::map> m_settingsItemsMap; - std::map m_actionButtonMap; - enum CheckState{ - CheckStateOn=1 - ,CheckStateOff=2 - }; - CheckState m_checkState; - - static void focusItem(void* data, Evas_Object* obj, void* event_info); - static void unFocusItem(void* data, Evas_Object* obj, void* event_info); -}; - -}//namespace base_ui - -}//namespace tizen_browser - -#endif // SETTINGS_H diff --git a/services/SimpleUI/SimpleScroller.cpp b/services/SimpleUI/SimpleScroller.cpp deleted file mode 100644 index beff98c..0000000 --- a/services/SimpleUI/SimpleScroller.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "SimpleScroller.h" -#include "BrowserLogger.h" - -namespace tizen_browser{ -namespace base_ui{ - -SimpleScroller::SimpleScroller(Evas_Object* parent, Evas_Object *content) -{ - m_scroller = elm_scroller_add(parent); - elm_scroller_propagate_events_set(m_scroller, EINA_TRUE); - evas_object_smart_callback_add(m_scroller, "edge,top", _scrollTopReached, m_scroller); - evas_object_smart_callback_add(m_scroller, "edge,bottom", _scrollBottomReached, m_scroller); - evas_object_smart_callback_add(m_scroller, "scroll,down", _scrollDown, m_scroller); - evas_object_smart_callback_add(m_scroller, "scroll,up", _scrollUp, m_scroller); - elm_object_focus_allow_set(m_scroller, EINA_FALSE); - elm_scroller_policy_set(m_scroller, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO); - elm_scroller_content_min_limit(m_scroller, EINA_FALSE, EINA_FALSE); - elm_object_content_set(m_scroller, content); - evas_object_show(m_scroller); -} - -Evas_Object* SimpleScroller::getEvasObjectPtr() -{ - return m_scroller; -} - -void SimpleScroller::_scrollTopReached(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("Top"); - elm_object_signal_emit(reinterpret_cast(data), "hide,top,shadow", ""); -} - -void SimpleScroller::_scrollBottomReached(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("Bottom"); - elm_object_signal_emit(reinterpret_cast(data), "hide,bottom,shadow", ""); -} - -void SimpleScroller::_scrollDown(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("Down"); - elm_object_signal_emit(reinterpret_cast(data), "show,top,shadow", ""); -} - -void SimpleScroller::_scrollUp(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("Up"); - elm_object_signal_emit(reinterpret_cast(data), "show,bottom,shadow", ""); -} - -} -} diff --git a/services/SimpleUI/SimpleScroller.h b/services/SimpleUI/SimpleScroller.h deleted file mode 100644 index 6a6c32d..0000000 --- a/services/SimpleUI/SimpleScroller.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SIMPLESCROLLER_H -#define SIMPLESCROLLER_H - -#include "Elementary.h" - -namespace tizen_browser{ -namespace base_ui{ - -class SimpleScroller -{ -public: - SimpleScroller(Evas_Object* parent, Evas_Object *content); - //void setContent(Evas_Object *content); - Evas_Object* getEvasObjectPtr(); -private: - Evas_Object *m_scroller; - - static void _scrollTopReached(void *data, Evas_Object *obj, void *event_info); - static void _scrollBottomReached(void *data, Evas_Object *obj, void *event_info); - static void _scrollDown(void *data, Evas_Object *obj, void *event_info); - static void _scrollUp(void *data, Evas_Object *obj, void *event_info); -}; - -} -} - -#endif // SIMPLESCROLLER_H diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 6d39786..9ee8eae 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -46,7 +46,6 @@ #include "BookmarkItem.h" #include "boost/date_time/gregorian/gregorian.hpp" #include "boost/date_time/posix_time/posix_time.hpp" -#include "NetworkErrorHandler.h" #include "SqlStorage.h" #include "DetailPopup.h" @@ -64,14 +63,12 @@ SimpleUI::SimpleUI() , m_mainLayout(nullptr) , m_progressBar(nullptr) , m_popup(nullptr) - , m_settings() , m_moreMenuUI() , m_tabUI() , m_bookmarkManagerUI() , m_mainUI() , m_initialised(false) , m_isHomePageActive(false) - , m_currentZoom(ZOOM_TYPE_100) , items_vector() , m_networkErrorPopup(0) , m_wvIMEStatus(false) @@ -270,11 +267,6 @@ void SimpleUI::loadUIServices() std::dynamic_pointer_cast (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.mainui")); - - m_netErrorHandler = - std::unique_ptr - - (new tizen_browser::basic_ui::NetworkErrorHandler); } void SimpleUI::connectUISignals() @@ -377,8 +369,6 @@ void SimpleUI::connectModelSignals() void SimpleUI::loadThemes() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - elm_theme_extension_add(nullptr, edjePath("SimpleUI/ZoomItem.edj").c_str()); - elm_theme_extension_add(nullptr, edjePath("SimpleUI/TabItem.edj").c_str()); elm_theme_extension_add(nullptr, edjePath("SimpleUI/ErrorMessage.edj").c_str()); elm_theme_overlay_add(0, edjePath("SimpleUI/ScrollerDefault.edj").c_str()); @@ -841,72 +831,6 @@ void SimpleUI::webEngineURLChanged(const std::string url) bookmarkCheck(); } -void SimpleUI::showZoomMenu() -{ - if(!m_zoomList){ - BROWSER_LOGD("[%s:%d] - create ", __PRETTY_FUNCTION__, __LINE__); - m_zoomList = std::make_shared(m_window, - rightButtonBar->getButton("zoom_in_button")); - m_zoomList->addItem("300%", ZOOM_TYPE_300); - m_zoomList->addItem("200%", ZOOM_TYPE_200); - m_zoomList->addItem("150%", ZOOM_TYPE_150); - m_zoomList->addItem("100%", ZOOM_TYPE_100); - m_zoomList->addItem("75%", ZOOM_TYPE_75); - m_zoomList->addItem("50%", ZOOM_TYPE_50); - - m_zoomList->zoomChanged.connect(boost::bind(&SimpleUI::zoomLevelChanged, this, _1)); - } - - zoom_type currentZoomType; - - currentZoomType = static_cast (m_webEngine->getZoomFactor()); - - //Handling Initial case - if(m_webEngine->getZoomFactor() == 0){ - m_webEngine->setZoomFactor(100); - m_currentZoom = static_cast (100); - currentZoomType = ZOOM_TYPE_100; - } - //each tab may have another zoom, but there is only one instance of zoomlist - //so we should refresh value of zoom every time - m_zoomList->setZoom(currentZoomType); - BROWSER_LOGD("Current zoom factor from webkit %d%%", m_webEngine->getZoomFactor()); - - m_platformInputManager->returnPressed.disconnect_all_slots(); - m_platformInputManager->returnPressed.connect(boost::bind(&SimpleUI::onReturnPressed, this, m_zoomList.get())); - hidePopup.connect(boost::bind(&SimpleUI::onReturnPressed, this, m_zoomList.get())); - m_zoomList->showPopup(); -} - -void SimpleUI::zoomLevelChanged(int zoom_level) -{ - m_webEngine->setZoomFactor(zoom_level); - m_currentZoom = static_cast (zoom_level); -} - -void SimpleUI::AddBookmarkPopup(std::string& str) -{ - BROWSER_LOGD("[%s]", __func__); - if(!m_bookmarks_manager){ - m_bookmarks_manager = std::make_shared(m_window, - rightButtonBar->getButton("bookmark_button")); - m_bookmarks_manager->addAction( m_bookmarks_manager_Add_NewFolder); - m_bookmarks_manager->addAction( m_bookmarks_manager_BookmarkBar); - m_bookmarks_manager->addAction( m_bookmarks_manager_Folder1); - m_bookmarks_manager->addAction( m_bookmarks_manager_Folder2); - m_bookmarks_manager->addAction( m_bookmarks_manager_Folder3); - } - m_platformInputManager->returnPressed.disconnect_all_slots(); - m_platformInputManager->returnPressed.connect(boost::bind(&SimpleUI::onReturnPressed, this, m_bookmarks_manager.get())); - hidePopup.connect(boost::bind(&SimpleUI::onReturnPressed, this, m_bookmarks_manager.get())); - m_bookmarks_manager->showPopup(); -} - -void SimpleUI::AddNewFolderPopup(std::string& str) -{ - BROWSER_LOGD("[%s]", __func__); -} - void SimpleUI::showTabUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); diff --git a/services/SimpleUI/SimpleUI.h b/services/SimpleUI/SimpleUI.h index ce52557..9a8b7db 100644 --- a/services/SimpleUI/SimpleUI.h +++ b/services/SimpleUI/SimpleUI.h @@ -43,8 +43,6 @@ #include "HistoryService.h" #include "BookmarkManagerUI.h" #include "SimpleURI.h" -#include "SimpleScroller.h" -#include "WebTitleBar.h" #include "PlatformInputManager.h" #include "SessionStorage.h" #include "SqlStorage.h" @@ -53,13 +51,7 @@ #include "Action.h" #include "SimplePopup.h" #include "WebConfirmation.h" -#include "ZoomList.h" -#include "TabList.h" #include "BookmarksManager.h" -#include "Settings.h" -#include "HistoryList.h" -#include "NetworkErrorHandler.h" -#include "CustomPopup.h" #include "Config.h" namespace tizen_browser{ @@ -223,17 +215,8 @@ private: */ void deleteBookmark(void); - /** - * \brief shows Zoom showZoomMenu - */ - void showZoomMenu(); - - void zoomLevelChanged(int zoom_level); - void showHistory(); void hideHistory(); - void AddBookmarkPopup(std::string& str); - void AddNewFolderPopup(std::string& str); void addBookmarkFolders(); void newFolderBookmarkManager(const char* title, int by_user); @@ -300,14 +283,10 @@ private: Evas_Object *m_popup; Evas_Object *m_entry; Evas_Object *m_errorLayout; - CustomPopup *m_ownPopup; - SimpleScroller *m_scroller; std::shared_ptr> m_webEngine; std::shared_ptr m_simpleURI; std::shared_ptr leftButtonBar; - std::shared_ptr webviewbar; - std::shared_ptr rightButtonBar; std::shared_ptr m_favoriteService; std::shared_ptr m_historyService; @@ -317,18 +296,12 @@ private: std::shared_ptr m_historyUI; std::shared_ptr m_settingsUI; std::shared_ptr m_tabUI; - std::shared_ptr m_zoomList; - std::shared_ptr m_tabList; std::shared_ptr m_platformInputManager; std::shared_ptr m_sessionService; tizen_browser::Session::Session m_currentSession; std::shared_ptr m_bookmarks_manager; - std::shared_ptr m_settings; - std::shared_ptr m_historyList; - std::shared_ptr webTitleBar; bool m_initialised; bool m_isHomePageActive; - zoom_type m_currentZoom; int m_tabLimit; int m_favoritesLimit; bool m_wvIMEStatus; @@ -339,7 +312,6 @@ private: Ewk_Context *m_ewkContext; std::vector> items_vector; - std::unique_ptr m_netErrorHandler; SimplePopup* m_networkErrorPopup; void searchWebPage(std::string &text, int flags); diff --git a/services/SimpleUI/TabList.cpp b/services/SimpleUI/TabList.cpp deleted file mode 100644 index 5ea4930..0000000 --- a/services/SimpleUI/TabList.cpp +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "TabList.h" -#include "BrowserAssert.h" -#include "BrowserLogger.h" -#include "EflTools.h" -#include -#include - -namespace tizen_browser -{ -namespace base_ui -{ - -const int TabList::ScrollBorderValue = 8; - -TabList::TabList(std::shared_ptr< Evas_Object > parent, Evas_Object* parentButton) - : MenuButton(parent, parentButton) - , m_list(NULL) - , m_box(NULL) - , m_deleteSelected(false) -{ - m_box = elm_box_add(m_window.get()); - evas_object_size_hint_align_set(m_box, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(m_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(m_box); - - m_newTabBtn = elm_button_add(m_box); - elm_object_style_set(m_newTabBtn, "new_tab_elem"); - evas_object_smart_callback_add(m_newTabBtn, "clicked", TabList::_newTab_clicked_cb, (void*)this); - //evas_object_smart_callback_add(m_newTabBtn, "focused", TabList::newButtonFocused, this); - //evas_object_smart_callback_add(m_newTabBtn, "unfocused", TabList::newButtonUnFocused, this); - evas_object_show(m_newTabBtn); - - m_list = elm_list_add(m_box); - evas_object_size_hint_align_set(m_list, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(m_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_list_mode_set(m_list, ELM_LIST_SCROLL); - elm_list_multi_select_set(m_list, EINA_FALSE); - elm_list_select_mode_set(m_list, ELM_OBJECT_SELECT_MODE_ALWAYS); - - evas_object_smart_callback_add(m_list, "item,focused", TabList::focusItem, this); - evas_object_smart_callback_add(m_list, "item,unfocused", TabList::unFocusItem, this); - - elm_object_focus_next_object_set(m_newTabBtn, m_list, ELM_FOCUS_DOWN); - - elm_object_style_set(m_list, "tab_list"); - - elm_box_pack_end(m_box, m_newTabBtn); - elm_box_pack_end(m_box, m_list); - - elm_list_go(m_list); - - //elm_object_focus_next_object_set(m_newTabBtn, m_list, ELM_FOCUS_DOWN); - - evas_object_show(m_list); -} - -void TabList::addItem(std::shared_ptr tab) -{ - tab_data *data = new tab_data(); - data->id = tab->getId(); - data->tab_list = this; - - Evas_Object *end = elm_button_add(m_list); - Evas_Object *icon = elm_button_add(m_list); - - - elm_object_focus_allow_set(end, EINA_TRUE); - elm_object_focus_allow_set(icon, EINA_TRUE); - - elm_object_style_set(end, "invisible_button"); - elm_object_style_set(icon, "invisible_button"); - - Evas_Object * thumbnail = tizen_browser::tools::EflTools::getEvasImage(tab->getThumbnail(), icon); - if (thumbnail) - elm_object_part_content_set(icon, "e.swallow.icon", thumbnail); - else - BROWSER_LOGD("[%s] Empty thumbnail added to tabs vector", __func__); - - evas_object_smart_callback_add(icon, "clicked", TabList::_item_clicked_cb, (void *)data); - evas_object_smart_callback_add(end, "clicked", TabList::_deleteTab_clicked_cb, (void *)data); - Elm_Object_Item *item = elm_list_item_append(m_list, tab->getTitle().c_str(), icon, end, NULL, data); - - elm_object_focus_next_object_set(elm_list_item_object_get(item), - elm_object_item_part_content_get(item, "elm.swallow.end"), ELM_FOCUS_RIGHT); - - m_items[tab->getId()] = item; - - elm_list_go(m_list); -} - -void TabList::addItems(std::vector> items) -{ - clearItems(); - for (std::vector >::iterator it = items.begin(); it != items.end(); ++it) { - addItem(*it); - } -} - -void TabList::clearItems() -{ - m_items.clear(); - - /* - * Calling elm_list_clear in this case makes that list cannot receive focus anymore. - * So deleting item by item is necessary. - */ - Elm_Object_Item *item; - while((item = elm_list_first_item_get(m_list))) - elm_object_item_del(item); -} - -void TabList::replaceItems(std::vector< std::shared_ptr< basic_webengine::TabContent > > items) -{ - clearItems(); - addItems(items); -} - -int TabList::getItemcCount() -{ - return m_items.size(); -} - -Evas_Object* TabList::getContent() -{ - return m_box; -} - -MenuButton::ListSize TabList::calculateSize() -{ - elm_object_focus_allow_set(m_list, m_items.size() ? EINA_TRUE : EINA_FALSE); - - ListSize result; - - result.width = 390; - - result.height = 89 * (getItemcCount()+1) + 8; - - int x, y, w, h; - Evas_Object *focusDown = elm_object_focus_next_object_get(m_newTabBtn, ELM_FOCUS_DOWN); - evas_object_geometry_get(focusDown, &x, &y, &w, &h); - BROWSER_LOGD("%d %d %d %d\n", x, y, w, h); - - const int listMaxHeight = atoi(edje_file_data_get((std::string(EDJE_DIR) + "SimpleUI/TabItem.edj").c_str(),"list_max_height")); - if (result.height > listMaxHeight) - result.height = listMaxHeight; - - return result; -} - -void TabList::_item_clicked_cb(void* data, Evas_Object */*obj*/, void */*event_info*/) -{ - tab_data *tab = static_cast(data); - tab->tab_list->tabClicked(tab->id); - tab->tab_list->hidePopup(); -} - -void TabList::_newTab_clicked_cb(void* data, Evas_Object */*obj*/, void */*event_info*/) -{ - TabList *self = reinterpret_cast(data); - self->newTabClicked(); - self->hidePopup(); -} - -void TabList::_deleteTab_clicked_cb(void* data, Evas_Object */*obj*/, void */*event_info*/) -{ - tab_data *tab = static_cast(data); - tab->tab_list->tabDelete(tab->id); - tab->tab_list->hidePopup(); -} - -void TabList::setCurrentTabId(tizen_browser::basic_webengine::TabId currentTabId) -{ - m_currentTabId = currentTabId; -} - -void TabList::disableNewTabBtn(bool disabled) -{ - elm_object_disabled_set(m_newTabBtn, disabled); -} - -void TabList::onPopupShow() -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - if(m_items.find(m_currentTabId) != m_items.end()) - elm_object_item_signal_emit(m_items[m_currentTabId], "highlight,selected", ""); -} - -Evas_Object* TabList::getFirstFocus() -{ - BROWSER_LOGD("[%s:%d] m_newTabBtn: %x ", __PRETTY_FUNCTION__, __LINE__, m_newTabBtn); - return m_newTabBtn; -} - -void TabList::focusItem(void* data, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - TabList *self = reinterpret_cast(data); - Elm_Object_Item *item = reinterpret_cast(event_info); - BROWSER_LOGD("[%s:%d] Item: %s ", __PRETTY_FUNCTION__, __LINE__, elm_object_item_part_text_get(item,"elm.text")); - //elm_object_signal_emit(elm_object_item_ item, "mouse,in", "elm.swallow.icon"); - elm_object_item_signal_emit( item, "mouse,in", "elm.swallow.icon"); - //elm.swallow.end - //Evas_Object* delIcon = elm_object_part_content_get(item, "elm.swallow.end"); - self->m_lastFocusedItem = item; -} - -void TabList::unFocusItem(void* data, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - TabList *self = reinterpret_cast(data); - Elm_Object_Item *item = reinterpret_cast(event_info); - BROWSER_LOGD("[%s:%d] Item: %s ", __PRETTY_FUNCTION__, __LINE__, elm_object_item_part_text_get(item,"elm.text")); - //elm_object_signal_emit(elm_object_item_ item, "mouse,in", "elm.swallow.icon"); - elm_object_item_signal_emit(item, "mouse,out", "elm.swallow.end"); - elm_object_item_signal_emit(item, "mouse,out", "elm.swallow.icon"); - - self->m_deleteSelected = false; -} - -void TabList::newButtonFocused(void* /*data*/, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); -} - -void TabList::newButtonUnFocused(void* data, Evas_Object* /*obj*/, void* /*event_info*/) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - TabList *self = reinterpret_cast(data); - //EFL BUG workaround: it looks like button do not get "unfocus" signal each time. - elm_object_signal_emit(self->m_newTabBtn, "elm,action,unfocus","elm"); -} - -void TabList::rightPressed() -{ - if(m_lastFocusedItem && elm_object_focus_get(elm_object_item_widget_get(m_lastFocusedItem))) { - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,out", "elm.swallow.icon"); - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,in", "elm.swallow.end"); - m_deleteSelected = true; - } -} - -void TabList::leftPressed() -{ - if(m_lastFocusedItem && elm_object_focus_get(elm_object_item_widget_get(m_lastFocusedItem))) { - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,out", "elm.swallow.end"); - elm_object_item_signal_emit(m_lastFocusedItem, "mouse,in", "elm.swallow.icon"); - m_deleteSelected = false; - } -} - -void TabList::enterPressed() -{ - if(m_lastFocusedItem && elm_object_focus_get(elm_object_item_widget_get(m_lastFocusedItem))) { - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - - tab_data *td = static_cast(elm_object_item_data_get(m_lastFocusedItem)); - M_ASSERT(td); - - if(m_deleteSelected) { - tabDelete(td->id); - } - else { - tabClicked(td->id); - } - hidePopup(); - } -} - -} - -} diff --git a/services/SimpleUI/TabList.h b/services/SimpleUI/TabList.h deleted file mode 100644 index 81c0fca..0000000 --- a/services/SimpleUI/TabList.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef TABLIST_H -#define TABLIST_H - -#include -#include - -#include "TabId.h" -#include "SimpleScroller.h" - -#include "MenuButton.h" - -namespace tizen_browser -{ -namespace base_ui -{ - -class TabList:public MenuButton{ - -public: - TabList(std::shared_ptr parent, Evas_Object* parentButton); - void addItem(std::shared_ptr); - void addItems(std::vector>); - void clearItems(); - void replaceItems(std::vector< std::shared_ptr< tizen_browser::basic_webengine::TabContent > > items); - virtual Evas_Object *getContent(); - virtual ListSize calculateSize(); - virtual Evas_Object* getFirstFocus(); - boost::signals2::signal newTabClicked; - boost::signals2::signal tabClicked; - boost::signals2::signal tabDelete; - int getItemcCount(); - void setCurrentTabId(tizen_browser::basic_webengine::TabId currentTabId); - void disableNewTabBtn(bool disabled); - void onPopupShow(); - - void rightPressed(); - void leftPressed(); - void enterPressed(); -private: - std::map m_items; - tizen_browser::basic_webengine::TabId m_currentTabId; - Evas_Object *m_list, *m_box, *m_newTabBtn; - static void _item_clicked_cb(void* data, Evas_Object *obj, void *event_info); - static void _newTab_clicked_cb(void* data, Evas_Object *obj, void *event_info); - static void _deleteTab_clicked_cb(void* data, Evas_Object *obj, void *event_info); - static void focusItem(void* data, Evas_Object* obj, void *event_info); - static void unFocusItem(void* data, Evas_Object* obj, void *event_info); - static void newButtonFocused(void* data, Evas_Object* obj, void *event_info); - static void newButtonUnFocused(void* data, Evas_Object* obj, void *event_info); - struct tab_data{ - tizen_browser::basic_webengine::TabId id; - TabList *tab_list; - }; - - Elm_Object_Item *m_lastFocusedItem; - bool m_deleteSelected; - - /** - * Above this size tablist is scrolled. - */ - static const int ScrollBorderValue; -}; - -} - -} - -#endif //TABLIST_H diff --git a/services/SimpleUI/WebTitleBar.cpp b/services/SimpleUI/WebTitleBar.cpp deleted file mode 100644 index c610d9e..0000000 --- a/services/SimpleUI/WebTitleBar.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include "BrowserLogger.h" -#include "EflTools.h" - -#include "WebTitleBar.h" - -// show bar by this time (seconds) - due to IA Guidline -#define DELAY_TIME 4.0 - -namespace tizen_browser -{ -namespace base_ui -{ - -WebTitleBar::WebTitleBar(Evas_Object *parent, const std::string &edjFile, const std::string &groupName) : - m_timer(NULL) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - std::string edjFilePath = EDJE_DIR; - edjFilePath.append(edjFile); - elm_theme_extension_add(NULL, edjFilePath.c_str()); - m_layout = elm_layout_add(parent); - Eina_Bool layoutSetResult = elm_layout_file_set(m_layout, edjFilePath.c_str(), groupName.c_str()); - if(!layoutSetResult) - BROWSER_LOGE("[%s:%d]: Layout file not found: ", __func__, __LINE__, edjFilePath.c_str()); - evas_object_size_hint_weight_set(m_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(m_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); -} - -WebTitleBar::~WebTitleBar() -{ - if(m_timer) - ecore_timer_del(m_timer); -} - -void WebTitleBar::setFavIcon(std::shared_ptr favicon) -{ - BROWSER_LOGD("[%s:%d] faviconType:%d ", __PRETTY_FUNCTION__, __LINE__, favicon->imageType); - if(favicon->imageType != tools::BrowserImage::ImageTypeNoImage){ - m_icon = tizen_browser::tools::EflTools::getEvasImage(favicon, m_layout); - if(m_icon){ - evas_object_image_fill_set(m_icon, 0, 0, 37, 37); - evas_object_resize(m_icon, 37, 37); - elm_object_part_content_set(m_layout, "favicon", m_icon); - evas_object_show(m_icon); - } else { - removeFavIcon(); - } - } else { - removeFavIcon(); - } -} - -void WebTitleBar::removeFavIcon() -{ - Evas_Object * favicon = elm_object_part_content_unset(m_layout, "favicon"); - evas_object_hide(favicon); - if (favicon) { - evas_object_del(favicon); - } -} - - -void WebTitleBar::show(const std::string & title) -{ - setTitle(title); - - if(m_timer) - ecore_timer_del(m_timer); - - m_timer = ecore_timer_add(0.7, show_cb, this); -} - -Eina_Bool WebTitleBar::show_cb(void * data) -{ - WebTitleBar * self = static_cast (data); - if(self->m_timer) - ecore_timer_del(self->m_timer); - self->m_timer = ecore_timer_add(DELAY_TIME, hide_cb, self); - elm_object_signal_emit(self->m_layout, "show_webtitle_bar", "web"); - return ECORE_CALLBACK_CANCEL; -} - -void WebTitleBar::setTitle(const std::string & title) -{ - BROWSER_LOGD("Changing title on WebTitle bar to: %s", title.c_str()); - elm_object_part_text_set(m_layout, "text", title.c_str()); -} - -void WebTitleBar::hide() -{ - hide_cb(this); -} - -Eina_Bool WebTitleBar::hide_cb(void * data) -{ - WebTitleBar * self = static_cast (data); - elm_object_signal_emit(self->m_layout, "hide_webtitle_bar", "web"); - if(self->m_timer) - ecore_timer_del(self->m_timer); - self->m_timer = NULL; - return ECORE_CALLBACK_CANCEL; -} - -} /* end of base_ui */ -} /* end of tizen_browser */ diff --git a/services/SimpleUI/WebTitleBar.h b/services/SimpleUI/WebTitleBar.h deleted file mode 100644 index 8d7ca2e..0000000 --- a/services/SimpleUI/WebTitleBar.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef WEBTITLEBAR_H -#define WEBTITLEBAR_H - -#include - -namespace tizen_browser -{ -namespace base_ui -{ - -class WebTitleBar -{ -public: - WebTitleBar(Evas_Object * parent, const std::string &edjFile, const std::string &groupName); - ~WebTitleBar(); - - /** - * @brief Return layout of the Web Title bar - */ - Evas_Object * getContent() { return m_layout; }; - - /** - * @brief Show Web Title bar - * - * @param url title of webpage - */ - void show(const std::string & title); - - /** - * @brief Set favicon on Web tittle bar - * - * @param favicon Favicon image - */ - void setFavIcon(std::shared_ptr favicon); - - /** - * @brief remove favicon properly, and update view - * - */ - void removeFavIcon(); - - /** - * @brief Hide Web tittle bar - */ - void hide(); - -private: - void setTitle(const std::string & title); - static Eina_Bool show_cb(void * data); - static Eina_Bool hide_cb(void * data); - Evas_Object * m_layout; - Evas_Object * m_icon; - Ecore_Timer * m_timer; - -}; - -} /* end of base_ui */ -} /* end of tizen_browser */ - -#endif // WEBTITLEBAR_H diff --git a/services/SimpleUI/ZoomList.cpp b/services/SimpleUI/ZoomList.cpp deleted file mode 100644 index 03d1600..0000000 --- a/services/SimpleUI/ZoomList.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "ZoomList.h" -#include "BrowserAssert.h" -#include "BrowserLogger.h" -#include -#include - -namespace tizen_browser -{ -namespace base_ui -{ - - -ZoomList::ZoomList(std::shared_ptr< Evas_Object > mainWindow, Evas_Object* parentButton) - : MenuButton(mainWindow, parentButton) - , m_trackFirst(0) - , m_items(0) -{ - BROWSER_LOGD("[%s:%d] this: %x", __PRETTY_FUNCTION__, __LINE__, this); - m_list = elm_list_add(m_window.get()); - - evas_object_smart_callback_add(m_list, "item,focused", focusItem, this); - evas_object_smart_callback_add(m_list, "item,unfocused", unFocusItem, this); - evas_object_smart_callback_add(m_list, "activated", _item_clicked_cb, this); - - elm_object_style_set(m_list, "zoom_list"); - elm_list_mode_set(m_list, ELM_LIST_EXPAND); - evas_object_size_hint_align_set(m_list, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(m_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_list_go(m_list); - evas_object_show(m_list); -} - -ZoomList::~ZoomList() -{ -} - - -void ZoomList::addItem(const char* text, zoom_type value) -{ - zoom_data *data = new zoom_data(); - data->value = value; - data->zoom_list = this; - - elm_list_item_append(m_list, text, NULL, NULL, ZoomList::_item_clicked_cb, (void *)data); - elm_list_go(m_list); - - m_items++; -} - -void ZoomList::setZoom(zoom_type value) -{ - Elm_Object_Item * item = elm_list_first_item_get(m_list); - while (item != NULL) - { - zoom_type *elem_zoom = (zoom_type*)elm_object_item_data_get(item); - edje_object_signal_emit(elm_list_item_object_get(item), "unchecked", ""); - if (*elem_zoom == value) - { - edje_object_signal_emit(elm_list_item_object_get(item), "default_checked", ""); - current_zoom = value; - } - item = elm_list_item_next(item); - } -} - -Evas_Object* ZoomList::getContent() -{ - evas_object_resize(m_list, 390, 0); - return m_list; -} - -MenuButton::ListSize ZoomList::calculateSize() -{ - ListSize result; - - result.width = 390; - result.height = 590; - - return result; -} - -void ZoomList::_item_clicked_cb(void* /*data*/, Evas_Object */*obj*/, void *event_info) -{ - Elm_Object_Item *item = static_cast(event_info); - zoom_data *zoom = static_cast(elm_object_item_data_get(item)); - M_ASSERT(zoom); - if (zoom->value != zoom->zoom_list->current_zoom) - { - zoom->zoom_list->zoomChanged(zoom->value); - edje_object_signal_emit(elm_list_item_object_get(item), "checked", ""); - item = elm_list_first_item_get(zoom->zoom_list->m_list); - while (item != NULL) - { - zoom_type *elem_zoom = (zoom_type*)elm_object_item_data_get(item); - if (*elem_zoom == zoom->zoom_list->current_zoom) - { - edje_object_signal_emit(elm_list_item_object_get(item), "unchecked", ""); - zoom->zoom_list->current_zoom = zoom->value; - break; - } - item = elm_list_item_next(item); - } - } - zoom->zoom_list->hidePopup(); -} - -Evas_Object* ZoomList::getFirstFocus() -{ - return m_list; -} - -void ZoomList::focusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,in", "over2"); -} - -void ZoomList::unFocusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info) -{ - BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - Elm_Object_Item *item = reinterpret_cast(event_info); - elm_object_item_signal_emit( item, "mouse,out", "over2"); -} - -} - -} diff --git a/services/SimpleUI/ZoomList.h b/services/SimpleUI/ZoomList.h deleted file mode 100644 index 5210ce3..0000000 --- a/services/SimpleUI/ZoomList.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ZOOMLIST_H -#define ZOOMLIST_H - -#include -#include -#include -#include "MenuButton.h" - -namespace tizen_browser -{ -namespace base_ui -{ - -typedef enum { - ZOOM_TYPE_50 = 50, - ZOOM_TYPE_75 = 75, - ZOOM_TYPE_100 = 100, - ZOOM_TYPE_150 = 150, - ZOOM_TYPE_200 = 200, - ZOOM_TYPE_300 = 300, -} zoom_type; - - -class ZoomList:public MenuButton{ - -public: - ZoomList(std::shared_ptr< Evas_Object > mainWindow, Evas_Object* parentButton); - ~ZoomList(); - void addItem(const char* text, zoom_type value); - void setZoom(zoom_type value); - virtual Evas_Object *getContent(); - virtual ListSize calculateSize(); - boost::signals2::signal zoomChanged; - - virtual Evas_Object* getFirstFocus(); - -private: - Evas_Object *m_list; - Evas_Object *m_trackFirst; - zoom_type current_zoom; - int m_items; - static void _item_clicked_cb(void* data, Evas_Object *obj, void *event_info); - struct zoom_data{ - zoom_type value; - ZoomList *zoom_list; - }; - - static void focusItem(void* data, Evas_Object* obj, void* event_info); - static void unFocusItem(void* data, Evas_Object* obj, void* event_info); -}; - -} - -} - -#endif //ZOOMLIST_H diff --git a/services/SimpleUI/edc/EntryPopup.edc b/services/SimpleUI/edc/EntryPopup.edc deleted file mode 100644 index 95ea129..0000000 --- a/services/SimpleUI/edc/EntryPopup.edc +++ /dev/null @@ -1,51 +0,0 @@ -collections { - group { - name: "entry_popup"; - parts { - part { - name: "label"; - type : TEXT; - scale:1; - description { - state: "default" 0.0; - visible: 1; - //align: 0.0 0.0; - rel1 { relative: 0.0 0.0;} - rel2 { relative: 1.0 1.0;} - min: 200 60; - max: 200 60; - text { - text: "Label"; - min: 0 1; - max: 1 1; - size: 20; - } - } - } - part { - name: "entry"; - type : SWALLOW; - scale: 1; - description { - state: "default" 0.0; - visible: 1; - align: 0.0 0.0; - min: 200 60; - max: 200 60; - rel1 { relative: 0.0 1.0; to: "label"; } - rel2 { relative: 1.0 1.0; } - } - description { - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { - state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - } -} \ No newline at end of file diff --git a/services/SimpleUI/edc/HistoryItem.edc b/services/SimpleUI/edc/HistoryItem.edc deleted file mode 100644 index d95f69c..0000000 --- a/services/SimpleUI/edc/HistoryItem.edc +++ /dev/null @@ -1,660 +0,0 @@ -#define DEBUG_RECT_OVER(over_part, r, g, b) \ - part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \ - \ -scale:1; \ - type : RECT; \ - repeat_events: 1; \ - description { \ - state: "default" 0.0; \ - visible: 1; \ - color: r g b 128; \ - rel1 { to: over_part; relative: 0 0; } \ - rel2 { to: over_part; relative: 1 1; } \ - } \ - } -#define SPACER_ITEM_BR(spacer_name, W, H, elem) \ - part { name: spacer_name; \ - type: RECT; \ - scale:1; \ - description { \ - state: "default" 0.0; \ - visible: 1; \ - align: 0 1; \ - min: W H; \ - max: W H; \ - fixed: 1 1; \ - color: 255 255 255 10; \ - rel1 { relative: 0.0 1.0; to: elem;} \ - rel2 { relative: 1.0 1.0; to: elem;} \ - } \ - } -#define WIDTH 436 -#define HEIGHT 136 -#define ITEM_WIDTH 374 -#define PARENT_ITEM_HEIGHT 36 -data { item: "item_width" ITEM_WIDTH; item: "item_height" HEIGHT; item: "parent_item_height" PARENT_ITEM_HEIGHT;} -collections { - group{ - name: "history"; - min: WIDTH 0; - max: WIDTH 868; - parts{ - part { name: "clipper"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part{ - name: "background"; - type: RECT; - description{ - state: "default" 0.0; - color: 0 0 0 0; - rel1{ - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part{ - name: "elm.swallow.content"; - type: SWALLOW; - clip_to: "clipper"; - mouse_events: 1; - description{ - state: "default" 0.0; - align: 0.0 0.0; - fixed: 1 1; - rel1{ - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part{ - name: "elm.swallow.empty"; - type: SWALLOW; - description{ - state: "default" 0.0; - fixed: 1 1; - rel1{ - relative: 0 0; - } - rel2{ - relative: 0 0; - } - } - } - }//parts - }//group - group { - name: "elm/genlist/item/history_item/default"; - alias: "elm/genlist/item_odd/history_item/default"; - alias: "elm/genlist/item_compress/history_item/default"; - alias: "elm/genlist/item_compress_odd/history_item/default"; - min: WIDTH HEIGHT; - max: WIDTH HEIGHT; - images { - image: "ico_delete.png" COMP; - image: "thumbnail.png" COMP; - } - data.item: "texts" "page_title page_url page_time"; - data.item: "contents" "favicon content_click del_click"; - color_classes{ - color_class{ - name: "defaultBgColor"; - color: 18 22 34 255; - } - color_class{ - name: "focusBgColor"; - color: 69 143 255 255; - } - color_class{ - name: "highlightBgColor"; - color: 69 143 255 102; - } - color_class{ - name: "imageHighlight"; - color: 255 255 255 102; - } - color_class{ - name: "focusDelBgColor"; - color: 96 114 146 255; - } - color_class{ - name: "defaultTextColor"; - color: 211 211 211 255; - } - color_class{ - name: "focusTextColor"; - color: 255 255 255 255; - } - color_class{ - name: "highlightTextColor"; - color: 255 255 255 51; - } - color_class{ - name: "dateTextColor"; - color: 211 211 211 204; - } - color_class{ - name: "transparent"; - color: 0 0 0 0; - } - } - parts { - part { - name: "bg_clipper"; - scale:1; - mouse_events: 1; - type: SWALLOW; - description { - state: "default" 0.0; - color: 0 0 0 0; - align: 0 0; - min: WIDTH HEIGHT; - max: WIDTH HEIGHT; - } - } - part { - name: "item_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: ITEM_WIDTH HEIGHT; - max: ITEM_WIDTH HEIGHT; - align: 0 1; - rel1 { relative: 0.0 0.0;to: "bg_clipper";} - rel2 { relative: 1.0 1.0;to: "bg_clipper";} - color_class: defaultBgColor; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusBgColor; - } - } - SPACER_ITEM_BR("horizontal_line", ITEM_WIDTH, 2, "bg_clipper") - part { - name: "favicon_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 0; - min: 37 37; - max: 37 37; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "item_bg"; offset: 25 25;} - rel2 { relative: 1.0 1.0; to: "item_bg";} - color_class: transparent; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color_class: imageHighlight; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - } - part { - name: "favicon"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: 37 37; - max: 37 37; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "favicon_bg";} - rel2 { relative: 1.0 1.0; to: "favicon_bg";} - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color_class: imageHighlight; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - } - part { - name: "page_title"; - scale: 1; - type: TEXT; - description { - state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: 275 40; - max: 275 40; - align: 0 0; - rel1 { relative: 0.0 0.0; to: item_bg; offset:74 20;} - rel2 { relative: 1.0 1.0; to: item_bg;} - color_class: defaultTextColor; - text { - text: "Web page title"; - font: "font_name"; - size: 30; - align: 0 1; - } - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color_class: highlightTextColor; - } - } - part { - name: "page_url"; - scale: 1; - type: TEXT; - description { - state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: 275 22; - max: 275 22; - align: 1 0; - rel1 { relative: 0.0 1.0; to: "page_title";} - rel2 { relative: 1.0 1.0; to: "page_title";} - color_class: defaultTextColor; - text { - text: "http:/onet.pl"; - font: "font_name"; - size: 22; - align: 0 0.5; - } - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color_class: highlightTextColor; - } - } - part { - name: "page_time"; - scale: 1; - type: TEXT; - description { - state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: 275 22; - max: 275 22; - align: 1 0; - rel1 { relative: 0.0 1.0; to: "page_url";} - rel2 { relative: 1.0 1.0; to: "page_url";} - color_class: defaultTextColor; - text { - text: "10:25 AM"; - font: "font_name"; - size: 22; - align: 0 0.5; - } - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color_class: highlightTextColor; - } - } - part { - name: "del_bg"; - scale:1; - mouse_events: 1; - type: RECT; - description { - state: "default" 0.0; - visible: 1; - fixed: 1 1; - align: 0 0; - min: 54 HEIGHT; - max: 54 HEIGHT; - rel1 { relative: 1.0 0.0; to: "item_bg";} - rel2 { relative: 1.0 1.0;to: "bg_clipper";} - color_class: transparent; - } - description { - state: "highlight" 0.0; - inherit: "default" 0.0; - color_class: focusBgColor; - visible: 1; - } - description { - state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusDelBgColor; - visible: 1; - } - } - part { - name: "del_icon"; - type: IMAGE; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - min: 40 40; - max: 40 40; - rel1 { relative: 0.0 0.0; to: "del_bg";} - rel2 { relative: 1.0 1.0; to: "del_bg";} - image.normal: "ico_delete.png"; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "focus" 0.0; - inherit: "highlight" 0.0; - } - } - part { - name: "over"; - scale:1; - type: RECT; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - fixed: 1 1; - min: ITEM_WIDTH HEIGHT; - max: ITEM_WIDTH HEIGHT; - rel1 { relative: 0.0 0.0; to: "item_bg";} - rel2 { relative: 1.0 1.0; to: "item_bg";} - color_class: transparent; - } - description { - state: "highlight" 0.0; - inherit: "default" 0 0; - color_class: highlightBgColor; - visible: 1; - } - } - part { - name: "content_click"; - scale:1; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - fixed: 1 1; - min: ITEM_WIDTH HEIGHT; - max: ITEM_WIDTH HEIGHT; - rel1 { relative: 0.0 0.0; to: "over";} - rel2 { relative: 1.0 1.0; to: "over";} - color_class: transparent; - } - } - part { - name: "del_over"; - scale:1; - type: RECT; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - fixed: 1 1; - min: 54 HEIGHT; - max: 54 HEIGHT; - rel1 { relative: 0.0 0.0; to: "del_bg";} - rel2 { relative: 1.0 1.0; to: "del_bg";} - color_class: transparent; - } - } - part { - name: "del_click"; - scale:1; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - fixed: 1 1; - min: 54 HEIGHT; - max: 54 HEIGHT; - rel1 { relative: 0.0 0.0; to: "del_over";} - rel2 { relative: 1.0 1.0; to: "del_over";} - color_class: transparent; - } - } - } - programs{ - program { - name: "mouse_in_content_click"; - signal: "mouse,in"; - source: "content_click"; - script { - emit("mouse_in_content_click", ""); - } - } - program { - name: "mouse_out_content_click"; - signal: "mouse,out"; - source: "content_click"; - script { - emit("mouse_out_content_click", ""); - } - } - program { - name: "mouse_in_content"; - signal: "mouse_in_content_click"; - source: ""; - action: STATE_SET "focus" 0.0; - target: "item_bg"; - target: "favicon"; - target: "page_title"; - target: "page_url"; - target: "page_time"; - target: "del_bg"; - target: "del_icon"; - } - program { - name: "mouse_out_content"; - signal: "mouse_out_content_click"; - source: ""; - action: STATE_SET "default" 0.0; - target: "item_bg"; - target: "favicon"; - target: "page_title"; - target: "page_url"; - target: "page_time"; - target: "del_bg"; - target: "del_icon"; - } - program { - name: "mouse_in_del_click"; - signal: "mouse,in"; - source: "del_click"; - script { - emit("mouse_in_del_click", ""); - } - } - program { - name: "mouse_out_del_click"; - signal: "mouse,out"; - source: "del_click"; - script { - emit("mouse_out_del_click", ""); - } - } - program { - name: "mouse_in_del"; - signal: "mouse_in_del_click"; - source: ""; - action: STATE_SET "highlight" 0.0; - target: "item_bg"; - target: "favicon"; - target: "page_title"; - target: "page_url"; - target: "page_time"; - target: "del_bg"; - target: "del_icon"; - target: "over"; - } - program { - name: "mouse_out_del"; - signal: "mouse_out_del_click"; - source: ""; - action: STATE_SET "default" 0.0; - target: "item_bg"; - target: "favicon"; - target: "page_title"; - target: "page_url"; - target: "page_time"; - target: "del_bg"; - target: "del_icon"; - target: "over"; - } - } - } - - - group { - name: "elm/genlist/item/history_item_no_favicon/default"; - alias: "elm/genlist/item_odd/history_item_no_favicon/default"; - alias: "elm/genlist/item_compress/history_item_no_favicon/default"; - alias: "elm/genlist/item_compress_odd/history_item_no_favicon/default"; - inherit: "elm/genlist/item/history_item/default"; - images { - image: "ico_page_37.png" COMP; - } - parts { - part { - name: "no_favicon"; - type: IMAGE; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: 37 37; - max: 37 37; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "favicon_bg";} - rel2 { relative: 1.0 1.0; to: "favicon_bg";} - image.normal: "ico_page_37.png"; - } - } - } - } - - /* ----------------------------------------------------------------- */ - group { - name: "elm/genlist/item/history_parent_item/default"; - data.item: "texts" "date_text"; - min: WIDTH PARENT_ITEM_HEIGHT; - max: WIDTH PARENT_ITEM_HEIGHT; - parts { - part { - name: "bg_clipper"; - scale:1; - type: RECT; - description { - state: "default" 0.0; - visible: 0; - align: 0 0; - color: 0 0 0 0; - min: WIDTH PARENT_ITEM_HEIGHT; - max: WIDTH PARENT_ITEM_HEIGHT; - } - } - part { - name: "text_bg"; - scale:1; - type: RECT; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - color: 18 22 34 245; - min: ITEM_WIDTH PARENT_ITEM_HEIGHT; - max: ITEM_WIDTH PARENT_ITEM_HEIGHT; - } - } - part { - name: "date_text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - min: 324 PARENT_ITEM_HEIGHT; - max: 324 PARENT_ITEM_HEIGHT; - fixed: 1 1; - align: 0 0; - color_class: dateTextColor; - rel1 { relative: 0.0 0.0; to: "text_bg"; offset: 25 0;} - rel2 { relative: 1.0 1.0; to: "text_bg";} - text { - text: "March. 19. 2014"; - font: "font_name"; - size: 22; - align: 0 0.5; - } - } - } - } - } - /* ----------------------------------------------------------------- */ - group{ - name: "elm/button/base/invisible_button"; - parts{ - part{ - name: "button"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - color: 0 0 0 0; - } - } - part{ - name: "over"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - rel1 { relative: 0.0 0.0;to: "button";} - rel2 { relative: 1.0 1.0;to: "button";} - color: 0 0 0 0; - } - } - } - programs{ - program { - name: "mouse_click"; - signal: "mouse,clicked,1"; - source: "over"; - script { - emit("elm,action,click", ""); - } - } - } - } -} \ No newline at end of file diff --git a/services/SimpleUI/edc/RelatedPages.edc b/services/SimpleUI/edc/RelatedPages.edc deleted file mode 100644 index bb3dabf..0000000 --- a/services/SimpleUI/edc/RelatedPages.edc +++ /dev/null @@ -1,298 +0,0 @@ -#define DEBUG_RECT_OVER(over_part, r, g, b) \ - part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \ - \ -scale:1; \ - type : RECT; \ - repeat_events: 1; \ - description { \ - state: "default" 0.0; \ - visible: 1; \ - color: r g b 128; \ - rel1 { to: over_part; relative: 0 0; } \ - rel2 { to: over_part; relative: 1 1; } \ - } \ - } - -collections { - -group { name: "elm/label/base/rel_pages_label"; - styles { - style { name: "textblock_white"; - base: "font=Sans font_size="24" color=#D3D3D3 ellipsis=1"; - } - } - styles { - style { name: "textblock_white_bold"; - base: "font=Sans:style=Bold font_size="24" color=#D3D3D3 ellipsis=1"; - } - } - - parts { - part { name: "elm.text"; - type: TEXTBLOCK; - description { state: "default" 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 1.0; - align: 0.0 0.0; - fixed: 1 1; - min: 208 55; - max: 208 55; - text { - style: "textblock_white"; - max: 1 1; - } - } - description { state: "bold" 0.0; - inherit: "default" 0.0; - text { - style: "textblock_white_bold"; - max: 1 1; - } - } - } - } -} - -group { - name: "elm/button/base/thumbButton"; - images { - image: "ico_delete.png" COMP; - } - parts { - part { name: "elm.swallow.content"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 1; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 1.0; - align: 0.0 0.0; - } - } - } - - programs { - program { name: "mouse,clicked"; - signal: "mouse,down,1"; - source: "elm.swallow.content"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - } -} - -group { - name: "elm/gengrid/base/rel_pages"; - data { - item: "focus_highlight" "off"; - } - - parts { - part { name: "clipper"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part { name: "background"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - color: 42 50 64 0; - rel1 { - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - clip_to: "clipper"; - description { state: "default" 0.0; - rel1 {relative: 0.0 0.0;} - rel2 {relative: 1.0 1.0; offset: 14 14;} - } - } - part { name: "elm.swallow.empty"; - type: SWALLOW; - description { state: "default" 0.0; - align: 0.5 0.5; - rel1 { - relative: 0.5 0.5; - } - rel2 { - relative: 0.5 0.5; - } - } - } - } - } -group { name: "elm/gengrid/item/rel_page_item/default"; - data.item: "texts" "elm.text"; - data.item: "contents" "elm.thumbnail elm.text elm.label elm.thumbButton"; - images { - image: "web_frame_selected.png" COMP; - } - parts { - part { name: "bg"; - clip_to: "disclip"; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - color: 255 255 255 0; - } - } - part { name: "elm.thumbnail"; - clip_to: "disclip"; - type: SWALLOW; - description { state: "default" 0.0; - fixed: 1 0; - align: 0.0 0.0; - min: 238 153; - max: 238 153; - rel1 { - relative: 0.0 0.0; - } - rel2 { - relative: 1.0 1.0; - } - } - description { state: "selected"; - inherit: "default" 0.0; - } - } - part { name: "focus_highlight"; - type: IMAGE; - description { state: "default" 0.0; - rel1 { - to: "elm.thumbnail"; - relative: 0.0 0.0; - } - rel2 { - to: "elm.thumbnail"; - relative: 1.0 1.0; - } - image.normal: "web_frame_selected.png"; - image.border: 8 8 8 0; - image.border_scale: 1; - image.middle: NONE; - visible: 0; - } - description { state: "selected"; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "background"; - clip_to: "disclip"; - type: RECT; - description { state: "default" 0.0; - min: 238 55; - max: 238 55; - align: 0.0 0.0; - color: 30 38 50 255; - rel1 { - to: "elm.thumbnail"; - relative: 0.0 1.0; - offset: 0 0; - } - rel2 { - relative: 1.0 1.0; - } - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - color: 70 143 254 255; - } - } - part { name: "label_spacer"; - type: SPACER; -description { -state: "default" 0.0; -min: 15 55; -max: 15 55; -align: 0.0 0.0; -rel1{to: "background"; relative: 0.0 0.0;} -} -} - part { name: "elm.label"; - clip_to: "disclip"; - type: SWALLOW; - description { state: "default" 0.0; - min: 208 55; - max: 208 55; - align: 0.0 0.0; - rel1 { to: "label_spacer"; - relative: 1.0 0.0; - } - rel2 { - to: "elm.thumbnail"; - relative: 1.0 1.0; - } - } - } - part { name: "disclip"; - type: RECT; - description { state: "default" 0.0; - rel1.to: "bg"; - rel2.to: "bg"; - } - } - part { name: "elm.thumbButton"; - clip_to: "disclip"; - type: SWALLOW; - description { state: "default" 0.0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - rel1.to: "bg"; - rel2.to: "background"; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - rel1.to: "background"; - rel2.to: "background"; - } - } - } - programs{ - program { - name: "mouse_in"; - signal: "mouse,in"; - source: "over2"; - action: STATE_SET "selected" 0.0; - target: "background"; - target: "focus_highlight"; - target: "elm.thumbnail"; - } - program { - name: "mouse_out"; - signal: "mouse,out"; - source: "over2"; - action: STATE_SET "default" 0.0; - target: "background"; - target: "focus_highlight"; - target: "elm.thumbnail"; - } - } -} -} \ No newline at end of file diff --git a/services/SimpleUI/edc/Settings.edc b/services/SimpleUI/edc/Settings.edc deleted file mode 100644 index 3b8ab9f..0000000 --- a/services/SimpleUI/edc/Settings.edc +++ /dev/null @@ -1,574 +0,0 @@ -#define WIDTH 473 -#define HEIGHT 490 -#define DEBUG_RECT_OVER(over_part, r, g, b) \ - part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \ - \ -scale:1; \ - type : RECT; \ - repeat_events: 1; \ - description { \ - state: "default" 0.0; \ - visible: 1; \ - color: r g b 128; \ - rel1 { to: over_part; relative: 0 0; } \ - rel2 { to: over_part; relative: 1 1; } \ - } \ - } -data { item: "width" WIDTH; item: "height" HEIGHT; } -color_classes{ - color_class{ - name: "defaultFontColor"; - color: 211 211 211 255; - } - color_class{ - name: "disabledFontColor"; - color: 60 60 60 160; - } - color_class{ - name: "selectedItemFontColor"; - color: 255 255 255 255; - } - color_class{ - name: "transparent"; - color: 0 0 0 0; - } - color_class{ - name: "selectedBackground"; - color: 69 143 255 255; - } - color_class{ - name: "dimmColor"; - color: 0 0 0 128; - } - color_class{ - name: "on_offBackgroundColor"; - color: 255 255 255 255; - } -} -collections { - group{ name: "elm/genlist/base/settings"; - min: 473 426; - max: 473 426; - parts{ - part { name: "clipper"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part{ - name: "background"; - type: RECT; - description{ - state: "default" 0.0; - color: 18 22 34 255; - rel1{ - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part{ - name: "elm.swallow.content"; - type: SWALLOW; - clip_to: "clipper"; - mouse_events: 1; - description{ - state: "default" 0.0; - align: 0.5 0.5; - fixed: 1 1; - rel1{ - relative: 0 0; - } - rel2{ - relative: 1 1; - } - } - } - part{ - name: "elm.swallow.empty"; - type: SWALLOW; - description{ - state: "default" 0.0; - fixed: 1 1; - rel1{ - relative: 0.5 0.5; - } - rel2{ - relative: 0.5 0.5; - } - } - } - part{ name: "dimmer"; - type: RECT; - description{ - state: "default" 0.0; - color: 0 0 0 128; - visible: 0; - } - description{ - state: "popup_show" 0.0; - inherit: "default"; - visible:1; - } - } - }//parts - programs{ - program{ - name: "show_popup"; - signal: "show_popup"; - source: "SettingsModel"; - action: STATE_SET "popup_show" 0.0; - target: "dimmer"; - } - program{ - name: "hide_popup"; - signal: "hide_popup"; - source: "SettingsModel"; - action: STATE_SET "default" 0.0; - target: "dimmer"; - } - } - }//group - group{ name: "elm/genlist/item/settings_item/default"; - alias: "elm/genlist/item_odd/settings_item/default"; - alias: "elm/genlist/item_compress/settings_item/default"; - alias: "elm/genlist/item_compress_odd/settings_item/default"; - min: 473 80; - max: 473 80; - data.item: "texts" "optionName"; - data.item: "contents" "optionValue"; - parts{ - part{ - name: "value_helper"; - mouse_events:0; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - description{ - state: "on" 0.0; - color: 0 0 0 0; - } - description{ - state: "off" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "optionBackground"; - type: RECT; - mouse_events: 1; - description{ - state: "default" 0.0; - color_class: "transparent"; - rel1{ - relative: 0.0 0.0; - } - rel2{ - relative: 1.0 1.0; - } - } - description{ - state: "mouseOver" 0.0; - inherit: "default"; - color_class: "selectedBackground"; - } - description{ - state: "mouseOut" 0.0; - inherit: "default"; - } - description{ - state: "selected" 0.0; - inherit: "mouseOver"; - } - } - part{ name:"optionName"; - type: TEXT; - description{ - state: "default" 0.0; - align: 0 0.5; - min: 298 80; - max: 298 80; - color_class: "defaultFontColor"; - rel1{ - relative: 0.0 0.0; - offset: 25 0; - } - rel2.relative: 1.0 1.0; - text{ - size: 30; - align: 0 0.5; - } - } - description{ - state: "mouseOut" 0.0; - inherit: "default"; - } - description{ - state: "mouseOver" 0.0; - inherit: "default" 0.0; - color_class: "selectedItemFontColor"; - } - description{ - state: "disabled" 0.0; - inherit: "default" 0.0; - color_class: "disabledFontColor"; - } - } - part{ name: "optionValue"; - type: SWALLOW; - description{ - state: "default" 0.0; - align: 0 0.5; - fixed: 1 1; - min: 100 40; - max: 100 40; - visible: 1; - rel1{ - relative: 1.0 0.0; - to: "optionName"; - offset: 25 0; - } - rel2{ - relative: 1.0 1.0; - } - } - } - programs{ - program{ name: "mouse_in"; - signal: "mouse,in"; - source: "option*"; - script{ - new cur_state_helper[31]; - new Float:index; - get_state(PART:"optionName", cur_state_helper, 30, index); - if(!strcmp(cur_state_helper,"default")){ - set_state(PART:"optionBackground", "mouseOver", 0.0); - } - } - } - program{ name: "mouse_out"; - signal: "mouse,out"; - source: "option*"; - script{ - new st[31]; - new Float:vl - get_state(PART:"optionBackground", st, 30, vl); - if(strcmp(st,"selected")){ - set_state(PART:"optionBackground", "mouseOut", 0.0); - } - } - } - program{ signal: "selected"; - source: "SettingsModel"; - action: STATE_SET "selected" 0.0; - target: "optionBackground"; - } - program{ signal: "unselected"; - source: "SettingsModel"; - action: STATE_SET "mouseOut" 0.0; - target: "optionBackground"; - } - program{ name: "go_disabled"; - signal: "elm,state,disabled"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "optionName"; - } - program{ name: "go_enabled"; - signal: "elm,state,enabled"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "optionName"; - } - program{ name: "go_Off"; - signal: "switch,off"; - source: "SettingsModel"; - action: STATE_SET "off" 0.0; - target: "value_helper"; - } - program{ name: "go_On"; - signal: "switch,on"; - source: "SettingsModel"; - action: STATE_SET "on" 0.0; - target: "value_helper"; - } - program{ name: "go_switch_hide"; - signal: "switch,hide"; - source: "SettingsModel"; - action: STATE_SET "default" 0.0; - target: "value_helper"; - } - }//programs - }//parts - }//group - group{ name: "elm/ctxpopup/bg/settings_button"; - parts { - part{ - name: "base_bg"; - type: RECT; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - } - programs{ - program { - signal: "mouse,clicked,*"; - source: "base_bg"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - } - }//group: "elm/ctxpopup/bg/settings_button"; - group{ name: "elm/ctxpopup/base/settings_button"; - max: 0 0; - parts{ - part{ - name: "base"; - scale: 1; - type: RECT; - description{ - state: "default" 0.0; - min: 185 164; - max: 185 164; - //color: 0 0 0 0; - color_class: "transparent"; - visible: 0; - } - description { - state: "visible" 0.0; - inherit: "default" 0.0; - color_class: "on_offBackgroundColor"; - visible: 1; - } - } - part{ - name: "elm.swallow.content"; - scale: 1; - type: SWALLOW; - description{ - state: "default" 0.0; - rel1{ - to:"base"; - relative: 0 0; - } - rel2{ - to:"base"; - relative:1 1; - } - } - } - } - programs { - program { - signal: "elm,state,show"; source: "elm"; - action: STATE_SET "visible" 0.0; - transition: LINEAR 0.2; - target: "base"; - } - program { - signal: "elm,state,hide"; source: "elm"; - action: STATE_SET "default" 0.0; - transition: LINEAR 0.3; - target: "base"; - after: "hide2"; - } - program { name: "hide2"; - action: SIGNAL_EMIT "elm,action,hide,finished" ""; - } - } - }//group "elm/ctxpopup/base/settings_button"; - group{ name: "elm/radio/base/settings_radio"; - images.image: "check_foc.png" COMP; - images.image: "check_nor.png" COMP; - parts{ - part{name: "item_bg"; type: RECT; mouse_events:0; - scale: 1; - description{ - state: "default" 0.0; - color_class: "transparent"; - min: 185 82; - max: 185 82; - } - description{ - state: "mouse_over" 0.0; - inherit: "default"; - color_class: "selectedBackground"; - } - } - part{name: "left_spacer"; type: SPACER; - scale: 1; - description{ - state: "default" 0.0; - min: 20 82; - max: 20 82; - align: 0 0; - rel1{ - relative:0 0; - to: item_bg; - } - } - } - part{name: "elm.text"; type: TEXT; mouse_events: 0; - scale: 1; - description{ - state: "default" 0.0; - color_class: "defaultFontColor"; - align: 0 0.5; - rel1{ - relative: 1 0; - to: "left_spacer"; - } - rel2{ - relative: 0 1; - to_x: "indicator"; - to_y: "right_spacer"; - } - text{ - size: 30; - align: 0 0.5; - } - } - description{ - state: "mouse_over" 0.0; - inherit: "default"; - color_class: "selectedItemFontColor"; - } - } - part { name: "indicator"; mouse_events: 0; - scale: 1; - type: IMAGE; - description { state: "default" 0.0; - align: 1 0.5; - rel2{ - relative: 0 1; - to: "right_spacer"; - } - min: 38 38; - max: 38 38; - visible: 0; - } - description { - state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: "check_foc.png"; - } - description{ - state: "selected_mouse_over" 0.0; - inherit: "selected"; - image.normal: "check_nor.png"; - } - } - part{ name: "right_spacer"; type: SPACER; - scale: 1; - description{ - state: "default" 0.0; - min: 20 82; - max: 20 82; - align: 1 1; - rel2{ - relative:1 1; - to: item_bg; - } - } - } - part{ name: "event"; type: RECT; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - }//parts - script { - public mouse_in() { - new st[31]; - new Float:vl - get_state(PART:"indicator", st, 30, vl) - if(!strcmp(st,"selected")) - set_state(PART:"indicator", "selected_mouse_over", 0.0); - set_state(PART:"item_bg", "mouse_over", 0.0); - set_state(PART:"elm.text", "mouse_over", 0.0); - } - public mouse_out() { - new st[31]; - new Float:vl - get_state(PART:"indicator", st, 30, vl) - if(!strcmp(st,"selected_mouse_over")) - set_state(PART:"indicator", "selected", 0.0); - set_state(PART:"item_bg", "default", 0.0); - set_state(PART:"elm.text", "default", 0.0); - } - } - programs{ - program{ - signal: "mouse,clicked,1"; source: "event"; - action: SIGNAL_EMIT "elm,action,radio,toggle" ""; - } - program{ - signal: "mouse,in"; source: "event"; - script{ - mouse_in(); - } - } - program{ - signal: "mouse,out"; source: "event"; - script{ - mouse_out(); - } - } - program{ - signal: "elm,action,focus"; source: "elm"; - script{ - mouse_in(); - } - } - program{ - signal: "elm,action,unfocus"; source: "elm"; - script{ - mouse_out(); - } - } - program{ - signal: "elm,state,radio,on"; source: "elm"; - action: STATE_SET "selected" 0.0; - target: "indicator"; - } - program{ - signal: "elm,state,radio,off"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "indicator"; - } - } - }//group "elm/radio/base/settings_radio"; - - group { name: "elm/label/base/settings_label"; - styles { - style { name: "label_style"; - base: "font="FNBD" font_size=30 text_class=tb_plain align=center color=#d3d3d3ff"; - tag: "br" "\n"; - tag: "hilight" "+ font="FNBD" color=#d3d3d3ff text_class=tb_plain"; - tag: "b" "+ font="FNBD" color=#d3d3d3ff text_class=tb_light"; - } - } - parts { - part { name: "elm.text"; type: TEXTBLOCK; - scale: 1; - description { state: "default" 0.0; - text { style: "label_style"; - min: 1 1; - } - } - } - } - } -}//collections \ No newline at end of file diff --git a/services/SimpleUI/edc/TabItem.edc b/services/SimpleUI/edc/TabItem.edc deleted file mode 100644 index 54952f8..0000000 --- a/services/SimpleUI/edc/TabItem.edc +++ /dev/null @@ -1,513 +0,0 @@ -#define SPACER_ITEM_BR(spacer_name, W, H, elem) \ - part { name: spacer_name; \ - type: RECT; \ - scale:1; \ - description { \ - state: "default" 0.0; \ - visible: 1; \ - align: 0 0; \ - min: W H; \ - max: W H; \ - fixed: 1 1; \ - color: 18 22 34 245; \ - rel1 { relative: 0.0 0.0; to: elem;} \ - rel2 { relative: 1.0 1.0; to: elem;} \ - } \ - } -#define WIDTH 436 -#define HEIGHT 89 -data { item: "width" WIDTH; item: "height" HEIGHT; item: "list_max_height" 868;} -collections { - group { - name: "elm/list/item/tab_list"; - alias: "elm/list/item_odd/tab_list"; - alias: "elm/list/item_compress/tab_list"; - alias: "elm/list/item_compress_odd/tab_list"; - min: WIDTH HEIGHT; - max: WIDTH HEIGHT; - images { - image: "ico_delete.png" COMP; - image: "thumbnail.png" COMP; - } - parts { - part { - name: "bg_clipper"; - scale:1; - mouse_events: 1; - type: SWALLOW; - description { - state: "default" 0.0; - color: 0 0 0 0; - min: WIDTH HEIGHT; - max: WIDTH HEIGHT; - } - } - part { - name: "tab_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - min: 374 87; - max: 374 87; - align: 0 1; - rel1 { relative: 0.0 0.0;to: "bg_clipper";} - rel2 { relative: 1.0 1.0;to: "bg_clipper";} - color: 18 22 34 255; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color: 69 143 255 255; - } - } - SPACER_ITEM_BR("horizontal_line", 374, 2, "bg_clipper") - part { - name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - align: 0.0 0.5; - min: 249 79; - max: 249 79; - rel1 { relative: 0.0 0.0; to: "tab_bg"; offset: 100 0;} - rel2 { relative: 1.0 1.0; to: "tab_bg";} - color: 200 200 200 255; - text { - text: ""; - font: "font_name"; - size: 30; - align: 0 0.5; - } - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - color: 255 255 255 255; - text { - text: ""; - font: "Tizen:style=Bold"; - size: 30; - align: 0 0.5; - } - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color: 255 255 255 51; - } - } - part { - name: "elm.del.bg"; - scale:1; - mouse_events: 1; - type: RECT; - description { - state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0 0; - min: 54 87; - max: 54 87; - rel1 { relative: 1.0 0.0; to: "tab_bg";} - rel2 { relative: 1.0 1.0;to: "bg_clipper";} - color: 96 114 146 255; - } - description { - state: "highlight" 0.0; - inherit: "default" 0.0; - color: 69 143 255 255; - visible: 1; - } - description { - state: "focus" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { - name: "elm.del.icon"; - type: IMAGE; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - min: 40 40; - max: 40 40; - rel1 { relative: 0.0 0.0; to: "elm.del.bg";} - rel2 { relative: 1.0 1.0; to: "elm.del.bg";} - color: 255 255 255 255; - image.normal: "ico_delete.png"; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "focus" 0.0; - inherit: "highlight" 0.0; - } - } - part { - name: "elm.swallow.icon"; - scale: 1; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - fixed: 1 1; - min: 374 87; - max: 374 87; - rel1 { relative: 0.0 0.0; to: "tab_bg";} - rel2 { relative: 1.0 1.0; to: "tab_bg";} - color: 0 0 0 0; - } - } - part { - name: "elm.swallow.end"; - scale: 1; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 1; - fixed: 1 1; - align: 0 0; - min: 54 87; - max: 54 87; - rel1 { relative: 1.0 0.0; to: "elm.swallow.icon";} - rel2 { relative: 1.0 1.0; to: "elm.swallow.icon";} - } - } - part { - name: "over"; - scale:1; - type: RECT; - description { - state: "default" 0.0; - visible: 0; - align: 0 0; - fixed: 1 1; - min: 374 87; - max: 374 87; - rel1 { relative: 0.0 0.0; to: "tab_bg";} - rel2 { relative: 1.0 1.0; to: "tab_bg";} - color: 0 0 0 0; - } - description { - state: "highlight" 0.0; - inherit: "default" 0 0; - color: 69 143 255 51; - visible: 1; - } - } - } - programs{ - program { - name: "mouse_in_tab"; - signal: "mouse,in"; - source: "elm.swallow.icon"; - action: STATE_SET "focus" 0.0; - target: "tab_bg"; - target: "elm.del.bg"; - target: "elm.del.icon"; - } - program { - name: "mouse_out_tab"; - signal: "mouse,out"; - source: "elm.swallow.icon"; - action: STATE_SET "default" 0.0; - target: "tab_bg"; - target: "elm.del.bg"; - target: "elm.del.icon"; - } - program { - name: "mouse_in_del"; - signal: "mouse,in"; - source: "elm.swallow.end"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if(strcmp(st, "selected")) { - set_state(PART:"elm.text", "highlight", 0.0); - } - set_state(PART:"elm.del.bg", "highlight", 0.0); - set_state(PART:"elm.del.icon", "highlight", 0.0); - set_state(PART:"over", "highlight", 0.0); - } - } - program { - name: "mouse_out_del"; - signal: "mouse,out"; - source: "elm.swallow.end"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if(strcmp(st, "selected")) { - set_state(PART:"elm.text", "default", 0.0); - } - set_state(PART:"elm.del.bg", "default", 0.0); - set_state(PART:"elm.del.icon", "default", 0.0); - set_state(PART:"over", "default", 0.0); - } - } - program { - name: "mouse_click"; - signal: "mouse,clicked,1"; - source: "elm.swallow.icon"; - script { - emit("elm,action,click", ""); - } - } - program { - name: "mouse_click2"; - signal: "mouse,clicked,1"; - source: "elm.swallow.end"; - script { - emit("elm,action,click", ""); - } - } - program { - name: "highlight_selected_tab"; - signal: "highlight,selected"; - source: ""; - action: STATE_SET "selected" 0.0; - target: "elm.text"; - } - program { - name: "focused"; - signal: "item,focused"; - //signal: "elm,state,selected"; - source: ""; - //action: SIGNAL_EMIT "mouse,in" "elm.swallow.icon"; - action: STATE_SET "focus" 0.0; - target: "tab_bg"; - target: "elm.del.bg"; - target: "elm.del.icon"; - } - program { - name: "unfocused"; - signal: "item,unfocused"; - //signal: "elm,state,unselected"; - source: ""; - //action: SIGNAL_EMIT "mouse,out" "elm.swallow.icon"; - action: STATE_SET "default" 0.0; - target: "tab_bg"; - target: "elm.del.bg"; - target: "elm.del.icon"; - } - } - } - /* ----------------------------------------------------------------- */ - group { - name: "elm/button/base/new_tab_elem"; - parts { - part { - name: "bg_clipper"; - scale:1; - type: RECT; - description { - state: "default" 0.0; - visible: 1; - align: 0 0; - color: 0 0 0 0; - min: WIDTH 80; - max: WIDTH 80; - } - } - part { - name: "bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - min: 374 80; - max: 374 80; - align: 0 0; - fixed: 1 1; - color: 18 22 34 255; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color: 69 143 255 255; - } - } - part { - name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - align: 0.0 0.5; - min: 324 80; - max: 324 80; - rel1 { relative: 0.0 0.0; to: "bg"; offset: 25 0;} - rel2 { relative: 1.0 1.0; to: "bg";} - color: 255 255 255 255; - text { - text: "+ New tab"; - font: "font_name"; - size: 30; - align: 0 0.5; - } - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color: 255 255 255 51; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 60 60 60 160; - } - } - part { - name: "over"; - scale:1; - mouse_events: 1; - type: RECT; - description { - state: "default" 0.0; - visible: 1; - rel1 { relative: 0.0 0.0; to: "bg";} - rel2 { relative: 1.0 1.0; to: "bg";} - color: 0 0 0 0; - } - } - } - programs{ - program { - name: "mouse_in"; - signal: "mouse,in"; - source: "over"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if(strcmp(st, "disabled")) { - set_state(PART:"bg", "focus", 0.0); - } - } - } - program { - name: "mouse_out"; - signal: "mouse,out"; - source: "over"; - action: STATE_SET "default" 0.0; - target: "bg"; - } - program { - name: "mouse_click"; - signal: "mouse,clicked,1"; - source: "over"; - script { - emit("elm,action,click", ""); - } - } - program { - name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "elm.text"; - } - program { - name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; - } - program { - name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - //action: SIGNAL_EMIT "mouse,in" "elm.swallow.icon"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if(strcmp(st, "disabled")) { - set_state(PART:"bg", "focus", 0.0); - } - } - } - program { - name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - //action: SIGNAL_EMIT "mouse,in" "elm.swallow.icon"; - action: STATE_SET "default" 0.0; - target: "bg"; - } - } - } - /* ----------------------------------------------------------------- */ - group{ - name: "elm/button/base/invisible_button"; - parts{ - part{ - name: "button"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - color: 0 0 0 0; - } - } - part { - name: "e.swallow.icon"; - scale:1; - mouse_events: 1; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 1; - align: 0 0.5; - min: 79 79; - max: 79 79; - rel1 { relative: 0.0 0.0;to: "button"; offset: 4 0;} - rel2 { relative: 1.0 1.0;to: "button";} - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color: 255 255 255 51; - } - } - part{ - name: "over"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - rel1 { relative: 0.0 0.0;to: "button";} - rel2 { relative: 1.0 1.0;to: "button";} - color: 0 0 0 0; - } - } - } - programs{ - program { - name: "mouse_click"; - signal: "mouse,clicked,1"; - source: "over"; - script { - emit("elm,action,click", ""); - } - } - } - } -} diff --git a/services/SimpleUI/edc/WebTitleBar.edc b/services/SimpleUI/edc/WebTitleBar.edc deleted file mode 100644 index d6346aa..0000000 --- a/services/SimpleUI/edc/WebTitleBar.edc +++ /dev/null @@ -1,116 +0,0 @@ -#define WEB_TITLE_BAR_WIDTH 1920 -#define WEB_TITLE_BAR_HEIGHT 87 -#define WEB_TITLE_BAR_TEXT_WIDTH 1691 -#define WEB_TITLE_BAR_TEXT_OFFSET 12 -#define WEB_TITLE_BAR_TEXT_SIZE 30 -#define WEB_TITLE_BAR_FAVICON_W_H 37 -#define WEB_TITLE_BAR_FAVICON_OFFSET 90 - -collections{ - group{ name: "web_title_bar"; - styles { - style { name: "text_style"; - base: "font=Sans font_size="WEB_TITLE_BAR_TEXT_SIZE" color=#D3D3D3 align=left"; - } - } - parts{ - part{ name: "web_title_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - ///\todo No given color in guidlines - color: 10 10 10 150; - min: WEB_TITLE_BAR_WIDTH 0; - max: WEB_TITLE_BAR_WIDTH 0; - fixed: 1 1; - align: 0 1; - rel1 { relative: 0.0 1.0; } - rel2 { relative: 1.0 1.0; } - } - description { state: "visible" 0.0; - inherit: "default"; - min: WEB_TITLE_BAR_WIDTH WEB_TITLE_BAR_HEIGHT; - max: WEB_TITLE_BAR_WIDTH WEB_TITLE_BAR_HEIGHT; - } - } - part{ name: "favicon_spacer"; - type: SPACER; - scale: 1; - description { state: "default" 0.0; - min: WEB_TITLE_BAR_FAVICON_OFFSET WEB_TITLE_BAR_HEIGHT; - max: WEB_TITLE_BAR_FAVICON_OFFSET WEB_TITLE_BAR_HEIGHT; - fixed: 1 1; - align: 0 0; - rel1{ relative: 0.0 0.0; to: "web_title_bg"; } - rel2{ relative: 1.0 1.0; to: "web_title_bg"; } - } - } - part{ name: "title_spacer"; - type: SPACER; - scale: 1; - description { state: "default" 0.0; - min: WEB_TITLE_BAR_TEXT_OFFSET WEB_TITLE_BAR_HEIGHT; - max: WEB_TITLE_BAR_TEXT_OFFSET WEB_TITLE_BAR_HEIGHT; - fixed: 1 1; - align: 0.0 0.0; - rel1{ relative: 1.0 0.0; to_x: "favicon"; } - rel2{ relative: 1.0 1.0; to: "web_title_bg"; } - } - } - - part{ name: "favicon"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - min: WEB_TITLE_BAR_FAVICON_W_H WEB_TITLE_BAR_FAVICON_W_H; - max: WEB_TITLE_BAR_FAVICON_W_H WEB_TITLE_BAR_FAVICON_W_H; - fixed: 1 1; - align: 0.0 0.5; - rel1 { to: "favicon_spacer"; relative: 1 0; } - rel2 { to: "favicon_spacer"; } - } - } - part{ name: "text"; - type: TEXTBLOCK; - scale: 1; - description { state: "default" 0.0; - color: 211 211 211 255; - min: WEB_TITLE_BAR_TEXT_WIDTH WEB_TITLE_BAR_HEIGHT; - max: WEB_TITLE_BAR_TEXT_WIDTH WEB_TITLE_BAR_HEIGHT; - visible: 1; - fixed: 1 1; - text { - text: ""; - style: "text_style"; - } - rel1 { relative: 1.0 0.0; to: "title_spacer"; offset: 0 WEB_TITLE_BAR_HEIGHT;} - rel2 { relative: 1.0 1.0; to: "web_title_bg"; } - align: 0.0 0.0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - rel1 { relative: 1.0 0.0; to: "title_spacer"; offset: 0 0;} - } - } - } - programs{ - program{ - name: "show_bar"; - signal: "show_webtitle_bar"; - source: "web"; - action: STATE_SET "visible" 0.0; - target: "web_title_bg"; - target: "text"; - transition: LINEAR 0.5; - } - program{ - name: "hide_bar"; - signal: "hide_webtitle_bar"; - source: "web"; - action: STATE_SET "default" 0.0; - target: "web_title_bg"; - target: "text"; - transition: LINEAR 0.5; - } - } -} diff --git a/services/SimpleUI/edc/ZoomItem.edc b/services/SimpleUI/edc/ZoomItem.edc deleted file mode 100644 index eec3ff8..0000000 --- a/services/SimpleUI/edc/ZoomItem.edc +++ /dev/null @@ -1,221 +0,0 @@ -#define SPACER_ITEM_BR(spacer_name, W, H) \ - part { name: spacer_name; \ - type: RECT; \ - scale:1; \ - description { \ - state: "default" 0.0; \ - visible: 1; \ - align: 1 1; \ - min: W H; \ - max: W H; \ - fixed: 1 1; \ - color: 255 255 255 10; \ - rel1 { relative: 0.0 1.0; to: "bg";} \ - rel2 { relative: 1.0 1.0; to: "bg";} \ - } \ - } - -#define WIDTH 374 -#define HEIGHT 82 - -data { item: "width" WIDTH; item: "height" HEIGHT; } - -collections { - group { - name: "elm/list/item/zoom_list"; - alias: "elm/list/item_odd/zoom_list"; - alias: "elm/list/item_compress/zoom_list"; - alias: "elm/list/item_compress_odd/zoom_list"; - min: WIDTH HEIGHT; - max: WIDTH HEIGHT; - images { - image: "check_nor.png" COMP; - image: "check_foc.png" COMP; - } - parts { - part { - name: "bg_clipper"; - scale:1; - mouse_events: 0; - type: RECT; - description { - state: "default" 0.0; - min: WIDTH HEIGHT; - color: 0 0 0 0; - } - } - part { - name: "bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - align: 0.0 0.0; - min: WIDTH HEIGHT; - max: WIDTH HEIGHT; - color: 18 22 34 255; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color: 69 143 255 255; - } - description { state: "highlight focus" 0.0; - inherit: "focus" 0.0; - } - } - SPACER_ITEM_BR("content_br", 374, 2) - part { - name: "elm.swallow.icon"; - type: IMAGE; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.0 0.0; - min: 38 38; - max: 38 38; - rel1 { relative: 1.0 0.0; to: "elm.text"; offset: 15 21;} - rel2 { relative: 1.0 1.0; to: "elm.text";} - color: 255 255 255 255; - image.normal: "check_foc.png"; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - } - description { state: "highlight focus" 0.0; - inherit: "highlight" 0.0; - image.normal: "check_nor.png"; - } - } - part { - name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - visible: 1; - fixed: 1 1; - align: 0.0 0.0; - min: 281 80; - max: 281 80; - rel1 { relative: 0.0 0.0; to: "bg"; offset: 25 0;} - rel2 { relative: 1.0 1.0; to: "bg";} - color: 255 255 255 255; - text { - text: ""; - font: "font_name"; - size: 30; - align: 0 0.5; - } - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - color: 69 143 255 255; - } - description { state: "focus" 0.0; - inherit: "default" 0.0; - } - description { state: "highlight focus" 0.0; - inherit: "focus" 0.0; - } - } - part { - name: "over2"; - scale:1; - type: RECT; - mouse_events: 1; - description { - state: "default" 0.0; - color: 0 0 0 0; - rel1 { to: "bg_clipper"; relative: 0 0; } - rel2 { to: "bg_clipper"; relative: 1 1; } - } - } - } - programs{ - program { - name: "mouse_in"; - signal: "mouse,in"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"bg", st, 30, vl); - if(!strcmp(st, "highlight")) { - set_state(PART:"bg", "highlight focus", 0.0); - set_state(PART:"elm.text", "highlight focus", 0.0); - set_state(PART:"elm.swallow.icon", "highlight focus", 0.0); - } - else { - set_state(PART:"bg", "focus", 0.0); - set_state(PART:"elm.text", "focus", 0.0); - set_state(PART:"elm.swallow.icon", "focus", 0.0); - } - } - } - program { - name: "mouse_out"; - signal: "mouse,out"; - source: "over2"; - action: STATE_SET "default" 0.0; - target: "bg"; - target: "elm.text"; - target: "elm.swallow.icon"; - script { - new st[31]; - new Float:vl; - get_state(PART:"bg", st, 30, vl); - if(!strcmp(st, "highlight focus")) { - set_state(PART:"bg", "highlight", 0.0); - set_state(PART:"elm.text", "highlight", 0.0); - set_state(PART:"elm.swallow.icon", "highlight", 0.0); - } - else if(!strcmp(st, "highlight")) { - set_state(PART:"bg", "highlight", 0.0); - set_state(PART:"elm.text", "highlight", 0.0); - set_state(PART:"elm.swallow.icon", "highlight", 0.0); - } - else { - set_state(PART:"bg", "default", 0.0); - set_state(PART:"elm.text", "default", 0.0); - set_state(PART:"elm.swallow.icon", "default", 0.0); - } - } - } - program { - name: "checked"; - signal: "checked"; - source: ""; - action: STATE_SET "highlight focus" 0.0; - target: "bg"; - target: "elm.text"; - target: "elm.swallow.icon"; - } - program { - name: "unchecked"; - signal: "unchecked"; - source: ""; - action: STATE_SET "default" 0.0; - target: "bg"; - target: "elm.text"; - target: "elm.swallow.icon"; - } - program { - name: "default_checked"; - signal: "default_checked"; - source: ""; - action: STATE_SET "highlight" 0.0; - target: "bg"; - target: "elm.text"; - target: "elm.swallow.icon"; - } - } - } -} -- 2.7.4