This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [GirCore.Adw-1](https://github.com/gircore/gir.core) | nuget | minor | `0.5.0` -> `0.6.3` |
---
### Release Notes
<details>
<summary>gircore/gir.core (GirCore.Adw-1)</summary>
### [`v0.6.3`](https://github.com/gircore/gir.core/releases/tag/0.6.3)
[Compare Source](https://github.com/gircore/gir.core/compare/0.6.2...0.6.3)
This is a follow up release to [0.6.2](https://github.com/gircore/gir.core/releases/tag/0.6.2). This release adds some missing bits to GObject-2.0.Integration, adds `IDisposable` support on interfaces and fixes a bug in several `async` methods.
#### Noteworthy
- GObject-2.0.Integration: Subclassing now supports global namespaces ([#​1188](https://github.com/gircore/gir.core/issues/1188))
- GObject-2.0.Integration: Generates a `partial Initialize()` method to allow custom initialization of an object no matter if it is created by dotnet or C code. ([#​1189](https://github.com/gircore/gir.core/issues/1189)). See the [Gridview-Sample](41992a3092/src/Samples/Gtk-4.0/GridView/StringListGridViewWindow.cs (L10)
) to see how to use the new method.
- Several GTK `async` methods now support a nullable parent window ([#​1199](https://github.com/gircore/gir.core/issues/1199))
- Interfaces implement `IDisposable` ([#​1203](https://github.com/gircore/gir.core/issues/1203))
#### What's Changed
- GObject.Object: Make "Dispose" method virtual again by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1182
- Fix code format by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1186
- GObject-2.0.Integration: Support global namespace by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1188
- Remove UTF8 BOM by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1197
- Allow NULL parent window in async dialog functions by [@​CommonGuy](https://github.com/CommonGuy) in https://github.com/gircore/gir.core/pull/1199
- GObject-2.0.Integration: Improve subclass initialization by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1189
- Interfaces should implement IDisposable by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1203
#### New Contributors
- [@​CommonGuy](https://github.com/CommonGuy) made their first contribution in https://github.com/gircore/gir.core/pull/1199
**Full Changelog**: https://github.com/gircore/gir.core/compare/0.6.2...0.6.3
### [`v0.6.2`](https://github.com/gircore/gir.core/releases/tag/0.6.2)
This is a follow up release to [preview.1](https://github.com/gircore/gir.core/releases/tag/0.6.0-preview.1). Please be aware that this release includes several breaking changes.
The release 0.6.0 / 0.6.1 were skipped as there were problems with the publishing of the nugets:
- For 0.6.0 the new `GObject-2.0.Integration` package had an empty symbol package which resulted in an upload error.
- For 0.6.1 there were nuget packages created for the tutorial projects which were missing nuget informations thus resulting in an upload error.
The partially uploaded packages got unlisted. This is the reason why this release has the version number 0.6.2.
#### Noteworthy
##### Since 0.6.0-preview.1
- Support for .NET 9.0 added. Support for .NET 6.0 and .NET 7.0 got removed.
- Rework of the `GObject.Object` instantiation process. Those changes remove the reflection code for object instantiation and subclassing. This brings NativeAOT support a lot closer.
- Internal: Support individual SafeHandles for classes allowing to report native memory consumption. This improves the garbage collection behavior of the dotnet runtime as classes like `Gdk.Pixbuf` tend to reference large portions of native memory.
##### 0.6.0-preview.1
- Update to GNOME 47 which includes GTK 4.16 and libadwaita 1.6.
- The dummy implementation of `INotifyPropertyChanged` on `GObject.Object` was removed.
- Propertydefinitions have a new `Notify` / `Unnotify`method which simplifies registration for property specific notifications. For details see the [FAQ](https://github.com/gircore/gir.core/blob/main/docs/docs/faq.md#property-changed-notifications).
- The size of the C `long` datatype on windows is now always 32 bit. On unix it corresponds to 64 / 32 bit depending on the system architecture. In earlier releases it was always 64 bit which was only correct for 64 bit unix systems.
- The size of C `gsize` is now equivalent to `nint`. In earlier releases it was equal to `long` which was wrong on 32 bit based systems.
- Fixed implementation of the memory pressure feature of records. In earlier releases memory pressure was only removed if `Dispose` was called. Now memory pressure is released automatically for records. The feature is not yet implemented for classes and will be part the full 0.6.0 release.
- First steps to publish the GirCore generator as a `dotnet tool`.
#### Breaking changes
##### Changed public APIs
- Obsolete interface `GLib.IHandle` got removed
- Obsolete interface `GObject.IObject` got removed
- `GObject.Object` new primary constructor requires a `ObjectHandle`. `protected` constructors using `ConstructArgument[]` or `IntPtr` got removed.
- `GObject.Object` method `protected virtual void Initialize()` got removed. To execute instance initialization either use a custom constructor or custom `ObjectHandle`.
- `GdkPixbuf.PixbufLoader.FromBytes` got removed as it was a purely cosmetic helper function which is not available as native code. The following code shows the corresponding code to recreate the original behavior:
```CSharp
using var bytes = Bytes.New(data);
var pixbufLoader = PixbufLoader.New();
pixbufLoader.WriteBytes(bytes);
pixbufLoader.Close();
var pixbuf = pixbufLoader.GetPixbuf() ?? throw new Exception("No pixbuf loaded");
```
##### Subclass changes
To implement reflection free instantiation and subclassing the data which the reflection based code retrieved during runtime must be available during compile time to register the class with the GObject typesystem. This is done automatically for all classes which are part of the GirCore nuget packages. If custom classes inherit from some `GObject.Object` this code must be written otherwise the new class is not properly registered with the GObject typesystem.
The boiler plate code needed to properly register a class can be completly avoided if the new nuget package [GObject-2.0.Integration](https://www.nuget.org/packages/GirCore.GObject-2.0.Integration/) is used. This package provides a source generator which generates the needed code if the `SubclassAttribute` is set on the custom GObject subclass. Please see the following sample and refer to the [FAQ](https://github.com/gircore/gir.core/blob/main/docs/docs/faq.md#how-to-create-subclasses-of-a-gobject-based-class):
```csharp
[Subclass<GObject.Object>]
public partial class Data
{
public string? MyString { get; set; }
public Data(string myString) : this()
{
MyString = myString;
}
}
```
#### What's Changed
- Remove INotifyPropertyChanged by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1061
- Property: Add Notify / Unnotify methods by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1062
- Improve long handling for structs by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1065
- Remove duplicate semicolon in return statements by [@​adamreeve](https://github.com/adamreeve) in https://github.com/gircore/gir.core/pull/1068
- Map "gssize" to native integers by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1069
- Improve long handling 2 by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1067
- Add nullable annotation to nullable string array parameters in internal methods by [@​adamreeve](https://github.com/adamreeve) in https://github.com/gircore/gir.core/pull/1079
- Disable rendering code for repositories only required via includes by [@​adamreeve](https://github.com/adamreeve) in https://github.com/gircore/gir.core/pull/1086
- documenting System.DllNotFoundException troubleshooting by [@​lamg](https://github.com/lamg) in https://github.com/gircore/gir.core/pull/1085
- Improve struct freeing by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1072
- Improve logging by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1093
- Support loading repositories from files embedded as resources in GirTool by [@​adamreeve](https://github.com/adamreeve) in https://github.com/gircore/gir.core/pull/1091
- Readme: Update status by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1096
- Generator: Support opaque typed records with copy / free annotations by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1088
- Support copy annotation typed records by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1103
- Add new modifier to class methods that hide base class methods by [@​adamreeve](https://github.com/adamreeve) in https://github.com/gircore/gir.core/pull/1097
- Add DBus sample to read desktop appearance color scheme by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1110
- Foreign typed records: Implement IDisposable by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1112
- Foreign typed records: Require to implement a handle release manually by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1113
- Opaque typed records: Support adding memory pressure by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1114
- ImageSurface: Support memory pressure by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1115
- GObject.Type: Mark struct as readonly and make it a record by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1117
- Improve alias support by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1119
- GObject.Type: Add IsFundamental method by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1123
- Differentiate between Long and CLong by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1126
- Object: Fix ToggleNotify called after callback is disposed by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1128
- Update gir files by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1132
- Refactor GdkPixbuf-2.0.Tests by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1133
- Update macos runner to version 14 by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1134
- Initial hello world tutorials by [@​anthonyirwin82](https://github.com/anthonyirwin82) in https://github.com/gircore/gir.core/pull/1139
- Box Layout Tutorial by [@​anthonyirwin82](https://github.com/anthonyirwin82) in https://github.com/gircore/gir.core/pull/1143
- Move ChooseAsync method to correct class by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1150
- Support class based safe handles by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1118
- Tutorial: Use project reference instead of package reference by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1152
- Class: Add public constructor which support ConstructArguments by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1164
- Class: Add primary constructor by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1165
- Add GObject-2.0.Integration.csproj by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1158
- Update dependencies by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1173
- GObject-2.0.Integration: Disable snupk generation by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1176
- Do not publish tutorial projects by [@​badcel](https://github.com/badcel) in https://github.com/gircore/gir.core/pull/1179
#### New Contributors
- [@​adamreeve](https://github.com/adamreeve) made their first contribution in https://github.com/gircore/gir.core/pull/1068
- [@​lamg](https://github.com/lamg) made their first contribution in https://github.com/gircore/gir.core/pull/1085
- [@​anthonyirwin82](https://github.com/anthonyirwin82) made their first contribution in https://github.com/gircore/gir.core/pull/1139
**Full Changelog**: https://github.com/gircore/gir.core/compare/0.5.0...0.6.2
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMzMuNCIsInVwZGF0ZWRJblZlciI6IjM5LjEzMy40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://git.cantorgymnasium.de/gcg/photomator/pulls/9
Co-authored-by: Renovate Bot <renovate-bot@git.cantorgymnasium.de>
Co-committed-by: Renovate Bot <renovate-bot@git.cantorgymnasium.de>
Photomator
Desktop-Anwendung zum Konvertieren und Schrumpfen von Bildern für die Verwendung im Web.
Build
Windows
- install msys2 (mingw-w64) -> libadwaita, gtk4, libwebp
- install .NET 8.0
- install Git for Windows
- add .NET 8.0 and mingw-w64 to PATH
git clone https://git.cantorgymnasium.de/gcg/photomator
cd photomator/Photomator
dotnet restore
dotnet publish -r win-x64
The installer will be located under Photomator\bin\Release\net8.0\win-x64\publish
.
Initial release 🎉
Latest
Languages
C#
88.9%
Inno Setup
11.1%