Исправлен белый экран предпросмотра: CodeBlock отдельный компонент

- CodeBlock.qml: Qt.rgba вместо "rgba(...)", убран lineHeight, contentHeight для ScrollView, width via availableWidth
- MarkdownView.qml: ListModel с полными ролями (codeText/highlightedText), delegate без required model, Column anchors.top/left/right, parseBlocks сохраняет codeBlocks
- MdParser: parseBlocks с QRegularExpression и сохранением codeBlocks, forceDark highlight
- mdparser_test: проверка parseBlocks 3 блока
- ctest 21/21, offscreen/cocoa RUNNING OK, Flora.app 180М
This commit is contained in:
2026-09-01 21:47:40 +03:00
parent b3fa778d88
commit bfd955a3f9
4 changed files with 53 additions and 13 deletions
+10 -2
View File
@@ -111,8 +111,16 @@ int main(int argc, char *argv[])
if (blocks[0].toMap().value("type").toString() != "html") return fail("block 0 type", blocks[0].toMap().value("type").toString());
if (blocks[1].toMap().value("type").toString() != "code") return fail("block 1 type", blocks[1].toMap().value("type").toString());
if (blocks[1].toMap().value("language").toString() != "C++" && blocks[1].toMap().value("language").toString() != "cpp") return fail("block 1 lang", blocks[1].toMap().value("language").toString());
if (!blocks[1].toMap().value("code").toString().contains("int x=1;")) return fail("block 1 code", blocks[1].toMap().value("code").toString());
if (blocks[1].toMap().value("highlighted").toString().isEmpty()) return fail("highlighted empty");
{
QString codeVal = blocks[1].toMap().value("codeText").toString();
if (codeVal.isEmpty()) codeVal = blocks[1].toMap().value("code").toString();
if (!codeVal.contains("int x=1;")) return fail("block 1 code", codeVal);
}
{
QString hl = blocks[1].toMap().value("highlightedText").toString();
if (hl.isEmpty()) hl = blocks[1].toMap().value("highlighted").toString();
if (hl.isEmpty()) return fail("highlighted empty");
}
if (blocks[2].toMap().value("type").toString() != "html") return fail("block 2 type");
std::printf("MDPARSER TEST OK\n");