From: GiWoong Kim Date: Tue, 1 Dec 2015 05:54:05 +0000 (+0900) Subject: layout: improve logging for XML parsing X-Git-Tag: TizenStudio_2.0_p2.3.2~139 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=09d930a001e56ee3a1fade0193a8897835b76363;p=sdk%2Femulator%2Fqemu.git layout: improve logging for XML parsing - apply indenting - clean up Change-Id: Ibdf00cb60329a7d2f2eeedc29f7d1cca909c83b9 Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/ui/xmllayoutparser.cpp b/tizen/src/ui/xmllayoutparser.cpp index 483afbb..a37e2bb 100644 --- a/tizen/src/ui/xmllayoutparser.cpp +++ b/tizen/src/ui/xmllayoutparser.cpp @@ -34,7 +34,12 @@ #include "controller/generalpurposecon.h" #include "resource/ui_strings.h" -/* Qt Qlayout has a minimum size */ +#define LOG_LINE_HEAD_CHAR "> " +#define LOG_INDENTATION_SIZE 2 +#define QDEBUG_INDENT(x) qDebug().nospace() << qPrintable(getIndenting(x)) +#define QWARN_INDENT(x) qWarning().nospace() << qPrintable(getIndenting(x)) + +/* Qt QLayout has a minimum size */ #define QT_LAYOUT_MINIMUM (73) XmlLayoutParser::XmlLayoutParser(const QString &path, UiInformation *uiInfo) @@ -43,7 +48,21 @@ XmlLayoutParser::XmlLayoutParser(const QString &path, UiInformation *uiInfo) this->uiInfo = uiInfo; } -QColor XmlLayoutParser::parseColor(QXmlStreamReader &xml) +QString XmlLayoutParser::getIndenting(int depth) { + QString indenting = LOG_LINE_HEAD_CHAR; + + if (depth > 0) { + while (depth--) { + for (int i = 0; i < LOG_INDENTATION_SIZE; i++) { + indenting.append(QChar::Space); + } + } + } + + return indenting; +} + +QColor XmlLayoutParser::parseColor(QXmlStreamReader &xml, int depth) { int red = 0, green = 0, blue = 0; @@ -65,10 +84,12 @@ QColor XmlLayoutParser::parseColor(QXmlStreamReader &xml) return QColor(red, green, blue, 255); } -HoverType XmlLayoutParser::parseHover(QXmlStreamReader &xml) +HoverType XmlLayoutParser::parseHover(QXmlStreamReader &xml, int depth) { QColor color(255, 255, 255); + QDEBUG_INDENT(depth) << HOVER_KEYWORD << " {"; + QXmlStreamReader::TokenType token = xml.readNext(); while (xml.atEnd() == false && (xml.name() == HOVER_KEYWORD && @@ -77,20 +98,22 @@ HoverType XmlLayoutParser::parseHover(QXmlStreamReader &xml) if (token == QXmlStreamReader::StartElement) { if (xml.name() == COLOR_KEYWORD) { /* color */ - color = parseColor(xml); - qDebug() << "hover color:" << color.name(); + color = parseColor(xml, depth + 1); + QDEBUG_INDENT(depth + 1) << COLOR_KEYWORD << ": " << color.name(); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } + QDEBUG_INDENT(depth) << "}"; + return HoverType(color); } -QRect XmlLayoutParser::parseRegion(QXmlStreamReader &xml) +QRect XmlLayoutParser::parseRegion(QXmlStreamReader &xml, int depth) { int left = 0, top = 0; unsigned int width = 0, height = 0; @@ -116,13 +139,13 @@ QRect XmlLayoutParser::parseRegion(QXmlStreamReader &xml) return QRect(left, top, width, height); } -DisplayType *XmlLayoutParser::parseDisplay(QXmlStreamReader &xml) +DisplayType *XmlLayoutParser::parseDisplay(QXmlStreamReader &xml, int depth) { QRect displayRect; int angle = 0; QPixmap maskImage; - qDebug() << "**" << DISPLAY_KEYWORD << "{"; + QDEBUG_INDENT(depth) << DISPLAY_KEYWORD << " {"; QXmlStreamReader::TokenType token = xml.readNext(); @@ -132,36 +155,37 @@ DisplayType *XmlLayoutParser::parseDisplay(QXmlStreamReader &xml) if (token == QXmlStreamReader::StartElement) { if (xml.name() == REGION_KEYWORD) { /* region */ - displayRect = parseRegion(xml); - qDebug("- rect: (%d,%d %dx%d)", - displayRect.x(), displayRect.y(), - displayRect.width(), displayRect.height()); + displayRect = parseRegion(xml, depth + 1); + QDEBUG_INDENT(depth + 1) << + "(" << displayRect.x() << "," << displayRect.y() << " " << + displayRect.width() << "x" << displayRect.height() << ")"; } else if (xml.name() == ANGLE_KEYWORD) { /* angle */ angle = xml.readElementText().toInt(); } else if (xml.name() == MASK_IMG_KEYWORD) { /* display mask */ QString maskImageFileName = xml.readElementText(); - qDebug() << "-" << MASK_IMG_KEYWORD << ":" << maskImageFileName; + QDEBUG_INDENT(depth + 1) << + MASK_IMG_KEYWORD << ": " << maskImageFileName; if (maskImage.load( xmlPath + QDir::separator() + maskImageFileName) == false) { - qWarning() << "failed to load mask image"; + QWARN_INDENT(depth + 1) << "failed to load mask image"; } } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } - qDebug("** }"); + QDEBUG_INDENT(depth) << "}"; return new DisplayType(displayRect, angle, maskImage); } -KeycodeType XmlLayoutParser::parseKeycode(QXmlStreamReader &xml) +KeycodeType XmlLayoutParser::parseKeycode(QXmlStreamReader &xml, int depth) { int longPress = -1, shortPress = 0; @@ -173,7 +197,7 @@ KeycodeType XmlLayoutParser::parseKeycode(QXmlStreamReader &xml) return KeycodeType(shortPress, longPress); } -HardwareKey *XmlLayoutParser::parseKey(QXmlStreamReader &xml) +HardwareKey *XmlLayoutParser::parseKey(QXmlStreamReader &xml, int depth) { QRect keyRegion; KeycodeType keycodeType; @@ -191,10 +215,10 @@ HardwareKey *XmlLayoutParser::parseKey(QXmlStreamReader &xml) if (token == QXmlStreamReader::StartElement) { if (xml.name() == REGION_KEYWORD) { /* region */ - keyRegion = parseRegion(xml); + keyRegion = parseRegion(xml, depth + 1); } else if (xml.name() == KEYCODE_KEYWORD) { /* keycode */ - keycodeType = parseKeycode(xml); + keycodeType = parseKeycode(xml, depth + 1); } else if (xml.name() == TOOLTIP_KEYWORD) { /* tooltip */ keyTooptip = xml.readElementText(); @@ -202,7 +226,7 @@ HardwareKey *XmlLayoutParser::parseKey(QXmlStreamReader &xml) /* shortcut */ keySequence = QKeySequence::fromString(xml.readElementText()); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } @@ -212,10 +236,11 @@ HardwareKey *XmlLayoutParser::parseKey(QXmlStreamReader &xml) return new HardwareKey(keyName, keycodeType, keyRegion, keyTooptip, keySequence); } -int XmlLayoutParser::parseKeyList( - QXmlStreamReader &xml, QList &list) +int XmlLayoutParser::parseKeyList(QXmlStreamReader &xml, + int depth, QList &list) { HardwareKey *hwKey = NULL; + QXmlStreamReader::TokenType token = xml.readNext(); while (xml.atEnd() == false && (xml.name() == KEYLIST_KEYWORD && @@ -223,12 +248,12 @@ int XmlLayoutParser::parseKeyList( { if (token == QXmlStreamReader::StartElement) { if (xml.name() == KEY_KEYWORD) { - hwKey = parseKey(xml); + hwKey = parseKey(xml, depth + 1); if (hwKey != NULL) { list.append(hwKey); } } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } @@ -238,13 +263,14 @@ int XmlLayoutParser::parseKeyList( return list.count(); } -MainForm *XmlLayoutParser::parseMainForm(QXmlStreamReader &xml) +MainForm *XmlLayoutParser::parseMainForm(QXmlStreamReader &xml, int depth) { /* attribute */ QString formName = xml.attributes().value(NAME_ATTR_KEYWORD).toString(); MainForm *form = new MainForm(formName); - qDebug() << '*' << form->getName() << '{'; + qDebug(LOG_LINE_HEAD_CHAR); + QDEBUG_INDENT(depth) << form->getName() << " {"; QXmlStreamReader::TokenType token = xml.readNext(); @@ -254,59 +280,65 @@ MainForm *XmlLayoutParser::parseMainForm(QXmlStreamReader &xml) if (token == QXmlStreamReader::StartElement) { if (xml.name() == DISPLAY_KEYWORD) { /* display */ - form->setDpyType(parseDisplay(xml)); + form->setDpyType(parseDisplay(xml, depth + 1)); } else if (xml.name() == NORMAL_IMG_KEYWORD) { /* normal image */ QString normalImageFileName = xml.readElementText(); - qDebug() << "-" << NORMAL_IMG_KEYWORD << ":" << normalImageFileName; + QDEBUG_INDENT(depth + 1) << + NORMAL_IMG_KEYWORD << ": " << normalImageFileName; if (form->skinImg[LayoutForm::normal].load( xmlPath + QDir::separator() + normalImageFileName) == false) { - qWarning() << "failed to load normal image"; + QWARN_INDENT(depth + 1) << "failed to load normal image"; } } else if (xml.name() == PRESSED_IMG_KEYWORD) { /* key pressed image */ QString pressedImageFileName = xml.readElementText(); - qDebug() << "-" << PRESSED_IMG_KEYWORD << ":" << pressedImageFileName; + QDEBUG_INDENT(depth + 1) << + PRESSED_IMG_KEYWORD << ": " << pressedImageFileName; if (form->skinImg[LayoutForm::pressed].load( xmlPath + QDir::separator() + pressedImageFileName) == false) { - qWarning() << "failed to load pressed image"; + QWARN_INDENT(depth + 1) << "failed to load pressed image"; } } else if (xml.name() == ROTARY_IMG_KEYWORD) { /* rotary image */ QString rotaryImageFileName = xml.readElementText(); - qDebug() << "-" << ROTARY_IMG_KEYWORD << ":" << rotaryImageFileName; + QDEBUG_INDENT(depth + 1) << + ROTARY_IMG_KEYWORD << ": " << rotaryImageFileName; form->setRotaryImage(new QPixmap( xmlPath + QDir::separator() + rotaryImageFileName)); if (form->getRotaryImage()->isNull() == true) { - qWarning() << "failed to load rotary image"; + QWARN_INDENT(depth + 1) << "failed to load rotary image"; } } else if (xml.name() == KEYLIST_KEYWORD) { /* HW keys */ - int cnt = parseKeyList(xml, form->getKeyList()); - qDebug() << "-" << KEYLIST_KEYWORD << ":" << cnt; + const int cnt = parseKeyList(xml, depth + 1, form->getKeyList()); + QDEBUG_INDENT(depth + 1) << KEYLIST_KEYWORD << ": " << cnt; } else if (xml.name() == HOVER_KEYWORD) { /* hover */ - form->setHoverType(parseHover(xml)); + form->setHoverType(parseHover(xml, depth + 1)); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } - qDebug("}"); + QDEBUG_INDENT(depth) << "}"; return form; } -int XmlLayoutParser::parseMainFormList( - QXmlStreamReader &xml, QList &list) +int XmlLayoutParser::parseMainFormList(QXmlStreamReader &xml, + int depth, QList &list) { MainForm *form = NULL; + + QDEBUG_INDENT(depth) << FORMLIST_KEYWORD << " {"; + QXmlStreamReader::TokenType token = xml.readNext(); while (xml.atEnd() == false && (xml.name() == FORMLIST_KEYWORD && @@ -314,11 +346,11 @@ int XmlLayoutParser::parseMainFormList( { if (token == QXmlStreamReader::StartElement) { if (xml.name() == FORM_KEYWORD) { - form = parseMainForm(xml); + form = parseMainForm(xml, depth + 1); if (form != NULL) { /* image validation */ if (form->skinImg[LayoutForm::normal].size() == QSize(0, 0)) { - qDebug("- general purpose skin form"); + QDEBUG_INDENT(depth + 1) << "(general purpose skin type)"; SkinPainter painter("main-skin", uiInfo->getResolution(), form->getDpyType()->getAngle(), @@ -332,26 +364,28 @@ int XmlLayoutParser::parseMainFormList( list.append(form); } } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } + QDEBUG_INDENT(depth) << "}"; + return list.count(); } /* menu */ -int XmlLayoutParser::parseFactorList( - QXmlStreamReader &xml, QMap &map, int *defaultFactor) +int XmlLayoutParser::parseFactorList(QXmlStreamReader &xml, + int depth, QMap &map, int *defaultFactor) { QString defaultValue = xml.attributes().value(DEFAULT_ATTR_KEYWORD).toString(); *defaultFactor = defaultValue.toInt(); QXmlStreamReader::TokenType token = xml.readNext(); - while (xml.atEnd() == false && (xml.name() == "factorList" && + while (xml.atEnd() == false && (xml.name() == FACTORLIST_KEYWORD && token == QXmlStreamReader::EndElement) == false) /* ~ */ { if (token == QXmlStreamReader::StartElement) { @@ -359,7 +393,7 @@ int XmlLayoutParser::parseFactorList( QString value = xml.attributes().value(NAME_ATTR_KEYWORD).toString(); map.insert(xml.readElementText().toInt(), value); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } @@ -369,8 +403,8 @@ int XmlLayoutParser::parseFactorList( return map.count(); } -int XmlLayoutParser::parseShortcuts( - QXmlStreamReader &xml, QMap &map) +int XmlLayoutParser::parseShortcuts(QXmlStreamReader &xml, + int depth, QMap &map) { QString key = xml.attributes().value(PROP_ATTR_KEYWORD).toString(); map.insert(key, QKeySequence::fromString(xml.readElementText())); @@ -378,67 +412,76 @@ int XmlLayoutParser::parseShortcuts( return map.count(); } -AdvancedMenuItem *XmlLayoutParser::parseAdvancedMenuItem(QXmlStreamReader &xml) +AdvancedMenuItem *XmlLayoutParser::parseAdvancedMenuItem(QXmlStreamReader &xml, int depth) { /* attribute */ QString menuName = xml.attributes().value(NAME_ATTR_KEYWORD).toString(); AdvancedMenuItem *item = new AdvancedMenuItem(menuName); + QDEBUG_INDENT(depth) << ADVANCED_MENU_KEYWORD << " {"; + QXmlStreamReader::TokenType token = xml.readNext(); - while (xml.atEnd() == false && (xml.name() == "advancedItem" && + while (xml.atEnd() == false && (xml.name() == ADVANCED_MENU_KEYWORD && token == QXmlStreamReader::EndElement) == false) /* ~ */ { if (token == QXmlStreamReader::StartElement) { if (xml.name() == SHORTCUT_KEYWORD) { - parseShortcuts(xml, item->getShortcuts()); + parseShortcuts(xml, depth + 1, item->getShortcuts()); } else if (xml.name() == MENULIST_KEYWORD) { - int cnt = parseMenuList(xml, item->getMenuList()); - qDebug("- advanced menuList: %d", cnt); + const int cnt = parseMenuList(xml, depth + 1, item->getMenuList()); + QDEBUG_INDENT(depth + 1) << MENULIST_KEYWORD << ": " << cnt; } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } + QDEBUG_INDENT(depth) << "}"; + return item; } -ScaleMenuItem *XmlLayoutParser::parseScaleMenuItem(QXmlStreamReader &xml) +ScaleMenuItem *XmlLayoutParser::parseScaleMenuItem(QXmlStreamReader &xml, int depth) { /* attribute */ QString menuName = xml.attributes().value(NAME_ATTR_KEYWORD).toString(); ScaleMenuItem *item = new ScaleMenuItem(menuName); + QDEBUG_INDENT(depth) << SCALE_MENU_KEYWORD << " {"; + QXmlStreamReader::TokenType token = xml.readNext(); - while (xml.atEnd() == false && (xml.name() == "scaleItem" && + while (xml.atEnd() == false && (xml.name() == SCALE_MENU_KEYWORD && token == QXmlStreamReader::EndElement) == false) /* ~ */ { if (token == QXmlStreamReader::StartElement) { if (xml.name() == SHORTCUT_KEYWORD) { - parseShortcuts(xml, item->getShortcuts()); + parseShortcuts(xml, depth + 1, item->getShortcuts()); } else if (xml.name() == FACTORLIST_KEYWORD) { int defaultFactor = 0; - int cnt = parseFactorList(xml, item->getFactorMap(), &defaultFactor); - qDebug("- scale factorList: %d", cnt); + const int cnt = parseFactorList(xml, depth + 1, + item->getFactorMap(), &defaultFactor); + QDEBUG_INDENT(depth + 1) << FACTORLIST_KEYWORD << ": " << cnt; item->setDefaultScaleFactor(defaultFactor); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } + QDEBUG_INDENT(depth) << "}"; + return item; } MenuItem *XmlLayoutParser::parseGeneralMenuItem( - QXmlStreamReader &xml, int menuType) + QXmlStreamReader &xml, int depth, int menuType) { QString itemKeyword = xml.name().toString(); @@ -454,9 +497,9 @@ MenuItem *XmlLayoutParser::parseGeneralMenuItem( { if (token == QXmlStreamReader::StartElement) { if (xml.name() == SHORTCUT_KEYWORD) { - parseShortcuts(xml, item->getShortcuts()); + parseShortcuts(xml, depth + 1, item->getShortcuts()); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } @@ -466,10 +509,14 @@ MenuItem *XmlLayoutParser::parseGeneralMenuItem( return item; } -int XmlLayoutParser::parseMenuList( - QXmlStreamReader &xml, QList &list) +int XmlLayoutParser::parseMenuList(QXmlStreamReader &xml, + int depth, QList &list) { MenuItem *item = NULL; + + qDebug(LOG_LINE_HEAD_CHAR); + QDEBUG_INDENT(depth) << MENULIST_KEYWORD << " {"; + QXmlStreamReader::TokenType token = xml.readNext(); while (xml.atEnd() == false && (xml.name() == MENULIST_KEYWORD && @@ -479,37 +526,50 @@ int XmlLayoutParser::parseMenuList( if (xml.name() == SEPARATOR_MENU_KEYWORD) { item = new MenuItem(MenuItemType::separator, NULL); } else if (xml.name() == ADVANCED_MENU_KEYWORD) { - item = (MenuItem *)parseAdvancedMenuItem(xml); + item = (MenuItem *)parseAdvancedMenuItem(xml, depth + 1); } else if (xml.name() == INFO_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::infoItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::infoItem); } else if (xml.name() == ONTOP_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::onTopItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::onTopItem); } else if (xml.name() == MOVE_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::moveItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::moveItem); } else if (xml.name() == SWITCH_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::switchItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::switchItem); } else if (xml.name() == SCALE_MENU_KEYWORD) { - item = (MenuItem *)parseScaleMenuItem(xml); + item = (MenuItem *)parseScaleMenuItem(xml, depth + 1); } else if (xml.name() == CONTROLLER_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::controllerItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::controllerItem); } else if (xml.name() == HOSTKBD_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::hostKeyboardItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::hostKeyboardItem); } else if (xml.name() == SHELL_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::shellItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::shellItem); } else if (xml.name() == ECP_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::controlPanelItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::controlPanelItem); } else if (xml.name() == SCREENSHOT_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::screenShotItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::screenShotItem); } else if (xml.name() == ABOUT_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::aboutItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::aboutItem); } else if (xml.name() == SYSTEM_RESET_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::systemResetItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::systemResetItem); } else if (xml.name() == FORCECLOSE_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::forceCloseItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::forceCloseItem); } else if (xml.name() == CLOSE_MENU_KEYWORD) { - item = parseGeneralMenuItem(xml, MenuItemType::closeItem); + item = parseGeneralMenuItem( + xml, depth + 1, MenuItemType::closeItem); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } if (item != NULL) { @@ -520,14 +580,20 @@ int XmlLayoutParser::parseMenuList( token = xml.readNext(); } + QDEBUG_INDENT(depth) << "}"; + return list.count(); } QString XmlLayoutParser::parseEmulatorUI(QXmlStreamReader &xml) { QString layoutVersion = GENERIC_TEXT_UNDEFINED; + int depth = 0; + + qDebug(LOG_LINE_HEAD_CHAR); + QDEBUG_INDENT(depth) << EMULATOR_UI_KEYWORD << " {"; - QXmlStreamReader::TokenType token; + QXmlStreamReader::TokenType token = QXmlStreamReader::NoToken; while (xml.atEnd() == false && xml.hasError() == false) { token = xml.readNext(); @@ -546,17 +612,23 @@ QString XmlLayoutParser::parseEmulatorUI(QXmlStreamReader &xml) layoutVersion = xml.readElementText(); continue; } else if (xml.name() == FORMLIST_KEYWORD) { - int cnt = parseMainFormList(xml, uiInfo->getMainFormList()); - qDebug() << FORMLIST_KEYWORD << ":" << cnt; + /* forms */ + const int cnt = parseMainFormList(xml, + depth + 1, uiInfo->getMainFormList()); + QDEBUG_INDENT(depth + 1) << FORMLIST_KEYWORD << ": " << cnt; } else if (xml.name() == MENULIST_KEYWORD) { - int cnt = parseMenuList(xml, uiInfo->getMenuList()); - qDebug() << MENULIST_KEYWORD << ":" << cnt; + /* menus */ + const int cnt = parseMenuList(xml, + depth + 1, uiInfo->getMenuList()); + QDEBUG_INDENT(depth + 1) << MENULIST_KEYWORD << ": " << cnt; } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } } + QDEBUG_INDENT(depth) << "}"; + if (xml.hasError() == true) { printError(xml.error()); } @@ -565,14 +637,14 @@ QString XmlLayoutParser::parseEmulatorUI(QXmlStreamReader &xml) } /* controller */ -ControllerForm *XmlLayoutParser::parseControllerForm(QXmlStreamReader &xml) +ControllerForm *XmlLayoutParser::parseControllerForm(QXmlStreamReader &xml, int depth) { /* attribute */ QString formName = xml.attributes().value(NAME_ATTR_KEYWORD).toString(); ControllerForm *form = new ControllerForm( formName.isEmpty() ? xmlPath.section(QDir::separator(), -1) : formName); - qDebug() << '*' << form->getName() << "{"; + QDEBUG_INDENT(depth) << form->getName() << " {"; QXmlStreamReader::TokenType token = xml.readNext(); @@ -583,37 +655,39 @@ ControllerForm *XmlLayoutParser::parseControllerForm(QXmlStreamReader &xml) if (xml.name() == NORMAL_IMG_KEYWORD) { /* normal image */ QString normalImageFileName = xml.readElementText(); - qDebug() << "-" << NORMAL_IMG_KEYWORD << ":" << normalImageFileName; + QDEBUG_INDENT(depth + 1) << + NORMAL_IMG_KEYWORD << ": " << normalImageFileName; if (form->skinImg[LayoutForm::normal].load( xmlPath + QDir::separator() + normalImageFileName) == false) { - qWarning() << "failed to load normal image"; + QWARN_INDENT(depth + 1) << "failed to load normal image"; } } else if (xml.name() == PRESSED_IMG_KEYWORD) { /* key pressed image */ QString pressedImageFileName = xml.readElementText(); - qDebug() << "-" << PRESSED_IMG_KEYWORD << ":" << pressedImageFileName; + QDEBUG_INDENT(depth + 1) << + PRESSED_IMG_KEYWORD << ": " << pressedImageFileName; if (form->skinImg[LayoutForm::pressed].load( xmlPath + QDir::separator() + pressedImageFileName) == false) { - qWarning() << "failed to load pressed image"; + QWARN_INDENT(depth + 1) << "failed to load pressed image"; } } else if (xml.name() == KEYLIST_KEYWORD) { /* HW keys */ - int cnt = parseKeyList(xml, form->getKeyList()); - qDebug() << "-" << KEYLIST_KEYWORD << ":" << cnt; + const int cnt = parseKeyList(xml, depth + 1, form->getKeyList()); + QDEBUG_INDENT(depth + 1) << KEYLIST_KEYWORD << ": " << cnt; } else if (xml.name() == HOVER_KEYWORD) { /* hover */ - form->setHoverType(parseHover(xml)); + form->setHoverType(parseHover(xml, depth + 1)); } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } token = xml.readNext(); } - qDebug("}"); + QDEBUG_INDENT(depth) << "}"; return form; } @@ -621,9 +695,13 @@ ControllerForm *XmlLayoutParser::parseControllerForm(QXmlStreamReader &xml) QString XmlLayoutParser::parseControllerUI(QXmlStreamReader &xml) { QString layoutVersion = GENERIC_TEXT_UNDEFINED; + int depth = 0; + + qDebug(LOG_LINE_HEAD_CHAR); + QDEBUG_INDENT(depth) << CONTROLLER_UI_KEYWORD << " {"; ControllerForm *form = NULL; - QXmlStreamReader::TokenType token; + QXmlStreamReader::TokenType token = QXmlStreamReader::NoToken; while (xml.atEnd() == false && xml.hasError() == false) { token = xml.readNext(); @@ -642,22 +720,24 @@ QString XmlLayoutParser::parseControllerUI(QXmlStreamReader &xml) layoutVersion = xml.readElementText(); continue; } else if (xml.name() == FORM_KEYWORD) { - form = parseControllerForm(xml); + form = parseControllerForm(xml, depth + 1); if (form != NULL) { /* image validation */ if (form->skinImg[LayoutForm::normal].size() == QSize(0, 0)) { - qDebug("- general purpose con form"); + QDEBUG_INDENT(depth + 1) << "(general purpose con type)"; makeGeneralCon(form); } uiInfo->getConFormList().append(form); } } else { - qWarning() << "undefined element:" << xml.name(); + QWARN_INDENT(depth + 1) << "undefined element: " << xml.name(); } } } + QDEBUG_INDENT(depth) << "}"; + if (xml.hasError() == true) { printError(xml.error()); } @@ -700,7 +780,7 @@ void XmlLayoutParser::printError(QXmlStreamReader::Error err) qCritical("The parser encountered an element that was different to those it expected."); break; case QXmlStreamReader::CustomError: - qCritical("A custom error has been raised with raiseError()"); + qCritical("A custom error has been raised with raiseError()."); break; case QXmlStreamReader::NotWellFormedError: qCritical("The parser internally raised an error due to the read XML not being well-formed."); diff --git a/tizen/src/ui/xmllayoutparser.h b/tizen/src/ui/xmllayoutparser.h index 1a8840a..96f1cdf 100644 --- a/tizen/src/ui/xmllayoutparser.h +++ b/tizen/src/ui/xmllayoutparser.h @@ -46,28 +46,32 @@ class XmlLayoutParser public: XmlLayoutParser(const QString &path, UiInformation *uiInfo /* out */); + QString getIndenting(int depth); QString parseEmulatorUI(QXmlStreamReader &xml); QString parseControllerUI(QXmlStreamReader &xml); private: - QColor parseColor(QXmlStreamReader &xml); - HoverType parseHover(QXmlStreamReader &xml); - QRect parseRegion(QXmlStreamReader &xml); - DisplayType *parseDisplay(QXmlStreamReader &xml); - KeycodeType parseKeycode(QXmlStreamReader &xml); - HardwareKey *parseKey(QXmlStreamReader &xml); - int parseKeyList(QXmlStreamReader &xml, QList &list); - MainForm *parseMainForm(QXmlStreamReader &xml); - int parseMainFormList(QXmlStreamReader &xml, QList &list); + QColor parseColor(QXmlStreamReader &xml, int depth); + HoverType parseHover(QXmlStreamReader &xml, int depth); + QRect parseRegion(QXmlStreamReader &xml, int depth); + DisplayType *parseDisplay(QXmlStreamReader &xml, int depth); + KeycodeType parseKeycode(QXmlStreamReader &xml, int depth); + HardwareKey *parseKey(QXmlStreamReader &xml, int depth); + int parseKeyList(QXmlStreamReader &xml, int depth, QList &list); + MainForm *parseMainForm(QXmlStreamReader &xml, int depth); + int parseMainFormList(QXmlStreamReader &xml, + int depth, QList &list); - int parseFactorList(QXmlStreamReader &xml, QMap &map, int *defaultFactor); - int parseShortcuts(QXmlStreamReader &xml, QMap &map); - AdvancedMenuItem *parseAdvancedMenuItem(QXmlStreamReader &xml); - ScaleMenuItem *parseScaleMenuItem(QXmlStreamReader &xml); - MenuItem *parseGeneralMenuItem(QXmlStreamReader &xml, int menuType); - int parseMenuList(QXmlStreamReader &xml, QList &list); + int parseFactorList(QXmlStreamReader &xml, + int depth, QMap &map, int *defaultFactor); + int parseShortcuts(QXmlStreamReader &xml, + int depth, QMap &map); + AdvancedMenuItem *parseAdvancedMenuItem(QXmlStreamReader &xml, int depth); + ScaleMenuItem *parseScaleMenuItem(QXmlStreamReader &xml, int depth); + MenuItem *parseGeneralMenuItem(QXmlStreamReader &xml, int depth, int menuType); + int parseMenuList(QXmlStreamReader &xml, int depth, QList &list); - ControllerForm *parseControllerForm(QXmlStreamReader &xml); + ControllerForm *parseControllerForm(QXmlStreamReader &xml, int depth); void makeGeneralCon(ControllerForm *form); void printError(QXmlStreamReader::Error err);