Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,13 @@ To convert rm files to other formats, you can use [rmc](https://github.com/rickl

### Unreleased

Change in block properties:

- Some SceneInfo values are now optional ([#40](https://github.com/ricklupton/rmscene/issues/40))

New feature:

- Add support for `paper_size` field on some SceneInfo
- Add support for `paper_size` field on some SceneInfo blocks

### v0.6.1

Expand Down
14 changes: 8 additions & 6 deletions src/rmscene/scene_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,15 @@ def version_info(self, _) -> tuple[int, int]:
return (0, 1)

current_layer: LwwValue[CrdtId]
background_visible: LwwValue[bool]
root_document_visible: LwwValue[bool]
background_visible: tp.Optional[LwwValue[bool]]
root_document_visible: tp.Optional[LwwValue[bool]]
paper_size: tp.Optional[tuple[int, int]]

@classmethod
def from_stream(cls, stream: TaggedBlockReader) -> SceneInfo:
current_layer = stream.read_lww_id(1)
background_visible = stream.read_lww_bool(2)
root_document_visible = stream.read_lww_bool(3)
background_visible = stream.read_lww_bool(2) if stream.bytes_remaining_in_block() > 0 else None
root_document_visible = stream.read_lww_bool(3) if stream.bytes_remaining_in_block() > 0 else None
paper_size = stream.read_int_pair(5) if stream.bytes_remaining_in_block() > 0 else None

return SceneInfo(current_layer=current_layer,
Expand All @@ -159,8 +159,10 @@ def from_stream(cls, stream: TaggedBlockReader) -> SceneInfo:

def to_stream(self, writer: TaggedBlockWriter):
writer.write_lww_id(1, self.current_layer)
writer.write_lww_bool(2, self.background_visible)
writer.write_lww_bool(3, self.root_document_visible)
if self.background_visible:
writer.write_lww_bool(2, self.background_visible)
if self.root_document_visible:
writer.write_lww_bool(3, self.root_document_visible)
if self.paper_size:
writer.write_int_pair(5, self.paper_size)

Expand Down