*/
virtual void clearFormData() = 0;
+ /**
+ * @brief Disconnect signals from current webview.
+ */
virtual void disconnectCurrentWebViewSignals() = 0;
+ /**
+ * @brief Connect signals to current web view.
+ */
+ virtual void connectCurrentWebViewSignals() = 0;
+
/**
* @brief Search string on searchOnWebsite
*
{
namespace tools
{
- static const int SUFIX_CHAR_DEL = 1;
+ static const int SUFFIX_CHAR_DEL = 1;
static const char * PROTCOL_BEGIN = "://";
static const char END_SLASH = '/';
// which protocol, when only domain is available?
static std::string fromChar(const char* c) { return c ? std::string(c) : std::string(); }
static std::string clearURL(const std::string & url) {
+ int suffix = 0;
+ if (url.back() == END_SLASH)
+ suffix = SUFFIX_CHAR_DEL;
size_t beg = url.find(PROTCOL_BEGIN);
beg += strlen(PROTCOL_BEGIN);
- return url.substr(beg, url.size() - beg - SUFIX_CHAR_DEL);
+ return url.substr(beg, url.size() - beg - suffix);
}
static std::string extractDomain(const std::string & url) {
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if(m_webEngine->isSuspended())
m_webEngine->resume();
- m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), m_webEngine->getURI());
+ m_webEngine->connectCurrentWebViewSignals();
+ m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), m_webEngine->getURI(), m_webEngine->isLoading());
m_webPageUI->toIncognito(m_webEngine->isPrivateMode(m_webEngine->currentTabId()));
}
if (tabsCount() == 0 || m_webPageUI->stateEquals(WPUState::QUICK_ACCESS))
openNewTab(url, title, boost::none, desktopMode, false, basic_webengine::TabOrigin::QUICKACCESS);
else {
- m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), title);
+ m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), url, false);
m_webEngine->setURI(url);
m_webPageUI->getURIEntry().clearFocus();
}
openNewTab(bookmarkAddress);
else {
std::string bookmarkTitle = bookmarkItem->getTitle();
- m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), bookmarkAddress);
m_webEngine->setURI(bookmarkAddress);
+ m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), bookmarkAddress, m_webEngine->isLoading());
m_webPageUI->getURIEntry().clearFocus();
closeBookmarkManagerUI();
}
disconnectSignals(m_currentWebView);
}
+void WebEngineService::connectCurrentWebViewSignals()
+{
+ if (m_currentWebView)
+ connectSignals(m_currentWebView);
+ else
+ BROWSER_LOGD("[%s:%d:%s] ", __PRETTY_FUNCTION__, __LINE__,"m_currentWebView is null");
+}
+
int WebEngineService::createTabId()
{
m_tabIdCreated = -1;
void disconnectSignals(WebViewPtr);
void disconnectCurrentWebViewSignals();
+ void connectCurrentWebViewSignals();
/**
* connect signals of specified WebView
#include "SettingsPrettySignalConnector.h"
#include "Tools/URIschemes.h"
#include "Tools/SettingsEnums.h"
+#include "GeneralTools.h"
namespace tizen_browser {
namespace base_ui {
, m_statesMgr(statesMgr)
, m_rightIconType(RightIconType::NONE)
, m_rightIcon(nullptr)
+ , m_leftIcon(nullptr)
{}
URIEntry::~URIEntry()
elm_entry_single_line_set(m_entry, EINA_TRUE);
elm_entry_scrollable_set(m_entry, EINA_TRUE);
elm_entry_input_panel_layout_set(m_entry, ELM_INPUT_PANEL_LAYOUT_URL);
- elm_object_signal_callback_add(m_entry_layout, "left,icon,clicked", "ui", _uri_left_icon_clicked, this);
m_rightIcon = elm_button_add(m_entry_layout);
elm_object_style_set(m_rightIcon, "custom");
evas_object_show(m_rightIcon);
elm_object_part_content_set(m_entry_layout, "right_icon", m_rightIcon);
+ m_leftIcon = elm_button_add(m_entry_layout);
+ elm_object_style_set(m_leftIcon, "custom");
+ elm_object_focus_allow_set(m_leftIcon, EINA_FALSE);
+ evas_object_smart_callback_add(m_leftIcon, "clicked", _uri_left_icon_clicked, this);
+ evas_object_show(m_leftIcon);
+ elm_object_part_content_set(m_entry_layout, "left_icon", m_leftIcon);
+
setUrlGuideText(GUIDE_TEXT_UNFOCUSED);
evas_object_smart_callback_add(m_entry, "activated", URIEntry::activated, this);
m_URI = newUri;
if (elm_object_focus_get(m_entry) == EINA_FALSE) {
if (!m_URI.empty()) {
- elm_entry_entry_set(m_entry, elm_entry_utf8_to_markup(m_URI.c_str()));
- m_rightIconType = RightIconType::NONE;
+ elm_entry_entry_set(m_entry, elm_entry_utf8_to_markup(tools::clearURL(m_URI).c_str()));
+ if (!m_isPageLoading)
+ showReloadIcon();
+ else
+ showStopIcon();
} else {
elm_entry_entry_set(m_entry, elm_entry_utf8_to_markup(""));
hideRightIcon();
if (!self->m_entryContextMenuOpen) {
self->m_entrySelectionState = SelectionState::SELECTION_NONE;
self->mobileEntryUnfocused();
- if (!self->m_statesMgr->equals(WPUState::QUICK_ACCESS) && !self->m_statesMgr->equals(WPUState::MAIN_INCOGNITO_PAGE)) {
- if (self->m_isPageLoading)
- self->showStopIcon();
- else
- self->showReloadIcon();
- } else {
- self->hideRightIcon();
- }
}
self->m_first_click = true;
elm_entry_select_none(self->m_entry);
- self->showSecureIcon(self->m_showSecureIcon, self->m_securePageIcon);
-
- elm_entry_entry_set(self->m_entry, elm_entry_utf8_to_markup(self->m_URI.c_str()));
+ self->changeUri(self->m_URI);
}
void URIEntry::focused(void* data, Evas_Object* /* obj */, void* /* event_info */)
self->m_entryContextMenuOpen = false;
}
if(self->m_first_click) {
+ elm_entry_entry_set(self->m_entry, elm_entry_utf8_to_markup(self->m_URI.c_str()));
elm_entry_select_all(self->m_entry);
self->m_first_click = false;
self->m_entrySelectionState = SelectionState::SELECTION_NONE;
}
-void URIEntry::_uri_left_icon_clicked(void* data, Evas_Object*, const char*, const char*)
+void URIEntry::_uri_left_icon_clicked(void* data, Evas_Object*, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
auto self = static_cast<URIEntry*>(data);
{
BROWSER_LOGD("[%s:%d] [ show : %d, secure : %d] ", __PRETTY_FUNCTION__, __LINE__, show, secure);
- m_securePageIcon = secure;
- m_showSecureIcon = show;
if (show) {
+ auto ic = elm_icon_add(m_leftIcon);
if (secure)
- elm_object_signal_emit(m_entry_layout, "show,secure,icon", "");
+ elm_image_file_set(ic, m_customEdjPath.c_str(), "toolbar_input_ic_security.png");
else
- elm_object_signal_emit(m_entry_layout, "show,unsecure,icon", "");
+ elm_image_file_set(ic, m_customEdjPath.c_str(), "toolbar_input_ic_security_off.png");
+ elm_object_part_content_set(m_leftIcon, "elm.swallow.content", ic);
+ elm_object_signal_emit(m_entry_layout, "show,left,icon", "ui");
} else {
hideLeftIcon();
}
void setCurrentFavIcon();
void setSearchIcon();
void setDocIcon();
+ void setPageLoading(bool isLoading) { m_isPageLoading = isLoading; }
+
/**
* \brief Adds Action to URI bar.
*
STOP_LOADING
};
- static void _uri_left_icon_clicked(void* data, Evas_Object*, const char*, const char*);
+ static void _uri_left_icon_clicked(void* data, Evas_Object* obj, void* event_info);
static void _uri_right_icon_clicked(void* data, Evas_Object* obj, void* event_info);
void showRightIcon(const std::string& fileName);
void showCancelIcon();
WPUStatesManagerPtrConst m_statesMgr;
RightIconType m_rightIconType;
Evas_Object* m_rightIcon;
- bool m_securePageIcon;
- bool m_showSecureIcon;
+ Evas_Object* m_leftIcon;
};
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
M_ASSERT(m_mainLayout);
- elm_object_focus_custom_chain_unset(m_mainLayout);
+ m_URIEntry->loadFinished();
evas_object_hide(m_mainLayout);
if(m_statesMgr->equals(WPUState::QUICK_ACCESS))
m_URIEntry->changeUri("");
}
-void WebPageUI::switchViewToWebPage(Evas_Object* content, const std::string uri)
+void WebPageUI::switchViewToWebPage(Evas_Object* content, const std::string uri, bool loading)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if(m_statesMgr->equals(WPUState::QUICK_ACCESS))
}
setMainContent(content);
elm_object_signal_emit(m_mainLayout, "shiftright_uri", "ui");
- updateURIBar(uri);
+ updateURIBar(uri, loading);
}
void WebPageUI::switchViewToQuickAccess(Evas_Object* content)
m_forward->setEnabled(false);
}
-void WebPageUI::updateURIBar(const std::string& uri)
+void WebPageUI::updateURIBar(const std::string& uri, bool loading)
{
BROWSER_LOGD("[%s:%d] URI:%s", __PRETTY_FUNCTION__, __LINE__, uri.c_str());
+ m_URIEntry->setPageLoading(loading);
m_URIEntry->changeUri(uri);
hideProgressBar();
}
bool isWebPageUIvisible() { return m_WebPageUIvisible; }
void toIncognito(bool);
void switchViewToErrorPage();
- void switchViewToWebPage(Evas_Object* content, const std::string uri);
+ void switchViewToWebPage(Evas_Object* content, const std::string uri, bool loading);
void switchViewToIncognitoPage();
void switchViewToQuickAccess(Evas_Object* content);
URIEntry& getURIEntry() const { return *m_URIEntry.get(); }
void setErrorButtons();
void setPrivateButtons();
void setMainContent(Evas_Object* content);
- void updateURIBar(const std::string& uri);
+ void updateURIBar(const std::string& uri, bool loading);
std::string edjePath(const std::string& file);
#if GESTURE
void gestureUp();
IMAGE_BUTTON("toolbar_input_ic_cancel.png", BUTTON_ICON_DEFAULT_HEIGHT_INC, BUTTON_ICON_DEFAULT_WIDTH_INC, "toolbar_input_ic_cancel.png")
IMAGE_BUTTON("toolbar_input_ic_refresh.png", BUTTON_ICON_DEFAULT_HEIGHT_INC, BUTTON_ICON_DEFAULT_WIDTH_INC, "toolbar_input_ic_refresh.png")
+IMAGE_BUTTON("toolbar_input_ic_security.png", BUTTON_ICON_DEFAULT_HEIGHT_INC, BUTTON_ICON_DEFAULT_WIDTH_INC, "toolbar_input_ic_security.png")
+IMAGE_BUTTON("toolbar_input_ic_security_off.png", BUTTON_ICON_DEFAULT_HEIGHT_INC, BUTTON_ICON_DEFAULT_WIDTH_INC, "toolbar_input_ic_security_off.png")
group { name: "elm/button/base/custom";
data.item: "vector_ux" "default";
#define URI_INPUTBOX_HEIGHT 80
#define BORDER_WIDTH 5
-#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
- group { \
- name: FILE_NAME; \
- images.image: FILE_NAME LOSSY 100; \
- parts { \
- part { name: "image"; \
- description { \
- state: "default" 0.0; \
- image.normal: FILE_NAME; \
- aspect: 1 1; \
- aspect_preference: BOTH; \
- color: 105 105 105 255; \
- } \
- } \
- } \
- }
-
collections { base_scale: 2.6;
-RESOURCE_IMAGE_LOSSY("toolbar_input_ic_security.png")
-RESOURCE_IMAGE_LOSSY("toolbar_input_ic_security_off.png")
-
group {
name: "elm/entry/selection/browser_entry";
parts {
}
part {
name: "left_icon";
- type: IMAGE;
+ type: SWALLOW;
scale: 1;
description {
state: "default" 0.0;
description {
state: "visible" 0.0;
inherit: "default" 0.0;
- min: 50 50;
- max: 50 50;
+ min: 80 80;
+ max: 80 80;
visible: 1;
}
- description {
- state: "secure" 0.0;
- inherit: "visible" 0.0;
- image.normal: "toolbar_input_ic_security.png";
- }
- description {
- state: "unsecure" 0.0;
- inherit: "visible" 0.0;
- image.normal: "toolbar_input_ic_security_off.png";
- }
- }
- rect {
- name: "left_icon_over";
- scale: 1;
- mouse_events: 1;
- description {
- state: "default" 0.0;
- rel1.to: "left_icon_bg";
- rel1.relative: 0.0 0.0;
- rel2.to: "left_icon_bg";
- rel2.relative: 1.0 1.0;
- align: 0 0;
- color: 0 0 0 0;
- }
}
part {
name: "over";
}
programs {
program {
- name: "show_secure_icon";
- signal: "show,secure,icon";
- source: "";
- action: STATE_SET "secure" 0.0;
- target: "left_icon";
- after: "show_left_icon_bg";
- }
- program {
- name: "show_unsecure_icon";
- signal: "show,unsecure,icon";
- source: "";
- action: STATE_SET "unsecure" 0.0;
+ name: "show_left_icon";
+ source: "ui";
+ signal: "show,left,icon";
+ action: STATE_SET "visible" 0.0;
target: "left_icon";
after: "show_left_icon_bg";
}
- program {
- name: "mouse_clicked_left_icon";
- signal: "mouse,clicked,*";
- source: "left_icon_over";
- action: SIGNAL_EMIT "left,icon,clicked" "ui";
- }
program {
name: "hide_left_icon";
source: "ui";