summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@serenityos.org>2023-03-15 12:35:00 +0000
committerAndreas Kling <kling@serenityos.org>2023-03-15 14:55:49 +0100
commit6d8f046fd047bca5f476cb48ec42fa9ce4e1d11f (patch)
treeaecd9525c26b5ee79cea0253725b6a395874d3a9 /Userland/Libraries
parent609b6160851109ad881a733e9d9e2e7851553f2a (diff)
downloadserenity-6d8f046fd047bca5f476cb48ec42fa9ce4e1d11f.zip
LibGfx+Userland: Make TextAttributes::underline_style optional
Rather than having a style AND a field saying whether to use the style, just make the style Optional.
Diffstat (limited to 'Userland/Libraries')
-rw-r--r--Userland/Libraries/LibCMake/CMakeCache/SyntaxHighlighter.cpp1
-rw-r--r--Userland/Libraries/LibCMake/SyntaxHighlighter.cpp1
-rw-r--r--Userland/Libraries/LibGUI/TextDocument.cpp3
-rw-r--r--Userland/Libraries/LibGUI/TextEditor.cpp4
-rw-r--r--Userland/Libraries/LibGfx/TextAttributes.h3
-rw-r--r--Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.cpp2
-rw-r--r--Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.cpp2
7 files changed, 6 insertions, 10 deletions
diff --git a/Userland/Libraries/LibCMake/CMakeCache/SyntaxHighlighter.cpp b/Userland/Libraries/LibCMake/CMakeCache/SyntaxHighlighter.cpp
index 2cb7db81a3..f57a209269 100644
--- a/Userland/Libraries/LibCMake/CMakeCache/SyntaxHighlighter.cpp
+++ b/Userland/Libraries/LibCMake/CMakeCache/SyntaxHighlighter.cpp
@@ -54,7 +54,6 @@ void SyntaxHighlighter::rehighlight(Gfx::Palette const& palette)
span.attributes.color = style.color;
span.attributes.bold = style.bold;
if (type == Token::Type::Garbage) {
- span.attributes.underline = true;
span.attributes.underline_color = palette.red();
span.attributes.underline_style = Gfx::TextAttributes::UnderlineStyle::Wavy;
}
diff --git a/Userland/Libraries/LibCMake/SyntaxHighlighter.cpp b/Userland/Libraries/LibCMake/SyntaxHighlighter.cpp
index 60856847db..672e3ff252 100644
--- a/Userland/Libraries/LibCMake/SyntaxHighlighter.cpp
+++ b/Userland/Libraries/LibCMake/SyntaxHighlighter.cpp
@@ -70,7 +70,6 @@ void SyntaxHighlighter::rehighlight(Gfx::Palette const& palette)
span.attributes.color = style.color;
span.attributes.bold = style.bold;
if (type == Token::Type::Garbage) {
- span.attributes.underline = true;
span.attributes.underline_color = palette.red();
span.attributes.underline_style = Gfx::TextAttributes::UnderlineStyle::Wavy;
}
diff --git a/Userland/Libraries/LibGUI/TextDocument.cpp b/Userland/Libraries/LibGUI/TextDocument.cpp
index 3633c2d0f9..8c1b729d8f 100644
--- a/Userland/Libraries/LibGUI/TextDocument.cpp
+++ b/Userland/Libraries/LibGUI/TextDocument.cpp
@@ -1391,9 +1391,8 @@ void TextDocument::merge_span_collections()
merged_span.span.attributes.color = span_and_collection_index.collection_index > last_span_and_collection_index.collection_index ? span.attributes.color : last_span.attributes.color;
merged_span.span.attributes.bold = span.attributes.bold | last_span.attributes.bold;
merged_span.span.attributes.background_color = span.attributes.background_color.has_value() ? span.attributes.background_color.value() : last_span.attributes.background_color;
- merged_span.span.attributes.underline = span.attributes.underline | last_span.attributes.underline;
merged_span.span.attributes.underline_color = span.attributes.underline_color.has_value() ? span.attributes.underline_color.value() : last_span.attributes.underline_color;
- merged_span.span.attributes.underline_style = span.attributes.underline_style;
+ merged_span.span.attributes.underline_style = span.attributes.underline_style.has_value() ? span.attributes.underline_style : last_span.attributes.underline_style;
merged_spans.append(move(merged_span));
if (span.range.end() == last_span.range.end())
diff --git a/Userland/Libraries/LibGUI/TextEditor.cpp b/Userland/Libraries/LibGUI/TextEditor.cpp
index 8a9cf9ee86..7aa47bdc9b 100644
--- a/Userland/Libraries/LibGUI/TextEditor.cpp
+++ b/Userland/Libraries/LibGUI/TextEditor.cpp
@@ -503,7 +503,7 @@ void TextEditor::paint_event(PaintEvent& event)
} else {
painter.draw_text(rect, raw_text, font, alignment, attributes.color);
}
- if (attributes.underline) {
+ if (attributes.underline_style.has_value()) {
auto bottom_left = [&]() {
auto point = rect.bottom_left().translated(0, 1);
@@ -2493,7 +2493,7 @@ void TextEditor::on_search_results(GUI::TextRange current, Vector<GUI::TextRange
span.attributes.color = Color::from_argb(0xff000000); // So text without spans from a highlighter will have color
if (i == m_search_result_index) {
span.attributes.bold = true;
- span.attributes.underline = true;
+ span.attributes.underline_style = Gfx::TextAttributes::UnderlineStyle::Solid;
}
spans.append(move(span));
}
diff --git a/Userland/Libraries/LibGfx/TextAttributes.h b/Userland/Libraries/LibGfx/TextAttributes.h
index e1f7b4850e..c628d78691 100644
--- a/Userland/Libraries/LibGfx/TextAttributes.h
+++ b/Userland/Libraries/LibGfx/TextAttributes.h
@@ -20,11 +20,10 @@ struct TextAttributes {
Color color;
Optional<Color> background_color {};
- bool underline { false };
bool bold { false };
+ Optional<UnderlineStyle> underline_style {};
Optional<Color> underline_color {};
- UnderlineStyle underline_style { UnderlineStyle::Solid };
};
}
diff --git a/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.cpp b/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
index fc7950edf3..88f67cabb8 100644
--- a/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
+++ b/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
@@ -131,7 +131,7 @@ void SyntaxHighlighter::rehighlight(Palette const& palette)
case Parser::Token::Type::BadUrl:
case Parser::Token::Type::BadString:
// FIXME: Error highlighting color in palette?
- highlight(token.start_position().line, token.start_position().column, token.end_position().line, token.end_position().column, { Color(Color::NamedColor::Red), {}, false, true }, token.type());
+ highlight(token.start_position().line, token.start_position().column, token.end_position().line, token.end_position().column, { Color(Color::NamedColor::Red), {}, true }, token.type());
break;
case Parser::Token::Type::EndOfFile:
diff --git a/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.cpp b/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
index 7b94272def..782750ff46 100644
--- a/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
+++ b/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
@@ -153,7 +153,7 @@ void SyntaxHighlighter::rehighlight(Palette const& palette)
token->start_position().column + token_start_offset,
token->start_position().line,
token->start_position().column + token_start_offset + token->tag_name().length(),
- { palette.syntax_keyword(), {}, false, true },
+ { palette.syntax_keyword(), {}, true },
token->is_start_tag() ? AugmentedTokenKind::OpenTag : AugmentedTokenKind::CloseTag);
token->for_each_attribute([&](auto& attribute) {