layout: use enum type variables for menu parsing
authorGiWoong Kim <giwoong.kim@samsung.com>
Fri, 11 Dec 2015 08:03:14 +0000 (17:03 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Mon, 14 Dec 2015 07:04:57 +0000 (16:04 +0900)
Change-Id: I65785ee1fbf3c3b3352e5c9c7eb4d4ad30c49252
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/ui/xmllayoutparser.cpp
tizen/src/ui/xmllayoutparser.h

index 5e87848108dc481f02aa6ef88ca724971c0dc5c0..bceb6414cc9906010c21d3dae8b8159824be80fc 100644 (file)
@@ -47,6 +47,23 @@ XmlLayoutParser::XmlLayoutParser(const QString &path, UiInformation *uiInfo)
 {
     this->xmlPath = path;
     this->uiInfo = uiInfo;
+
+    menuItems.insert(SEPARATOR_MENU_KEYWORD, MenuItemType::separator);
+    menuItems.insert(ADVANCED_MENU_KEYWORD, MenuItemType::advancedItem);
+    menuItems.insert(INFO_MENU_KEYWORD, MenuItemType::infoItem);
+    menuItems.insert(ONTOP_MENU_KEYWORD, MenuItemType::onTopItem);
+    menuItems.insert(MOVE_MENU_KEYWORD, MenuItemType::moveItem);
+    menuItems.insert(SWITCH_MENU_KEYWORD, MenuItemType::switchItem);
+    menuItems.insert(SCALE_MENU_KEYWORD, MenuItemType::scaleItem);
+    menuItems.insert(CONTROLLER_MENU_KEYWORD, MenuItemType::controllerItem);
+    menuItems.insert(HOSTKBD_MENU_KEYWORD, MenuItemType::hostKeyboardItem);
+    menuItems.insert(SHELL_MENU_KEYWORD, MenuItemType::shellItem);
+    menuItems.insert(ECP_MENU_KEYWORD, MenuItemType::controlPanelItem);
+    menuItems.insert(SCREENSHOT_MENU_KEYWORD, MenuItemType::screenShotItem);
+    menuItems.insert(ABOUT_MENU_KEYWORD, MenuItemType::aboutItem);
+    menuItems.insert(SYSTEM_RESET_MENU_KEYWORD, MenuItemType::systemResetItem);
+    menuItems.insert(FORCECLOSE_MENU_KEYWORD, MenuItemType::forceCloseItem);
+    menuItems.insert(CLOSE_MENU_KEYWORD, MenuItemType::closeItem);
 }
 
 QString XmlLayoutParser::getIndenting(int depth) {
@@ -527,71 +544,43 @@ int XmlLayoutParser::parseMenuList(QXmlStreamReader &xml,
         token == QXmlStreamReader::EndElement) == false) /* ~ </menuList> */
     {
         if (token == QXmlStreamReader::StartElement) {
-            if (tokenName == SEPARATOR_MENU_KEYWORD) {
-                /* separator */
-                item = new MenuItem(MenuItemType::separator, NULL);
-            } else if (tokenName == ADVANCED_MENU_KEYWORD) {
-                /* Advanced */
+            const int menuType = menuItems.value(tokenName, -1);
+
+            switch(menuType) {
+            case MenuItemType::separator:
+                // separator
+                item = new MenuItem(menuType, NULL);
+                break;
+            case MenuItemType::advancedItem:
+                // Advanced
                 item = dynamic_cast<MenuItem *>(
                     parseAdvancedMenuItem(xml, depth + 1));
-            } else if (tokenName == INFO_MENU_KEYWORD) {
-                /* Detailed Info */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::infoItem);
-            } else if (tokenName == ONTOP_MENU_KEYWORD) {
-                /* Always on Top */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::onTopItem);
-            } else if (tokenName == MOVE_MENU_KEYWORD) {
-                /* Move */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::moveItem);
-            } else if (tokenName == SWITCH_MENU_KEYWORD) {
-                /* Rotate */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::switchItem);
-            } else if (tokenName == SCALE_MENU_KEYWORD) {
-                /* Scale */
+                break;
+            case MenuItemType::scaleItem:
+                // Scale
                 item = dynamic_cast<MenuItem *>(
                     parseScaleMenuItem(xml, depth + 1));
-            } else if (tokenName == CONTROLLER_MENU_KEYWORD) {
-                /* Controller */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::controllerItem);
-            } else if (tokenName == HOSTKBD_MENU_KEYWORD) {
-                /* Host Keyboard */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::hostKeyboardItem);
-            } else if (tokenName == SHELL_MENU_KEYWORD) {
-                /* Shell */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::shellItem);
-            } else if (tokenName == ECP_MENU_KEYWORD) {
-                /* Control Panel */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::controlPanelItem);
-            } else if (tokenName == SCREENSHOT_MENU_KEYWORD) {
-                /* Screen Shot */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::screenShotItem);
-            } else if (tokenName == ABOUT_MENU_KEYWORD) {
-                /* About */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::aboutItem);
-            } else if (tokenName == SYSTEM_RESET_MENU_KEYWORD) {
-                /* Reboot */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::systemResetItem);
-            } else if (tokenName == FORCECLOSE_MENU_KEYWORD) {
-                /* Force Close */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::forceCloseItem);
-            } else if (tokenName == CLOSE_MENU_KEYWORD) {
-                /* Close */
-                item = parseGeneralMenuItem(
-                    xml, depth + 1, MenuItemType::closeItem);
-            } else {
+                break;
+            case MenuItemType::infoItem:
+            case MenuItemType::onTopItem:
+            case MenuItemType::moveItem:
+            case MenuItemType::switchItem:
+            case MenuItemType::controllerItem:
+            case MenuItemType::hostKeyboardItem:
+            case MenuItemType::shellItem:
+            case MenuItemType::controlPanelItem:
+            case MenuItemType::screenShotItem:
+            case MenuItemType::aboutItem:
+            case MenuItemType::systemResetItem:
+            case MenuItemType::forceCloseItem:
+                /* fall through */
+            case MenuItemType::closeItem:
+                item = parseGeneralMenuItem(xml, depth + 1, menuType);
+                break;
+            default:
                 QWARN_INDENT(depth + 1) << "undefined element: " << tokenName;
+                item = NULL;
+                break;
             }
 
             if (item != NULL) {
index 16213e0a6437990883bee7268af582ba611591b7..e6bcf80b9407613e18fa29d3cec0fd408821469a 100644 (file)
@@ -5,7 +5,8 @@
  *
  * Contact:
  * GiWoong Kim <giwoong.kim@samsung.com>
- * Sangho Park <sangho1206.park@samsung.com>
+ * SeokYeon Hwang <syeon.hwang@samsung.com>
+ * Sangho Park <sangho.p@samsung.com>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -81,6 +82,7 @@ private:
 
     QString xmlPath;
     UiInformation *uiInfo;
+    QHash<QString, int> menuItems;
 };
 
 #endif // XMLLAYOUTPARSER_H