It doesn't make sense to try to validate pages because widgets are
changing due to the whole dialog being destroyed and it causes a bunch
of warnings because some resources are cleared on each page dispose
method.
Avoid all that by disconnecting the page "changed" signal handler
before we start destroying widgets.
We don't need secrets for new connections and, in fact, trying to
retrieve secrets in that case will fail because we have a plain
NMConnection instead of a NMRemoteConnection.
The above mentioned error would result in the page never being
initialized.
Excessively long metadata fields cause the the control-center panel to
blow out to wider than screen width. Probably the right thing is to
limit the allocation to the device detail pane from somewhere up the
stack, but for now, enable ellipsizing and set an max-width to
constrain the width of things which are there just for information
anyway; true values are available in the edit dialog.
Closes#759766.
Signed-off-by: Andrew Cowie <andrew@operationaldynamics.com>
This reverts commit 31a8a99440.
This was meant for bgo#695885 which has stalled for a while, so this
feature has no in-tree user. This commit removes it for now, this can be
readded when users for it materialize.
https://bugzilla.gnome.org/show_bug.cgi?id=751597
When we're finalizing, the remote settings instance might already be
gone and thus we can't list connections. In particular this happens at
panel finalization resulting in the following warning:
libnm-glib-CRITICAL **: nm_remote_settings_list_connections: assertion
'NM_IS_REMOTE_SETTINGS (settings)' failed
because cc_network_panel_dispose() unrefs the remote settings object
before all the NetDevice instances are finalized.
Since we only need to list connections on finalize to disconnect a
signal we can instead use g_signal_connect_object() and keep the
connections that we're keeping track of in a hash table instead of
g_object_set_data().
https://bugzilla.gnome.org/show_bug.cgi?id=749850
When changing the airplane mode, either from the Bluetooth panel, or
through gnome-shell's status menu, we would receive signals from the
Rfkill gnome-settings-daemon service, even after the network panel was
closed, as we didn't unref' it. Except that the panel was mostly gone.
So splat.
https://bugzilla.gnome.org/show_bug.cgi?id=751482
Making a new connection available to other users requires being an
admin, or entering an admin password.
If we enable that option by default for new connections, we effectively
prevent non-admin users from connecting to new networks when they go to
the coffee shop without their laptop admin.
https://bugzilla.gnome.org/show_bug.cgi?id=751378
Only the networks with existing connection should have gear buttons.
This is a regression from 9ffaff7472.
If the widget we add as a stack page isn't visible, the page will not be
shown. As we later add another page with that button, we'd end up
showing that by default.
https://bugzilla.gnome.org/show_bug.cgi?id=750841
When a virtual device is removed and the instance gets finalized we're
not disconnecting from the real NMDevice's notify signal and thus end
up crashing when the signal fires afterwards.
Avoid that by using g_signal_connect_object() so that when we're
finalized the disconnection happens automatically.
https://bugzilla.gnome.org/show_bug.cgi?id=749972
From coverity:
gnome-control-center-3.14.5/panels/network/connection-editor/firewall-helpers.c:75:9: warning: passing argument 1 of 'g_free' discards 'const' qualifier from pointer target type [enabled by default]
https://bugzilla.gnome.org/show_bug.cgi?id=749897
Every time we got the list of devices from the devices GtkListStore, we
were leaking the only element that wasn't a NetDevice, the proxy page.
Make sure to unref' it by hand if we're not going to add it to the list
(the elements of which will be unref'ed properly).
https://bugzilla.gnome.org/show_bug.cgi?id=746411
NetObjects and CcNetworkPanel aren't widgets, and hold references to
each other. Simplify things by having NetObject hold a pointer to
CcNetworkPanel (and the singletons NMRemoteSettings and NMClient)
instead, and clear their pointers when the original object is unref'ed.
https://bugzilla.gnome.org/show_bug.cgi?id=746411
When switching from a particular IPv4 or IPv6 "addresses" method to
another, make sure that "address", "DNS" and "routes" are applied or
ignored depending on that method's capabilities.
For example, when switching from manual to automatic IPv4 "addresses"
method, we need to make sure that the old IP address, gateway, etc.
aren't actually used in the new setting.
https://bugzilla.gnome.org/show_bug.cgi?id=734337
The call to nm_setting_connection_get_zone() returns a pointer to
memory that will be freed before the D-Bus reply handler is called.
Make sure to take a copy of the string, and free it when finished.
https://bugzilla.gnome.org/show_bug.cgi?id=739971
Instead of only adding a button and/or spinner when constructing the
row, always add both to a GtkStack and only show that stack when
necessary. This also removes the need for a GtkSizeGroup and the big
spinner caused by it.
https://bugzilla.gnome.org/show_bug.cgi?id=742853
Remove the NetworkManager version checking altogether. The code was made
to check for now very old versions of NetworkManager, and anything newer
than ancient should degrade gracefully if we support newer features.
https://bugzilla.gnome.org/show_bug.cgi?id=741661
And virtual devices. Again, listening on the long-lasting client
object but expecting the user_data (the object) to be around when
it might have been destroyed already.
https://bugzilla.gnome.org/show_bug.cgi?id=735932