TizenRefApp-7436 Delete button is not dimmed when no items selected 15/94515/3
authorOleksander Kostenko <o.kostenko@samsung.com>
Mon, 31 Oct 2016 08:26:27 +0000 (10:26 +0200)
committerOleksander Kostenko <o.kostenko@samsung.com>
Mon, 31 Oct 2016 09:48:26 +0000 (11:48 +0200)
Change-Id: I717b5b9495bbae93054bac064ef769b4765cd14e
Signed-off-by: Oleksander Kostenko <o.kostenko@samsung.com>
src/Common/Controller/src/SaveAttachments.cpp
src/Common/Utils/inc/TextDecorator.h
src/Common/Utils/src/TextDecorator.cpp
src/Common/View/src/NaviFrameItem.cpp
src/MsgThread/Controller/src/MsgThread.cpp
src/Settings/Controller/src/MsgOnSimCard.cpp

index 1eb9f14..6614015 100644 (file)
@@ -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);
 }
 
index 18b26f2..7bbceb7 100644 (file)
@@ -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
index 874be63..a54ec87 100644 (file)
@@ -19,6 +19,7 @@
 #include <sstream>
 #include <assert.h>
 #include <string.h>
+#include <regex>
 
 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)
index fd7639b..90a2360 100644 (file)
@@ -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:
index 114ad2b..d41d0bd 100644 (file)
@@ -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);
index f7d63d6..0e4c99a 100644 (file)
@@ -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);