mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:47:45 +00:00
HexEditor: Use the constructor pattern
This commit is contained in:
parent
a621b5f015
commit
b1d8404c92
3 changed files with 13 additions and 4 deletions
|
@ -70,10 +70,18 @@ bool HexDocumentMemory::write_to_file(NonnullRefPtr<Core::File> file)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrorOr<NonnullOwnPtr<HexDocumentFile>> HexDocumentFile::create(NonnullRefPtr<Core::File> file)
|
||||||
|
{
|
||||||
|
auto document = TRY(adopt_nonnull_own_or_enomem(new HexDocumentFile(move(file))));
|
||||||
|
// FIXME: Remove this hackery
|
||||||
|
document->set_file(move(document->m_file));
|
||||||
|
|
||||||
|
return document;
|
||||||
|
}
|
||||||
|
|
||||||
HexDocumentFile::HexDocumentFile(NonnullRefPtr<Core::File> file)
|
HexDocumentFile::HexDocumentFile(NonnullRefPtr<Core::File> file)
|
||||||
: m_file(file)
|
: m_file(file)
|
||||||
{
|
{
|
||||||
set_file(file);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HexDocumentFile::write_to_file()
|
void HexDocumentFile::write_to_file()
|
||||||
|
|
|
@ -58,7 +58,7 @@ private:
|
||||||
|
|
||||||
class HexDocumentFile final : public HexDocument {
|
class HexDocumentFile final : public HexDocument {
|
||||||
public:
|
public:
|
||||||
explicit HexDocumentFile(NonnullRefPtr<Core::File> file);
|
static ErrorOr<NonnullOwnPtr<HexDocumentFile>> create(NonnullRefPtr<Core::File> file);
|
||||||
virtual ~HexDocumentFile() = default;
|
virtual ~HexDocumentFile() = default;
|
||||||
|
|
||||||
HexDocumentFile(HexDocumentFile&&) = default;
|
HexDocumentFile(HexDocumentFile&&) = default;
|
||||||
|
@ -75,6 +75,7 @@ public:
|
||||||
void clear_changes() override;
|
void clear_changes() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
explicit HexDocumentFile(NonnullRefPtr<Core::File> file);
|
||||||
void ensure_position_in_buffer(size_t position);
|
void ensure_position_in_buffer(size_t position);
|
||||||
|
|
||||||
NonnullRefPtr<Core::File> m_file;
|
NonnullRefPtr<Core::File> m_file;
|
||||||
|
|
|
@ -65,7 +65,7 @@ ErrorOr<void> HexEditor::open_new_file(size_t size)
|
||||||
|
|
||||||
void HexEditor::open_file(NonnullRefPtr<Core::File> file)
|
void HexEditor::open_file(NonnullRefPtr<Core::File> file)
|
||||||
{
|
{
|
||||||
m_document = make<HexDocumentFile>(file);
|
m_document = HexDocumentFile::create(move(file)).release_value_but_fixme_should_propagate_errors();
|
||||||
set_content_length(m_document->size());
|
set_content_length(m_document->size());
|
||||||
m_position = 0;
|
m_position = 0;
|
||||||
m_cursor_at_low_nibble = false;
|
m_cursor_at_low_nibble = false;
|
||||||
|
@ -146,7 +146,7 @@ bool HexEditor::save_as(NonnullRefPtr<Core::File> new_file)
|
||||||
auto& memory_document = static_cast<HexDocumentMemory&>(*m_document);
|
auto& memory_document = static_cast<HexDocumentMemory&>(*m_document);
|
||||||
if (!memory_document.write_to_file(new_file))
|
if (!memory_document.write_to_file(new_file))
|
||||||
return false;
|
return false;
|
||||||
m_document = make<HexDocumentFile>(new_file);
|
m_document = HexDocumentFile::create(move(new_file)).release_value_but_fixme_should_propagate_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
update();
|
update();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue