summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2019-09-20 15:24:10 +0200
committerLubomir Rintel <lkundrak@v3.sk>2019-09-20 15:26:21 +0200
commit1f34706f0b55ddabe3f2486904fd35fc94c67717 (patch)
treebf43bb5a10e623e7f7275f3a426858f970e52ca2
parent31c0d3c6b8db22ba464024be7e7cbe31da983a29 (diff)
parentdf7f1f5bd32290b7798d93018e5cb1d094d676f0 (diff)
downloadnetwork-manager-applet-1f34706f0b55ddabe3f2486904fd35fc94c67717.tar.gz
merge: branch 'lr/gtk4'
Uh, huh, let's see how well this flies. https://gitlab.gnome.org/GNOME/network-manager-applet/merge_requests/38
-rw-r--r--.gitignore9
-rw-r--r--Makefile.am279
-rw-r--r--NEWS8
-rw-r--r--config.h.meson3
-rw-r--r--configure.ac25
-rw-r--r--meson.build28
-rw-r--r--meson_options.txt1
-rw-r--r--src/libnma/libnma-gtk4.pc.in11
-rw-r--r--src/libnma/meson.build92
-rw-r--r--src/libnma/nma-cert-chooser.c2
-rw-r--r--src/libnma/nma-file-cert-chooser.c25
-rw-r--r--src/libnma/nma-mobile-wizard.c30
-rw-r--r--src/libnma/nma-mobile-wizard.ui3
-rw-r--r--src/libnma/nma-pkcs11-cert-chooser.c15
-rw-r--r--src/libnma/nma-private.h21
-rw-r--r--src/libnma/nma-ui-utils.c37
-rw-r--r--src/libnma/nma-vpn-password-dialog.c16
-rw-r--r--src/libnma/nma-vpn-password-dialog.ui6
-rw-r--r--src/libnma/nma-wifi-dialog.c15
-rw-r--r--src/libnma/tests/bar-code.c17
-rw-r--r--src/libnma/tests/cert-chooser.c35
-rw-r--r--src/libnma/tests/meson.build78
-rw-r--r--src/libnma/tests/mobile-wizard.c4
-rw-r--r--src/libnma/tests/run-vpn.c5
-rw-r--r--src/libnma/tests/vpn-password-dialog.c4
-rw-r--r--src/libnma/tests/wifi-dialog-secrets.c4
-rw-r--r--src/libnma/tests/wifi-dialog.c4
-rw-r--r--src/mobile-helpers.c4
-rw-r--r--src/utils/utils.c11
-rw-r--r--src/wireless-security/eap-method-fast.c5
-rw-r--r--src/wireless-security/eap-method-leap.c37
-rw-r--r--src/wireless-security/eap-method-peap.c9
-rw-r--r--src/wireless-security/eap-method-simple.c44
-rw-r--r--src/wireless-security/eap-method-tls.c13
-rw-r--r--src/wireless-security/eap-method-ttls.c9
-rw-r--r--src/wireless-security/helpers.c4
-rw-r--r--src/wireless-security/meson.build16
-rw-r--r--src/wireless-security/ws-leap.c11
-rw-r--r--src/wireless-security/ws-wep-key.c17
-rw-r--r--src/wireless-security/ws-wpa-psk.c7
40 files changed, 760 insertions, 204 deletions
diff --git a/.gitignore b/.gitignore
index e92fd41b..6aff0319 100644
--- a/.gitignore
+++ b/.gitignore
@@ -95,17 +95,26 @@ src/connection-editor/nm-connection-editor-service-glue.h
src/connection-editor/ce-resources.c
src/connection-editor/ce-resources.h
src/libnma/libnma.pc
+src/libnma/libnma-gtk4.pc
src/libnma/NMA-1.0.gir
src/libnma/NMA-1.0.typelib
+src/libnma/NMA4-1.0.gir
+src/libnma/NMA4-1.0.typelib
src/libnma/nma-resources.c
src/libnma/nma-resources.h
src/libnma/nma-version.h
src/libnma/tests/cert-chooser
+src/libnma/tests/cert-chooser-gtk4
src/libnma/tests/mobile-wizard
+src/libnma/tests/mobile-wizard-gtk4
src/libnma/tests/run-vpn
+src/libnma/tests/run-vpn-gtk4
src/libnma/tests/vpn-password-dialog
+src/libnma/tests/vpn-password-dialog-gtk4
src/libnma/tests/wifi-dialog
+src/libnma/tests/wifi-dialog-gtk4
src/libnma/tests/wifi-dialog-secrets
+src/libnma/tests/wifi-dialog-secrets-gtk4
src/libnm-gtk/libnm-gtk.pc
src/libnm-gtk/NMGtk-1.0.gir
src/libnm-gtk/NMGtk-1.0.typelib
diff --git a/Makefile.am b/Makefile.am
index c863e8d4..bce4be42 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -216,6 +216,26 @@ src_utils_libutils_libnm_glib_la_LIBADD = \
endif
+if WITH_LIBNMA_GTK4
+
+noinst_LTLIBRARIES += src/utils/libutils-libnm-gtk4.la
+
+src_utils_libutils_libnm_gtk4_la_CPPFLAGS = \
+ "-I$(srcdir)/shared" \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS)
+
+src_utils_libutils_libnm_gtk4_la_SOURCES = \
+ $(shared_files) \
+ src/utils/utils.c \
+ src/utils/utils.h
+
+src_utils_libutils_libnm_gtk4_la_LIBADD = \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS)
+
+endif
+
check_programs += src/utils/tests/test-utils
src_utils_tests_test_utils_SOURCES = src/utils/tests/test-utils.c
@@ -336,6 +356,33 @@ $(src_wireless_security_libwireless_security_libnm_glib_la_OBJECTS): $(wireless_
endif
+if WITH_LIBNMA_GTK4
+
+noinst_LTLIBRARIES += src/wireless-security/libwireless-security-libnm-gtk4.la
+
+src_wireless_security_libwireless_security_libnm_gtk4_la_SOURCES = \
+ $(wireless_security_c_real)
+
+nodist_src_wireless_security_libwireless_security_libnm_gtk4_la_SOURCES = \
+ $(wireless_security_c_gen)
+
+src_wireless_security_libwireless_security_libnm_gtk4_la_CPPFLAGS = \
+ "-I$(srcdir)/shared" \
+ "-I$(srcdir)/src/utils" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS)
+
+src_wireless_security_libwireless_security_libnm_gtk4_la_LIBADD = \
+ src/utils/libutils-libnm-gtk4.la \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS)
+
+$(src_wireless_security_libwireless_security_libnm_gtk4_la_OBJECTS): $(wireless_security_h_gen)
+
+endif
+
EXTRA_DIST += \
src/wireless-security/eap-method-fast.ui \
src/wireless-security/eap-method-leap.ui \
@@ -498,9 +545,19 @@ src/libnma/nma-resources.h: src/libnma/nma.gresource.xml
src/libnma/nma-resources.c: src/libnma/nma.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/src/libnma --generate-dependencies $(srcdir)/src/libnma/nma.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src/libnma --generate-source --internal
+src/libnma-gtk4/nma-resources.c: src/libnma/nma.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies $(srcdir)/src/libnma/nma.gresource.xml |sed "s,^,$(builddir)/src/libnma-gtk4/,")
+ @mkdir -p $(builddir)/src/libnma-gtk4
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(builddir)/src/libnma-gtk4 --generate-source --internal
+
+
+src/libnma-gtk4/%.ui: src/libnma/%.ui
+ @mkdir -p $(builddir)/src/libnma-gtk4
+ gtk4-builder-tool simplify --3to4 $< >$@
+
CLEANFILES += \
$(libnma_h_priv_gen) \
- $(libnma_c_gen)
+ $(libnma_c_gen) \
+ $(libnma_gtk4_c_gen)
libnma_h_priv_gen = \
src/libnma/nma-resources.h
@@ -508,6 +565,9 @@ libnma_h_priv_gen = \
libnma_c_gen = \
src/libnma/nma-resources.c
+libnma_gtk4_c_gen = \
+ src/libnma-gtk4/nma-resources.c
+
libnma_h_pub = \
src/libnma/nma-version.h \
src/libnma/nma-wifi-dialog.h \
@@ -536,7 +596,8 @@ EXTRA_DIST += \
src/libnma/qrcodegen.h
libnma_h_priv_real = \
- src/libnma/nma-cert-chooser-private.h
+ src/libnma/nma-cert-chooser-private.h \
+ src/libnma/nma-private.h
libnma_h_priv_gcr = \
src/libnma/nma-pkcs11-token-login-dialog.h \
@@ -742,9 +803,222 @@ src_libnma_tests_bar_code_LDADD = \
$(LIBNM_LIBS) \
src/libnma/libnma.la
+if WITH_LIBNMA_GTK4
+
+lib_LTLIBRARIES += src/libnma/libnma-gtk4.la
+
+src_libnma_libnma_gtk4_la_SOURCES = \
+ $(libnma_h_priv_real) \
+ $(libnma_c_real)
+
+if WITH_GCR_GTK4
+src_libnma_libnma_gtk4_la_SOURCES += \
+ $(libnma_h_priv_gcr) \
+ $(libnma_c_gcr)
+endif
+
+nodist_src_libnma_libnma_gtk4_la_SOURCES = \
+ $(libnma_h_priv_gen) \
+ $(libnma_gtk4_c_gen)
+
+src_libnma_libnma_gtk4_la_CFLAGS = \
+ -DICONDIR=\""$(datadir)/icons"\" \
+ -DBINDIR=\""$(bindir)"\" \
+ -DSYSCONFDIR=\""$(sysconfdir)"\" \
+ -DLIBEXECDIR=\""$(libexecdir)"\" \
+ -DDATADIR=\""$(datadir)"\" \
+ -DAUTOSTARTDIR=\""$(sysconfdir)/xdg/autostart"\" \
+ -DNMALOCALEDIR=\"$(datadir)/locale\" \
+ -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
+ "-I$(srcdir)/shared" \
+ "-I$(srcdir)/src/utils" \
+ "-I$(srcdir)/src/wireless-security" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ $(GCR_GCR4_CFLAGS)
+
+src_libnma_libnma_gtk4_la_LIBADD = \
+ src/wireless-security/libwireless-security-libnm-gtk4.la \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ $(GUDEV_LIBS) \
+ $(GCR_GCR4_LIBS)
+
+EXTRA_src_libnma_libnma_gtk4_la_DEPENDENCIES = src/libnma/libnma.ver
+
+src_libnma_libnma_gtk4_la_LDFLAGS = \
+ -Wl,-no-undefined \
+ -Wl,--version-script=$(srcdir)/src/libnma/libnma.ver
+
+
+pkgconfig_DATA += src/libnma/libnma-gtk4.pc
+
+if HAVE_INTROSPECTION
+src/libnma/NMA4-1.0.gir: src/libnma/libnma-gtk4.la
+src_libnma_NMA4_1_0_gir_INCLUDES = NM-1.0 Gtk-4.0
+src_libnma_NMA4_1_0_gir_EXPORT_PACKAGES = libnma-gtk4
+src_libnma_NMA4_1_0_gir_CFLAGS = $(src_libnma_libnma_gtk4_la_CFLAGS)
+src_libnma_NMA4_1_0_gir_LIBS = src/libnma/libnma-gtk4.la
+src_libnma_NMA4_1_0_gir_FILES = \
+ $(libnma_h_pub) \
+ $(libnma_c_real)
+if WITH_GCR_GTK4
+src_libnma_NMA4_1_0_gir_FILES += \
+ $(libnma_c_gcr)
+endif
+src_libnma_NMA4_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NMA --symbol-prefix=nma
+INTROSPECTION_GIRS += src/libnma/NMA4-1.0.gir
+endif
+
+check_PROGRAMS_norun += src/libnma/tests/mobile-wizard-gtk4
+
+src_libnma_tests_mobile_wizard_gtk4_SOURCES = \
+ src/libnma/tests/mobile-wizard.c
+
+src_libnma_tests_mobile_wizard_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_mobile_wizard_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+check_PROGRAMS_norun += src/libnma/tests/vpn-password-dialog-gtk4
+
+src_libnma_tests_vpn_password_dialog_gtk4_SOURCES = \
+ src/libnma/tests/vpn-password-dialog.c
+
+src_libnma_tests_vpn_password_dialog_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_vpn_password_dialog_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+check_PROGRAMS_norun += src/libnma/tests/wifi-dialog-gtk4
+
+src_libnma_tests_wifi_dialog_gtk4_SOURCES = \
+ src/libnma/tests/wifi-dialog.c
+
+src_libnma_tests_wifi_dialog_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_wifi_dialog_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+check_PROGRAMS_norun += src/libnma/tests/wifi-dialog-secrets-gtk4
+
+src_libnma_tests_wifi_dialog_secrets_gtk4_SOURCES = \
+ src/libnma/tests/wifi-dialog-secrets.c
+
+src_libnma_tests_wifi_dialog_secrets_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_wifi_dialog_secrets_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+check_PROGRAMS_norun += src/libnma/tests/run-vpn-gtk4
+
+src_libnma_tests_run_vpn_gtk4_SOURCES = \
+ src/libnma/tests/run-vpn.c
+
+src_libnma_tests_run_vpn_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_run_vpn_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+check_PROGRAMS_norun += src/libnma/tests/cert-chooser-gtk4
+
+src_libnma_tests_cert_chooser_gtk4_SOURCES = \
+ src/libnma/tests/cert-chooser.c
+
+src_libnma_tests_cert_chooser_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_cert_chooser_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+check_PROGRAMS_norun += src/libnma/tests/bar-code-gtk4
+
+src_libnma_tests_bar_code_gtk4_SOURCES = \
+ src/libnma/tests/bar-code.c
+
+src_libnma_tests_bar_code_gtk4_CPPFLAGS = \
+ $(dflt_cppflags) \
+ $(GLIB_CFLAGS) \
+ $(GTK4_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ "-I$(srcdir)/shared/" \
+ "-I$(srcdir)/src/libnma" \
+ -Isrc/libnma
+
+src_libnma_tests_bar_code_gtk4_LDADD = \
+ $(GLIB_LIBS) \
+ $(GTK4_LIBS) \
+ $(LIBNM_LIBS) \
+ src/libnma/libnma-gtk4.la
+
+endif
+
EXTRA_DIST += \
src/libnma/nma-version.h.in \
src/libnma/libnma.pc.in \
+ src/libnma/libnma-gtk4.pc.in \
src/libnma/libnma.ver \
src/libnma/wifi.ui \
src/libnma/nma-mobile-wizard.ui \
@@ -1075,6 +1349,7 @@ IGNORE_HFILES = \
nma-resources.h \
nma-version.h \
nma-cert-chooser-private.h \
+ nma-private.h \
nma-pkcs11-token-login-dialog.h \
nma-pkcs11-cert-chooser-dialog.h \
nma-cert-chooser-button.h
diff --git a/NEWS b/NEWS
index 6e91b146..43c76bb0 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,12 @@
=======================================================
+network-manager-applet-1.8.24
+Overview of changes since network-manager-applet-1.8.22
+=======================================================
+
+* Add EXPERIMENTAL libnma-gtk4 library for use with GTK4.
+ Not recommended for production use.
+
+=======================================================
network-manager-applet-1.8.22
Overview of changes since network-manager-applet-1.8.20
=======================================================
diff --git a/config.h.meson b/config.h.meson
index c3ca560e..41246fc0 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -50,6 +50,9 @@
/* Define if Gcr is available */
#mesondefine WITH_GCR
+/* Define if GTK4 Gcr is available */
+#mesondefine WITH_GCR_GTK4
+
/* Define if Jansson is available */
#mesondefine WITH_JANSSON
diff --git a/configure.ac b/configure.ac
index 4c7fbf90..d5cc23fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -165,6 +165,20 @@ PKG_CHECK_MODULES(NOTIFY, [libnotify >= 0.4.3])
PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.10)
GTK3_CFLAGS="$GTK3_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_10 -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_10"
+AC_ARG_WITH(libnma-gtk4, AS_HELP_STRING([--with-libnma-gtk4], [build EXPERIMENTAL libnma-gtk4 library for use with GTK4]))
+if test "$with_libnma_gtk4" == yes; then
+ PKG_CHECK_MODULES(GTK4, gtk4 >= 3.94)
+ GTK4_CFLAGS="$GTK4_CFLAGS -DGTK_VERSION_MIN_REQUIRED=GTK_VERSION_3_96 -DGTK_VERSION_MAX_ALLOWED=GTK_VERSION_3_96"
+else
+ with_libnma_gtk4=no
+fi
+AM_CONDITIONAL(WITH_LIBNMA_GTK4, test "$with_libnma_gtk4" != "no")
+
+# No such thing yet, just same lame duck placeholders.
+# it may actually end up being called differently.
+AC_DEFINE(WITH_GCR_GTK4, 0, [Define if GTK4 Gcr is available])
+AM_CONDITIONAL(WITH_GCR_GTK4, false)
+
AC_ARG_WITH([appindicator],
AS_HELP_STRING([--with-appindicator=no|yes|auto|ayatana|ubuntu], [Build with lib(ayatana-)appindicator support in addition to xembed systray support.]),
[], [with_appindicator=no])
@@ -318,6 +332,15 @@ NM_COMPILER_WARNINGS(CFLAGS, [yes])
NM_LTO
NM_LD_GC
+# Disable extra compiler warning until GTK4 doesn't trigger it via graphene
+# https://github.com/ebassi/graphene/issues/134
+if test "$with_libnma_gtk4" == yes; then
+ _CFLAGS_SAVED="$CFLAGS"
+ CFLAGS="$CFLAGS $GTK4_CFLAGS"
+ NM_COMPILER_WARNING([_CFLAGS], [float-equal], [#include <gtk/gtk.h>])
+ CFLAGS="$_CFLAGS_SAVED $_CFLAGS"
+fi
+
AC_ARG_WITH(more-asserts,
AS_HELP_STRING([--with-more-asserts=level], [Enable more assertions for debugging (default: 0)]),
[more_asserts=${with_more_asserts}],
@@ -336,6 +359,7 @@ AC_CONFIG_FILES([
Makefile
src/libnm-gtk/libnm-gtk.pc
src/libnma/libnma.pc
+src/libnma/libnma-gtk4.pc
po/Makefile.in
man/nm-applet.1
man/nm-connection-editor.1
@@ -346,6 +370,7 @@ AC_OUTPUT
echo ""
echo " Build legacy library libnm-gtk: --with-libnm-gtk=${with_libnm_gtk}"
+echo " Build EXPERIMENTAL libnma-gtk4 library for use with GTK4: --with-libnma-gtk4=${with_libnma_gtk4}"
echo " GCR: --with-gcr=$have_gcr"
echo " LTO: --enable-lto=$enable_lto"
echo " Linker garbage collection: --enable-ld-gc=$enable_ld_gc"
diff --git a/meson.build b/meson.build
index 75a866ea..2157a4b0 100644
--- a/meson.build
+++ b/meson.build
@@ -20,7 +20,6 @@ nma_micro_version = version_array[2].to_int()
nma_gir_version = '1.0'
nma_gir_prefix = 'NMA'
-nma_gir_ns = 'NMA'
nma_gtk_gir_ns = 'NMGtk'
nma_prefix = get_option('prefix')
@@ -77,10 +76,21 @@ if enable_ld_gc
common_ldflags += test_ldflags
endif
+enable_libnma_gtk4 = get_option('libnma_gtk4')
+if enable_libnma_gtk4
+ gtk4_ext_dep = dependency('gtk4', version: '>= 3.96')
+ gtk4_dep = declare_dependency(
+ dependencies: gtk4_ext_dep,
+ compile_args: [
+ '-DGTK_VERSION_MIN_REQUIRED=GTK_VERSION_3_96',
+ '-DGTK_VERSION_MAX_ALLOWED=GTK_VERSION_3_96'
+ ]
+ )
+endif
+
if nma_debug
test_cflags = [
'-Wdeclaration-after-statement',
- '-Wfloat-equal',
'-Wformat=2',
'-Wimplicit-fallthrough',
'-Winit-self',
@@ -100,6 +110,12 @@ if nma_debug
'-Wvla',
]
+ # Disable extra compiler warning until GTK4 doesn't trigger it via graphene
+ # https://github.com/ebassi/graphene/issues/134
+ if not enable_libnma_gtk4 or cc.compiles('#include <gtk/gtk.h>', dependencies: gtk4_ext_dep, args: ['-Werror=float-equal'])
+ test_cflags += '-Wfloat-equal'
+ endif
+
common_flags += cc.get_supported_arguments(test_cflags)
endif
@@ -206,6 +222,10 @@ if enable_libnm_gtk
)
endif
+# No such thing yet, just same lame duck placeholders.
+# it may actually end up being called differently.
+config_h.set10('WITH_GCR_GTK4', false)
+
enable_appindicator = get_option('appindicator')
if enable_appindicator == 'auto' or enable_appindicator == 'yes'
appindicator_dep = dependency('ayatana-appindicator3-0.1', required: false)
@@ -448,7 +468,8 @@ if enable_gtk_doc
'nma-pkcs11-cert-chooser-dialog.h',
'nma-pkcs11-token-login-dialog.h',
'nma-resources.h',
- 'nma-version.h'
+ 'nma-private.h',
+ 'nma-version.h',
]
private_sources = [
@@ -511,6 +532,7 @@ meson.add_install_script(
)
output = '\n Build legacy library libnm-gtk: ' + enable_libnm_gtk.to_string() + '\n'
+output += ' Build EXPERIMENTAL library libnm-gtk4 for use with GTK4: ' + enable_libnma_gtk4.to_string() + '\n'
output += ' GCR: ' + enable_gcr.to_string() + '\n'
output += ' LTO: ' + get_option('b_lto').to_string() + '\n'
output += ' Linker garbage collection: ' + enable_ld_gc.to_string() + '\n'
diff --git a/meson_options.txt b/meson_options.txt
index 5a13c793..eadec332 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,5 @@
option('libnm_gtk', type: 'boolean', value: false, description: 'build legacy library libnm-gtk which depends on libnm-glib/libnm-util/dbus-glib')
+option('libnma_gtk4', type: 'boolean', value: false, description: 'build EXPERIMENTAL library libnma-gtk4 for use with GTK4')
option('appindicator', type: 'string', value: 'no', description: 'Build with lib(ayatana-)appindicator support in addition to xembed systray support (no|yes|auto|ayatana|ubuntu). Default is "no", "yes" is an alias for "auto".')
option('wwan', type: 'boolean', value: true, description: 'Enable WWAN support.')
option('selinux', type: 'boolean', value: true, description: 'Enable support for adjusting SELinux labels in configuration editor.')
diff --git a/src/libnma/libnma-gtk4.pc.in b/src/libnma/libnma-gtk4.pc.in
new file mode 100644
index 00000000..a2cf2b49
--- /dev/null
+++ b/src/libnma/libnma-gtk4.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+includedir=@includedir@
+libdir=@libdir@
+
+Name: libnma
+Description: NetworkManager UI utilities (gtk4 version)
+Version: @PACKAGE_VERSION@
+Requires: libnm
+Cflags: -I${includedir}/libnma
+Libs: -L${libdir} -lnma-gtk4
diff --git a/src/libnma/meson.build b/src/libnma/meson.build
index d959ec5f..04f4e65e 100644
--- a/src/libnma/meson.build
+++ b/src/libnma/meson.build
@@ -1,5 +1,3 @@
-lib_name = 'libnma'
-
cert_chooser_headers = files('nma-cert-chooser.h')
cert_chooser_sources = files(
@@ -27,11 +25,9 @@ gir_headers = cert_chooser_headers + files(
'nma-wifi-dialog.h'
)
-headers = gir_headers + files('nma-cert-chooser-private.h')
-
install_headers(
gir_headers,
- subdir: lib_name
+ subdir: 'libnma'
)
gir_sources = [version_header] + cert_chooser_sources + files(
@@ -54,7 +50,6 @@ incs = [
]
deps = [
- gtk_dep,
gudev_dep,
libnm_dep,
libutils_libnm_dep,
@@ -73,29 +68,24 @@ cflags = [
symbol_map = join_paths(meson.current_source_dir(), 'libnma.ver')
+nma_deps = [ deps, gtk_dep ]
+nma_sources = [ gir_sources, built_sources ]
if enable_gcr
- headers += files(
- 'nma-cert-chooser-button.h',
- 'nma-pkcs11-cert-chooser-dialog.h',
- 'nma-pkcs11-token-login-dialog.h'
- )
-
- gir_sources += files(
+ nma_sources += files(
'nma-cert-chooser-button.c',
'nma-pkcs11-cert-chooser.c',
'nma-pkcs11-cert-chooser-dialog.c',
'nma-pkcs11-token-login-dialog.c'
)
-
- deps += gcr_dep
+ nma_deps += gcr_dep
endif
libnma = shared_library(
'nma',
- sources: gir_sources + built_sources,
+ sources: nma_sources,
version: libversion,
include_directories: incs,
- dependencies: deps,
+ dependencies: nma_deps,
c_args: cflags,
link_args: '-Wl,--version-script,' + symbol_map,
link_depends: symbol_map,
@@ -109,26 +99,56 @@ libnma_dep = declare_dependency(
include_directories: libnma_inc
)
+if enable_libnma_gtk4
+ libnma_gtk4 = shared_library(
+ 'nma-gtk4',
+ sources: gir_sources + built_sources,
+ version: libversion,
+ include_directories: incs,
+ dependencies: [ deps, gtk4_dep ],
+ c_args: cflags,
+ link_args: '-Wl,--version-script,' + symbol_map,
+ link_depends: symbol_map,
+ link_whole: libwireless_security_libnma_gtk4,
+ install: true,
+ install_dir: nma_libdir
+ )
+
+ libnma_gtk4_dep = declare_dependency(
+ link_with: libnma_gtk4,
+ include_directories: libnma_inc
+ )
+endif
+
subdir('tests')
pkg.generate(
libraries: libnma,
version: nma_version,
- name: lib_name,
+ name: 'libnma',
description: 'NetworkManager UI utilities (libnm version)',
- filebase: lib_name,
- subdirs: lib_name,
+ filebase: 'libnma',
+ subdirs: 'libnma',
requires: 'libnm',
variables: 'exec_prefix=' + nma_prefix,
install_dir: join_paths(nma_libdir, 'pkgconfig')
)
-if enable_introspection
- gir_incs = [
- 'Gtk-3.0',
- 'NM-1.0'
- ]
+if enable_libnma_gtk4
+ pkg.generate(
+ libraries: libnma_gtk4,
+ version: nma_version,
+ name: 'libnma-gtk4',
+ description: 'NetworkManager UI utilities (gtk4 version)',
+ filebase: 'libnma-gtk4',
+ subdirs: 'libnma',
+ requires: 'libnm',
+ variables: 'exec_prefix=' + nma_prefix,
+ install_dir: join_paths(nma_libdir, 'pkgconfig')
+ )
+endif
+if enable_introspection
gir_dir = join_paths(nma_datadir, 'gir-' + nma_gir_version)
typelib_dir = join_paths(nma_libdir, 'girepository-' + nma_gir_version)
@@ -136,13 +156,29 @@ if enable_introspection
libnma,
sources: gir_sources + gir_headers,
nsversion: nma_gir_version,
- namespace: nma_gir_ns,
- includes: gir_incs,
+ namespace: 'NMA',
+ includes: [ 'Gtk-3.0', 'NM-1.0' ],
identifier_prefix: nma_gir_prefix,
symbol_prefix: nma_gir_prefix.to_lower(),
- export_packages: lib_name,
+ export_packages: 'libnma',
install: true,
install_dir_gir: gir_dir,
install_dir_typelib: typelib_dir
)
+
+ if enable_libnma_gtk4
+ gnome.generate_gir(
+ libnma,
+ sources: gir_sources + gir_headers,
+ nsversion: nma_gir_version,
+ namespace: 'NMA4',
+ includes: [ 'Gtk-4.0', 'NM-1.0' ],
+ identifier_prefix: nma_gir_prefix,
+ symbol_prefix: nma_gir_prefix.to_lower(),
+ export_packages: 'libnma',
+ install: true,
+ install_dir_gir: gir_dir,
+ install_dir_typelib: typelib_dir
+ )
+ endif
endif
diff --git a/src/libnma/nma-cert-chooser.c b/src/libnma/nma-cert-chooser.c
index 93d4a76a..82d0e00b 100644
--- a/src/libnma/nma-cert-chooser.c
+++ b/src/libnma/nma-cert-chooser.c
@@ -597,7 +597,7 @@ constructor (GType type, guint n_construct_properties, GObjectConstructParam *co
flags |= g_value_get_uint (construct_properties[i].value);
}
priv->vtable = &nma_cert_chooser_vtable_file;
-#if LIBNM_BUILD && WITH_GCR
+#if LIBNM_BUILD && (GTK_CHECK_VERSION(3,90,0) ? WITH_GCR_GTK4 : WITH_GCR)
if ((flags & NMA_CERT_CHOOSER_FLAG_PEM) == 0)
priv->vtable = &nma_cert_chooser_vtable_pkcs11;
#endif
diff --git a/src/libnma/nma-file-cert-chooser.c b/src/libnma/nma-file-cert-chooser.c
index 1a3e200b..8f24c826 100644
--- a/src/libnma/nma-file-cert-chooser.c
+++ b/src/libnma/nma-file-cert-chooser.c
@@ -8,6 +8,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include "nma-cert-chooser-private.h"
#include "utils.h"
#ifdef LIBNM_BUILD
@@ -18,13 +19,19 @@
#define NMA_FILE_CERT_CHOOSER_GET_PRIVATE(self) (&(_NM_GET_PRIVATE (self, NMACertChooser, NMA_IS_CERT_CHOOSER)->_sub.file))
+#if GTK_CHECK_VERSION(3,90,0)
+#define gtk3_widget_set_no_show_all(widget, show)
+#else
+#define gtk3_widget_set_no_show_all(widget, show) gtk_widget_set_no_show_all (widget, show);
+#endif
+
static void
set_key_password (NMACertChooser *cert_chooser, const gchar *password)
{
NMAFileCertChooserPrivate *priv = NMA_FILE_CERT_CHOOSER_GET_PRIVATE (cert_chooser);
g_return_if_fail (priv->key_password != NULL);
- gtk_entry_set_text (GTK_ENTRY (priv->key_password), password);
+ gtk_editable_set_text (GTK_EDITABLE (priv->key_password), password);
}
static const gchar *
@@ -33,7 +40,7 @@ get_key_password (NMACertChooser *cert_chooser)
NMAFileCertChooserPrivate *priv = NMA_FILE_CERT_CHOOSER_GET_PRIVATE (cert_chooser);
g_return_val_if_fail (priv->key_password != NULL, NULL);
- return gtk_entry_get_text (GTK_ENTRY (priv->key_password));
+ return gtk_editable_get_text (GTK_EDITABLE (priv->key_password));
}
static void
@@ -293,7 +300,7 @@ init (NMACertChooser *cert_chooser)
gtk_widget_set_hexpand (priv->key_button, TRUE);
gtk_widget_set_sensitive (priv->key_button, FALSE);
gtk_widget_show (priv->key_button);
- gtk_widget_set_no_show_all (priv->key_button, TRUE);
+ gtk3_widget_set_no_show_all (priv->key_button, TRUE);
g_signal_connect (priv->key_button, "selection-changed",
G_CALLBACK (key_changed_cb), cert_chooser);
@@ -304,7 +311,7 @@ init (NMACertChooser *cert_chooser)
gtk_grid_attach (GTK_GRID (cert_chooser), priv->key_button_label, 0, 0, 1, 1);
gtk_widget_set_sensitive (priv->key_button_label, FALSE);
gtk_widget_show (priv->key_button_label);
- gtk_widget_set_no_show_all (priv->key_button_label, TRUE);
+ gtk3_widget_set_no_show_all (priv->key_button_label, TRUE);
/* The key password entry */
gtk_grid_insert_row (GTK_GRID (cert_chooser), 1);
@@ -315,7 +322,7 @@ init (NMACertChooser *cert_chooser)
gtk_widget_set_hexpand (priv->key_password, TRUE);
gtk_widget_set_sensitive (priv->key_password, FALSE);
gtk_widget_show (priv->key_password);
- gtk_widget_set_no_show_all (priv->key_password, TRUE);
+ gtk3_widget_set_no_show_all (priv->key_password, TRUE);
g_signal_connect (priv->key_password, "changed",
G_CALLBACK (key_password_changed_cb), cert_chooser);
@@ -326,14 +333,14 @@ init (NMACertChooser *cert_chooser)
gtk_grid_attach (GTK_GRID (cert_chooser), priv->key_password_label, 0, 1, 1, 1);
gtk_widget_set_sensitive (priv->key_password_label, FALSE);
gtk_widget_show (priv->key_password_label);
- gtk_widget_set_no_show_all (priv->key_password_label, TRUE);
+ gtk3_widget_set_no_show_all (priv->key_password_label, TRUE);
/* Show password */
gtk_grid_insert_row (GTK_GRID (cert_chooser), 2);
priv->show_password = gtk_check_button_new_with_mnemonic _("Sho_w password");
gtk_grid_attach (GTK_GRID (cert_chooser), priv->show_password, 1, 2, 1, 1);
gtk_widget_show (priv->show_password);
- gtk_widget_set_no_show_all (priv->show_password, TRUE);
+ gtk3_widget_set_no_show_all (priv->show_password, TRUE);
g_signal_connect (priv->show_password, "toggled",
G_CALLBACK (show_toggled_cb), cert_chooser);
@@ -349,7 +356,7 @@ init (NMACertChooser *cert_chooser)
gtk_grid_attach (GTK_GRID (cert_chooser), priv->cert_button, 1, 0, 1, 1);
gtk_widget_set_hexpand (priv->cert_button, TRUE);
gtk_widget_show (priv->cert_button);
- gtk_widget_set_no_show_all (priv->cert_button, TRUE);
+ gtk3_widget_set_no_show_all (priv->cert_button, TRUE);
/* For some reason, GTK+ calls set_current_filter (..., NULL) from
* gtkfilechooserdefault.c::show_and_select_files_finished_loading() on our
@@ -367,7 +374,7 @@ init (NMACertChooser *cert_chooser)
gtk_label_set_mnemonic_widget (GTK_LABEL (priv->cert_button_label), priv->cert_button);
gtk_grid_attach (GTK_GRID (cert_chooser), priv->cert_button_label, 0, 0, 1, 1);
gtk_widget_show (priv->cert_button_label);
- gtk_widget_set_no_show_all (priv->cert_button_label, TRUE);
+ gtk3_widget_set_no_show_all (priv->cert_button_label, TRUE);
}
const NMACertChooserVtable nma_cert_chooser_vtable_file = {
diff --git a/src/libnma/nma-mobile-wizard.c b/src/libnma/nma-mobile-wizard.c
index cf10e0a8..9a4e753b 100644
--- a/src/libnma/nma-mobile-wizard.c
+++ b/src/libnma/nma-mobile-wizard.c
@@ -8,9 +8,16 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <stdlib.h>
+#if GTK_CHECK_VERSION(3,90,0)
+#include <gdk/x11/gdkx.h>
+#else
+#include <gdk/gdkx.h>
+#endif
+
#include <NetworkManager.h>
#include <nm-setting-gsm.h>
#include <nm-setting-cdma.h>
@@ -90,7 +97,7 @@ typedef struct {
GtkTreeStore *plan_store;
guint32 plan_focus_id;
- GtkEntry *plan_apn_entry;
+ GtkEditable *plan_apn_entry;
/* Confirm page */
GtkWidget *confirm_page;
@@ -165,7 +172,7 @@ assistant_closed (GtkButton *button, gpointer user_data)
}
} else {
family = NMA_MOBILE_FAMILY_3GPP;
- wiz_method->gsm_apn = g_strdup (gtk_entry_get_text (priv->plan_apn_entry));
+ wiz_method->gsm_apn = g_strdup (gtk_editable_get_text (priv->plan_apn_entry));
}
}
}
@@ -271,7 +278,7 @@ confirm_prepare (NMAMobileWizard *self)
else
gtk_label_set_text (priv->confirm_plan, _("Unlisted"));
- apn = gtk_entry_get_text (priv->plan_apn_entry);
+ apn = gtk_editable_get_text (priv->plan_apn_entry);
}
if (apn) {
@@ -339,7 +346,7 @@ plan_update_complete (NMAMobileWizard *self)
} else {
const char *manual_apn;
- manual_apn = gtk_entry_get_text (priv->plan_apn_entry);
+ manual_apn = gtk_editable_get_text (priv->plan_apn_entry);
gtk_assistant_set_page_complete (assistant, priv->plan_page,
(manual_apn && strlen (manual_apn)));
}
@@ -354,10 +361,10 @@ plan_combo_changed (NMAMobileWizard *self)
method = get_selected_method (self, &is_manual);
if (method) {
- gtk_entry_set_text (priv->plan_apn_entry, nma_mobile_access_method_get_3gpp_apn (method));
+ gtk_editable_set_text (priv->plan_apn_entry, nma_mobile_access_method_get_3gpp_apn (method));
gtk_widget_set_sensitive (GTK_WIDGET (priv->plan_apn_entry), FALSE);
} else {
- gtk_entry_set_text (priv->plan_apn_entry, "");
+ gtk_editable_set_text (priv->plan_apn_entry, "");
gtk_widget_set_sensitive (GTK_WIDGET (priv->plan_apn_entry), TRUE);
gtk_widget_grab_focus (GTK_WIDGET (priv->plan_apn_entry));
}
@@ -1450,6 +1457,17 @@ static void
nma_mobile_wizard_init (NMAMobileWizard *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
+ gtk_widget_realize (GTK_WIDGET (self));
+
+ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (GTK_WIDGET (self)))) {
+#if GTK_CHECK_VERSION(3,90,0)
+ GdkSurface *surface = gtk_widget_get_surface (GTK_WIDGET (self));
+ gdk_x11_surface_set_skip_taskbar_hint (surface, TRUE);
+#else
+ GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (self));
+ gdk_window_set_skip_taskbar_hint (gdk_window, TRUE);
+#endif
+ }
}
/**
diff --git a/src/libnma/nma-mobile-wizard.ui b/src/libnma/nma-mobile-wizard.ui
index 4c64f3c1..e120e962 100644
--- a/src/libnma/nma-mobile-wizard.ui
+++ b/src/libnma/nma-mobile-wizard.ui
@@ -50,7 +50,6 @@
<property name="modal">True</property>
<property name="window_position">center-always</property>
<property name="type_hint">dialog</property>
- <property name="skip_taskbar_hint">True</property>
<property name="use_header_bar">1</property>
<signal name="cancel" handler="assistant_cancel" swapped="no"/>
<signal name="close" handler="assistant_closed" swapped="no"/>
@@ -568,9 +567,9 @@ If you are unsure of your plan please ask your provider for your plan’s APN.</
</child>
<child>
<object class="GtkLabel" id="confirm_connect_after_label">
+ <property name="visible">False</property>
<property name="width_request">500</property>
<property name="can_focus">False</property>
- <property name="no_show_all">True</property>
<property name="valign">end</property>
<property name="vexpand">True</property>
<property name="label" translatable="yes">A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose “Network Connections” from the System → Preferences menu.</property>
diff --git a/src/libnma/nma-pkcs11-cert-chooser.c b/src/libnma/nma-pkcs11-cert-chooser.c
index b0449ec5..8e45138e 100644
--- a/src/libnma/nma-pkcs11-cert-chooser.c
+++ b/src/libnma/nma-pkcs11-cert-chooser.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include "nma-cert-chooser-private.h"
#include "nma-cert-chooser-button.h"
#include "nma-ui-utils.h"
@@ -27,7 +28,7 @@ set_key_password (NMACertChooser *cert_chooser, const gchar *password)
g_return_if_fail (priv->key_password != NULL);
if (password)
- gtk_entry_set_text (GTK_ENTRY (priv->key_password), password);
+ gtk_editable_set_text (GTK_EDITABLE (priv->key_password), password);
}
static const gchar *
@@ -37,7 +38,7 @@ get_key_password (NMACertChooser *cert_chooser)
const gchar *text;
g_return_val_if_fail (priv->key_password != NULL, NULL);
- text = gtk_entry_get_text (GTK_ENTRY (priv->key_password));
+ text = gtk_editable_get_text (GTK_EDITABLE (priv->key_password));
return text && text[0] ? text : NULL;
}
@@ -72,7 +73,7 @@ set_cert_password (NMACertChooser *cert_chooser, const gchar *password)
g_return_if_fail (priv->cert_password != NULL);
if (password)
- gtk_entry_set_text (GTK_ENTRY (priv->cert_password), password);
+ gtk_editable_set_text (GTK_EDITABLE (priv->cert_password), password);
}
static const gchar *
@@ -82,7 +83,7 @@ get_cert_password (NMACertChooser *cert_chooser)
const gchar *text;
g_return_val_if_fail (priv->cert_password != NULL, NULL);
- text = gtk_entry_get_text (GTK_ENTRY (priv->cert_password));
+ text = gtk_editable_get_text (GTK_EDITABLE (priv->cert_password));
return text && text[0] ? text : NULL;
}
@@ -281,7 +282,7 @@ cert_changed_cb (NMACertChooserButton *button, gpointer user_data)
if (nma_cert_chooser_button_get_remember_pin (button))
pin = nma_cert_chooser_button_get_pin (button);
if (pin)
- gtk_entry_set_text (GTK_ENTRY (priv->cert_password), pin);
+ gtk_editable_set_text (GTK_EDITABLE (priv->cert_password), pin);
gtk_widget_set_sensitive (priv->cert_password, uri_data != NULL);
gtk_widget_set_sensitive (priv->cert_password_label, uri_data != NULL);
@@ -297,7 +298,7 @@ cert_changed_cb (NMACertChooserButton *button, gpointer user_data)
gtk_widget_set_sensitive (priv->key_password, TRUE);
gtk_widget_set_sensitive (priv->key_password_label, TRUE);
if (pin)
- gtk_entry_set_text (GTK_ENTRY (priv->key_password), pin);
+ gtk_editable_set_text (GTK_EDITABLE (priv->key_password), pin);
}
}
}
@@ -319,7 +320,7 @@ key_changed_cb (NMACertChooserButton *button, gpointer user_data)
if (nma_cert_chooser_button_get_remember_pin (button))
pin = nma_cert_chooser_button_get_pin (button);
if (pin) {
- gtk_entry_set_text (GTK_ENTRY (priv->key_password), pin);
+ gtk_editable_set_text (GTK_EDITABLE (priv->key_password), pin);
g_free (pin);
}
diff --git a/src/libnma/nma-private.h b/src/libnma/nma-private.h
new file mode 100644
index 00000000..8470fbf3
--- /dev/null
+++ b/src/libnma/nma-private.h
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0+
+/* NetworkManager Applet -- allow user control over networking
+ *
+ * Lubomir Rintel <lkundrak@v3.sk>
+ *
+ * Copyright (C) 2019 Red Hat, Inc.
+ */
+
+#ifndef NMA_PRIVATE_H
+
+#if !GTK_CHECK_VERSION(3,96,0)
+#define gtk_editable_set_text(editable,text) gtk_entry_set_text(GTK_ENTRY(editable), (text))
+#define gtk_editable_get_text(editable) gtk_entry_get_text(GTK_ENTRY(editable))
+#define gtk_editable_set_width_chars(editable, n_chars) gtk_entry_set_width_chars(GTK_ENTRY(editable), (n_chars))
+#endif
+
+void nma_gtk_widget_activate_default (GtkWidget *widget);
+
+#define NMA_PRIVATE_H
+
+#endif /* NMA_PRIVATE_H */
diff --git a/src/libnma/nma-ui-utils.c b/src/libnma/nma-ui-utils.c
index 91d13214..7a4e6770 100644
--- a/src/libnma/nma-ui-utils.c
+++ b/src/libnma/nma-ui-utils.c
@@ -4,6 +4,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <string.h>
@@ -74,11 +75,11 @@ change_password_storage_icon (GtkWidget *passwd_entry, MenuItem item)
if ( (item == ITEM_STORAGE_ASK && !ask_mode)
|| item == ITEM_STORAGE_UNUSED) {
/* Store the old password */
- old_pwd = gtk_entry_get_text (GTK_ENTRY (passwd_entry));
+ old_pwd = gtk_editable_get_text (GTK_EDITABLE (passwd_entry));
if (old_pwd && *old_pwd)
g_object_set_data_full (G_OBJECT (passwd_entry), "password-old",
g_strdup (old_pwd), g_free_str0);
- gtk_entry_set_text (GTK_ENTRY (passwd_entry), "");
+ gtk_editable_set_text (GTK_EDITABLE (passwd_entry), "");
if (gtk_widget_is_focus (passwd_entry))
gtk_widget_child_focus ((gtk_widget_get_toplevel (passwd_entry)), GTK_DIR_TAB_BACKWARD);
@@ -87,7 +88,7 @@ change_password_storage_icon (GtkWidget *passwd_entry, MenuItem item)
/* Set the old password to the entry */
old_pwd = g_object_get_data (G_OBJECT (passwd_entry), "password-old");
if (old_pwd && *old_pwd)
- gtk_entry_set_text (GTK_ENTRY (passwd_entry), old_pwd);
+ gtk_editable_set_text (GTK_EDITABLE (passwd_entry), old_pwd);
g_object_set_data (G_OBJECT (passwd_entry), "password-old", NULL);
if (!gtk_widget_get_can_focus (passwd_entry)) {
@@ -205,17 +206,45 @@ popup_menu_item_info_register (GtkWidget *item,
(GClosureNotify) popup_menu_item_info_destroy, 0);
}
+void
+nma_gtk_widget_activate_default (GtkWidget *widget)
+{
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_widget_activate_default (widget);
+#else
+ gtk_window_activate_default (GTK_WINDOW (widget));
+#endif
+}
+
static void
icon_release_cb (GtkEntry *entry,
GtkEntryIconPosition position,
+#if !GTK_CHECK_VERSION(3,90,0)
GdkEventButton *event,
+#endif
gpointer data)
{
GtkMenu *menu = GTK_MENU (data);
+#if GTK_CHECK_VERSION(3,90,0)
+ GdkRectangle icon_area;
+#endif
+
if (position == GTK_ENTRY_ICON_SECONDARY) {
- gtk_widget_show_all (GTK_WIDGET (data));
+ gtk_widget_show (GTK_WIDGET (data));
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_entry_get_icon_area (entry,
+ GTK_ENTRY_ICON_SECONDARY,
+ &icon_area);
+ gtk_menu_popup_at_rect (menu,
+ gtk_widget_get_surface (GTK_WIDGET (entry)),
+ &icon_area,
+ GDK_GRAVITY_CENTER,
+ GDK_GRAVITY_CENTER,
+ NULL);
+#else
gtk_menu_popup (menu, NULL, NULL, NULL, NULL,
event->button, event->time);
+#endif
}
}
diff --git a/src/libnma/nma-vpn-password-dialog.c b/src/libnma/nma-vpn-password-dialog.c
index a0397b49..a6738146 100644
--- a/src/libnma/nma-vpn-password-dialog.c
+++ b/src/libnma/nma-vpn-password-dialog.c
@@ -19,7 +19,7 @@
*/
#include "nm-default.h"
-
+#include "nma-private.h"
#include "nma-vpn-password-dialog.h"
typedef struct {
@@ -83,7 +83,7 @@ nma_vpn_password_dialog_class_init (NMAVpnPasswordDialogClass *klass)
gtk_widget_class_bind_template_callback (widget_class, dialog_close_callback);
gtk_widget_class_bind_template_callback (widget_class, dialog_show_callback);
- gtk_widget_class_bind_template_callback (widget_class, gtk_window_activate_default);
+ gtk_widget_class_bind_template_callback (widget_class, nma_gtk_widget_activate_default);
gtk_widget_class_bind_template_callback (widget_class, show_passwords_toggled_cb);
}
@@ -169,7 +169,7 @@ nma_vpn_password_dialog_set_password (NMAVpnPasswordDialog *dialog,
g_return_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog));
priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog);
- gtk_entry_set_text (GTK_ENTRY (priv->password_entry), password ? password : "");
+ gtk_editable_set_text (GTK_EDITABLE (priv->password_entry), password ? password : "");
}
void
@@ -181,7 +181,7 @@ nma_vpn_password_dialog_set_password_secondary (NMAVpnPasswordDialog *dialog,
g_return_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog));
priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog);
- gtk_entry_set_text (GTK_ENTRY (priv->password_entry_secondary),
+ gtk_editable_set_text (GTK_EDITABLE (priv->password_entry_secondary),
password_secondary ? password_secondary : "");
}
@@ -194,7 +194,7 @@ nma_vpn_password_dialog_set_password_ternary (NMAVpnPasswordDialog *dialog,
g_return_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog));
priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog);
- gtk_entry_set_text (GTK_ENTRY (priv->password_entry_tertiary),
+ gtk_editable_set_text (GTK_EDITABLE (priv->password_entry_tertiary),
password_tertiary ? password_tertiary : "");
}
@@ -286,7 +286,7 @@ nma_vpn_password_dialog_get_password (NMAVpnPasswordDialog *dialog)
g_return_val_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog), NULL);
priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog);
- return gtk_entry_get_text (GTK_ENTRY (priv->password_entry));
+ return gtk_editable_get_text (GTK_EDITABLE (priv->password_entry));
}
const char *
@@ -297,7 +297,7 @@ nma_vpn_password_dialog_get_password_secondary (NMAVpnPasswordDialog *dialog)
g_return_val_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog), NULL);
priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog);
- return gtk_entry_get_text (GTK_ENTRY (priv->password_entry_secondary));
+ return gtk_editable_get_text (GTK_EDITABLE (priv->password_entry_secondary));
}
const char *
@@ -308,7 +308,7 @@ nma_vpn_password_dialog_get_password_ternary (NMAVpnPasswordDialog *dialog)
g_return_val_if_fail (NMA_VPN_IS_PASSWORD_DIALOG (dialog), NULL);
priv = NMA_VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog);
- return gtk_entry_get_text (GTK_ENTRY (priv->password_entry_tertiary));
+ return gtk_editable_get_text (GTK_EDITABLE (priv->password_entry_tertiary));
}
void nma_vpn_password_dialog_set_password_label (NMAVpnPasswordDialog *dialog,
diff --git a/src/libnma/nma-vpn-password-dialog.ui b/src/libnma/nma-vpn-password-dialog.ui
index ca3009dc..4774d2e4 100644
--- a/src/libnma/nma-vpn-password-dialog.ui
+++ b/src/libnma/nma-vpn-password-dialog.ui
@@ -90,7 +90,7 @@
<property name="can_focus">True</property>
<property name="visibility">False</property>
<property name="width_chars">20</property>
- <signal name="activate" handler="gtk_window_activate_default" swapped="yes"/>
+ <signal name="activate" handler="nma_gtk_widget_activate_default" swapped="yes"/>
</object>
<packing>
<property name="left_attach">2</property>
@@ -103,7 +103,7 @@
<property name="can_focus">True</property>
<property name="visibility">False</property>
<property name="width_chars">20</property>
- <signal name="activate" handler="gtk_window_activate_default" swapped="yes"/>
+ <signal name="activate" handler="nma_gtk_widget_activate_default" swapped="yes"/>
</object>
<packing>
<property name="left_attach">2</property>
@@ -116,7 +116,7 @@
<property name="can_focus">True</property>
<property name="visibility">False</property>
<property name="width_chars">20</property>
- <signal name="activate" handler="gtk_window_activate_default" swapped="yes"/>
+ <signal name="activate" handler="nma_gtk_widget_activate_default" swapped="yes"/>
</object>
<packing>
<property name="left_attach">2</property>
diff --git a/src/libnma/nma-wifi-dialog.c b/src/libnma/nma-wifi-dialog.c
index 121441ac..12a16e85 100644
--- a/src/libnma/nma-wifi-dialog.c
+++ b/src/libnma/nma-wifi-dialog.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <string.h>
#include <netinet/ether.h>
@@ -219,7 +220,7 @@ validate_dialog_ssid (NMAWifiDialog *self)
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry"));
- ssid = gtk_entry_get_text (GTK_ENTRY (widget));
+ ssid = gtk_editable_get_text (GTK_EDITABLE (widget));
if (!ssid || strlen (ssid) == 0 || strlen (ssid) > 32)
return NULL;
@@ -365,10 +366,10 @@ connection_combo_changed (GtkWidget *combo,
s_wireless = nm_connection_get_setting_wireless (priv->connection);
ssid = nm_setting_wireless_get_ssid (s_wireless);
utf8_ssid = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid, NULL), g_bytes_get_size (ssid));
- gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid);
+ gtk_editable_set_text (GTK_EDITABLE (widget), utf8_ssid);
g_free (utf8_ssid);
} else {
- gtk_entry_set_text (GTK_ENTRY (widget), "");
+ gtk_editable_set_text (GTK_EDITABLE (widget), "");
}
gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")), is_new);
@@ -518,7 +519,9 @@ connection_combo_init (NMAWifiDialog *self)
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE);
gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer,
"text", C_NAME_COLUMN);
+#if !GTK_CHECK_VERSION(3,96,0)
gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (widget), 1);
+#endif
gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->connection_model);
@@ -1083,7 +1086,11 @@ internal_init (NMAWifiDialog *self,
gtk_window_set_icon_name (GTK_WINDOW (self), icon_name);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image1"));
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name);
+#else
gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG);
+#endif
gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 2);
@@ -1097,8 +1104,10 @@ internal_init (NMAWifiDialog *self,
priv->ok_response_button = widget;
}
+#if !GTK_CHECK_VERSION(3,96,0)
g_object_set (G_OBJECT (widget), "can-default", TRUE, NULL);
gtk_widget_grab_default (widget);
+#endif
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "wifi_dialog"));
if (!widget) {
diff --git a/src/libnma/tests/bar-code.c b/src/libnma/tests/bar-code.c
index 8da5e093..f85a0cfa 100644
--- a/src/libnma/tests/bar-code.c
+++ b/src/libnma/tests/bar-code.c
@@ -13,6 +13,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <stdio.h>
#include <string.h>
@@ -59,7 +60,7 @@ password_changed (GtkEditable *editable, gpointer user_data)
g_object_set (s_wsec,
NM_SETTING_WIRELESS_SECURITY_PSK,
- gtk_entry_get_text (GTK_ENTRY (editable)),
+ gtk_editable_get_text (editable),
NULL);
}
@@ -105,10 +106,14 @@ main (int argc, char *argv[])
nm_connection_add_setting (connection,
nm_setting_wireless_new ());
- gtk_init (&argc, &argv);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
+ gtk_init (&argc, &argv);
+#endif
- w = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_widget_show (w);
+ w = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_widget_show (w);
gtk_window_set_default_size (GTK_WINDOW (w), 800, 680);
g_signal_connect (w, "delete-event", G_CALLBACK (delete), NULL);
@@ -131,7 +136,7 @@ main (int argc, char *argv[])
w = gtk_entry_new ();
g_signal_connect (w, "changed", G_CALLBACK (ssid_changed), connection);
- gtk_entry_set_text (GTK_ENTRY (w), "\"ab:cd\"");
+ gtk_editable_set_text (GTK_EDITABLE (w), "\"ab:cd\"");
gtk_widget_show (w);
gtk_grid_attach (GTK_GRID (grid), w, 1, 0, 1, 1);
@@ -142,7 +147,7 @@ main (int argc, char *argv[])
pass = gtk_entry_new ();
g_signal_connect (pass, "changed", G_CALLBACK (password_changed), connection);
- gtk_entry_set_text (GTK_ENTRY (pass), "lolofon");
+ gtk_editable_set_text (GTK_EDITABLE (pass), "lolofon");
gtk_widget_show (pass);
gtk_grid_attach (GTK_GRID (grid), pass, 1, 1, 1, 1);
diff --git a/src/libnma/tests/cert-chooser.c b/src/libnma/tests/cert-chooser.c
index 352460a9..99808d12 100644
--- a/src/libnma/tests/cert-chooser.c
+++ b/src/libnma/tests/cert-chooser.c
@@ -24,21 +24,36 @@ main (int argc, char *argv[])
GtkBox *content;
GtkWidget *widget;
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
gtk_init (&argc, &argv);
+#endif
dialog = gtk_dialog_new_with_buttons ("NMACertChooser test",
NULL, GTK_DIALOG_MODAL,
"Dismiss", GTK_RESPONSE_DELETE_EVENT,
NULL);
content = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog)));
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_box_set_spacing (content, 6);
+#endif
widget = nma_cert_chooser_new ("Any", 0);
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
widget = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
widget = nma_cert_chooser_new ("FLAG_PASSWORDS", NMA_CERT_CHOOSER_FLAG_PASSWORDS);
nma_cert_chooser_set_cert (NMA_CERT_CHOOSER (widget),
@@ -47,23 +62,43 @@ main (int argc, char *argv[])
nma_cert_chooser_set_key_uri (NMA_CERT_CHOOSER (widget),
"pkcs11:object=worship;type=doom");
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
widget = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
widget = nma_cert_chooser_new ("FLAG_CERT", NMA_CERT_CHOOSER_FLAG_CERT);
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
widget = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
widget = nma_cert_chooser_new ("FLAG_PEM", NMA_CERT_CHOOSER_FLAG_PEM);
gtk_widget_show (widget);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_container_add (GTK_CONTAINER (content), widget);
+#else
gtk_box_pack_start (content, widget, TRUE, TRUE, 6);
+#endif
gtk_dialog_run (GTK_DIALOG (dialog));
}
diff --git a/src/libnma/tests/meson.build b/src/libnma/tests/meson.build
index 2d682e86..253de9e7 100644
--- a/src/libnma/tests/meson.build
+++ b/src/libnma/tests/meson.build
@@ -1,59 +1,31 @@
-deps = [
- gtk_dep,
- libnm_dep,
- libnma_dep
-]
-
-executable(
+tests = [
+ 'bar-code',
'cert-chooser',
- 'cert-chooser.c',
- include_directories: incs,
- dependencies: deps,
- c_args: cflags,
- install: false
-)
-
-executable(
'mobile-wizard',
- 'mobile-wizard.c',
- include_directories: incs,
- dependencies: deps,
- c_args: cflags,
- install: false
-)
-
-executable(
'run-vpn',
- 'run-vpn.c',
- include_directories: incs,
- dependencies: deps,
- c_args: cflags,
- install: false
-)
-
-executable(
'vpn-password-dialog',
- 'vpn-password-dialog.c',
- include_directories: incs,
- dependencies: deps,
- c_args: cflags,
- install: false
-)
-
-executable(
'wifi-dialog',
- 'wifi-dialog.c',
- include_directories: incs,
- dependencies: deps,
- c_args: cflags,
- install: false
-)
-
-executable(
'wifi-dialog-secrets',
- 'wifi-dialog-secrets.c',
- include_directories: incs,
- dependencies: deps,
- c_args: cflags,
- install: false
-)
+]
+
+foreach tst : tests
+ executable(
+ tst,
+ tst + '.c',
+ include_directories: incs,
+ dependencies: [ gtk_dep, libnm_dep, libnma_dep ],
+ c_args: cflags,
+ install: false
+ )
+
+ if enable_libnma_gtk4
+ executable(
+ tst + '-gtk4',
+ tst + '.c',
+ include_directories: incs,
+ dependencies: [ gtk4_dep, libnm_dep, libnma_gtk4_dep ],
+ c_args: cflags,
+ install: false
+ )
+ endif
+endforeach
diff --git a/src/libnma/tests/mobile-wizard.c b/src/libnma/tests/mobile-wizard.c
index 36232115..1e21868f 100644
--- a/src/libnma/tests/mobile-wizard.c
+++ b/src/libnma/tests/mobile-wizard.c
@@ -19,7 +19,11 @@ main (int argc, char *argv[])
{
NMAMobileWizard *wizard;
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
gtk_init (&argc, &argv);
+#endif
wizard = nma_mobile_wizard_new (NULL, NULL, NM_DEVICE_MODEM_CAPABILITY_NONE, TRUE, wizard_cb, NULL);
diff --git a/src/libnma/tests/run-vpn.c b/src/libnma/tests/run-vpn.c
index 8f3eb16b..b0e39d9d 100644
--- a/src/libnma/tests/run-vpn.c
+++ b/src/libnma/tests/run-vpn.c
@@ -33,7 +33,12 @@ main (int argc, char *argv[])
GtkWidget *widget;
gs_free_error GError *error = NULL;
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
gtk_init (&argc, &argv);
+#endif
+
if (argc != 2) {
g_printerr ("Usage: %s libnm-vpn-plugin-<name>.so\n", argv[0]);
return EXIT_FAILURE;
diff --git a/src/libnma/tests/vpn-password-dialog.c b/src/libnma/tests/vpn-password-dialog.c
index 696599aa..2a65b432 100644
--- a/src/libnma/tests/vpn-password-dialog.c
+++ b/src/libnma/tests/vpn-password-dialog.c
@@ -13,7 +13,11 @@ main (int argc, char *argv[])
{
GtkWidget *widget;
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
gtk_init (&argc, &argv);
+#endif
widget = nma_vpn_password_dialog_new ("Title", "Message", "Password");
diff --git a/src/libnma/tests/wifi-dialog-secrets.c b/src/libnma/tests/wifi-dialog-secrets.c
index 4ceffcc4..f6d9ef95 100644
--- a/src/libnma/tests/wifi-dialog-secrets.c
+++ b/src/libnma/tests/wifi-dialog-secrets.c
@@ -54,7 +54,11 @@ main (int argc, char *argv[])
NULL
};
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
gtk_init (&argc, &argv);
+#endif
client = nm_client_new (NULL, NULL);
connection = nm_simple_connection_new ();
diff --git a/src/libnma/tests/wifi-dialog.c b/src/libnma/tests/wifi-dialog.c
index 10c08ff3..1f8219ae 100644
--- a/src/libnma/tests/wifi-dialog.c
+++ b/src/libnma/tests/wifi-dialog.c
@@ -20,7 +20,11 @@ main (int argc, char *argv[])
GError *error = NULL;
gs_unref_bytes GBytes *ssid = g_bytes_new_static ("<Maj Vaj Faj>", 13);
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_init ();
+#else
gtk_init (&argc, &argv);
+#endif
client = nm_client_new (NULL, NULL);
connection = nm_simple_connection_new ();
diff --git a/src/mobile-helpers.c b/src/mobile-helpers.c
index 0621a81b..54f250b8 100644
--- a/src/mobile-helpers.c
+++ b/src/mobile-helpers.c
@@ -7,7 +7,7 @@
*/
#include "nm-default.h"
-
+#include "nma-private.h"
#include <ctype.h>
#include <libsecret/secret.h>
@@ -469,7 +469,7 @@ ask_for_pin (GtkEntry **out_secret_entry)
w = gtk_entry_new ();
*out_secret_entry = GTK_ENTRY (w);
gtk_entry_set_max_length (GTK_ENTRY (w), 8);
- gtk_entry_set_width_chars (GTK_ENTRY (w), 8);
+ gtk_editable_set_width_chars (GTK_EDITABLE (w), 8);
gtk_entry_set_activates_default (GTK_ENTRY (w), TRUE);
gtk_entry_set_visibility (GTK_ENTRY (w), FALSE);
gtk_box_pack_start (box, w, FALSE, FALSE, 0);
diff --git a/src/utils/utils.c b/src/utils/utils.c
index ef6e6a85..3a6f07e0 100644
--- a/src/utils/utils.c
+++ b/src/utils/utils.c
@@ -318,10 +318,19 @@ utils_override_bg_color (GtkWidget *widget, GdkRGBA *rgba)
if (rgba) {
css = g_strdup_printf ("* { background-color: %s; background-image: none; }",
gdk_rgba_to_string (rgba));
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_css_provider_load_from_data (provider, css, -1);
+#else
gtk_css_provider_load_from_data (provider, css, -1, NULL);
+#endif
g_free (css);
- } else
+ } else {
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_css_provider_load_from_data (provider, "", -1);
+#else
gtk_css_provider_load_from_data (provider, "", -1, NULL);
+#endif
+ }
}
void
diff --git a/src/wireless-security/eap-method-fast.c b/src/wireless-security/eap-method-fast.c
index 311371c3..32674739 100644
--- a/src/wireless-security/eap-method-fast.c
+++ b/src/wireless-security/eap-method-fast.c
@@ -6,6 +6,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -131,7 +132,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_fast_anon_identity_entry"));
g_assert (widget);
- text = gtk_entry_get_text (GTK_ENTRY (widget));
+ text = gtk_editable_get_text (GTK_EDITABLE (widget));
if (text && strlen (text))
g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
@@ -382,7 +383,7 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_fast_anon_identity_entry"));
if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
g_signal_connect (G_OBJECT (widget), "changed",
(GCallback) wireless_security_changed_cb,
ws_parent);
diff --git a/src/wireless-security/eap-method-leap.c b/src/wireless-security/eap-method-leap.c
index 2f43ab85..ee45257b 100644
--- a/src/wireless-security/eap-method-leap.c
+++ b/src/wireless-security/eap-method-leap.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -46,7 +47,7 @@ validate (EAPMethod *parent, GError **error)
const char *text;
gboolean ret = TRUE;
- text = gtk_entry_get_text (method->username_entry);
+ text = gtk_editable_get_text (GTK_EDITABLE (method->username_entry));
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (method->username_entry));
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-LEAP username"));
@@ -54,7 +55,7 @@ validate (EAPMethod *parent, GError **error)
} else
widget_unset_error (GTK_WIDGET (method->username_entry));
- text = gtk_entry_get_text (method->password_entry);
+ text = gtk_editable_get_text (GTK_EDITABLE (method->password_entry));
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (method->password_entry));
if (ret) {
@@ -94,8 +95,10 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
nm_setting_802_1x_add_eap_method (s_8021x, "leap");
- g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (method->username_entry), NULL);
- g_object_set (s_8021x, NM_SETTING_802_1X_PASSWORD, gtk_entry_get_text (method->password_entry), NULL);
+ g_object_set (s_8021x,
+ NM_SETTING_802_1X_IDENTITY, gtk_editable_get_text (GTK_EDITABLE (method->username_entry)),
+ NM_SETTING_802_1X_PASSWORD, gtk_editable_get_text (GTK_EDITABLE (method->password_entry)),
+ NULL);
passwd_entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_password_entry"));
g_assert (passwd_entry);
@@ -126,15 +129,19 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
static void
set_userpass_ui (EAPMethodLEAP *method)
{
- if (method->ws_parent->username)
- gtk_entry_set_text (method->username_entry, method->ws_parent->username);
- else
- gtk_entry_set_text (method->username_entry, "");
-
- if (method->ws_parent->password && !method->ws_parent->always_ask)
- gtk_entry_set_text (method->password_entry, method->ws_parent->password);
- else
- gtk_entry_set_text (method->password_entry, "");
+ if (method->ws_parent->username) {
+ gtk_editable_set_text (GTK_EDITABLE (method->username_entry),
+ method->ws_parent->username);
+ } else {
+ gtk_editable_set_text (GTK_EDITABLE (method->username_entry), "");
+ }
+
+ if (method->ws_parent->password && !method->ws_parent->always_ask) {
+ gtk_editable_set_text (GTK_EDITABLE (method->password_entry),
+ method->ws_parent->password);
+ } else {
+ gtk_editable_set_text (GTK_EDITABLE (method->password_entry), "");
+ }
gtk_toggle_button_set_active (method->show_password, method->ws_parent->show_password);
}
@@ -149,8 +156,8 @@ static void
widgets_unrealized (GtkWidget *widget, EAPMethodLEAP *method)
{
wireless_security_set_userpass (method->ws_parent,
- gtk_entry_get_text (method->username_entry),
- gtk_entry_get_text (method->password_entry),
+ gtk_editable_get_text (GTK_EDITABLE (method->username_entry)),
+ gtk_editable_get_text (GTK_EDITABLE (method->password_entry)),
(gboolean) -1,
gtk_toggle_button_get_active (method->show_password));
}
diff --git a/src/wireless-security/eap-method-peap.c b/src/wireless-security/eap-method-peap.c
index 4c765dbc..a7dd3e59 100644
--- a/src/wireless-security/eap-method-peap.c
+++ b/src/wireless-security/eap-method-peap.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -142,14 +143,14 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_anon_identity_entry"));
g_assert (widget);
- text = gtk_entry_get_text (GTK_ENTRY (widget));
+ text = gtk_editable_get_text (GTK_EDITABLE (widget));
if (text && strlen (text))
g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
#if LIBNM_BUILD
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_domain_entry"));
g_assert (widget);
- text = gtk_entry_get_text (GTK_ENTRY (widget));
+ text = gtk_editable_get_text (GTK_EDITABLE (widget));
if (text && strlen (text))
g_object_set (s_8021x, NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, text, NULL);
#endif
@@ -455,7 +456,7 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_anon_identity_entry"));
if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
g_signal_connect (G_OBJECT (widget), "changed",
(GCallback) wireless_security_changed_cb,
ws_parent);
@@ -463,7 +464,7 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_domain_entry"));
#if LIBNM_BUILD
if (s_8021x && nm_setting_802_1x_get_domain_suffix_match (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
g_signal_connect (G_OBJECT (widget), "changed",
(GCallback) wireless_security_changed_cb,
ws_parent);
diff --git a/src/wireless-security/eap-method-simple.c b/src/wireless-security/eap-method-simple.c
index 20322868..26aef0de 100644
--- a/src/wireless-security/eap-method-simple.c
+++ b/src/wireless-security/eap-method-simple.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -70,7 +71,7 @@ validate (EAPMethod *parent, GError **error)
gboolean ret = TRUE;
if (method->username_requested) {
- text = gtk_entry_get_text (method->username_entry);
+ text = gtk_editable_get_text (GTK_EDITABLE (method->username_entry));
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (method->username_entry));
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP username"));
@@ -84,7 +85,7 @@ validate (EAPMethod *parent, GError **error)
if (always_ask_selected (method->password_entry))
widget_unset_error (GTK_WIDGET (method->password_entry));
else {
- text = gtk_entry_get_text (method->password_entry);
+ text = gtk_editable_get_text (GTK_EDITABLE (method->password_entry));
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (method->password_entry));
if (ret) {
@@ -98,7 +99,7 @@ validate (EAPMethod *parent, GError **error)
}
if (method->pkey_passphrase_requested) {
- text = gtk_entry_get_text (method->pkey_passphrase_entry);
+ text = gtk_editable_get_text (GTK_EDITABLE (method->pkey_passphrase_entry));
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (method->pkey_passphrase_entry));
if (ret) {
@@ -193,8 +194,11 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
nm_setting_802_1x_add_eap_method (s_8021x, eap_type->name);
}
- if (method->username_requested)
- g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (method->username_entry), NULL);
+ if (method->username_requested) {
+ g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY,
+ gtk_editable_get_text (GTK_EDITABLE (method->username_entry)),
+ NULL);
+ }
if (method->password_requested) {
/* Save the password always ask setting */
@@ -209,7 +213,8 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
*/
if (!(method->flags & EAP_METHOD_SIMPLE_FLAG_IS_EDITOR) || not_saved == FALSE) {
g_object_set (s_8021x, NM_SETTING_802_1X_PASSWORD,
- gtk_entry_get_text (method->password_entry), NULL);
+ gtk_editable_get_text (GTK_EDITABLE (method->password_entry)),
+ NULL);
}
/* Update secret flags and popup when editing the connection */
@@ -225,7 +230,8 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
if (method->pkey_passphrase_requested) {
g_object_set (s_8021x, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD,
- gtk_entry_get_text (method->pkey_passphrase_entry), NULL);
+ gtk_editable_get_text (GTK_EDITABLE (method->pkey_passphrase_entry)),
+ NULL);
}
}
@@ -280,15 +286,19 @@ password_storage_changed (GObject *entry,
static void
set_userpass_ui (EAPMethodSimple *method)
{
- if (method->ws_parent->username)
- gtk_entry_set_text (method->username_entry, method->ws_parent->username);
- else
- gtk_entry_set_text (method->username_entry, "");
+ if (method->ws_parent->username) {
+ gtk_editable_set_text (GTK_EDITABLE (method->username_entry),
+ method->ws_parent->username);
+ } else {
+ gtk_editable_set_text (GTK_EDITABLE (method->username_entry), "");
+ }
- if (method->ws_parent->password && !method->ws_parent->always_ask)
- gtk_entry_set_text (method->password_entry, method->ws_parent->password);
- else
- gtk_entry_set_text (method->password_entry, "");
+ if (method->ws_parent->password && !method->ws_parent->always_ask) {
+ gtk_editable_set_text (GTK_EDITABLE (method->password_entry),
+ method->ws_parent->password);
+ } else {
+ gtk_editable_set_text (GTK_EDITABLE (method->password_entry), "");
+ }
gtk_toggle_button_set_active (method->show_password, method->ws_parent->show_password);
password_storage_changed (NULL, NULL, method);
@@ -304,8 +314,8 @@ static void
widgets_unrealized (GtkWidget *widget, EAPMethodSimple *method)
{
wireless_security_set_userpass (method->ws_parent,
- gtk_entry_get_text (method->username_entry),
- gtk_entry_get_text (method->password_entry),
+ gtk_editable_get_text (GTK_EDITABLE (method->username_entry)),
+ gtk_editable_get_text (GTK_EDITABLE (method->password_entry)),
always_ask_selected (method->password_entry),
gtk_toggle_button_get_active (method->show_password));
}
diff --git a/src/wireless-security/eap-method-tls.c b/src/wireless-security/eap-method-tls.c
index 12374e87..79f296dc 100644
--- a/src/wireless-security/eap-method-tls.c
+++ b/src/wireless-security/eap-method-tls.c
@@ -8,6 +8,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -44,7 +45,7 @@ validate (EAPMethod *parent, GError **error)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_identity_entry"));
g_assert (widget);
- identity = gtk_entry_get_text (GTK_ENTRY (widget));
+ identity = gtk_editable_get_text (GTK_EDITABLE (widget));
if (!identity || !strlen (identity)) {
widget_set_error (widget);
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-TLS identity"));
@@ -114,14 +115,14 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_identity_entry"));
g_assert (widget);
- g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
+ g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_editable_get_text (GTK_EDITABLE (widget)), NULL);
#if LIBNM_BUILD
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_domain_entry"));
g_assert (widget);
g_object_set (s_8021x,
parent->phase2 ? NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH : NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH,
- gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
+ gtk_editable_get_text (GTK_EDITABLE (widget)), NULL);
#endif
/* TLS private key */
@@ -398,7 +399,7 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
(GCallback) wireless_security_changed_cb,
ws_parent);
if (s_8021x && nm_setting_802_1x_get_identity (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_identity (s_8021x));
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_domain_entry"));
g_assert (widget);
@@ -408,10 +409,10 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
ws_parent);
if (phase2) {
if (s_8021x && nm_setting_802_1x_get_phase2_domain_suffix_match (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_phase2_domain_suffix_match (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_phase2_domain_suffix_match (s_8021x));
} else {
if (s_8021x && nm_setting_802_1x_get_domain_suffix_match (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
}
#else
gtk_widget_hide (widget);
diff --git a/src/wireless-security/eap-method-ttls.c b/src/wireless-security/eap-method-ttls.c
index c94a9deb..1d589ee7 100644
--- a/src/wireless-security/eap-method-ttls.c
+++ b/src/wireless-security/eap-method-ttls.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -138,14 +139,14 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_anon_identity_entry"));
g_assert (widget);
- text = gtk_entry_get_text (GTK_ENTRY (widget));
+ text = gtk_editable_get_text (GTK_EDITABLE (widget));
if (text && strlen (text))
g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
#if LIBNM_BUILD
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_domain_entry"));
g_assert (widget);
- text = gtk_entry_get_text (GTK_ENTRY (widget));
+ text = gtk_editable_get_text (GTK_EDITABLE (widget));
if (text && strlen (text))
g_object_set (s_8021x, NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, text, NULL);
#endif
@@ -487,7 +488,7 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_anon_identity_entry"));
if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
g_signal_connect (G_OBJECT (widget), "changed",
(GCallback) wireless_security_changed_cb,
ws_parent);
@@ -495,7 +496,7 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_domain_entry"));
#if LIBNM_BUILD
if (s_8021x && nm_setting_802_1x_get_domain_suffix_match (s_8021x))
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
g_signal_connect (G_OBJECT (widget), "changed",
(GCallback) wireless_security_changed_cb,
ws_parent);
diff --git a/src/wireless-security/helpers.c b/src/wireless-security/helpers.c
index 5cb86377..31009cb2 100644
--- a/src/wireless-security/helpers.c
+++ b/src/wireless-security/helpers.c
@@ -7,7 +7,7 @@
*/
#include "nm-default.h"
-
+#include "nma-private.h"
#include "helpers.h"
void
@@ -32,7 +32,7 @@ helper_fill_secret_entry (NMConnection *connection,
if (tmp) {
widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name));
g_assert (widget);
- gtk_entry_set_text (GTK_ENTRY (widget), tmp);
+ gtk_editable_set_text (GTK_EDITABLE (widget), tmp);
}
}
}
diff --git a/src/wireless-security/meson.build b/src/wireless-security/meson.build
index a4fbe97d..3a7cfc51 100644
--- a/src/wireless-security/meson.build
+++ b/src/wireless-security/meson.build
@@ -57,6 +57,22 @@ libwireless_security_libnm = static_library(
dependencies: deps
)
+if enable_libnma_gtk4
+ deps = [
+ gtk4_dep,
+ libnm_dep,
+ libutils_libnm_dep
+ ]
+
+ libwireless_security_libnma_gtk4 = static_library(
+ 'wireless-security-libnma-gtk4',
+ sources: sources,
+ include_directories: incs,
+ dependencies: deps,
+ c_args: cflags
+ )
+endif
+
if enable_libnm_gtk
deps = [
gtk_dep,
diff --git a/src/wireless-security/ws-leap.c b/src/wireless-security/ws-leap.c
index f102fc6a..e400a10a 100644
--- a/src/wireless-security/ws-leap.c
+++ b/src/wireless-security/ws-leap.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <string.h>
@@ -44,7 +45,7 @@ validate (WirelessSecurity *parent, GError **error)
entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_entry"));
g_assert (entry);
- text = gtk_entry_get_text (GTK_ENTRY (entry));
+ text = gtk_editable_get_text (GTK_EDITABLE (entry));
if (!text || !strlen (text)) {
widget_set_error (entry);
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-username"));
@@ -56,7 +57,7 @@ validate (WirelessSecurity *parent, GError **error)
g_assert (entry);
secret_flags = nma_utils_menu_to_secret_flags (entry);
- text = gtk_entry_get_text (GTK_ENTRY (entry));
+ text = gtk_editable_get_text (GTK_EDITABLE (entry));
if ( secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED
|| secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED
@@ -99,11 +100,11 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec);
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_entry"));
- leap_username = gtk_entry_get_text (GTK_ENTRY (widget));
+ leap_username = gtk_editable_get_text (GTK_EDITABLE (widget));
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_entry"));
passwd_entry = widget;
- leap_password = gtk_entry_get_text (GTK_ENTRY (widget));
+ leap_password = gtk_editable_get_text (GTK_EDITABLE (widget));
g_object_set (s_wireless_sec,
NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "ieee8021x",
@@ -190,7 +191,7 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
(GCallback) wireless_security_changed_cb,
sec);
if (wsec)
- gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_wireless_security_get_leap_username (wsec));
+ gtk_editable_set_text (GTK_EDITABLE (widget), nm_setting_wireless_security_get_leap_username (wsec));
if (secrets_only)
gtk_widget_hide (widget);
diff --git a/src/wireless-security/ws-wep-key.c b/src/wireless-security/ws-wep-key.c
index caedfa5f..fc5a4b74 100644
--- a/src/wireless-security/ws-wep-key.c
+++ b/src/wireless-security/ws-wep-key.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <string.h>
@@ -49,7 +50,7 @@ key_index_combo_changed_cb (GtkWidget *combo, WirelessSecurity *parent)
/* Save WEP key for old key index */
entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
- key = gtk_entry_get_text (GTK_ENTRY (entry));
+ key = gtk_editable_get_text (GTK_EDITABLE (entry));
if (key)
g_strlcpy (sec->keys[sec->cur_index], key, sizeof (sec->keys[sec->cur_index]));
else
@@ -60,7 +61,7 @@ key_index_combo_changed_cb (GtkWidget *combo, WirelessSecurity *parent)
g_return_if_fail (key_index >= 0);
/* Populate entry with key from new index */
- gtk_entry_set_text (GTK_ENTRY (entry), sec->keys[key_index]);
+ gtk_editable_set_text (GTK_EDITABLE (entry), sec->keys[key_index]);
sec->cur_index = key_index;
wireless_security_changed_cb (combo, parent);
@@ -89,7 +90,7 @@ validate (WirelessSecurity *parent, GError **error)
g_assert (entry);
secret_flags = nma_utils_menu_to_secret_flags (entry);
- key = gtk_entry_get_text (GTK_ENTRY (entry));
+ key = gtk_editable_get_text (GTK_EDITABLE (entry));
if ( secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED
|| secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED) {
@@ -166,7 +167,7 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
passwd_entry = widget;
- key = gtk_entry_get_text (GTK_ENTRY (widget));
+ key = gtk_editable_get_text (GTK_EDITABLE (widget));
g_strlcpy (sec->keys[sec->cur_index], key, sizeof (sec->keys[sec->cur_index]));
/* Blow away the old security setting by adding a clear one */
@@ -217,7 +218,7 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
{
WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent;
NMSettingWirelessSecurity *s_wsec;
- GtkWidget *widget;
+ GtkEditable *entry;
const char *tmp;
int i;
@@ -228,9 +229,9 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
g_strlcpy (sec->keys[i], tmp, sizeof (sec->keys[i]));
}
- widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
+ entry = GTK_EDITABLE (gtk_builder_get_object (parent->builder, "wep_key_entry"));
if (strlen (sec->keys[sec->cur_index]))
- gtk_entry_set_text (GTK_ENTRY (widget), sec->keys[sec->cur_index]);
+ gtk_editable_set_text (entry, sec->keys[sec->cur_index]);
}
WirelessSecurityWEPKey *
@@ -267,7 +268,7 @@ ws_wep_key_new (NMConnection *connection,
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
g_assert (widget);
- gtk_entry_set_width_chars (GTK_ENTRY (widget), 28);
+ gtk_editable_set_width_chars (GTK_EDITABLE (widget), 28);
/* Create password-storage popup menu for password entry under entry's secondary icon */
if (connection)
diff --git a/src/wireless-security/ws-wpa-psk.c b/src/wireless-security/ws-wpa-psk.c
index eba22a79..5f0df4db 100644
--- a/src/wireless-security/ws-wpa-psk.c
+++ b/src/wireless-security/ws-wpa-psk.c
@@ -7,6 +7,7 @@
*/
#include "nm-default.h"
+#include "nma-private.h"
#include <ctype.h>
#include <string.h>
@@ -51,7 +52,7 @@ validate (WirelessSecurity *parent, GError **error)
g_assert (entry);
secret_flags = nma_utils_menu_to_secret_flags (entry);
- key = gtk_entry_get_text (GTK_ENTRY (entry));
+ key = gtk_editable_get_text (GTK_EDITABLE (entry));
len = key ? strlen (key) : 0;
if ( secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED
@@ -115,7 +116,7 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry"));
passwd_entry = widget;
- key = gtk_entry_get_text (GTK_ENTRY (widget));
+ key = gtk_editable_get_text (GTK_EDITABLE (widget));
g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_PSK, key, NULL);
/* Save PSK_FLAGS to the connection */
@@ -184,7 +185,7 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only)
g_signal_connect (G_OBJECT (widget), "changed",
(GCallback) wireless_security_changed_cb,
sec);
- gtk_entry_set_width_chars (GTK_ENTRY (widget), 28);
+ gtk_editable_set_width_chars (GTK_EDITABLE (widget), 28);
/* Create password-storage popup menu for password entry under entry's secondary icon */
if (connection)