[Development] Monthly CI maintenance break - May (Mon 2nd May 2022)
Hi all! We’ll have our scheduled maintenance break on next Monday (2nd of May). We’ll begin our work at 5:00 UTC and you can prepare for 6 hours of CI not working. Br, VP ___ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] QFreedesktopApplication
On Sunday, 24 April 2022 10:06:12 PDT Ilya Fedin wrote: > It's a part of the Desktop Entry Specification[1]. It's used by most > gtk & KDE applications. gtk ones use GApplication, KDE ones use > KDBusService. Then this should be implemented regardless of whether glib is used. We also need to know whether the KDE equivalent is being used and avoid confusing the launcher by emitting twice. > > In fact, if it is a D-Bus API, should we have it even if the GLib > > event dispatchers aren't active? > > Well, the point it's not just org.freedesktop.Application. GApplication > also provides multiple notification protocol implementations and > integration between them and the o.fd.Application spec (as I mentioned > before). It's the main reason I need GApplication as libnotify is really > outdated and there's no other alternative (except of KDE libs-dependent > KNotifications and implementing all the specs by hand which are not > real alternatives IMO). GApplication provides implementations of > multiple nice specifications at once and integrates them, so I thought > why not to use it when it's available... I don't agree with the value. Implement it directly with Qt resources. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel DPG Cloud Engineering ___ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] QFreedesktopApplication
On Sun, 24 Apr 2022 19:43:09 +0200 Kevin Kofler via Development wrote: > So if Qt implements the same D-Bus interface using GApplication, will > that not break the KDE applications that use the existing > KDBusService? No, I made the uniqueness opt-in via setFlags > And why is using the KNotifications framework not an option for you? > Yes, it depends on a few other KDE frameworks, so what? Do we really > need to reinvent all KDE frameworks functionality within Qt? KNotifications has the following required dependencies: KWindowSystem KConfig KCoreAddons Canberra/Phonon Nothing like this is required by glib and, moreover, it's present on most if not all desktop systems (and nothing wrong if it's not present on the system, the pointer returned by nativeInterface will be nullptr and the applciation can just disable the associated features). ___ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] QFreedesktopApplication
Ilya Fedin wrote: >> On another note, just what is org.freedesktop.Application? There are >> ZERO references to it on freedesktop.org. If this isn't well-defined, >> should we adventure into it? If this is a D-Bus API, then the >> questions above about accessing the interface and implementing the >> server side of it apply: can we have it without a front-end API? > > It's a part of the Desktop Entry Specification[1]. It's used by most > gtk & KDE applications. gtk ones use GApplication, KDE ones use > KDBusService. So if Qt implements the same D-Bus interface using GApplication, will that not break the KDE applications that use the existing KDBusService? > Well, the point it's not just org.freedesktop.Application. GApplication > also provides multiple notification protocol implementations and > integration between them and the o.fd.Application spec (as I mentioned > before). It's the main reason I need GApplication as libnotify is really > outdated and there's no other alternative (except of KDE libs-dependent > KNotifications and implementing all the specs by hand which are not > real alternatives IMO). GApplication provides implementations of > multiple nice specifications at once and integrates them, so I thought > why not to use it when it's available... And why is using the KNotifications framework not an option for you? Yes, it depends on a few other KDE frameworks, so what? Do we really need to reinvent all KDE frameworks functionality within Qt? Kevin Kofler ___ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] QFreedesktopApplication
On Sun, 24 Apr 2022 07:53:49 -0700 Thiago Macieira wrote: > Hello Ilya > > Please explain why we need this API in the first place. If an > application requires a Qt event loop that links to GLib and use > GMainLoop, then they can easily link to glib directly themselves and > access GApplication. So why isn't this an option? > > Is it because it's not a nice, Qt-ish C++ API? Would creating a > library that wraps this and a few other GLib APIs solve this problem? > > Or does it need access to internals in Qt? If so, what ones? Yeah, it needs access to Qt internals for startup notifications (which are required to not to hit WM's focus prevention mechanism). > Or, inversely, does Qt need to do something so GApplication is > accessible? There's no match to "GApplication" in qtbase today. Would > adding this code without a front-end API suffice? The key methods are beforeEmit/afterEmit, they're protected, but there's a problem that it's necessary to run some user code after GApplication construction and before g_application_run as g_application_quit requires re-construction of the GApplication instance to run it again, so it's all in processEvents and setFlags/setConstructedHandler/setFinalizeHandler from public interfaces are required at least. > Have you investigated what happens to existing Qt + GLib hybrid > applications when your code gets added? I don't know any... Do you? > On another note, just what is org.freedesktop.Application? There are > ZERO references to it on freedesktop.org. If this isn't well-defined, > should we adventure into it? If this is a D-Bus API, then the > questions above about accessing the interface and implementing the > server side of it apply: can we have it without a front-end API? It's a part of the Desktop Entry Specification[1]. It's used by most gtk & KDE applications. gtk ones use GApplication, KDE ones use KDBusService. > In fact, if it is a D-Bus API, should we have it even if the GLib > event dispatchers aren't active? Well, the point it's not just org.freedesktop.Application. GApplication also provides multiple notification protocol implementations and integration between them and the o.fd.Application spec (as I mentioned before). It's the main reason I need GApplication as libnotify is really outdated and there's no other alternative (except of KDE libs-dependent KNotifications and implementing all the specs by hand which are not real alternatives IMO). GApplication provides implementations of multiple nice specifications at once and integrates them, so I thought why not to use it when it's available... [1] https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus ___ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development
Re: [Development] QFreedesktopApplication
On Saturday, 23 April 2022 23:05:58 PDT Ilya Fedin wrote: > Hello, I was asked to write here about QFreedesktopApplication[1]. My main > intention was to get nice GApplication APIs that implement a number of XDG > standarts to be accessble by Qt applications. The main thing is running the > GApplication instance, although I made a number of wrapping APIs to use > org.freedesktop.Application-related APIs without linking to glib for the > application. Handlers for GApplication constructor/destructor, > org.freedesktop.Application handlers, the control of command line > processing by GApplication including its option parser and single instance. > I also made integration with startup notifications and it's possible to add > XDG activation token integration. What is not covered by these wrappers, > but still interesting is > g_application_send_notification/g_application_withdraw_notification, so one > can easily send notification using > org.freedesktop.Notifications/org.freedesktop.portal.Notification/org.gtk.N > otifications without implementing all the APIs by hand. And, moreover, > GNotification is integrated with GApplication/org.freedesktop.Application > and can use its actions. > [1] https://codereview.qt-project.org/c/qt/qtbase/+/407263 Hello Ilya Please explain why we need this API in the first place. If an application requires a Qt event loop that links to GLib and use GMainLoop, then they can easily link to glib directly themselves and access GApplication. So why isn't this an option? Is it because it's not a nice, Qt-ish C++ API? Would creating a library that wraps this and a few other GLib APIs solve this problem? Or does it need access to internals in Qt? If so, what ones? Or, inversely, does Qt need to do something so GApplication is accessible? There's no match to "GApplication" in qtbase today. Would adding this code without a front-end API suffice? Have you investigated what happens to existing Qt + GLib hybrid applications when your code gets added? On another note, just what is org.freedesktop.Application? There are ZERO references to it on freedesktop.org. If this isn't well-defined, should we adventure into it? If this is a D-Bus API, then the questions above about accessing the interface and implementing the server side of it apply: can we have it without a front-end API? In fact, if it is a D-Bus API, should we have it even if the GLib event dispatchers aren't active? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel DPG Cloud Engineering ___ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development