Default icon is not loading in correct order
authorKamil Nowac <k.nowac@partner.samsung.com>
Fri, 5 Jul 2013 07:51:40 +0000 (09:51 +0200)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Fri, 12 Jul 2013 08:58:16 +0000 (08:58 +0000)
[Issue#] LINUXWRT-621
[Problem] Wrong prioritizing of icons.
[Cause] N/A
[Solution] Icons extensions are now checked
[Verification] 1. Build wrt-installer repo
2. Build wrt-extra repo with tests
2. Install widget bo.wgt widget from wrt-extra's ta_FAFYMEGELU_bo test
Widget should install without problems and icon.png should be displayed in menu.

Change-Id: I7cc7f4e552c3221b284832cc422be132a805edc8

src/jobs/widget_install/task_manifest_file.cpp
src/jobs/widget_install/task_widget_config.cpp

index b4eb7db..a94bf6a 100755 (executable)
@@ -210,21 +210,30 @@ void TaskManifestFile::stepCopyIconFiles()
     WrtDB::WidgetRegisterInfo::LocalizedIconList & icons =
         m_context.widgetConfig.localizationData.icons;
 
-    //reversed: last <icon> has highest priority to be copied if it has given
-    // locale (TODO: why was that working that way?)
-    for (WrtDB::WidgetRegisterInfo::LocalizedIconList::const_reverse_iterator
-         icon = icons.rbegin();
-         icon != icons.rend();
+    for (WrtDB::WidgetRegisterInfo::LocalizedIconList::const_iterator
+         icon = icons.begin();
+         icon != icons.end();
          ++icon)
     {
+        DPL::String src = icon->src;
         FOREACH(locale, icon->availableLocales)
         {
-            DPL::String src = icon->src;
-            LogDebug("Icon for locale: " << *locale << "is : " << src);
+            LogDebug("Icon for locale: " << *locale << "is: " << src);
 
             if (std::find(generatedLocales.begin(), generatedLocales.end(),
-                          *locale) != generatedLocales.end())
+                    *locale) != generatedLocales.end())
             {
+                if (icon->src == L"icon.jpg") {
+                    generatedLocales.push_back(*locale);
+                } else if (icon->src == L"icon.gif") {
+                    generatedLocales.push_back(*locale);
+                } else if (icon->src == L"icon.png") {
+                    generatedLocales.push_back(*locale);
+                } else if (icon->src == L"icon.ico") {
+                    generatedLocales.push_back(*locale);
+                } else if (icon->src == L"icon.svg") {
+                    generatedLocales.push_back(*locale);
+                }
                 LogDebug("Skipping - has that locale");
                 continue;
             } else {
index 2be933c..758535d 100644 (file)
@@ -296,16 +296,15 @@ void TaskWidgetConfig::ProcessBackgroundPageFile()
 void TaskWidgetConfig::ProcessLocalizedIcons()
 {
     using namespace WrtDB;
+        FOREACH(i, m_installContext.widgetConfig.configInfo.iconsList)
+    {
+        ProcessIcon(*i);
+    }
     ProcessIcon(ConfigParserData::Icon(L"icon.svg"));
     ProcessIcon(ConfigParserData::Icon(L"icon.ico"));
     ProcessIcon(ConfigParserData::Icon(L"icon.png"));
     ProcessIcon(ConfigParserData::Icon(L"icon.gif"));
     ProcessIcon(ConfigParserData::Icon(L"icon.jpg"));
-
-    FOREACH(i, m_installContext.widgetConfig.configInfo.iconsList)
-    {
-        ProcessIcon(*i);
-    }
 }
 
 void TaskWidgetConfig::ProcessIcon(const WrtDB::ConfigParserData::Icon& icon)