FedoraQt / QGnomePlatform

QPlatformTheme for a better Qt application inclusion in GNOME
GNU Lesser General Public License v2.1
262 stars 38 forks source link

KeePassXC won't display the "Open File" dialog anymore on latest master #73

Closed guihkx closed 4 years ago

guihkx commented 4 years ago

Hi,

I'm running on commit d87c71b7 (was previously on c02f04be), and now any button I click on KeePassXC that is supposed to bring the file selector dialog, doesn't do anything.

I wasn't able to bisect it, but it seems pretty intuitive that this regression was introduced by 02d0b3e7.

My system:

Arch Linux QGnomePlatform d87c71b7 Adwaita-Qt ab902e8 GNOME 3.38.1 Qt 5.15.1 KeePassXC 2.6.1

Thanks.

grulja commented 4 years ago

Do you have xdg-desktop-portal-gtk installed? Can you give me output from "dbus-monitor --session" while trying to open a file?

guihkx commented 4 years ago

Do you have xdg-desktop-portal-gtk installed?

Yes, version 1.8.0.

Can you give me output from "dbus-monitor --session" while trying to open a file?

There you go:

method call time=1602740120.317345 sender=:1.4011 -> destination=org.freedesktop.portal.Desktop serial=50 path=/org/freedesktop/portal/desktop; interface=org.freedesktop.portal.FileChooser; member=OpenFile
   string "x11:44040198"
   string "Open database"
   array [
      dict entry(
         string "directory"
         variant             boolean false
      )
      dict entry(
         string "filters"
         variant             array [
               struct {
                  string "KeePass 2 Database "
                  array [
                     struct {
                        uint32 0
                        string "*.kdbx"
                     }
                  ]
               }
               struct {
                  string "All files "
                  array [
                     struct {
                        uint32 0
                        string "*"
                     }
                  ]
               }
            ]
      )
      dict entry(
         string "handle_token"
         variant             string "qt1829559170"
      )
      dict entry(
         string "modal"
         variant             boolean true
      )
      dict entry(
         string "multiple"
         variant             boolean false
      )
   ]
method call time=1602740120.317795 sender=:1.57 -> destination=org.freedesktop.DBus serial=375 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionCredentials
   string ":1.4011"
method return time=1602740120.317806 sender=org.freedesktop.DBus -> destination=:1.57 serial=165 reply_serial=375
   array [
      dict entry(
         string "ProcessID"
         variant             uint32 51402
      )
      dict entry(
         string "UnixUserID"
         variant             uint32 1000
      )
   ]
error time=1602740120.317829 sender=:1.57 -> destination=:1.4011 error_name=org.freedesktop.DBus.Error.AccessDenied reply_serial=50
   string "Portal operation not allowed: Unable to open /proc/51402/root"
signal time=1602740122.537883 sender=:1.18 -> destination=(null destination) serial=22654 path=/org/gnome/Shell/Introspect; interface=org.gnome.Shell.Introspect; member=RunningApplicationsChanged
method call time=1602740122.547250 sender=:1.59 -> destination=:1.18 serial=1959 path=/org/gnome/Shell/Introspect; interface=org.gnome.Shell.Introspect; member=GetRunningApplications
method return time=1602740122.562261 sender=:1.18 -> destination=:1.59 serial=22655 reply_serial=1959
grulja commented 4 years ago

Do you run it as root user? The reason why it fails is: string "Portal operation not allowed: Unable to open /proc/51402/root" But I have no idea why is that happening.

guihkx commented 4 years ago

I didn't:

image

Could it be some of KeePassXC's security features? No clue either...

Were you able to reproduce it locally?

grulja commented 4 years ago

I tried now with keepassxc and managed to reproduce, other apps were working. I will try to investigate.

grulja commented 4 years ago

Should be fixed with https://github.com/FedoraQt/QGnomePlatform/commit/d5a01ea00ef49c22fa4f623495cd0d31e991a02e.

guihkx commented 4 years ago

Works for me, thanks!