bool GeometryCorrection::ShowColorImage() { if (treeBaseItem==treeWidget->currentItem()) { //to show base image in gray; //firstly, show overview, creat a qimage; pShowimagebaseUI=new ShowImageBase1(0,pBaseFileDataset); connect(pShowimagebaseUI,SIGNAL(ReportPosition(QPoint)),this,SLOT(GetBasePosition(QPoint))); pShowimagebaseUI->ShowOverviewColor(nRGBofBase); } return true; }
bool GeometryCorrection::ShowGrayImage() { //firstly show a gray image: base image ; //check if the file has been selected; if (treeBaseItem==treeWidget->currentItem()) { //to show base image in gray; //firstly, show overview, creat a qimage; pShowimagebaseUI=new ShowImageBase1(0,pBaseFileDataset); connect(pShowimagebaseUI,SIGNAL(ReportPosition(QPoint)),this,SLOT(GetBasePosition(QPoint))); connect(this,SIGNAL(ReportCloseWindows()),pShowimagebaseUI,SLOT(close())); pShowimagebaseUI->ShowOverviewGray(); } return true; }
void ReportEncodingError(Lexer *lexer, uint code, uint c) { char buf[32]; lexer->warnings++; if (ShowWarnings) { ReportPosition(lexer); if (code == WINDOWS_CHARS) { NtoS(c, buf); lexer->badChars |= WINDOWS_CHARS; tidy_out(lexer->errout, "Warning: replacing illegal character code %s", buf); } tidy_out(lexer->errout, "\n"); } }
void ReportError(Lexer *lexer, Node *element, Node *node, uint code) { lexer->warnings++; /* keep quiet after 6 errors */ if (lexer->errors > 6) return; lexer->errors++; ReportPosition(lexer); if (code == SUSPECTED_MISSING_QUOTE) { tidy_out(lexer->errout, "Error: missing quotemark for attribute value"); } else if (code == DUPLICATE_FRAMESET) { tidy_out(lexer->errout, "Error: repeated FRAMESET element"); } else if (code == UNKNOWN_ELEMENT) { tidy_out(lexer->errout, "Error: "); ReportTag(lexer, node); tidy_out(lexer->errout, " is not recognized!"); } else if (code == UNEXPECTED_ENDTAG) /* generated by XML docs */ { tidy_out(lexer->errout, "Warning: unexpected </%s>", node->element); if (element) tidy_out(lexer->errout, " in <%s>", element->element); } tidy_out(lexer->errout, "\n"); }
void ReportEntityError(Lexer *lexer, uint code, char *entity, int c) { lexer->warnings++; if (ShowWarnings) { ReportPosition(lexer); if (code == MISSING_SEMICOLON) { tidy_out(lexer->errout, "Warning: entity \"%s\" doesn't end in ';'", entity); } else if (code == UNKNOWN_ENTITY) { tidy_out(lexer->errout, "Warning: unescaped & or unknown entity \"%s\"", entity); } else if (code == UNESCAPED_AMPERSAND) { tidy_out(lexer->errout, "Warning: unescaped & which should be written as &"); } tidy_out(lexer->errout, "\n"); } }
static void messagePos( TidyDocImpl* doc, TidyReportLevel level, uint code, int line, int col, ctmbstr msg, va_list args ) { enum { sizeMessageBuf=2048 }; char *messageBuf = TidyDocAlloc(doc,sizeMessageBuf); Bool go = UpdateCount( doc, level ); if ( go ) { va_list args_copy; va_copy(args_copy, args); TY_(tmbvsnprintf)(messageBuf, sizeMessageBuf, msg, args); if ( doc->mssgFilt ) { TidyDoc tdoc = tidyImplToDoc( doc ); go = doc->mssgFilt( tdoc, level, line, col, messageBuf ); } if ( doc->mssgFilt2 ) { /* mssgFilt2 is intended to allow LibTidy users to localize messages via their own means by providing a key string and the parameters to fill it. For the key string to remain consistent, we have to ensure that we only ever return the built-in English version of this string. */ TidyDoc tdoc = tidyImplToDoc( doc ); go = go | doc->mssgFilt2( tdoc, level, line, col, tidyDefaultString(code), args_copy ); } if ( doc->mssgFilt3 ) { /* mssgFilt3 is intended to allow LibTidy users to localize messages via their own means by providing a key string and the parameters to fill it. */ TidyDoc tdoc = tidyImplToDoc( doc ); go = go | doc->mssgFilt3( tdoc, level, line, col, tidyErrorCodeAsString(code), args_copy ); } } if ( go ) { enum { sizeBuf=1024 }; char *buf = TidyDocAlloc(doc,sizeBuf); const char *cp; if ( line > 0 && col > 0 ) { ReportPosition(doc, line, col, buf, sizeBuf); #if !defined(NDEBUG) && defined(_MSC_VER) SPRTF("%s",buf); #endif for ( cp = buf; *cp; ++cp ) TY_(WriteChar)( *cp, doc->errout ); } LevelPrefix( level, buf, sizeBuf ); #if !defined(NDEBUG) && defined(_MSC_VER) SPRTF("%s",buf); SPRTF("%s\n",messageBuf); #else for ( cp = buf; *cp; ++cp ) TY_(WriteChar)( *cp, doc->errout ); for ( cp = messageBuf; *cp; ++cp ) TY_(WriteChar)( *cp, doc->errout ); TY_(WriteChar)( '\n', doc->errout ); #endif TidyDocFree(doc, buf); } TidyDocFree(doc, messageBuf); }
static void messagePos( TidyDocImpl* doc, TidyReportLevel level, uint code, int line, int col, ctmbstr msg, va_list args ) { enum { sizeMessageBuf=2048 }; char *messageBuf = TidyDocAlloc(doc,sizeMessageBuf); Bool go = UpdateCount( doc, level ); if ( go ) { va_list args_copy; va_copy(args_copy, args); TY_(tmbvsnprintf)(messageBuf, sizeMessageBuf, msg, args_copy); if ( doc->mssgFilt ) { TidyDoc tdoc = tidyImplToDoc( doc ); go = doc->mssgFilt( tdoc, level, line, col, messageBuf ); } if ( doc->mssgFilt2 ) { /* mssgFilt2 is intended to allow LibTidy users to localize messages via their own means by providing a key string and the parameters to fill it. For the key string to remain consistent, we have to ensure that we only ever return the built-in English version of this string. */ TidyDoc tdoc = tidyImplToDoc( doc ); va_end(args_copy); va_copy(args_copy, args); go = go | doc->mssgFilt2( tdoc, level, line, col, tidyDefaultString(code), args_copy ); } if ( doc->mssgFilt3 ) { /* mssgFilt3 is intended to allow LibTidy users to localize messages via their own means by providing a key string and the parameters to fill it. */ TidyDoc tdoc = tidyImplToDoc( doc ); va_end(args_copy); va_copy(args_copy, args); go = go | doc->mssgFilt3( tdoc, level, line, col, tidyErrorCodeAsString(code), args_copy ); } va_end(args_copy); } if ( go ) { enum { sizeBuf=1024 }; TidyOutputSink *outp = &doc->errout->sink; char *buf = (char *)TidyDocAlloc(doc,sizeBuf); const char *cp; byte b; if ( line > 0 && col > 0 ) { ReportPosition(doc, line, col, buf, sizeBuf); for ( cp = buf; *cp; ++cp ) { b = (*cp & 0xff); outp->putByte( outp->sinkData, b ); } } LevelPrefix( level, buf, sizeBuf ); for ( cp = buf; *cp; ++cp ) { b = (*cp & 0xff); outp->putByte( outp->sinkData, b ); } for ( cp = messageBuf; *cp; ++cp ) { b = (*cp & 0xff); outp->putByte( outp->sinkData, b ); } TY_(WriteChar)( '\n', doc->errout ); TidyDocFree(doc, buf); } TidyDocFree(doc, messageBuf); }
void ReportWarning(Lexer *lexer, Node *element, Node *node, uint code) { lexer->warnings++; /* keep quiet after 6 errors */ if (lexer->errors > 6) return; if (ShowWarnings) { /* on end of file adjust reported position to end of input */ if (code == UNEXPECTED_END_OF_FILE) { lexer->lines = lexer->in->curline; lexer->columns = lexer->in->curcol; } ReportPosition(lexer); if (code == MISSING_ENDTAG_FOR) tidy_out(lexer->errout, "Warning: missing </%s>", element->element); else if (code == MISSING_ENDTAG_BEFORE) { tidy_out(lexer->errout, "Warning: missing </%s> before ", element->element); ReportTag(lexer, node); } else if (code == DISCARDING_UNEXPECTED) { tidy_out(lexer->errout, "Warning: discarding unexpected "); ReportTag(lexer, node); } else if (code == NESTED_EMPHASIS) { tidy_out(lexer->errout, "Warning: nested emphasis "); ReportTag(lexer, node); } else if (code == COERCE_TO_ENDTAG) { tidy_out(lexer->errout, "Warning: <%s> is probably intended as </%s>", node->element, node->element); } else if (code == NON_MATCHING_ENDTAG) { tidy_out(lexer->errout, "Warning: replacing unexpected "); ReportTag(lexer, node); tidy_out(lexer->errout, " by </%s>", element->element); } else if (code == TAG_NOT_ALLOWED_IN) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " isn't allowed in <%s> elements", element->element); } else if (code == DOCTYPE_AFTER_TAGS) { tidy_out(lexer->errout, "Warning: <!DOCTYPE> isn't allowed after elements"); } else if (code == MISSING_STARTTAG) tidy_out(lexer->errout, "Warning: missing <%s>", node->element); else if (code == UNEXPECTED_ENDTAG) { tidy_out(lexer->errout, "Warning: unexpected </%s>", node->element); if (element) tidy_out(lexer->errout, " in <%s>", element->element); } else if (code == TOO_MANY_ELEMENTS) { tidy_out(lexer->errout, "Warning: too many %s elements", node->element); if (element) tidy_out(lexer->errout, " in <%s>", element->element); } else if (code == USING_BR_INPLACE_OF) { tidy_out(lexer->errout, "Warning: using <br> in place of "); ReportTag(lexer, node); } else if (code == INSERTING_TAG) tidy_out(lexer->errout, "Warning: inserting implicit <%s>", node->element); else if (code == CANT_BE_NESTED) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " can't be nested"); } else if (code == PROPRIETARY_ELEMENT) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " is not approved by W3C"); if (node->tag == tag_layer) lexer->badLayout |= USING_LAYER; else if (node->tag == tag_spacer) lexer->badLayout |= USING_SPACER; else if (node->tag == tag_nobr) lexer->badLayout |= USING_NOBR; } else if (code == OBSOLETE_ELEMENT) { if (element->tag && (element->tag->model & CM_OBSOLETE)) tidy_out(lexer->errout, "Warning: replacing obsolete element "); else tidy_out(lexer->errout, "Warning: replacing element "); ReportTag(lexer, element); tidy_out(lexer->errout, " by "); ReportTag(lexer, node); } else if (code == TRIM_EMPTY_ELEMENT) { tidy_out(lexer->errout, "Warning: trimming empty "); ReportTag(lexer, element); } else if (code == MISSING_TITLE_ELEMENT) tidy_out(lexer->errout, "Warning: inserting missing 'title' element"); else if (code == ILLEGAL_NESTING) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, element); tidy_out(lexer->errout, " shouldn't be nested"); } else if (code == NOFRAMES_CONTENT) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " not inside 'noframes' element"); } else if (code == INCONSISTENT_VERSION) { tidy_out(lexer->errout, "Warning: html doctype doesn't match content"); } else if (code == MALFORMED_DOCTYPE) { tidy_out(lexer->errout, "Warning: expected \"html PUBLIC\" or \"html SYSTEM\""); } else if (code == CONTENT_AFTER_BODY) { tidy_out(lexer->errout, "Warning: content occurs after end of body"); } else if (code == MALFORMED_COMMENT) { tidy_out(lexer->errout, "Warning: adjacent hyphens within comment"); } else if (code == BAD_COMMENT_CHARS) { tidy_out(lexer->errout, "Warning: expecting -- or >"); } else if (code == BAD_XML_COMMENT) { tidy_out(lexer->errout, "Warning: XML comments can't contain --"); } else if (code == BAD_CDATA_CONTENT) { tidy_out(lexer->errout, "Warning: '<' + '/' + letter not allowed here"); } else if (code == INCONSISTENT_NAMESPACE) { tidy_out(lexer->errout, "Warning: html namespace doesn't match content"); } else if (code == DTYPE_NOT_UPPER_CASE) { tidy_out(lexer->errout, "Warning: SYSTEM, PUBLIC, W3C, DTD, EN must be upper case"); } else if (code == UNEXPECTED_END_OF_FILE) { tidy_out(lexer->errout, "Warning: unexpected end of file"); ReportTag(lexer, element); } tidy_out(lexer->errout, "\n"); } }
void ReportAttrError(Lexer *lexer, Node *node, char *attr, uint code) { lexer->warnings++; /* keep quiet after 6 errors */ if (lexer->errors > 6) return; if (ShowWarnings) { /* on end of file adjust reported position to end of input */ if (code == UNEXPECTED_END_OF_FILE) { lexer->lines = lexer->in->curline; lexer->columns = lexer->in->curcol; } ReportPosition(lexer); if (code == UNKNOWN_ATTRIBUTE) tidy_out(lexer->errout, "Warning: unknown attribute \"%s\"", attr); else if (code == MISSING_ATTRIBUTE) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " lacks \"%s\" attribute", attr); } else if (code == MISSING_ATTR_VALUE) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " attribute \"%s\" lacks value", attr); } else if (code == MISSING_IMAGEMAP) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " should use client-side image map"); lexer->badAccess |= MISSING_IMAGE_MAP; } else if (code == BAD_ATTRIBUTE_VALUE) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " unknown attribute value \"%s\"", attr); } else if (code == XML_ATTRIBUTE_VALUE) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " has XML attribute \"%s\"", attr); } else if (code == UNEXPECTED_GT) { tidy_out(lexer->errout, "Error: "); ReportTag(lexer, node); tidy_out(lexer->errout, " missing '>' for end of tag"); lexer->errors++;; } else if (code == UNEXPECTED_QUOTEMARK) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " unexpected or duplicate quote mark"); } else if (code == REPEATED_ATTRIBUTE) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " repeated attribute \"%s\"", attr); } else if (code == PROPRIETARY_ATTR_VALUE) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " proprietary attribute value \"%s\"", attr); } else if (code == UNEXPECTED_END_OF_FILE) { tidy_out(lexer->errout, "Warning: end of file while parsing attributes"); } else if (code == ID_NAME_MISMATCH) { tidy_out(lexer->errout, "Warning: "); ReportTag(lexer, node); tidy_out(lexer->errout, " id and name attribute value mismatch"); } tidy_out(lexer->errout, "\n"); } else if (code == UNEXPECTED_GT) { ReportPosition(lexer); tidy_out(lexer->errout, "Error: "); ReportTag(lexer, node); tidy_out(lexer->errout, " missing '>' for end of tag\n"); lexer->errors++;; } }