Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@mghe01
Copy link
Contributor

@mghe01 mghe01 commented Oct 9, 2025

Added Print Preview Feature mghe01@8077d9e

In multi-user Remote Desktop environments, the Windows Desktop Experience feature is unavailable preventing access to the built-in "Print Pictures" dialog when using the 'print' process verb. As a result, printing defaults directly to the user's default printer without allowing printer selection.

Added Enhanced printing functionality by adding print preview with support for selecting printers and print properties.

  • Added Print Preview Window
  • Added PrintEngine core class for unified print and preview layout handling
  • Implemented shared ComputeLayout logic for consistent scaling and margins
  • Integrated async RunPrintAsync with UI feedback
  • Added grayscale conversion and Avalonia to GDI bitmap rendering
  • Ensured 1:1 accuracy between on-screen preview and physical/PDF output

Added Global Settings Config File mghe01@00ae2f5

Added support for a GlobalSettings.json file in ApplicationDirectory/Config.
This file can define any settings from UserSettings.json and enforces them as global overrides at startup, regardless of values in the local or user profile UserSettings.json.


Added Show SetAsWallpaper Setting Option mghe01@be6565a

Added option in the UserSettings.json to be able to toggle the visibility of the SetAsWallpaper Menu buttons, preventing users being able to change the desktop wallpaper.


Fixed Window Maximized Overflow mghe01@a5fe76e

When using AcrylicBlur and the Window was maximized with Auto-fit Window turned off, Avalonia continued extending into that region instead of clipping to the screen’s working area, causing the content to overflow past the screen edges.

Setting ExtendClientAreaToDecorationsHint and SystemDecorations only while maximized allowed it to reapply its normal clipping and square-corner mask, fixing the overflow.

  • Set window properties SystemDecorations and ExtenClientAreatoDecorationsHint when the window is maximized
  • Removed SetMargin workaround

Aditional Changes

  • Adjusted bottom bar drag region to avoid overlapping the settings button
  • Adjusted titlebar layout so the window title is centered horizontally

Right click Titlebar with no image loaded throws NullReferenceException
In multi-user Remote Desktop environments, the Windows Desktop Experience feature is unavailable preventing access to the built-in "Print Pictures" dialog when using the 'print' process verb. As a result, printing defaults directly to the user's default printer without allowing printer selection.

Added Enhanced printing functionality by adding print preview with support for selecting printers and print properties.

- Added Print Preview Window
- Added PrintEngine core class for unified print and preview layout handling
- Implemented shared ComputeLayout logic for consistent scaling and margins
- Integrated async RunPrintAsync with UI feedback
- Added grayscale conversion and Avalonia to GDI bitmap rendering
- Ensured 1:1 accuracy between on-screen preview and physical/PDF output
Added support for a GlobalSettings.json file in ApplicationDirectory/Config.
This file can define any settings from UserSettings.json and enforces them as global overrides at startup, regardless of values in the local or user profile UserSettings.json.
Added option in the UserSettings.json to be able to toggle the visibility of the SetAsWallpaper Menu buttons, preventing users being able to change the desktop wallpaper.
When using AcrylicBlur and the Window was maximized with Auto-fit Window turned off, Avalonia continued extending into that region instead of clipping to the screen’s working area, causing the content to overflow past the screen edges.

Setting ExtendClientAreaToDecorationsHint and SystemDecorations only while maximized allowed it to reapply its normal clipping and square-corner mask, fixing the overflow.

- Set window properties SystemDecorations and ExtenClientAreatoDecorationsHint when the window is maximized
- Removed SetMargin workaround

Aditional Changes
- Adjusted bottom bar drag region to avoid overlapping the settings button
- Adjusted titlebar layout so the window title is centered horizontally
@Ruben2776 Ruben2776 self-requested a review October 9, 2025 11:41
… working properly.

Refine file handling in `FunctionsMapper` and improve eviction logic in `Preloader`

- Fixed `null` handling for `CurrentValue?.FullName` in multiple `FunctionsMapper` methods (`Print`, `OpenWith`, `OpenInExplorer`, etc.).
- Updated `Preloader` to conditionally invoke `ImageDisposalHelper` only on successful addition (`TryAdd` eviction handling).
- Removed unnecessary validation in `FileManager.Print`.
- Corrected eviction logic in `EvictingDictionary` (`_dictionary.Count > _maxSize`).
@Ruben2776
Copy link
Owner

Thank you very much for this pull request. The print preview looks fantastic.

However, there's an unintended new change in your maximized window overflow fix commit. The titlebar layout, will not respect lower widths when the Auto-fit window option is enabled. This causes the area between the image and the window being bigger than it needs to be:

With the Fixed Window Maximized Overflow commit:
image

After I restored my old layout, in the Fix titlebar not properly resizing at lower widths. commit
image

Everything else looks good. I will fix the layout for Light theme and Glass theme myself. I'm planning on a major overhaul for those themes.

@mghe01
Copy link
Contributor Author

mghe01 commented Oct 13, 2025

ah yes without MaxWidth it was expanding to fit the entire title instead of trimming it.

Excellent picture viewer by the way, it's a great lightweight alternative when you can't use Microsoft Photos and being able to customize it is awesome.

@Ruben2776 Ruben2776 merged commit ac33b4d into Ruben2776:dev Oct 13, 2025
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants