Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port to GTK5 #123

Open
paolostivanin opened this issue Mar 30, 2019 · 22 comments
Open

Port to GTK5 #123

paolostivanin opened this issue Mar 30, 2019 · 22 comments

Comments

@paolostivanin
Copy link
Owner

paolostivanin commented Mar 30, 2019

https://gnome.pages.gitlab.gnome.org/gtk/gtk/gtk-migrating-3-to-4.htm

https://developer.gnome.org/gtk4/3.98/migrating.html

@paolostivanin paolostivanin changed the title test/add gtk4 compatibility add gtk4 compatibility Apr 1, 2019
@paolostivanin paolostivanin self-assigned this Apr 1, 2019
@paolostivanin
Copy link
Owner Author

src/ui/otpclient.ui:121:          <object class="GtkButtonBox">
src/ui/otpclient.ui:256:          <object class="GtkButtonBox">
src/ui/otpclient.ui:349:          <object class="GtkButtonBox">
src/ui/otpclient.ui:411:          <object class="GtkButtonBox">
src/ui/otpclient.ui:575:          <object class="GtkButtonBox">
src/ui/otpclient.ui:882:          <object class="GtkButtonBox">
src/ui/otpclient.ui:1001:          <object class="GtkButtonBox">

@paolostivanin
Copy link
Owner Author

(OTPClient:8511): GLib-GObject-WARNING **: 22:49:47.368: The property GtkWidget:margin-left is deprecated and shouldn't be used anymore. It will be removed in a future version.

(OTPClient:8511): GLib-GObject-WARNING **: 22:49:47.368: The property GtkWidget:margin-right is deprecated and shouldn't be used anymore. It will be removed in a future version.

(OTPClient:8511): GLib-GObject-WARNING **: 22:49:47.370: The property GtkAlignment:left-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.

(OTPClient:8511): GLib-GObject-WARNING **: 22:49:47.372: The property GtkContainer:child is deprecated and shouldn't be used anymore. It will be removed in a future version.

@paolostivanin
Copy link
Owner Author

gtk_widget_show_all() has been removed, widgets are visible by default now

@paolostivanin
Copy link
Owner Author

adapt to all api changes (gtkbutton, gtkheaderbar, etc)

@paolostivanin paolostivanin added this to the 2.0.0 milestone May 14, 2019
@paolostivanin
Copy link
Owner Author

This might be postponed for v3.0 in case GTK4 won't be declared stable before the end of 2019

@paolostivanin paolostivanin modified the milestones: 2.0.0, 3.0.0 Jun 21, 2019
@paolostivanin
Copy link
Owner Author

Given that v2 might come out before the end of summer 2019 and GTK4 is not even close on being declared stable, I have decided to postpone the port to v3.0.0

@paolostivanin
Copy link
Owner Author

Seems like GTK4 will be released in Autumn 2020...

@paolostivanin
Copy link
Owner Author

@paolostivanin
Copy link
Owner Author

@paolostivanin paolostivanin changed the title add gtk4 compatibility switch to gtk4 Dec 18, 2020
@paolostivanin
Copy link
Owner Author

At the moment, neither Ubuntu nor Debian have GTK4 in their official repo. The port will take some time, let's hope they will eventually adopt GTK4, given that it is parallel-installable with GTK3.
Otherwise, users will have to switch to Flatpak or keep the 2.x.y version for the time being.

@paolostivanin
Copy link
Owner Author

Stats for the GTK4 port and cleanup:

32 files changed, 1547 insertions(+), 2416 deletions(-)

@paolostivanin
Copy link
Owner Author

paolostivanin commented Nov 8, 2022

this will be released with 3.0.0-alpha1

@paolostivanin
Copy link
Owner Author

@pavelbsd the port to GTK4 hasn't happened yet. The code is there, but it's still gonna take time.
The screenshot feature has been removed since 2.5.0, because GNOME removed that API (see #185 for more info).
If you wanna update OTPClient to the latest version (and you should 😄) you can use the official ppa: https://launchpad.net/~polslinux/+archive/ubuntu/otpclient/+packages

@paolostivanin paolostivanin modified the milestones: 3.0.0, 4.0.0 Dec 2, 2022
@paolostivanin paolostivanin changed the title Port to GTK4 Port to GTK4 (and be compatible with GTK5) Dec 11, 2022
@paolostivanin
Copy link
Owner Author

be careful not to use deprecated GTK5 widgets https://gitlab.gnome.org/GNOME/gtk/-/tree/main/gtk/deprecated

This was referenced Jan 16, 2023
@paolostivanin paolostivanin changed the title Port to GTK4 (and be compatible with GTK5) Port to GTK5 Mar 6, 2023
@paolostivanin
Copy link
Owner Author

paolostivanin commented Jul 10, 2023

evaluate also AdwLeaflet

EDIT: nope, AdwLeaflet is gonna be deprecated with 1.4. Need to look for another alternative.

EDIT: the alternative is AdwNavigationSplitView

@paolostivanin
Copy link
Owner Author

waiting for libadwaita 1.4.0

@paolostivanin
Copy link
Owner Author

paolostivanin commented Nov 7, 2023

We will be using AdwNavigationSplitView, where the sidebar will contain the database(s) and the content page will contain all tokens.

ToDo:

  • create new UI compatible with GTK5 (replace GtkTreeView, GtkDialog, etc)
  • implement all current features
  • be sure that UX on smaller screens works fine (Switch to libadwaita #262)
  • be sure that columns are resizable
  • be sure that rows are reorderable
  • add full search support (Add full search support #267)
  • add support for multiple dbs
  • add option to export one by one or all in a single file
  • extensive testing

@paolostivanin
Copy link
Owner Author

slowly getting there 😄

image

@paolostivanin
Copy link
Owner Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant