int main(int argc, char *argv[]) { google::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); if (FLAGS_extract_log + FLAGS_extract_images + FLAGS_extract_imu + + FLAGS_extract_posys + !FLAGS_cat_logs.empty() != 1) { LOG(FATAL) << "Must choose one logtool task."; } if (FLAGS_extract_log) { CHECK(!FLAGS_in.empty()) << "Input file required for extraction."; CHECK(!FLAGS_out.empty()) << "Output file required for extraction."; ExtractLog(); } else if (FLAGS_extract_images) { CHECK(!FLAGS_in.empty()) << "Input file required for extraction."; CHECK(!FLAGS_out.empty()) << "Output directory required for extraction."; ExtractImages(); } else if (FLAGS_extract_imu) { CHECK(!FLAGS_in.empty()) << "Input file required for extraction."; CHECK(!FLAGS_out.empty()) << "Output directory required for extraction."; ExtractImu(); } else if (FLAGS_extract_posys) { CHECK(!FLAGS_in.empty()) << "Input file required for extraction."; CHECK(!FLAGS_out.empty()) << "Output directory required for extraction."; ExtractPosys(); } else if (!FLAGS_cat_logs.empty()) { CHECK(!FLAGS_out.empty()) << "Output file required for extraction."; CatLogs(); } return 0; }
void CLocalHtmlFile::ExtractImages(DOM_NODE *node, CStringList &list) { LOG1(5, "CLocalHtmlFile::ExtractImages(%p)", node); // const char *tag = domNodeGetName(node); if (tag != NULL && node != NULL) { if (_stricmp(tag, "img") == 0) { const char *src = domElementGetAttribute(node, "src"); // LOG1(1, "img: %s", src); if (src != NULL) { CString value = CharToWChar(src); CString url = MakeAbsoluteUrl(value, Server, ActivePath); list.AddTail(url); } } } DOM_NODE *child = domNodeGetFirstChild(node); while (child != NULL) { ExtractImages(child, list); child = domNodeGetNextSibling(child); } }
void WriteDeclaration::acceptUI(DomUI *node) { QString qualifiedClassName = node->elementClass() + m_option.postfix; QString className = qualifiedClassName; QString varName = m_driver->findOrInsertWidget(node->elementWidget()); QString widgetClassName = node->elementWidget()->attributeClass(); QString exportMacro = node->elementExportMacro(); if (!exportMacro.isEmpty()) exportMacro.append(QLatin1Char(' ')); QStringList namespaceList = qualifiedClassName.split(QLatin1String("::")); if (namespaceList.count()) { className = namespaceList.last(); namespaceList.removeLast(); } // This is a bit of the hack but covers the cases Qt in/without namespaces // and User defined classes in/without namespaces. The "strange" case // is a User using Qt-in-namespace having his own classes not in a namespace. // In this case the generated Ui helper classes will also end up in // the Qt namespace (which is harmless, but not "pretty") const bool needsMacro = namespaceList.count() == 0 || namespaceList[0] == QLatin1String("qdesigner_internal"); if (needsMacro) m_output << "QT_BEGIN_NAMESPACE\n\n"; openNameSpaces(namespaceList, m_output); if (namespaceList.count()) m_output << "\n"; m_output << "class " << exportMacro << m_option.prefix << className << "\n" << "{\n" << "public:\n"; const QStringList connections = m_uic->databaseInfo()->connections(); for (int i=0; i<connections.size(); ++i) { const QString connection = connections.at(i); if (connection == QLatin1String("(default)")) continue; m_output << m_option.indent << "QSqlDatabase " << connection << "Connection;\n"; } TreeWalker::acceptWidget(node->elementWidget()); m_output << "\n"; WriteInitialization(m_uic, m_activateScripts).acceptUI(node); if (node->elementImages()) { if (m_option.extractImages) { ExtractImages(m_uic->option()).acceptUI(node); } else { m_output << "\n" << "protected:\n" << m_option.indent << "enum IconID\n" << m_option.indent << "{\n"; WriteIconDeclaration(m_uic).acceptUI(node); m_output << m_option.indent << m_option.indent << "unknown_ID\n" << m_option.indent << "};\n"; WriteIconInitialization(m_uic).acceptUI(node); } } if (m_activateScripts) { m_output << "\nprivate:\n\n"; writeScriptContextClass(m_option.indent, m_output); } m_output << "};\n\n"; closeNameSpaces(namespaceList, m_output); if (namespaceList.count()) m_output << "\n"; if (m_option.generateNamespace && !m_option.prefix.isEmpty()) { namespaceList.append(QLatin1String("Ui")); openNameSpaces(namespaceList, m_output); m_output << m_option.indent << "class " << exportMacro << className << ": public " << m_option.prefix << className << " {};\n"; closeNameSpaces(namespaceList, m_output); if (namespaceList.count()) m_output << "\n"; } if (needsMacro) m_output << "QT_END_NAMESPACE\n\n"; }
void CLocalHtmlFile::ExtractImages(CStringList &list) { LOG0(3, "CLocalHtmlFile::ExtractImages()"); ExtractImages(GetDocumentNode(), list); }
void WriteDeclaration::acceptUI(DomUI *node) { QString qualifiedClassName = node->elementClass() + m_option.postfix; QString className = qualifiedClassName; QString varName = m_driver->findOrInsertWidget(node->elementWidget()); QString widgetClassName = node->elementWidget()->attributeClass(); QString exportMacro = node->elementExportMacro(); if (!exportMacro.isEmpty()) exportMacro.append(QLatin1Char(' ')); QStringList namespaceList = qualifiedClassName.split(QLatin1String("::")); if (namespaceList.count()) { className = namespaceList.last(); namespaceList.removeLast(); } openNameSpaces(namespaceList, m_output); if (namespaceList.count()) m_output << "\n"; m_output << "class " << exportMacro << m_option.prefix << className << "\n" << "{\n" << "public:\n"; const QStringList connections = m_uic->databaseInfo()->connections(); for (int i=0; i<connections.size(); ++i) { const QString connection = connections.at(i); if (connection == QLatin1String("(default)")) continue; m_output << m_option.indent << "QSqlDatabase " << connection << "Connection;\n"; } TreeWalker::acceptWidget(node->elementWidget()); m_output << "\n"; WriteInitialization(m_uic, m_activateScripts).acceptUI(node); if (node->elementImages()) { if (m_option.extractImages) { ExtractImages(m_uic->option()).acceptUI(node); } else { m_output << "\n" << "protected:\n" << m_option.indent << "enum IconID\n" << m_option.indent << "{\n"; WriteIconDeclaration(m_uic).acceptUI(node); m_output << m_option.indent << m_option.indent << "unknown_ID\n" << m_option.indent << "};\n"; WriteIconInitialization(m_uic).acceptUI(node); } } if (m_activateScripts) { m_output << "\nprivate:\n\n"; writeScriptContextClass(m_option.indent, m_output); } m_output << "};\n\n"; closeNameSpaces(namespaceList, m_output); if (namespaceList.count()) m_output << "\n"; if (m_option.generateNamespace && !m_option.prefix.isEmpty()) { namespaceList.append(QLatin1String("Ui")); openNameSpaces(namespaceList, m_output); m_output << m_option.indent << "class " << exportMacro << className << ": public " << m_option.prefix << className << " {};\n"; closeNameSpaces(namespaceList, m_output); if (namespaceList.count()) m_output << "\n"; } }