From 26d074e2c1ac63a1381f27e3963867fdee543d88 Mon Sep 17 00:00:00 2001 From: sevonj <100710152+sevonj@users.noreply.github.com> Date: Fri, 20 Feb 2026 16:19:37 +0200 Subject: [PATCH] feat: two-column sidebar --- data/document_preview/meson.build | 4 + data/document_preview/preview-style.xml | 23 ++ data/meson.build | 1 + data/org.scratchmark.Scratchmark.gschema.xml | 9 + data/resources/gresources.xml | 5 +- .../actions/library-sort-asc-symbolic.svg | 38 ++ .../actions/library-sort-desc-symbolic.svg | 38 ++ .../ui/library/document_preview_row.ui | 31 ++ data/resources/ui/library/document_row.ui | 1 - data/resources/ui/library/folder_row.ui | 17 +- data/resources/ui/library/folder_view.ui | 80 ++++ data/resources/ui/library/project_view.ui | 19 - data/resources/ui/window.ui | 83 ++-- src/data/document.rs | 35 +- src/data/folder.rs | 5 + src/data/markdown_buffer/mod.rs | 35 +- src/data/project.rs | 5 + src/data/sort.rs | 27 +- src/main.rs | 42 ++ src/widgets/editor/mod.rs | 31 +- src/widgets/library/document_preview_row.rs | 377 ++++++++++++++++++ src/widgets/library/folder_row.rs | 39 +- src/widgets/library/folder_view.rs | 234 +++++++++++ src/widgets/library/library_view.rs | 105 ++++- src/widgets/library/mod.rs | 4 + src/widgets/library/project_list_box.rs | 212 ++++++++++ src/widgets/library/project_view.rs | 253 ++++-------- src/widgets/window.rs | 158 +++++--- 28 files changed, 1545 insertions(+), 366 deletions(-) create mode 100644 data/document_preview/meson.build create mode 100644 data/document_preview/preview-style.xml create mode 100644 data/resources/icons/scalable/actions/library-sort-asc-symbolic.svg create mode 100644 data/resources/icons/scalable/actions/library-sort-desc-symbolic.svg create mode 100644 data/resources/ui/library/document_preview_row.ui create mode 100644 data/resources/ui/library/folder_view.ui delete mode 100644 data/resources/ui/library/project_view.ui create mode 100644 src/widgets/library/document_preview_row.rs create mode 100644 src/widgets/library/folder_view.rs create mode 100644 src/widgets/library/project_list_box.rs diff --git a/data/document_preview/meson.build b/data/document_preview/meson.build new file mode 100644 index 0000000..6fe0674 --- /dev/null +++ b/data/document_preview/meson.build @@ -0,0 +1,4 @@ +install_data( + 'preview-style.xml', + install_dir: get_option('datadir') / meson.project_name() / 'document_preview', +) \ No newline at end of file diff --git a/data/document_preview/preview-style.xml b/data/document_preview/preview-style.xml new file mode 100644 index 0000000..0d1cb39 --- /dev/null +++ b/data/document_preview/preview-style.xml @@ -0,0 +1,23 @@ + + + sevonj + <_description>Default Theme for Scratchmark + + + + + + + + \ No newline at end of file diff --git a/data/resources/icons/scalable/actions/library-sort-desc-symbolic.svg b/data/resources/icons/scalable/actions/library-sort-desc-symbolic.svg new file mode 100644 index 0000000..b325d22 --- /dev/null +++ b/data/resources/icons/scalable/actions/library-sort-desc-symbolic.svg @@ -0,0 +1,38 @@ + + + + + + + + \ No newline at end of file diff --git a/data/resources/ui/library/document_preview_row.ui b/data/resources/ui/library/document_preview_row.ui new file mode 100644 index 0000000..0d1cdf8 --- /dev/null +++ b/data/resources/ui/library/document_preview_row.ui @@ -0,0 +1,31 @@ + + + + \ No newline at end of file diff --git a/data/resources/ui/library/document_row.ui b/data/resources/ui/library/document_row.ui index ece37f5..00bf425 100644 --- a/data/resources/ui/library/document_row.ui +++ b/data/resources/ui/library/document_row.ui @@ -1,7 +1,6 @@