From: GiWoong Kim Date: Fri, 11 Dec 2015 08:03:14 +0000 (+0900) Subject: layout: use enum type variables for menu parsing X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.2~132 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9375772197bc5898101bca98c10926f5bd203ad7;p=sdk%2Femulator%2Fqemu.git layout: use enum type variables for menu parsing Change-Id: I65785ee1fbf3c3b3352e5c9c7eb4d4ad30c49252 Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/ui/xmllayoutparser.cpp b/tizen/src/ui/xmllayoutparser.cpp index 5e87848108..bceb6414cc 100644 --- a/tizen/src/ui/xmllayoutparser.cpp +++ b/tizen/src/ui/xmllayoutparser.cpp @@ -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) /* ~ */ { 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( 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( 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) { diff --git a/tizen/src/ui/xmllayoutparser.h b/tizen/src/ui/xmllayoutparser.h index 16213e0a64..e6bcf80b94 100644 --- a/tizen/src/ui/xmllayoutparser.h +++ b/tizen/src/ui/xmllayoutparser.h @@ -5,7 +5,8 @@ * * Contact: * GiWoong Kim - * Sangho Park + * SeokYeon Hwang + * Sangho Park * * 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 menuItems; }; #endif // XMLLAYOUTPARSER_H