//Add folder picker
elm_genlist_item_append(m_genlist, m_folder_item_class, folderData, nullptr, ELM_GENLIST_ITEM_NONE,
- _folder_selector_clicked, folderData);
+ _folder_selector_clicked, this);
//Add QuickAccess checkbox
elm_genlist_item_append(m_genlist, m_add_to_qa_item_class, this, nullptr, ELM_GENLIST_ITEM_NONE,
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (data) {
- //BookmarkFlowUI* bookmarkFlowUI = static_cast<BookmarkFlowUI*>(data);
- //TODO: Add location selector functionality
+ BookmarkFlowUI* bookmarkFlowUI = static_cast<BookmarkFlowUI*>(data);
+ bookmarkFlowUI->showSelectFolderUI(bookmarkFlowUI->m_bookmarkItem);
} else
BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
}
boost::signals2::signal<void ()> closeBookmarkFlowClicked;
boost::signals2::signal<void (BookmarkUpdate)> saveBookmark;
boost::signals2::signal<void (BookmarkUpdate)> editBookmark;
+ boost::signals2::signal<void (services::SharedBookmarkItem)> showSelectFolderUI;
private:
struct FolderData {
, b_mm_layout(nullptr)
, m_content(nullptr)
, m_cancel_button(nullptr)
- , m_delete_button(nullptr)
+ , m_accept_button(nullptr)
, m_prev_button(nullptr)
, m_modulesToolbar(nullptr)
, m_navigatorToolbar(nullptr)
M_ASSERT(m_parent);
if (!b_mm_layout)
b_mm_layout = createBookmarksLayout(m_parent);
- changeState(BookmarkManagerState::Default);
+ changeState(m_state);
return b_mm_layout;
}
evas_object_size_hint_weight_set(m_cancel_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(m_cancel_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
- m_delete_button = elm_button_add(b_mm_layout);
- elm_object_part_content_set(b_mm_layout, "title_right_btn", m_delete_button);
- elm_object_style_set(m_delete_button, "naviframe/title_right");
- elm_object_text_set(m_delete_button, _("IDS_TPLATFORM_ACBUTTON_DELETE_ABB"));
- evas_object_smart_callback_add(m_delete_button, "clicked", _delete_clicked, this);
- evas_object_size_hint_weight_set(m_delete_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(m_delete_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ m_accept_button = elm_button_add(b_mm_layout);
+ elm_object_part_content_set(b_mm_layout, "title_right_btn", m_accept_button);
+ elm_object_style_set(m_accept_button, "naviframe/title_right");
+ evas_object_smart_callback_add(m_accept_button, "clicked", _accept_clicked, this);
+ evas_object_size_hint_weight_set(m_accept_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(m_accept_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
m_prev_button = elm_button_add(b_mm_layout);
elm_object_part_content_set(b_mm_layout, "elm.swallow.prev_btn", m_prev_button);
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (data) {
BookmarkManagerUI* bookmarkManagerUI = static_cast<BookmarkManagerUI*>(data);
- bookmarkManagerUI->updateGenlistItems();
- bookmarkManagerUI->changeState(BookmarkManagerState::Default);
+ bookmarkManagerUI->onBackPressed();
} else
BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
}
-void BookmarkManagerUI::_delete_clicked(void* data, Evas_Object*, void*)
+void BookmarkManagerUI::_accept_clicked(void* data, Evas_Object*, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (data) {
BookmarkManagerUI* bookmarkManagerUI = static_cast<BookmarkManagerUI*>(data);
- for (auto it = bookmarkManagerUI->m_map_delete.begin(); it != bookmarkManagerUI->m_map_delete.end(); ++it)
- if (it->second) {
- BookmarkData *bookmarkData = static_cast<BookmarkData*>(elm_object_item_data_get(bookmarkManagerUI->m_map_bookmark[it->first]));
- bookmarkManagerUI->bookmarkItemDeleted(bookmarkData->bookmarkItem);
- elm_object_item_del(bookmarkManagerUI->m_map_bookmark[it->first]);
- bookmarkManagerUI->m_map_bookmark.erase(it->first);
- }
- bookmarkManagerUI->changeState(BookmarkManagerState::Default);
+ switch (bookmarkManagerUI->m_state) {
+ case BookmarkManagerState::Delete:
+ for (auto it = bookmarkManagerUI->m_map_delete.begin(); it != bookmarkManagerUI->m_map_delete.end(); ++it)
+ if (it->second) {
+ BookmarkData *bookmarkData = static_cast<BookmarkData*>(elm_object_item_data_get(bookmarkManagerUI->m_map_bookmark[it->first]));
+ bookmarkManagerUI->bookmarkItemDeleted(bookmarkData->bookmarkItem);
+ elm_object_item_del(bookmarkManagerUI->m_map_bookmark[it->first]);
+ bookmarkManagerUI->m_map_bookmark.erase(it->first);
+ }
+ break;
+ case BookmarkManagerState::SelectFolder:
+ bookmarkManagerUI->folderSelected(bookmarkManagerUI->m_folder_path.back());
+ break;
+ default:
+ break;
+ }
+ bookmarkManagerUI->onBackPressed();
} else
BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
}
BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
}
-void BookmarkManagerUI::addBookmarkItems(std::shared_ptr<services::BookmarkItem> parent, std::vector<std::shared_ptr<services::BookmarkItem> > items)
+void BookmarkManagerUI::addBookmarkItems(std::shared_ptr<services::BookmarkItem> parent,
+ std::vector<std::shared_ptr<services::BookmarkItem> > items)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if (parent && (m_folder_path.empty() || m_folder_path.back() != parent)) {
+
+ if (parent && (m_folder_path.empty() || m_folder_path.back()->getId() != parent->getId())) {
if (parent->getParent() == -1) {
int count = elm_toolbar_items_count(m_navigatorToolbar);
for (int i = 0; i < count; ++i)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
switch (m_state) {
- case BookmarkManagerState::Default:
- //TODO: We should go to the previous navigatorToolbar element if it exists.
- closeBookmarkManagerClicked();
- break;
- default:
- changeState(BookmarkManagerState::Default);
- break;
+ case BookmarkManagerState::SelectFolder:
+ closeBookmarkManagerClicked();
+ changeState(BookmarkManagerState::Default);
+ break;
+ case BookmarkManagerState::Default:
+ //TODO: We should go to the previous navigatorToolbar element if it exists.
+ closeBookmarkManagerClicked();
+ break;
+ default:
+ changeState(BookmarkManagerState::Default);
+ break;
}
}
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
boost::optional<Evas_Object*> window = getWindow();
if (window) {
- if (m_state == BookmarkManagerState::Default) {
+ if (m_state == BookmarkManagerState::Default ||
+ m_state == BookmarkManagerState::SelectFolder) {
createContextMenu(*window);
- if (elm_genlist_items_count(m_genlist)) {
+ if (m_state == BookmarkManagerState::Default && elm_genlist_items_count(m_genlist)) {
elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_SK_DELETE"), nullptr,
_cm_delete_clicked, this);
elm_ctxpopup_item_append(m_ctxpopup, _("IDS_BR_OPT_SHARE"), nullptr,
case BookmarkManagerState::Default:
bookmarkData->bookmarkManagerUI->bookmarkItemClicked(bookmarkData->bookmarkItem);
break;
+ case BookmarkManagerState::SelectFolder:
+ bookmarkData->bookmarkManagerUI->bookmarkItemClicked(bookmarkData->bookmarkItem);
+ break;
case BookmarkManagerState::Edit:
bookmarkData->bookmarkManagerUI->bookmarkItemEdit(bookmarkData->bookmarkItem);
bookmarkData->bookmarkManagerUI->changeState(BookmarkManagerState::Default);
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
m_state = state;
switch (state) {
+ case BookmarkManagerState::SelectFolder:
+ elm_genlist_realized_items_update(m_genlist);
+ elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,hide", "elm");
+ elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,show", "elm");
+ elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,show", "elm");
+ elm_object_text_set(m_accept_button, _("IDS_TPLATFORM_ACBUTTON_DONE_ABB"));
+ elm_object_signal_emit(m_content, "show_toolbars", "ui");
+ evas_object_show(m_navigatorToolbar);
+ elm_object_signal_emit(m_content, "hide_modules_toolbar", "ui");
+ evas_object_hide(m_modulesToolbar);
+ break;
case BookmarkManagerState::Edit:
m_reordered = false;
elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,hide", "elm");
elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,hide", "elm");
elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,show", "elm");
elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,show", "elm");
+ elm_object_text_set(m_accept_button, _("IDS_TPLATFORM_ACBUTTON_DELETE_ABB"));
updateDeleteTopContent();
elm_object_signal_emit(m_content, "hide_toolbars", "ui");
evas_object_hide(m_modulesToolbar);
elm_genlist_realized_items_update(m_genlist);
}
-void BookmarkManagerUI::updateGenlistItems()
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- for (auto it = m_map_delete.begin(); it != m_map_delete.end(); ++it)
- if (it->second) {
- it->second = false;
- elm_genlist_item_update(m_map_bookmark[it->first]);
- }
-}
-
void BookmarkManagerUI::reoderBookmarkItems()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (m_delete_count) {
elm_object_part_text_set(b_mm_layout, "elm.text.title",
(boost::format(_("IDS_BR_HEADER_PD_SELECTED_ABB")) % m_delete_count).str().c_str());
- elm_object_signal_emit(m_delete_button, "elm,state,enabled", "elm");
+ elm_object_signal_emit(m_accept_button, "elm,state,enabled", "elm");
} else {
elm_object_part_text_set(b_mm_layout, "elm.text.title", "Select Items");
//TODO: Add translation
- elm_object_signal_emit(m_delete_button, "elm,state,disabled", "elm");
+ elm_object_signal_emit(m_accept_button, "elm,state,disabled", "elm");
}
}
enum class BookmarkManagerState {
Default,
+ SelectFolder,
Edit,
Delete,
Reorder
void orientationChanged() {};
void onBackPressed();
+ void setState(BookmarkManagerState state) { m_state = state; }
//AbstractContextMenu interface implementation
virtual void showContextMenu() override;
boost::signals2::signal<void ()> showHistory;
boost::signals2::signal<void ()> closeBookmarkManagerClicked;
+ boost::signals2::signal<void (services::SharedBookmarkItem)> folderSelected;
boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::BookmarkItem>)> bookmarkItemClicked;
boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::BookmarkItem>)> bookmarkItemEdit;
boost::signals2::signal<void (std::shared_ptr<tizen_browser::services::BookmarkItem>)> bookmarkItemOrderEdited;
void addBookmarkItem(BookmarkData* item);
void changeState(BookmarkManagerState state);
- void updateGenlistItems();
void reoderBookmarkItems();
void updateNoBookmarkText();
void updateDeleteClick(int id);
static void _modules_history_clicked(void* data, Evas_Object* obj, void* event_info);
static void _bookmarkItemClicked(void* data, Evas_Object*, void*);
static void _cancel_clicked(void *data, Evas_Object *, void *);
- static void _delete_clicked(void *data, Evas_Object *, void *);
+ static void _accept_clicked(void *data, Evas_Object *, void *);
static void _prev_clicked(void *data, Evas_Object *, void *);
static void _check_state_changed(void *data, Evas_Object *, void *);
static void _genlist_bookmark_moved(void *data, Evas_Object *, void *);
Evas_Object *b_mm_layout;
Evas_Object *m_content;
Evas_Object *m_cancel_button;
- Evas_Object *m_delete_button;
+ Evas_Object *m_accept_button;
Evas_Object *m_prev_button;
Evas_Object *m_modulesToolbar;
Evas_Object *m_navigatorToolbar;
inherit: "default";
visible: 0;
}
+ description {
+ state: "hidden_modules_toolbar" 0.0;
+ inherit: "hidden_toolbar";
+ }
}
part {
name: "navigator_toolbar";
}
rel2.relative: 1.0 1.0;
}
+ description {
+ state: "hidden_modules_toolbar" 0.0;
+ inherit: "default";
+ rel1 {
+ relative: 0.0 0.0;
+ to: "bg";
+ }
+ }
description {
state: "hidden_toolbar" 0.0;
inherit: "default";
action: STATE_SET "default" 0.0;
target: "elm.swallow.content_overlay";
}
+ program {
+ name: "hide_modules_toolbar";
+ signal: "hide_modules_toolbar";
+ source: "ui";
+ action: STATE_SET "hidden_modules_toolbar" 0.0;
+ target: "modules_toolbar";
+ target: "navigator_toolbar";
+ }
program {
name: "hide_toolbars";
signal: "hide_toolbars";
m_webPageUI->backPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
m_webPageUI->backPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine<Evas_Object>::back, m_webEngine.get()));
m_webPageUI->showTabUI.connect(boost::bind(&SimpleUI::showTabUI, this));
- m_webPageUI->showBookmarksUI.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,m_favoriteService->getRoot()));
+ m_webPageUI->showBookmarksUI.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,
+ m_favoriteService->getRoot(), BookmarkManagerState::Default));
m_webPageUI->forwardPage.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine<Evas_Object>::forward, m_webEngine.get()));
m_webPageUI->showQuickAccess.connect(boost::bind(&SimpleUI::showQuickAccess, this));
m_webPageUI->hideQuickAccess.connect(boost::bind(&QuickAccess::hideUI, m_quickAccess));
m_webPageUI->focusWebView.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine<Evas_Object>::setFocus, m_webEngine.get()));
m_webPageUI->unfocusWebView.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine<Evas_Object>::clearFocus, m_webEngine.get()));
- m_webPageUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this, m_favoriteService->getRoot()));
+ m_webPageUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,
+ m_favoriteService->getRoot(), BookmarkManagerState::Default));
m_webPageUI->getWindow.connect(boost::bind(&SimpleUI::getMainWindow, this));
m_webPageUI->isBookmark.connect(boost::bind(&SimpleUI::checkBookmark, this));
m_webPageUI->deleteBookmark.connect(boost::bind(&SimpleUI::deleteBookmark, this));
m_quickAccess->mostVisitedTileClicked.connect(boost::bind(&SimpleUI::onMostVisitedTileClicked, this, _1, _2));
m_quickAccess->getMostVisitedItems.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this));
m_quickAccess->getBookmarksItems.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this));
- m_quickAccess->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this, m_favoriteService->getRoot()));
+ m_quickAccess->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,
+ m_favoriteService->getRoot(), BookmarkManagerState::Default));
m_quickAccess->switchViewToWebPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
#if PROFILE_MOBILE
m_quickAccess->isLandscape.connect(boost::bind(&SimpleUI::isLandscape, this));
m_bookmarkFlowUI->closeBookmarkFlowClicked.connect(boost::bind(&SimpleUI::closeBookmarkFlowUI, this));
m_bookmarkFlowUI->saveBookmark.connect(boost::bind(&SimpleUI::addBookmark, this, _1));
m_bookmarkFlowUI->editBookmark.connect(boost::bind(&SimpleUI::editBookmark, this, _1));
+ m_bookmarkFlowUI->showSelectFolderUI.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this,
+ _1, BookmarkManagerState::SelectFolder));
M_ASSERT(m_findOnPageUI.get());
m_findOnPageUI->closeFindOnPageUIClicked.connect(boost::bind(&SimpleUI::closeFindOnPageUI, this));
M_ASSERT(m_bookmarkManagerUI.get());
m_bookmarkManagerUI->showHistory.connect(boost::bind(&SimpleUI::showHistoryUI, this));
m_bookmarkManagerUI->closeBookmarkManagerClicked.connect(boost::bind(&SimpleUI::closeBookmarkManagerUI, this));
+ m_bookmarkManagerUI->folderSelected.connect(boost::bind(&BookmarkFlowUI::setFolder, m_bookmarkFlowUI.get(), _1));
m_bookmarkManagerUI->getWindow.connect(boost::bind(&SimpleUI::getMainWindow, this));
m_bookmarkManagerUI->bookmarkItemClicked.connect(boost::bind(&SimpleUI::onBookmarkClicked, this, _1));
m_bookmarkManagerUI->bookmarkItemEdit.connect(boost::bind(&SimpleUI::onBookmarkEdit, this, _1));
m_bookmarkManagerUI->bookmarkItemOrderEdited.connect(boost::bind(&SimpleUI::onBookmarkOrderEdited, this, _1));
m_bookmarkManagerUI->bookmarkItemDeleted.connect(boost::bind(&SimpleUI::onBookmarkDeleted, this, _1));
-#if PROFILE_MOBILE
m_bookmarkManagerUI->newFolderItemClicked.connect(boost::bind(&SimpleUI::onNewFolderClicked, this, _1));
m_bookmarkManagerUI->isLandscape.connect(boost::bind(&SimpleUI::isLandscape, this));
+#if PROFILE_MOBILE
m_quickAccess->addQuickAccessClicked.connect(boost::bind(&SimpleUI::onNewQuickAccessClicked, this));
#else
M_ASSERT(m_zoomUI.get());
m_viewManager.popTheStack();
}
-void SimpleUI::showBookmarkManagerUI(std::shared_ptr<services::BookmarkItem> parent)
+void SimpleUI::showBookmarkManagerUI(std::shared_ptr<services::BookmarkItem> parent,
+ BookmarkManagerState state)
{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
+ m_bookmarkManagerUI->setState(state);
m_viewManager.pushViewToStack(m_bookmarkManagerUI.get());
- m_bookmarkManagerUI->addBookmarkItems(parent, m_favoriteService->getAllBookmarkItems());
- m_bookmarkManagerUI->showUI();
+ m_bookmarkManagerUI->addBookmarkItems(parent,
+ m_favoriteService->getAllBookmarkItems(parent->getId()));
}
void SimpleUI::redirectedWebPage(const std::string& oldUrl, const std::string& newUrl)
std::string requestSettingsCurrentPage();
void showBookmarkFlowUI();
+ void closeBookmarkFlowUI();
void showFindOnPageUI(const std::string& str);
#if PROFILE_MOBILE
void showCertificatePopup();
void showCertificatePopup(const std::string& host, const std::string& pem, services::CertificateContents::HOST_TYPE type);
void showUnsecureConnectionPopup();
- void closeBookmarkFlowUI();
void findWord(const struct FindData& fdata);
void closeFindOnPageUI();
#endif
Evas_Object* getMainWindow();
void closeBookmarkManagerUI();
- void showBookmarkManagerUI(std::shared_ptr<services::BookmarkItem> parent);
+ void showBookmarkManagerUI(std::shared_ptr<services::BookmarkItem> parent,
+ BookmarkManagerState state);
void redirectedWebPage(const std::string& oldUrl, const std::string& newUrl);
void showPopup(interfaces::AbstractPopup* popup);
std::shared_ptr<interfaces::AbstractFavoriteService> m_favoriteService;
std::shared_ptr<services::HistoryService> m_historyService;
services::TabServicePtr m_tabService;
-#if PROFILE_MOBILE
+
std::shared_ptr<BookmarkFlowUI> m_bookmarkFlowUI;
+#if PROFILE_MOBILE
std::shared_ptr<FindOnPageUI> m_findOnPageUI;
#else
std::shared_ptr<tizen_browser::base_ui::ZoomUI> m_zoomUI;