vimiv icon indicating copy to clipboard operation
vimiv copied to clipboard

Rewrite vimiv completely in Qt

Open karlch opened this issue 7 years ago • 3 comments

I have played around with PyQt5 lately and must say I was very happy.

Reasons for a complete rewrite:

  • The code is not very clean, lots of it could be done in a more elegant and extendable way
  • The tests are horrible
  • Gtk has bugged me quite a bit

Reasons against:

  • Lots of work
  • Destroys any packages, user configurations, ...

If anybody has an opinion on this, I would love to hear it.

karlch avatar Dec 13 '17 10:12 karlch

Hi! I'm interested in these bindings for gtk/qt for python.

What are the main advantages of Qt against GTK? Would pyqt allow vimiv to be used in windows? does pygtk already allow that?

ninrod avatar Feb 27 '18 13:02 ninrod

I can just give you a subjective list of things if noticed when comparing the two:

  • The python bindings for Qt feel much more native and much better compared to the gobject based wrapper for Gtk
  • Customizing Qt widgets was much easier for me
  • The Qt documentation is amazing, although Gtk's is pretty good too
  • I used to love the idea of styling the complete toolkit with themes (Gtk) but custom themes regularly break with new versions of Gtk

In your case I would just try both out and see how you like them/how easily you are able to learn them.

The windows support of Qt is a lot better than the one of Gtk. So in principle it should work already but with a lot of hassle. With Qt it should be easier to do. But I do not own a windows machine and do not plan to buy one, so I will not package/test for windows. Obviously if someone volunteers to do this, I will happily include the contribution.

Hope this helps a bit :smiley:

karlch avatar Mar 05 '18 07:03 karlch

The Qt port has been written and is now publicly available: https://github.com/karlch/vimiv-qt

I feel like the new code is much easier to maintain and therefore this will be the future of vimiv. It is not yet feature-complete, so this version will still see maintenance for relevant bugs, but new features will only be implemented in the Qt port.

karlch avatar Jan 08 '19 20:01 karlch