From 8f14e6e0d0f626dffa6f39f98ff46f681d7c3793 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Wed, 19 Aug 2015 15:49:06 +0200 Subject: [PATCH] Added "no visited site" view for Most visted tab. [Issue#] https://bugs.tizen.org/jira/browse/TT-73 [Problem] For no history there was no message. [Cause] N/A [Solution] Added label "No visited site" when there is no history [Verify] Run fresh browser instance, there should be "No visited site" message in Most visited tab. Change-Id: I171f6d5d74dbc175102a08afac37b22ff3bb6e50 Signed-off-by: Maciej Skrzypkowski --- services/MainUI/MainUI.cpp | 52 +++++++++++++++++-------------- services/MainUI/MainUI.h | 4 +-- services/MainUI/edc/MainUI.edc | 69 ++++++++++++++++++++++++++++++++---------- services/SimpleUI/SimpleUI.cpp | 20 ++++++------ 4 files changed, 96 insertions(+), 49 deletions(-) diff --git a/services/MainUI/MainUI.cpp b/services/MainUI/MainUI.cpp index 8e4afd7..c52bb07 100644 --- a/services/MainUI/MainUI.cpp +++ b/services/MainUI/MainUI.cpp @@ -31,6 +31,7 @@ namespace tizen_browser{ namespace base_ui{ const int SMALL_TILES_ROWS = 2; +const int MAX_TILES_NUMBER = 5; const int SUFIX_CHAR_DEL = 1; const char * HTTP_PREFIX = "http://"; const char * HTTPS_PREFIX = "https://"; @@ -269,8 +270,8 @@ Evas_Object* MainUI::listItemBottomContentGet(void* data, Evas_Object* obj, cons void MainUI::addHistoryItem(std::shared_ptr hi) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - if (m_map_history_views.size() >= 5) - return; + if (m_map_history_views.size() >= MAX_TILES_NUMBER) + return; HistoryItemData *itemData = new HistoryItemData(); itemData->item = hi; @@ -290,19 +291,18 @@ void MainUI::addHistoryItem(std::shared_ptr(hi->getUrl(),historyView)); - - setEmptyGengrid(false); } void MainUI::addHistoryItems(std::vector > items) { - BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - int i = 0; - for (auto it = items.begin(); it != items.end(); ++it) { - i++; - if (i > 5) break; - addHistoryItem(*it); - } + BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + int i = 0; + for (auto it = items.begin(); it != items.end(); ++it) { + i++; + if (i > MAX_TILES_NUMBER) + break; + addHistoryItem(*it); + } } void MainUI::addBookmarkItem(std::shared_ptr bi) @@ -317,7 +317,7 @@ void MainUI::addBookmarkItem(std::shared_ptr > items) @@ -438,6 +438,12 @@ void MainUI::showHistoryGenlist() elm_object_part_content_unset(m_layout, "elm.swallow.grid"); evas_object_hide(elm_object_part_content_get(m_layout, "elm.swallow.genlistBottom")); elm_object_part_content_unset(m_layout, "elm.swallow.genlistBottom"); + + if (m_map_history_views.empty()) { + setEmptyView(true); + return; + } + setEmptyView(false); elm_object_part_content_set(m_layout, "elm.swallow.left", m_genListLeft); elm_object_part_content_set(m_layout, "elm.swallow.right", m_genListRight); elm_object_part_content_set(m_layout, "elm.swallow.center", m_genListCenter); @@ -479,21 +485,23 @@ void MainUI::clearItems() elm_genlist_clear(m_genListBottom); } -Evas_Object* MainUI::createNoHistoryLabel() +void MainUI::showNoHistoryLabel() { - 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); - evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); - return label; + evas_object_hide(elm_object_part_content_get(m_layout, "elm.swallow.left")); + evas_object_hide(elm_object_part_content_get(m_layout, "elm.swallow.right")); + evas_object_hide(elm_object_part_content_get(m_layout, "elm.swallow.center")); + + elm_layout_text_set(m_layout, "elm.text.empty", "No visited site"); + elm_layout_signal_emit(m_layout, "empty,view", "mainui"); } -void MainUI::setEmptyGengrid(bool setEmpty) +void MainUI::setEmptyView(bool empty) { - if(setEmpty) { - elm_object_part_content_set(m_gengrid, "elm.swallow.empty", createNoHistoryLabel()); + BROWSER_LOGD("%s:%d %s, empty: %d", __FILE__, __LINE__, __func__, empty); + if(empty) { + showNoHistoryLabel(); } else { - elm_object_part_content_set(m_gengrid, "elm.swallow.empty", nullptr); + elm_layout_signal_emit(m_layout, "not,empty,view", "mainui"); } } diff --git a/services/MainUI/MainUI.h b/services/MainUI/MainUI.h index c62a301..66e8d94 100644 --- a/services/MainUI/MainUI.h +++ b/services/MainUI/MainUI.h @@ -70,7 +70,7 @@ private: 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); - void setEmptyGengrid(bool setEmpty); + void setEmptyView(bool empty); static void _mostVisited_clicked(void * data, Evas_Object * obj, void * event_info); static void _bookmark_clicked(void * data, Evas_Object * obj, void * event_info); @@ -92,7 +92,7 @@ private: std::map m_map_bookmark_views; bool m_gengridSetup; std::string edjFilePath; - Evas_Object *createNoHistoryLabel(); + void showNoHistoryLabel(); static void focusItem(void* data, Evas_Object* obj, void* event_info); static void unFocusItem(void* data, Evas_Object* obj, void* event_info); diff --git a/services/MainUI/edc/MainUI.edc b/services/MainUI/edc/MainUI.edc index ba358bf..ea2929e 100644 --- a/services/MainUI/edc/MainUI.edc +++ b/services/MainUI/edc/MainUI.edc @@ -203,7 +203,7 @@ group { name: "mv_bookmarks"; } } - part { name: "most_visited"; + part { name: "center_rect"; type: RECT; description { state: "default" 0.0; min: 1592 614; @@ -219,6 +219,11 @@ group { name: "mv_bookmarks"; relative: 1 1; } } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 229 229 229 255; + } } part { name: "elm.swallow.left"; type: SWALLOW; @@ -228,7 +233,7 @@ group { name: "mv_bookmarks"; align: 0.0 0.0; fixed: 0 0; rel1 { - relative: 0 0; to: "most_visited"; + relative: 0 0; to: "center_rect"; } rel2 { relative: 1 1; @@ -244,12 +249,12 @@ group { name: "mv_bookmarks"; align: 0.0 0.0; fixed: 0 0; rel1 { - to: "most_visited"; + to: "center_rect"; relative: 0 0; offset: 810 0; } rel2{ - to: "most_visited"; + to: "center_rect"; relative: 1 1; offset: 0 0; } @@ -263,12 +268,12 @@ group { name: "mv_bookmarks"; align: 0.0 0.0; fixed: 0 0; rel1 { - to: "most_visited"; + to: "center_rect"; relative: 0 0; offset: 1214 0; } rel2 { - to: "most_visited"; + to: "center_rect"; relative: 1 1; offset: 0 0; } @@ -322,19 +327,51 @@ group { name: "mv_bookmarks"; offset: 0 0; } } - } - part { name: "elm.swallow.empty"; - type: SWALLOW; - description { state: "default" 0.0; + } + + part { name: "elm.text.empty"; + type: TEXT; + description { state: "default" 0.0; + visible: 0; align: 0.5 0.5; - rel1 { - relative: 0.5 0.5; - } - rel2 { - relative: 0.5 0.5; - } + color: 0 0 0 179; + text { + text: "empty"; + font: "Sans"; + size: 32; + align: 0.5 0.5; + } + rel1 { + to: "gengrid_bg"; + relative: 0.0 0.0; } + rel2 { + to: "gengrid_bg"; + relative: 1 1; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 1; } + } + } + + programs { + program { name: "empty"; + signal: "empty,view"; + source: "mainui"; + action: STATE_SET "empty" 0.0; + target: "elm.text.empty"; + target: "center_rect"; + } + program { name: "not_empty"; + signal: "not,empty,view"; + source: "mainui"; + action: STATE_SET "default" 0.0; + target: "elm.text.empty"; + target: "center_rect"; + } } } diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 4cf12a4..10e3bab 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -610,8 +610,10 @@ void SimpleUI::onHistoryClicked(std::shared_ptrclearAllHistory(); + BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); + m_historyService->clearAllHistory(); + m_mainUI->clearHistoryGenlist(); + m_mainUI->showHistoryGenlist(); } void SimpleUI::onMostVisitedClicked(const std::string&) @@ -1066,16 +1068,16 @@ void SimpleUI::hideMainUI() void SimpleUI::showMainUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); - m_mainUI = - std::dynamic_pointer_cast + m_mainUI = std::dynamic_pointer_cast (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.mainui")); - M_ASSERT(m_mainUI); - hideWebView(); - m_mainUI->show(m_window.get()); - m_mainUI->addHistoryItems(getHistory()); + M_ASSERT(m_mainUI); + hideWebView(); + m_mainUI->show(m_window.get()); + m_mainUI->addHistoryItems(getHistory()); + m_mainUI->showHistoryGenlist(); - m_isHomePageActive = true; + m_isHomePageActive = true; } void SimpleUI::showHistoryUI(const std::string& str) -- 2.7.4