From 1cbc6f275658dc84afe26a8c2fcd11d5b0904141 Mon Sep 17 00:00:00 2001 From: Oleksander Kostenko Date: Mon, 31 Oct 2016 10:26:27 +0200 Subject: [PATCH] TizenRefApp-7436 Delete button is not dimmed when no items selected Change-Id: I717b5b9495bbae93054bac064ef769b4765cd14e Signed-off-by: Oleksander Kostenko --- src/Common/Controller/src/SaveAttachments.cpp | 4 ++-- src/Common/Utils/inc/TextDecorator.h | 1 + src/Common/Utils/src/TextDecorator.cpp | 9 +++++++++ src/Common/View/src/NaviFrameItem.cpp | 27 +++++++++++++++++++-------- src/MsgThread/Controller/src/MsgThread.cpp | 2 +- src/Settings/Controller/src/MsgOnSimCard.cpp | 2 +- 6 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/Common/Controller/src/SaveAttachments.cpp b/src/Common/Controller/src/SaveAttachments.cpp index 1eb9f14..6614015 100644 --- a/src/Common/Controller/src/SaveAttachments.cpp +++ b/src/Common/Controller/src/SaveAttachments.cpp @@ -45,10 +45,10 @@ void SaveAttachments::create() createList(); NaviBar &naviBar = getNaviBar(); - naviBar.showButton(NaviOkButtonId, true); updateSelectItemsTitle(); - naviBar.disabledButton(NaviOkButtonId, true); + naviBar.showButton(NaviOkButtonId, true); naviBar.setButtonText(NaviOkButtonId, msgt("IDS_MSG_ACBUTTON_DONE_ABB")); + naviBar.disabledButton(NaviOkButtonId, true); naviBar.showButton(NaviCancelButtonId, true); } diff --git a/src/Common/Utils/inc/TextDecorator.h b/src/Common/Utils/inc/TextDecorator.h index 18b26f2..7bbceb7 100644 --- a/src/Common/Utils/inc/TextDecorator.h +++ b/src/Common/Utils/inc/TextDecorator.h @@ -68,6 +68,7 @@ namespace Msg int size = TextStyle::defaultFontSize, const std::string &color = TextStyle::defaultColor, TextAlign align = TextAlign::None); + static std::string makePlainText(const std::string &text); /** * @brief Search first keyword and highlight it diff --git a/src/Common/Utils/src/TextDecorator.cpp b/src/Common/Utils/src/TextDecorator.cpp index 874be63..a54ec87 100644 --- a/src/Common/Utils/src/TextDecorator.cpp +++ b/src/Common/Utils/src/TextDecorator.cpp @@ -19,6 +19,7 @@ #include #include #include +#include using namespace Msg; @@ -132,6 +133,14 @@ std::string TextDecorator::make(const std::string &text, return ss.str(); } +std::string TextDecorator::makePlainText(const std::string &text) +{ + std::regex tags("<[^<]*>"); + std::string plainText; + std::regex_replace(std::back_inserter(plainText), text.begin(), text.end(), tags, ""); + return plainText; +} + std::string TextDecorator::highlightKeyword(std::string str, const std::string &searchWord, bool *foundRes) { if(foundRes) diff --git a/src/Common/View/src/NaviFrameItem.cpp b/src/Common/View/src/NaviFrameItem.cpp index fd7639b..90a2360 100644 --- a/src/Common/View/src/NaviFrameItem.cpp +++ b/src/Common/View/src/NaviFrameItem.cpp @@ -41,8 +41,9 @@ namespace const char *cancelButtonDefTextId = "IDS_MSG_ACBUTTON_CANCEL_ABB"; const char *okButtonDefTextId = "IDS_MSG_ACBUTTON_DONE_ABB"; const char *buttonTypeKey = "BTkey"; - const char *textColorWhiteTitleButtons = "#2e8b99"; - const char *textColorBlueTitleButtons = "#fafafa"; + const char *textColorBlueDisableButtons = "#216959"; + const char *textColorBlueTitleButtons = "#2e8b99"; + const char *textColorWhiteTitleButtons = "#fafafa"; const int textSizeCenterButton = 50; const int textSizeLateralButton = 35; } @@ -202,6 +203,17 @@ void NaviFrameItem::NaviBar::showButton(NaviButtonId id, bool value) void NaviFrameItem::NaviBar::disabledButton(NaviButtonId id, bool value) { elm_object_disabled_set(m_ButtonList[id].button, value); + + if(m_CurrentColor == NaviBlueColorId) + return; + + TextStyle style; + value ? style.setColor(textColorBlueDisableButtons) : style.setColor(textColorBlueTitleButtons); + style.setSize(getTextSize(id)); + + const char *buttonText = elm_object_text_get(m_ButtonList[id].button); + if (buttonText != nullptr) + elm_object_text_set(m_ButtonList[id].button, TextDecorator::make(TextDecorator::makePlainText(buttonText), style).c_str()); } void NaviFrameItem::NaviBar::showCancelButtonPart(bool value) @@ -288,16 +300,17 @@ void NaviFrameItem::NaviBar::setColor(NaviColorId id) void NaviFrameItem::NaviBar::setButtonText(NaviButtonId id, const std::string &text) { + // Note that, button's color is opposite to title's color TextStyle style; switch(m_CurrentColor) { case NaviBlueColorId: - style.setColor(textColorBlueTitleButtons); + style.setColor(textColorWhiteTitleButtons); break; case NaviWhiteColorId: - style.setColor(textColorWhiteTitleButtons); + style.setColor(textColorBlueTitleButtons); break; default: @@ -310,8 +323,6 @@ void NaviFrameItem::NaviBar::setButtonText(NaviButtonId id, const std::string &t void NaviFrameItem::NaviBar::setButtonText(NaviButtonId id, const TText &text) { setText(m_ButtonList[id].button, text); - //TODO: implement text color in edc - setButtonColor(id, m_CurrentColor); } void NaviFrameItem::NaviBar::setButtonColor(NaviButtonId id, NaviColorId titleColor) @@ -340,11 +351,11 @@ void NaviFrameItem::NaviBar::setButtonColor(NaviButtonId id, NaviColorId titleCo switch(titleColor) { case NaviBlueColorId: - style.setColor(textColorBlueTitleButtons); + style.setColor(textColorWhiteTitleButtons); break; case NaviWhiteColorId: - style.setColor(textColorWhiteTitleButtons); + style.setColor(textColorBlueTitleButtons); break; default: diff --git a/src/MsgThread/Controller/src/MsgThread.cpp b/src/MsgThread/Controller/src/MsgThread.cpp index 114ad2b..d41d0bd 100644 --- a/src/MsgThread/Controller/src/MsgThread.cpp +++ b/src/MsgThread/Controller/src/MsgThread.cpp @@ -210,8 +210,8 @@ void MsgThread::setDeleteMode(bool value) { m_pLayout->showFloatingButton(false); updateSelectItemsTitle(); - naviBar.disabledButton(NaviOkButtonId, value); naviBar.setButtonText(NaviOkButtonId, msgt("IDS_MSG_ACBUTTON_DELETE_ABB")); + naviBar.disabledButton(NaviOkButtonId, value); } naviBar.showButton(NaviCancelButtonId, value); m_pThreadList->setDeleteMode(value); diff --git a/src/Settings/Controller/src/MsgOnSimCard.cpp b/src/Settings/Controller/src/MsgOnSimCard.cpp index f7d63d6..0e4c99a 100644 --- a/src/Settings/Controller/src/MsgOnSimCard.cpp +++ b/src/Settings/Controller/src/MsgOnSimCard.cpp @@ -277,12 +277,12 @@ void MsgOnSimCard::setTitleWithButtons(bool value) getNaviBar().showButton(NaviOkButtonId, value); if(value) { - getNaviBar().disabledButton(NaviOkButtonId, true); if (m_SimMode == DeleteMode) getNaviBar().setButtonText(NaviOkButtonId, msgt("IDS_MSG_ACBUTTON_DELETE_ABB")); else getNaviBar().setButtonText(NaviOkButtonId, msgt("IDS_MSG_ACBUTTON_DONE_ABB")); } + getNaviBar().disabledButton(NaviOkButtonId, true); getNaviBar().showButton(NaviCancelButtonId, value); getNaviBar().showButton(NaviPrevButtonId, !value); -- 2.7.4