Merge pull request #136071 from jtojnar/gnome-qpa
nixos/gnome: enable platform integration for Qt
This commit is contained in:
commit
07978cddab
6 changed files with 38 additions and 22 deletions
|
@ -1088,6 +1088,15 @@ Superuser created successfully.
|
|||
but instead use more of the YAML-specific syntax.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
GNOME desktop environment now enables
|
||||
<literal>QGnomePlatform</literal> as the Qt platform theme,
|
||||
which should avoid crashes when opening file chooser dialogs
|
||||
in Qt apps by using XDG desktop portal. Additionally, it will
|
||||
make the apps fit better visually.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -312,3 +312,5 @@ To be able to access the web UI this port needs to be opened in the firewall.
|
|||
- Nginx will use the value of `sslTrustedCertificate` if provided for a virtual host, even if `enableACME` is set. This is useful for providers not using the same certificate to sign OCSP responses and server certificates.
|
||||
|
||||
- `lib.formats.yaml`'s `generate` will not generate JSON anymore, but instead use more of the YAML-specific syntax.
|
||||
|
||||
- GNOME desktop environment now enables `QGnomePlatform` as the Qt platform theme, which should avoid crashes when opening file chooser dialogs in Qt apps by using XDG desktop portal. Additionally, it will make the apps fit better visually.
|
||||
|
|
|
@ -372,6 +372,13 @@ in
|
|||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
# Harmonize Qt5 application style and also make them use the portal for file chooser dialog.
|
||||
qt5 = {
|
||||
enable = mkDefault true;
|
||||
platformTheme = mkDefault "gnome";
|
||||
style = mkDefault "adwaita";
|
||||
};
|
||||
|
||||
networking.networkmanager.enable = mkDefault true;
|
||||
|
||||
services.xserver.updateDbusEnvironment = true;
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
, lib
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, cmake
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, adwaita-qt
|
||||
, glib
|
||||
, gtk3
|
||||
, qtbase
|
||||
, qmake
|
||||
, qtx11extras
|
||||
, pantheon
|
||||
, substituteAll
|
||||
, gsettings-desktop-schemas
|
||||
|
@ -15,13 +15,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "qgnomeplatform";
|
||||
version = "0.6.1";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FedoraQt";
|
||||
repo = "QGnomePlatform";
|
||||
rev = version;
|
||||
sha256 = "1mwqg2zk0sfjq54vz2jjahbgi5sxw8rb71h6mgg459wp99mhlqi0";
|
||||
sha256 = "C/n8i5j0UWfxhP10c4j89U+LrpPozXnam4fIPYMXZAA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -33,24 +33,21 @@ mkDerivation rec {
|
|||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
qmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-qt
|
||||
glib
|
||||
gtk3
|
||||
qtbase
|
||||
qtx11extras
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Fix plugin dir
|
||||
substituteInPlace decoration/decoration.pro \
|
||||
--replace "\$\$[QT_INSTALL_PLUGINS]" "$out/$qtPluginPrefix"
|
||||
substituteInPlace theme/theme.pro \
|
||||
--replace "\$\$[QT_INSTALL_PLUGINS]" "$out/$qtPluginPrefix"
|
||||
'';
|
||||
cmakeFlags = [
|
||||
"-DGLIB_SCHEMAS_DIR=${glib.getSchemaPath gsettings-desktop-schemas}"
|
||||
"-DQT_PLUGINS_DIR=${placeholder "out"}/${qtbase.qtPluginPrefix}"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
diff --git a/common/gnomehintssettings.cpp b/common/gnomehintssettings.cpp
|
||||
index 9860e57..40fa6ec 100644
|
||||
--- a/common/gnomehintssettings.cpp
|
||||
+++ b/common/gnomehintssettings.cpp
|
||||
@@ -80,9 +80,17 @@ void gtkMessageHandler(const gchar *log_domain,
|
||||
GnomeHintsSettings::GnomeHintsSettings()
|
||||
: QObject(0)
|
||||
diff --git a/src/common/gnomesettings.cpp b/src/common/gnomesettings.cpp
|
||||
index 717cc9b..ee255ea 100644
|
||||
--- a/src/common/gnomesettings.cpp
|
||||
+++ b/src/common/gnomesettings.cpp
|
||||
@@ -150,10 +150,18 @@ GnomeSettingsPrivate::GnomeSettingsPrivate(QObject *parent)
|
||||
: GnomeSettings(parent)
|
||||
, m_usePortal(checkUsePortalSupport())
|
||||
, m_canUseFileChooserPortal(!m_usePortal)
|
||||
- , m_gnomeDesktopSettings(g_settings_new("org.gnome.desktop.wm.preferences"))
|
||||
- , m_settings(g_settings_new("org.gnome.desktop.interface"))
|
||||
, m_fallbackFont(new QFont(QLatin1String("Sans"), 10))
|
||||
{
|
||||
+ g_autoptr(GSettingsSchemaSource) schemaSource = nullptr;
|
||||
+ g_autoptr(GSettingsSchema) gnomeDesktopSchema = nullptr;
|
||||
|
|
|
@ -18510,7 +18510,7 @@ with pkgs;
|
|||
|
||||
qrupdate = callPackage ../development/libraries/qrupdate { };
|
||||
|
||||
qgnomeplatform = libsForQt514.callPackage ../development/libraries/qgnomeplatform { };
|
||||
qgnomeplatform = libsForQt5.callPackage ../development/libraries/qgnomeplatform { };
|
||||
|
||||
randomx = callPackage ../development/libraries/randomx { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue