1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-24 20:55:07 +00:00

LibGUI: Convert TextEditor to east-const style

This commit is contained in:
Timothy 2021-07-09 21:34:20 +10:00 committed by Andreas Kling
parent a3c8005546
commit 73226a2861
2 changed files with 41 additions and 41 deletions

View file

@ -101,7 +101,7 @@ void TextEditor::create_actions()
m_select_all_action = CommonActions::make_select_all_action([this](auto&) { select_all(); }, this); m_select_all_action = CommonActions::make_select_all_action([this](auto&) { select_all(); }, this);
} }
void TextEditor::set_text(const StringView& text) void TextEditor::set_text(StringView const& text)
{ {
m_selection.clear(); m_selection.clear();
@ -133,7 +133,7 @@ void TextEditor::update_content_size()
set_size_occupied_by_fixed_elements({ ruler_width() + gutter_width(), 0 }); set_size_occupied_by_fixed_elements({ ruler_width() + gutter_width(), 0 });
} }
TextPosition TextEditor::text_position_at_content_position(const Gfx::IntPoint& content_position) const TextPosition TextEditor::text_position_at_content_position(Gfx::IntPoint const& content_position) const
{ {
auto position = content_position; auto position = content_position;
if (is_single_line() && icon()) if (is_single_line() && icon())
@ -161,7 +161,7 @@ TextPosition TextEditor::text_position_at_content_position(const Gfx::IntPoint&
size_t column_index = 0; size_t column_index = 0;
switch (m_text_alignment) { switch (m_text_alignment) {
case Gfx::TextAlignment::CenterLeft: case Gfx::TextAlignment::CenterLeft:
for_each_visual_line(line_index, [&](const Gfx::IntRect& rect, auto& view, size_t start_of_line, [[maybe_unused]] bool is_last_visual_line) { for_each_visual_line(line_index, [&](Gfx::IntRect const& rect, auto& view, size_t start_of_line, [[maybe_unused]] bool is_last_visual_line) {
if (is_multi_line() && !rect.contains_vertically(position.y()) && !is_last_visual_line) if (is_multi_line() && !rect.contains_vertically(position.y()) && !is_last_visual_line)
return IterationDecision::Continue; return IterationDecision::Continue;
column_index = start_of_line; column_index = start_of_line;
@ -194,7 +194,7 @@ TextPosition TextEditor::text_position_at_content_position(const Gfx::IntPoint&
return { line_index, column_index }; return { line_index, column_index };
} }
TextPosition TextEditor::text_position_at(const Gfx::IntPoint& widget_position) const TextPosition TextEditor::text_position_at(Gfx::IntPoint const& widget_position) const
{ {
auto content_position = widget_position; auto content_position = widget_position;
content_position.translate_by(horizontal_scrollbar().value(), vertical_scrollbar().value()); content_position.translate_by(horizontal_scrollbar().value(), vertical_scrollbar().value());
@ -505,7 +505,7 @@ void TextEditor::paint_event(PaintEvent& event)
size_t selection_end_column_within_line = selection.end().line() == line_index ? selection.end().column() : line.length(); size_t selection_end_column_within_line = selection.end().line() == line_index ? selection.end().column() : line.length();
size_t visual_line_index = 0; size_t visual_line_index = 0;
for_each_visual_line(line_index, [&](const Gfx::IntRect& visual_line_rect, auto& visual_line_text, size_t start_of_visual_line, [[maybe_unused]] bool is_last_visual_line) { for_each_visual_line(line_index, [&](Gfx::IntRect const& visual_line_rect, auto& visual_line_text, size_t start_of_visual_line, [[maybe_unused]] bool is_last_visual_line) {
if (is_multi_line() && line_index == m_cursor.line()) if (is_multi_line() && line_index == m_cursor.line())
painter.fill_rect(visual_line_rect, widget_background_color.darkened(0.9f)); painter.fill_rect(visual_line_rect, widget_background_color.darkened(0.9f));
if constexpr (TEXTEDITOR_DEBUG) if constexpr (TEXTEDITOR_DEBUG)
@ -975,13 +975,13 @@ void TextEditor::update_selection(bool is_selecting)
} }
} }
int TextEditor::content_x_for_position(const TextPosition& position) const int TextEditor::content_x_for_position(TextPosition const& position) const
{ {
auto& line = this->line(position.line()); auto& line = this->line(position.line());
int x_offset = 0; int x_offset = 0;
switch (m_text_alignment) { switch (m_text_alignment) {
case Gfx::TextAlignment::CenterLeft: case Gfx::TextAlignment::CenterLeft:
for_each_visual_line(position.line(), [&](const Gfx::IntRect&, auto& visual_line_view, size_t start_of_visual_line, bool is_last_visual_line) { for_each_visual_line(position.line(), [&](Gfx::IntRect const&, auto& visual_line_view, size_t start_of_visual_line, bool is_last_visual_line) {
size_t offset_in_visual_line = position.column() - start_of_visual_line; size_t offset_in_visual_line = position.column() - start_of_visual_line;
auto before_line_end = is_last_visual_line ? (offset_in_visual_line <= visual_line_view.length()) : (offset_in_visual_line < visual_line_view.length()); auto before_line_end = is_last_visual_line ? (offset_in_visual_line <= visual_line_view.length()) : (offset_in_visual_line < visual_line_view.length());
if (position.column() >= start_of_visual_line && before_line_end) { if (position.column() >= start_of_visual_line && before_line_end) {
@ -1025,7 +1025,7 @@ Utf32View TextEditor::substitution_code_point_view(size_t length) const
return Utf32View { m_substitution_string_data->data(), length }; return Utf32View { m_substitution_string_data->data(), length };
} }
Gfx::IntRect TextEditor::content_rect_for_position(const TextPosition& position) const Gfx::IntRect TextEditor::content_rect_for_position(TextPosition const& position) const
{ {
if (!position.is_valid()) if (!position.is_valid())
return {}; return {};
@ -1041,7 +1041,7 @@ Gfx::IntRect TextEditor::content_rect_for_position(const TextPosition& position)
} }
Gfx::IntRect rect; Gfx::IntRect rect;
for_each_visual_line(position.line(), [&](const Gfx::IntRect& visual_line_rect, auto& view, size_t start_of_visual_line, bool is_last_visual_line) { for_each_visual_line(position.line(), [&](Gfx::IntRect const& visual_line_rect, auto& view, size_t start_of_visual_line, bool is_last_visual_line) {
auto before_line_end = is_last_visual_line ? ((position.column() - start_of_visual_line) <= view.length()) : ((position.column() - start_of_visual_line) < view.length()); auto before_line_end = is_last_visual_line ? ((position.column() - start_of_visual_line) <= view.length()) : ((position.column() - start_of_visual_line) < view.length());
if (position.column() >= start_of_visual_line && before_line_end) { if (position.column() >= start_of_visual_line && before_line_end) {
// NOTE: We have to subtract the horizontal padding here since it's part of the visual line rect // NOTE: We have to subtract the horizontal padding here since it's part of the visual line rect
@ -1075,7 +1075,7 @@ Gfx::IntRect TextEditor::line_widget_rect(size_t line_index) const
return rect; return rect;
} }
void TextEditor::scroll_position_into_view(const TextPosition& position) void TextEditor::scroll_position_into_view(TextPosition const& position)
{ {
auto rect = content_rect_for_position(position); auto rect = content_rect_for_position(position);
if (position.column() == 0) if (position.column() == 0)
@ -1137,7 +1137,7 @@ void TextEditor::set_cursor(size_t line, size_t column)
set_cursor({ line, column }); set_cursor({ line, column });
} }
void TextEditor::set_cursor(const TextPosition& a_position) void TextEditor::set_cursor(TextPosition const& a_position)
{ {
VERIFY(!lines().is_empty()); VERIFY(!lines().is_empty());
@ -1321,7 +1321,7 @@ void TextEditor::delete_text_range(TextRange range)
update(); update();
} }
void TextEditor::insert_at_cursor_or_replace_selection(const StringView& text) void TextEditor::insert_at_cursor_or_replace_selection(StringView const& text)
{ {
ReflowDeferrer defer(*this); ReflowDeferrer defer(*this);
VERIFY(is_editable()); VERIFY(is_editable());
@ -1530,7 +1530,7 @@ void TextEditor::theme_change_event(ThemeChangeEvent& event)
m_needs_rehighlight = true; m_needs_rehighlight = true;
} }
void TextEditor::set_selection(const TextRange& selection) void TextEditor::set_selection(TextRange const& selection)
{ {
if (m_selection == selection) if (m_selection == selection)
return; return;
@ -1581,7 +1581,7 @@ void TextEditor::ensure_cursor_is_valid()
size_t TextEditor::visual_line_containing(size_t line_index, size_t column) const size_t TextEditor::visual_line_containing(size_t line_index, size_t column) const
{ {
size_t visual_line_index = 0; size_t visual_line_index = 0;
for_each_visual_line(line_index, [&](const Gfx::IntRect&, auto& view, size_t start_of_visual_line, [[maybe_unused]] bool is_last_visual_line) { for_each_visual_line(line_index, [&](Gfx::IntRect const&, auto& view, size_t start_of_visual_line, [[maybe_unused]] bool is_last_visual_line) {
if (column >= start_of_visual_line && ((column - start_of_visual_line) < view.length())) if (column >= start_of_visual_line && ((column - start_of_visual_line) < view.length()))
return IterationDecision::Break; return IterationDecision::Break;
++visual_line_index; ++visual_line_index;
@ -1761,7 +1761,7 @@ void TextEditor::document_did_set_text()
document_did_change(); document_did_change();
} }
void TextEditor::document_did_set_cursor(const TextPosition& position) void TextEditor::document_did_set_cursor(TextPosition const& position)
{ {
set_cursor(position); set_cursor(position);
} }
@ -1794,7 +1794,7 @@ void TextEditor::rehighlight_if_needed()
m_needs_rehighlight = false; m_needs_rehighlight = false;
} }
const Syntax::Highlighter* TextEditor::syntax_highlighter() const Syntax::Highlighter const* TextEditor::syntax_highlighter() const
{ {
return m_highlighter.ptr(); return m_highlighter.ptr();
} }
@ -1811,7 +1811,7 @@ void TextEditor::set_syntax_highlighter(OwnPtr<Syntax::Highlighter> highlighter)
document().set_spans({}); document().set_spans({});
} }
const AutocompleteProvider* TextEditor::autocomplete_provider() const AutocompleteProvider const* TextEditor::autocomplete_provider() const
{ {
return m_autocomplete_provider.ptr(); return m_autocomplete_provider.ptr();
} }
@ -1830,7 +1830,7 @@ void TextEditor::set_autocomplete_provider(OwnPtr<AutocompleteProvider>&& provid
m_autocomplete_box->close(); m_autocomplete_box->close();
} }
const EditingEngine* TextEditor::editing_engine() const EditingEngine const* TextEditor::editing_engine() const
{ {
return m_editing_engine.ptr(); return m_editing_engine.ptr();
} }
@ -1861,7 +1861,7 @@ int TextEditor::fixed_glyph_width() const
return font().glyph_width(' '); return font().glyph_width(' ');
} }
void TextEditor::set_icon(const Gfx::Bitmap* icon) void TextEditor::set_icon(Gfx::Bitmap const* icon)
{ {
if (m_icon == icon) if (m_icon == icon)
return; return;

View file

@ -47,17 +47,17 @@ public:
virtual ~TextEditor() override; virtual ~TextEditor() override;
const TextDocument& document() const { return *m_document; } TextDocument const& document() const { return *m_document; }
TextDocument& document() { return *m_document; } TextDocument& document() { return *m_document; }
bool has_document() const { return !!m_document; } bool has_document() const { return !!m_document; }
virtual void set_document(TextDocument&); virtual void set_document(TextDocument&);
const String& placeholder() const { return m_placeholder; } String const& placeholder() const { return m_placeholder; }
void set_placeholder(const StringView& placeholder) { m_placeholder = placeholder; } void set_placeholder(StringView const& placeholder) { m_placeholder = placeholder; }
TextDocumentLine& current_line() { return line(m_cursor.line()); } TextDocumentLine& current_line() { return line(m_cursor.line()); }
const TextDocumentLine& current_line() const { return line(m_cursor.line()); } TextDocumentLine const& current_line() const { return line(m_cursor.line()); }
void set_visualize_trailing_whitespace(bool); void set_visualize_trailing_whitespace(bool);
bool visualize_trailing_whitespace() const { return m_visualize_trailing_whitespace; } bool visualize_trailing_whitespace() const { return m_visualize_trailing_whitespace; }
@ -94,34 +94,34 @@ public:
bool is_gutter_visible() const { return m_gutter_visible; } bool is_gutter_visible() const { return m_gutter_visible; }
void set_gutter_visible(bool); void set_gutter_visible(bool);
void set_icon(const Gfx::Bitmap*); void set_icon(Gfx::Bitmap const*);
const Gfx::Bitmap* icon() const { return m_icon; } Gfx::Bitmap const* icon() const { return m_icon; }
Function<void()> on_cursor_change; Function<void()> on_cursor_change;
Function<void()> on_selection_change; Function<void()> on_selection_change;
Function<void()> on_focusin; Function<void()> on_focusin;
Function<void()> on_focusout; Function<void()> on_focusout;
void set_text(const StringView&); void set_text(StringView const&);
void scroll_cursor_into_view(); void scroll_cursor_into_view();
void scroll_position_into_view(const TextPosition&); void scroll_position_into_view(TextPosition const&);
size_t line_count() const { return document().line_count(); } size_t line_count() const { return document().line_count(); }
TextDocumentLine& line(size_t index) { return document().line(index); } TextDocumentLine& line(size_t index) { return document().line(index); }
const TextDocumentLine& line(size_t index) const { return document().line(index); } TextDocumentLine const& line(size_t index) const { return document().line(index); }
NonnullOwnPtrVector<TextDocumentLine>& lines() { return document().lines(); } NonnullOwnPtrVector<TextDocumentLine>& lines() { return document().lines(); }
const NonnullOwnPtrVector<TextDocumentLine>& lines() const { return document().lines(); } NonnullOwnPtrVector<TextDocumentLine> const& lines() const { return document().lines(); }
int line_spacing() const { return m_line_spacing; } int line_spacing() const { return m_line_spacing; }
int line_height() const; int line_height() const;
TextPosition cursor() const { return m_cursor; } TextPosition cursor() const { return m_cursor; }
TextRange normalized_selection() const { return m_selection.normalized(); } TextRange normalized_selection() const { return m_selection.normalized(); }
void insert_at_cursor_or_replace_selection(const StringView&); void insert_at_cursor_or_replace_selection(StringView const&);
bool write_to_file(String const& path); bool write_to_file(String const& path);
bool write_to_file_and_close(int fd); bool write_to_file_and_close(int fd);
bool has_selection() const { return m_selection.is_valid(); } bool has_selection() const { return m_selection.is_valid(); }
String selected_text() const; String selected_text() const;
size_t number_of_selected_words() const; size_t number_of_selected_words() const;
void set_selection(const TextRange&); void set_selection(TextRange const&);
void clear_selection(); void clear_selection();
bool can_undo() const { return document().can_undo(); } bool can_undo() const { return document().can_undo(); }
bool can_redo() const { return document().can_redo(); } bool can_redo() const { return document().can_redo(); }
@ -163,15 +163,15 @@ public:
void set_cursor_and_focus_line(size_t line, size_t column); void set_cursor_and_focus_line(size_t line, size_t column);
void set_cursor(size_t line, size_t column); void set_cursor(size_t line, size_t column);
virtual void set_cursor(const TextPosition&); virtual void set_cursor(TextPosition const&);
const Syntax::Highlighter* syntax_highlighter() const; Syntax::Highlighter const* syntax_highlighter() const;
void set_syntax_highlighter(OwnPtr<Syntax::Highlighter>); void set_syntax_highlighter(OwnPtr<Syntax::Highlighter>);
const AutocompleteProvider* autocomplete_provider() const; AutocompleteProvider const* autocomplete_provider() const;
void set_autocomplete_provider(OwnPtr<AutocompleteProvider>&&); void set_autocomplete_provider(OwnPtr<AutocompleteProvider>&&);
const EditingEngine* editing_engine() const; EditingEngine const* editing_engine() const;
void set_editing_engine(OwnPtr<EditingEngine>); void set_editing_engine(OwnPtr<EditingEngine>);
bool should_autocomplete_automatically() const { return m_autocomplete_timer; } bool should_autocomplete_automatically() const { return m_autocomplete_timer; }
@ -193,7 +193,7 @@ public:
int number_of_visible_lines() const; int number_of_visible_lines() const;
Gfx::IntRect cursor_content_rect() const; Gfx::IntRect cursor_content_rect() const;
TextPosition text_position_at_content_position(const Gfx::IntPoint&) const; TextPosition text_position_at_content_position(Gfx::IntPoint const&) const;
void delete_text_range(TextRange); void delete_text_range(TextRange);
@ -219,10 +219,10 @@ protected:
Gfx::IntRect ruler_content_rect(size_t line) const; Gfx::IntRect ruler_content_rect(size_t line) const;
Gfx::IntRect gutter_content_rect(size_t line) const; Gfx::IntRect gutter_content_rect(size_t line) const;
TextPosition text_position_at(const Gfx::IntPoint&) const; TextPosition text_position_at(Gfx::IntPoint const&) const;
bool ruler_visible() const { return m_ruler_visible; } bool ruler_visible() const { return m_ruler_visible; }
bool gutter_visible() const { return m_gutter_visible; } bool gutter_visible() const { return m_gutter_visible; }
Gfx::IntRect content_rect_for_position(const TextPosition&) const; Gfx::IntRect content_rect_for_position(TextPosition const&) const;
int ruler_width() const; int ruler_width() const;
int gutter_width() const; int gutter_width() const;
@ -236,12 +236,12 @@ private:
virtual void document_did_remove_all_lines() override; virtual void document_did_remove_all_lines() override;
virtual void document_did_change() override; virtual void document_did_change() override;
virtual void document_did_set_text() override; virtual void document_did_set_text() override;
virtual void document_did_set_cursor(const TextPosition&) override; virtual void document_did_set_cursor(TextPosition const&) override;
virtual void document_did_update_undo_stack() override; virtual void document_did_update_undo_stack() override;
// ^Syntax::HighlighterClient // ^Syntax::HighlighterClient
virtual Vector<TextDocumentSpan>& spans() final { return document().spans(); } virtual Vector<TextDocumentSpan>& spans() final { return document().spans(); }
virtual const Vector<TextDocumentSpan>& spans() const final { return document().spans(); } virtual Vector<TextDocumentSpan> const& spans() const final { return document().spans(); }
virtual void highlighter_did_set_spans(Vector<TextDocumentSpan> spans) final { document().set_spans(move(spans)); } virtual void highlighter_did_set_spans(Vector<TextDocumentSpan> spans) final { document().set_spans(move(spans)); }
virtual void set_span_at_index(size_t index, TextDocumentSpan span) final { document().set_span_at_index(index, move(span)); } virtual void set_span_at_index(size_t index, TextDocumentSpan span) final { document().set_span_at_index(index, move(span)); }
virtual void highlighter_did_request_update() final { update(); } virtual void highlighter_did_request_update() final { update(); }
@ -284,7 +284,7 @@ private:
Gfx::IntRect line_content_rect(size_t item_index) const; Gfx::IntRect line_content_rect(size_t item_index) const;
Gfx::IntRect line_widget_rect(size_t line_index) const; Gfx::IntRect line_widget_rect(size_t line_index) const;
void delete_selection(); void delete_selection();
int content_x_for_position(const TextPosition&) const; int content_x_for_position(TextPosition const&) const;
Gfx::IntRect ruler_rect_in_inner_coordinates() const; Gfx::IntRect ruler_rect_in_inner_coordinates() const;
Gfx::IntRect gutter_rect_in_inner_coordinates() const; Gfx::IntRect gutter_rect_in_inner_coordinates() const;
Gfx::IntRect visible_text_rect_in_inner_coordinates() const; Gfx::IntRect visible_text_rect_in_inner_coordinates() const;