pfs (0.1.2) experimental; urgency=medium

  [ Arun Mani J ]
  * dir-view: Use the selection model directly
  * dir-view: Use only `GtkSelectionModel` APIs.
    Will make it easier to add a multi-selection model without a lot of if-else based on the model type.
  * dir-view: Move `selection_model` to code.
    Will make it simple to choose the right model based on `multiple` option.
  * dir-view: Allow multiple files to be selected
  * file-selector: Allow multiple files to be selected.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/work_items/23
  * examples: Allow selecting multiple files
  * examples: Use subtitles to display results.
    And join the URIs by newline before displaying.
  * dir-view: Hijack clicks to implement multiselect
    `Gtk.MultiSelection` does not have a native interface to select multiple items on touch UI. On
    devices with keyboard, user can use `Ctrl` etc. So hijack the `pressed` event of grid-item and
    manually select and unselect the items when user clicks on them.
  * grid-item: Show context menu all the time.
    Only disable showing properties because it opens a new window on top of current window which can be
    confusing on portal requests.
  * file-selector: Materialize `multiple` in dir-view
    `PfsDirView` would allow multiple if and only if `request asks multiple && user prefers multiple`.
  * grid-item: Allow to select multiple files.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/work_items/29

 -- Guido Günther <agx@sigxcpu.org>  Sat, 08 Aug 2026 21:44:09 +0200

pfs (0.1.1) experimental; urgency=medium

  [ Achill Gilgenast ]
  * build: Use debug option to detect development versions
    meson's buildtype option contains not only if the build is not using debug,
    but also configures the optimization option.
    Ref: https://mesonbuild.com/Builtin-options.html#details-for-buildtype

  [ Arun Mani J ]
  * file-selector: Watch bookmarks availability too.
    Once the bookmarks have been loaded, we need to synchronize the current directory's bookmark status.
    So add it to the lookup function so GTK calls it when the property changes.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/work_items/28

 -- Guido Günther <agx@sigxcpu.org>  Sat, 27 Jun 2026 16:17:16 +0200

pfs (0.1.0) experimental; urgency=medium

  [ Guido Günther ]
  * packaging: Make sure to depend on the schema
  * file-selector: Add builder pattern.
    Gives more type-safety when building the dialog
  * demo-window: Use file selector builder
  * pfs-open: Use file selector builder
  * tests: Use file selector builder

  [ Gotam Gorabh ]
  * file-props: Add builder pattern
  * grid-items: Use file props builder
  * examples: Use file props builder
  * util: Don't export `stateful_action!` macro.
    It is an internal helper used only by `file_selector`, but `#[macro_export]`
    was leaking it as `pfs::stateful_action` in the public API.
  * tree: Document rust public API
  * ci: Add deploy ci.
    Publish target/doc via gitlab pages
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/issues/4
  * ci: Redirect pages root to crate docs
  * readme: Link to API docs.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/work_items/24

  [ nicole mikołajczyk ]
  * po: Add Polish translation
  * po: Update LINGUAS

  [ Arun Mani J ]
  * tree: Drop `glib_macros` dependency
  * tree: Update dependencies
  * file-selector: Move path-bar here.
    Will allow us to extend the bottom sheet without disturbing the path-bar.
  * places-box: Move the scrolled window here.
    Lets places-box control the scrolling.
  * file-selector: Wrap places-box in `AdwViewStack`
    Will allow us to add more tabs to the sheet. Also add `AdwInlineViewSwitcher`.
  * tree: Reindent UI files
  * places-box: Remove `folder` property.
    No longer required.
  * places-item: Drop the impostor UI file
  * places-box: Align to bottom.
    Protects the box from spanning full height when the other tabs have taller widgets.
  * tree: Drop `self.imp().obj()` pattern
  * tree: Add `BookmarksItem`
    Similar to `PlacesItem`.
  * tree: Add `BookmarksBox`
  * file-selector: Show bookmarks.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/issues/3
  * grid-item: Add and use helper `get_file`
  * grid-item: Unwrap menu items.
    We can add it back once we have more items and need logical grouping.
  * file-selector: Add API to query & modify bookmarks
  * grid-item: Add feature to add and remove bookmarks
  * file-selector: Let current directory be bookmarked
  * file-selector: Indent UI file

 -- Guido Günther <agx@sigxcpu.org>  Mon, 11 May 2026 10:16:17 +0200

pfs (0.0.8) experimental; urgency=medium

  [ Arun Mani J ]
  * tree: Update to `gtk` 0.11
  * ci: Install Clippy from `rustup`
  * ci: Install `rustc` from `experimental`

  [ Guido Günther ]
  * ci: Use rust versions consistently.
    No need to pull from experimental anymore or to
    fall back to rustup.

  [ Gotam Gorabh ]
  * file-selector: Drop invalid XML syntax
  * file-selector: Add toast overlay to file selector.
    Wrap content with `AdwToastOverlay` and add `show_toast()` method
    to enable toast notifications.
  * grid-item: Add long-press context menu.
    Add long-press context menu with two actions:
    - Properties: Opens `FileProps` dialog to display file information
    - Copy Filename: Copies filename to clipboard
    The long-press gesture is only enabled in `OpenFile` mode.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/issues/17
  * file-selector: Move menu at top.
    This is preparation for upcoming commits. Adding custom
    elements needs the menu-model to exist already.
  * file-selector: Allow to change icon size.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/issues/10

  [ Ryo Nakano ]
  * po: Add Japanese translation

  [ OlesyaGerasimenko ]
  * po: Add Russian translation

  [ Rudra Pratap Singh ]
  * file-selector: Add done as property.
    Then allows done to be emitted for each
    successful operation, which can be useful
    for e.g., opening multiple files.
  * pfs-open: Keep open after launching an item.
    As PfsOpenApplication is an AdwApplication,
    we can set FileSelector as the main window for
    it which will keep the app running and allow
    to get rid of app holds/releases whenever an
    item is launched or error dialog shown.
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/issues/18

 -- Guido Günther <agx@sigxcpu.org>  Thu, 26 Mar 2026 17:59:58 +0100

pfs (0.0.7) experimental; urgency=medium

  * treewide: Drop some superfluous semicolons
  * treewide: Prefer &str over String
  * util: Use more idiomatic Option<&T> rather than &Option<T>
    &Option<T> is always a bit confusing
  * pfs-open: Only kill process on shutdown.
    Otherwise when using the org.freedesktop.FileManager1 interface
    systemd will reap the whole cgroup and thus the spawned process
    as well. We should likely use something like phosh's app-tracker
    to move to a separate systemd scope at some point.
  * pfs-open: Launch directly.
    Avoid `gio open` reducing dependencies and fewer forks.
  * build: Add option summary
  * build: Move examples to the end.
    Pure code move
  * build: Don't install icons, schema and example services.
    We don't want to install them when examples are disabled.
  * treewide: Release 0.0.7

 -- Guido Günther <agx@sigxcpu.org>  Mon, 09 Feb 2026 14:10:15 +0100

pfs (0.0.6) experimental; urgency=medium

  [ Guido Günther ]
  * Cargo.lock: Update
  * dir-view: Remove redundant else blocks.
    Makes clippy happy
  * dir-view: Avoid match for booleans.
    Makes clippy happy.
  * dir_view: Initialize mode early.
    No need to have the `let` separate.
  * dir-view: Avoid iter()
    Makes clippy happy
  * dir-view: Avoid unnecessary return.
    Makes clippy happy
  * dir_view: Use a single match arm
  * dir-view: Prefer is_empty() over len()
    Make clippy happy
  * dir-view: Use matches! macro.
    Makes clippy happy
  * dir-view: Use let Some()
    Make clippy happy
  * dir-view: Drop unnecessary return statements.
    Makes clippy happy
  * grid-item: Tweak semicolons.
    Makes clippy happy
  * build: Avoid format specifier.
    Make clippy happy
  * pfs-open: Split out opening dirs.
    This will allow us to handle open
  * pfs-open: Count running instances.
    We only drop the hold guard when all windows close
  * pfs-open: Handle open.
    This allows us to run
      pfs-open <directory1> <directory2>
    to display its contents
  * pfs-open: Don't borrow app-id.
    Make clippy happy
  * pfs-open: Wait() for child.
    Makes clippy happy.
  * pfs-open: Use "Open" on the button.
    This is what happens. Also mark it as translatable.
  * po: Add languages.
    Otherwise the po files don't get installed
  * treewide: Update copyright.
    Update per FLA
  * file-open: Improve desktop file and icon.
    We drop the unused symbolic icons
  * packaging: Ship schema, translations and example.
    This allows library users to access them and will allow
    us to drop make the subproject in the portal optional.
  * ci: Build package
  * ci: Switch to forky
  * icons: Add icon for demo.
    Make the Open one more colorful.
  * doc: Use canonical matrix channel name
  * ci: Fix markdown path.
    We don't have anything in doc/
  * treewide: Drop superfluous referencing.
    Makes clippy happy
  * treewide: Don't use outer doc comments.
    Makes clippy happy
  * treewide: Allow missing safety doc.
    Let's see if we keep the C API around at all
  * treewide: Avoid .iter()
    Makes clippy happy
  * treeview: Use ?-Operator to return `None`
    If the return value of a function is `Option<>` `?` returns
    None.
    Makes clippy happy.
  * file-selector: Avoid identical match bodies.
    Makes clippy happy
  * file-selector: Inline variables in format!()
    Makes clippy happy
  * file-selector: Use reference.
    Makes clippy happy
  * file-selector: Prefer `if let Some() =` over manual unwrap.
    Easier to read and makes clippy happy.
  * dir-view: Prefer `if let Some() =` over manual unwrap.
    Easier to read and makes clippy happy
  * dir-view: Allow for unnecessary unwrap.
    This keeps the check order easy to read
  * ci: Run clippy.
    We allow it to fail for the moment until we fixed more warnings
  * test: Add a minimal test.
    This ensures that at least some things work
  * ci: Run tests.
    This ensures we can create the dialog and don't throw any criticals.
  * docs: Add screenshots
  * ci: Use prebuilt image
  * packaging: Add rustup build profile.
    This allows us to build with rustup
  * dir-view: Don't thumbnail when disabled.
    We don't want to create any thumbnails when it is disabled via the gsetting.
    Fixes: 95befa2 ("dir-view: Create thumbnails for files without them")
  * build: Use datadir
  * file-selector: Allow to preselect items.
    This allows us to preselect items. In case of a directory we
    change into it right away.
  * pfs-open: Add org.freedesktop.FileManager1 interface.
    See examples/gio_dbus_register_object/main.rs in gtk-rs
    ```
    $ busctl --user call org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1 ShowFolders ass 2 file:///tmp file:///etc asdf
    $ busctl --user call org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1 ShowItems ass 1 file:///tmp asdf
    ```
    We lack the `ShowItemProperties` method but that'll be
    a completely separate window.
  * pfs-open: Add DBus service and systemd unit.
    This allows pfs-open to be used as mobi.phosh.FileManager1
    implementation
    Closes: https://gitlab.gnome.org/World/Phosh/pfs/-/issues/16
  * file-selector: Drop some superfluous upcasts.
    They're not needed
  * dir-view: Drop superfluous upcast
  * grid-item: Remove superfluous get()s
  * examples: Remove superfluous gets()s
  * build: Update metadata
  * file-props: New dialog to show some file properties.
    We show a thumbnail (if present), size and timestamps.
  * open: Hook up `ShowItemProperties` too.
    We thus support the full org.freedesktop.FileManager1 API
    Test via
    ```
    busctl --user call org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1 ShowItemProperties ass 1  file://$HOME/Pictures/ asdf
    ```
  * pfs-open: Move app hold and release into methods.
    This makes it easier to follow the flow
  * file-selector: Allow to keep dialog around after selection
  * pfs-open: Improve error reporting.
    Show a dialog on errors and also open all URLs.
  * pfs-open: Fix gio invocation.
    It's `open` not `--open`.
  * treewide: Update to libadwaita 0.8.1 and fix fallout.
    The alert dialog changed its signature for the parent due to our
    fix.

  [ Arun Mani J ]
  * grid-item: Add `set_thumbnail`
  * dir-view: Create thumbnails for files without them.
    Closes: https://gitlab.gnome.org/guidog/pfs/-/issues/6

 -- Guido Günther <agx@sigxcpu.org>  Mon, 29 Dec 2025 22:14:11 +0100

pfs (0.0.5) experimental; urgency=medium

  * Initial packaging.

 -- Guido Günther <agx@sigxcpu.org>  Wed, 19 Nov 2025 11:48:22 +0100
