Bug#894807: qtbase-opensource-src: Consider recommending qt5ct perhaps in widgets or gui

2018-04-06 Thread Maximiliano Curia

¡Hola Dmitry!

El 2018-04-04 a las 21:53 +0300, Dmitry Shachnev escribió:
However there is still one major problem with it: it does not support native 
GTK+ 3 dialogs. Test case: run Qt Designer under GNOME with qt5ct and without 
it. If you click Open button, the native GTK+ dialog will be used only when 
qt5ct is not used. This is a significant regression for users of GNOME, Xfce, 
Cinnamon, etc (compared to normal Qt setup).


Interesting, but at the same time you wouldn't have a well integrated gnome 
dialog if the gtk and qt5ct themes don't match. I'm not sure if there is a 
proper way to fix that.


Also, kde applications look "sane" when using qt5ct, and using 
the gtk2 or gtk3 platformtheme some ui annoyances are shown, specially if your 
kde theme doesn't match your gtk theme.


Given this issue, and the fact that it is difficult for an average user to 
disable qt5ct, I think we should not recommend it in Qt. Suggests is fine 
though.


The user should be able to set QT_QPA_PLATFORMTHEME in ~/.xsessionrc.

As Maximiliano mentioned some other things in his IRC message, I will reply 
to them too:



currently nothing depends on qt5-gtk-platformtheme qt5-style-plugins


libqt5gui5 currently recommends qt5-gtk-platformtheme. We cannot depend on 
it because we do not want to depend on GTK+.


qt5-style-plugins is a collection of obsolete styles that are no longer 
maintained or supported by The Qt Company. It can be sometimes safe to use, 
but we do not want to suggest using it.


Ok, then from the cinnamon side of things, I'm fine using the gtk3 
platformtheme by default, and then the user might prefer to use qt5ct. I guess 
we could add a suggests for that.



At least on the cinnamon side of things we are setting QT_PLATFORMTHEME=gtk2


s/_/_QPA_/

There is no sense in doing that (and this is the wrong variable name anyway). 
Qt automatically enables GTK+ integration support when it is run on Cinnamon 
or on other GTK+ based desktop:



https://code.qt.io/cgit/qt/qtbase.git/tree/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp#n863


cinnamon-session upstream already tries to tweak QT_QCA_PLATFORMTHEME, we 
patched that as the expected platformtheme (qt5ct) was not available in 
Debian. I don't remember why we used the gtk2 platformtheme but I'm sure 
that it was the best option at that time.


From my side, this bug could be closed.

Happy hacking,
--
"Don't let what you cannot do interfere with what you can do."
-- Wooden's Rule
Saludos /\/\ /\ >< `/


signature.asc
Description: PGP signature


Bug#894807: qtbase-opensource-src: Consider recommending qt5ct perhaps in widgets or gui

2018-04-06 Thread Dmitry Shachnev
On Thu, Apr 05, 2018 at 09:48:32PM -0300, Lisandro Damián Nicanor Pérez Meyer 
wrote:
> > However there is still one major problem with it: it does not support native
> > GTK+ 3 dialogs. Test case: run Qt Designer under GNOME with qt5ct and
> > without it. If you click Open button, the native GTK+ dialog will be used
> > only when qt5ct is not used. This is a significant regression for users of
> > GNOME, Xfce, Cinnamon, etc (compared to normal Qt setup).
>
> Interesting. Do you have an idea if this is fixable? Upstream might want to 
> fix this.

This can be fixed by either embedding Qt’s gtk3 support code, or loading the
libqgtk3.so plugin and somehow calling its methods.

Both ways are quite hacky and likely to break when a new Qt release changes
something. There is the qgnomeplatform project [1] which went the embedding
way, and it did have such crashes.

[1]: https://github.com/martinbriza/qgnomeplatform

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#894807: qtbase-opensource-src: Consider recommending qt5ct perhaps in widgets or gui

2018-04-05 Thread Lisandro Damián Nicanor Pérez Meyer
El miércoles, 4 de abril de 2018 15:53:01 -03 Dmitry Shachnev escribió:
[snip]
> However there is still one major problem with it: it does not support native
> GTK+ 3 dialogs. Test case: run Qt Designer under GNOME with qt5ct and
> without it. If you click Open button, the native GTK+ dialog will be used
> only when qt5ct is not used. This is a significant regression for users of
> GNOME, Xfce, Cinnamon, etc (compared to normal Qt setup).

Interesting. Do you have an idea if this is fixable? Upstream might want to 
fix this.

> Given this issue, and the fact that it is difficult for an average user to
> disable qt5ct, I think we should not recommend it in Qt. Suggests is fine
> though.

I wonder if that is necessary considering that qt-based desktop seems to have 
a special plugin for that and that the rest tend to be gtk3-based.

Maxy, any ideas?

-- 
Si vives cada día de tu vida como si fuera el último,
algún día realmente tendrás razón.
  Steve Jobs

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


signature.asc
Description: This is a digitally signed message part.


Bug#894807: qtbase-opensource-src: Consider recommending qt5ct perhaps in widgets or gui

2018-04-04 Thread Dmitry Shachnev
Hi Lisandro and Maximiliano!

On Wed, Apr 04, 2018 at 09:03:34AM -0300, Lisandro Damián Nicanor Pérez Meyer 
wrote:
> [08:50:25]  lisandro, mitya57: yet again about PLATFORMTHEMES,
> currently nothing depends on qt5-gtk-platformtheme qt5-style-plugins nor
> qt5ct, I don't know what qt5 uses when QT_PLATFORMTHEME is not being set,
> but it seems reasonable that at least that package gets installed when
> installing a qt app.
> [08:51:22]  let me see if I understand that
> [08:52:02]  when there is no QT_PLATFORMTHEME set then qt shows a
> default theme, which I *think* it's the windows' one
> [08:52:52]  if the user wants a different theme then she must
> install a new theme or qt5ct in order to easily change the ones shipped by
> qt
> [08:53:52]  we could recommend qt5ct with libqt5widgets5 I guess
> [08:55:40]  That would be fine by me, and qt5ct sets QT_PLATFORMTHEME
> in the session if installed. (that would also avoid desktop environments to
> have to set QT_PLATFORMTHEME)
> [08:56:52]  so far it sets it everywhere except Plasma
> [08:56:58]  At least on the cinnamon side of things we are setting
> QT_PLATFORMTHEME=gtk2 as it was the only sensible plaformtheme for stretch,
> but that's no longer true.
>
> It could be recommends or suggests, thoughts welcomed!

I must admit that qt5ct has significantly improved since the times I last
looked at it. In particular, it now can handle global menus and D-Bus tray
icons.

However there is still one major problem with it: it does not support native
GTK+ 3 dialogs. Test case: run Qt Designer under GNOME with qt5ct and without
it. If you click Open button, the native GTK+ dialog will be used only when
qt5ct is not used. This is a significant regression for users of GNOME, Xfce,
Cinnamon, etc (compared to normal Qt setup).

Given this issue, and the fact that it is difficult for an average user to
disable qt5ct, I think we should not recommend it in Qt. Suggests is fine
though.

As Maximiliano mentioned some other things in his IRC message, I will reply
to them too:

> currently nothing depends on qt5-gtk-platformtheme qt5-style-plugins

libqt5gui5 currently recommends qt5-gtk-platformtheme. We cannot depend on
it because we do not want to depend on GTK+.

qt5-style-plugins is a collection of obsolete styles that are no longer
maintained or supported by The Qt Company. It can be sometimes safe to use,
but we do not want to suggest using it.

> At least on the cinnamon side of things we are setting QT_PLATFORMTHEME=gtk2

There is no sense in doing that (and this is the wrong variable name anyway).
Qt automatically enables GTK+ integration support when it is run on Cinnamon
or on other GTK+ based desktop:

https://code.qt.io/cgit/qt/qtbase.git/tree/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp#n863

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#894807: qtbase-opensource-src: Consider recommending qt5ct perhaps in widgets or gui

2018-04-04 Thread Lisandro Damián Nicanor Pérez Meyer
Source: qtbase-opensource-src
Version: 5.9.2+dfsg-12
Severity: wishlist

[08:50:25]  lisandro, mitya57: yet again about PLATFORMTHEMES, currently 
nothing depends on qt5-gtk-platformtheme qt5-style-plugins nor qt5ct, I don't 
know what qt5 uses when QT_PLATFORMTHEME is not being set, but it seems 
reasonable that at least that package gets installed when installing a qt app.
[08:51:22]  let me see if I understand that
[08:52:02]  when there is no QT_PLATFORMTHEME set then qt shows a 
default theme, which I *think* it's the windows' one
[08:52:52]  if the user wants a different theme then she must install 
a new theme or qt5ct in order to easily change the ones shipped by qt
[08:53:52]  we could recommend qt5ct with libqt5widgets5 I guess
[08:55:40]  That would be fine by me, and qt5ct sets QT_PLATFORMTHEME in 
the session if installed. (that would also avoid desktop environments to have 
to set QT_PLATFORMTHEME)
[08:56:52]  so far it sets it everywhere except Plasma
[08:56:58]  At least on the cinnamon side of things we are setting 
QT_PLATFORMTHEME=gtk2 as it was the only sensible plaformtheme for stretch, but 
that's no longer true.

It could be recommends or suggests, thoughts welcomed!

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'buildd-unstable'), (500, 'testing'), (500, 'stable'), 
(1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.15.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=es_AR.UTF-8, LC_CTYPE=es_AR.UTF-8 (charmap=UTF-8), 
LANGUAGE=es_AR:es (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled