Commit graph

1219 commits

Author SHA1 Message Date
Georges Basile Stavracas Neto
a124a233ea network: Replace GtkVBox with GtkBox
GtkVBox is deprecated, and GtkBox with the vertical
orientation has the exact same layout.
2018-01-26 22:25:18 -02:00
Georges Basile Stavracas Neto
dc5bf7e658 network: Undo accidentally changed string
A colon was added but not spotted on time.

https://bugzilla.gnome.org/show_bug.cgi?id=787882
2018-01-26 22:19:11 -02:00
Jonathan Kang
81b68bc6ed wifi: Use GtkGrid for Wi-Fi Security settings page
GtkTable is deprecated. Use GtkGrid instead.

https://bugzilla.gnome.org/show_bug.cgi?id=787882
2018-01-26 21:17:47 -02:00
Jonathan Kang
b8568474dc network: Make details labels selectable
https://bugzilla.gnome.org/show_bug.cgi?id=779982
2018-01-26 20:50:00 -02:00
Bastien Nocera
17c6563e69 network: Fix runtime warning
Gtk-WARNING **: Failed to set property GtkImage.icon-size to button: Could not parse integer 'button'

Replaced it with the non-symbolic value "4".
2018-01-23 10:58:00 +01:00
Iñigo Martínez
0dd386f405 build: Migrate from Intltool to Gettext
Recent versions of Gettext are able to translate several formats
that are used in GNOME applications. This patch migrates from
Intltool to Gettext by using meson's i18n features.

https://bugzilla.gnome.org/show_bug.cgi?id=787588
2018-01-23 10:49:31 +01:00
Georges Basile Stavracas Neto
90a1187dd4 wifi: Improve empty state
Make it more consistent with the Bluetooth panel.

https://bugzilla.gnome.org/show_bug.cgi?id=790704
2018-01-21 13:13:51 -02:00
Xiang Fan
5ad72b6faa wifi: Add a refresh button
This way, user can scan anytime without having to wait.

https://bugzilla.gnome.org/show_bug.cgi?id=789869
2018-01-21 13:12:29 -02:00
Xiang Fan
c12c3b9298 wifi: Fix indentation
https://bugzilla.gnome.org/show_bug.cgi?id=786736
2018-01-21 13:03:23 -02:00
Xiang Fan
823c4868a6 wifi: Update the list when AP properties change
The best AP can be chosen even if no AP is added/removed.

https://bugzilla.gnome.org/show_bug.cgi?id=786736
2018-01-21 13:03:19 -02:00
Georges Basile Stavracas Neto
24abbcf303 network: Turn metered data switch into a check button
Per guidance of the design team, since the dialog has not
enough room for switches.
2018-01-18 14:00:23 -02:00
Iñigo Martínez
dc0988d47c build: Remove autotools
To avoid the burden of maintaining multiple build systems, this
patch removes autotools support.

https://bugzilla.gnome.org/show_bug.cgi?id=785414
2018-01-18 12:20:08 +01:00
Georges Basile Stavracas Neto
a37d04df42 connection-editor: Expose metered connection switch
NetworkManager supports marking a connection as metered, meaning
that connection is e.g. charged by its usage or extremely limited.
When a network is metered, background network usage must cease
and the behavior of the various OS pieces must be adjusted.

This patch adds a switch to set a connection as metered or not.
The property is imediately propagated to NetworkManager.

https://bugzilla.gnome.org/show_bug.cgi?id=792608
2018-01-18 00:37:31 -02:00
Piotr Drąg
b65e31323a panels: Remove soft hyphens from .desktop files
With the old shell gone, there is no need to work around cut off panel
names (bug #647087). As it stands now, it only confuses translators
(invisible characters are hard to, well, see).

https://bugzilla.gnome.org/show_bug.cgi?id=792629
2018-01-18 00:12:04 -02:00
Iñigo Martínez
32edd6789e build: Port to meson build system
Meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.

https://bugzilla.gnome.org/show_bug.cgi?id=785414
2018-01-17 20:09:35 -02:00
Xiang Fan
f618a2212f network/wifi: don't set unnecessary focus
When its parent is allowed focus, the actual control never gets the
focus and is inaccessible from keyboard.

https://bugzilla.gnome.org/show_bug.cgi?id=789860
2017-11-08 15:34:02 +01:00
Xiang Fan
fe5ab55ec4 wifi: fix typo in device_removed_cb()
https://bugzilla.gnome.org/show_bug.cgi?id=789872
2017-11-08 15:34:02 +01:00
Rui Matos
cb4a7e1773 network: Avoid crashing if NM reports no devices or no connections
Seems like NM changed behavior recently but, in any case, better safe
than sorry.

https://bugzilla.gnome.org/show_bug.cgi?id=788716
2017-11-01 16:47:36 +01:00
Xiang Fan
959d841713 network/proxy: destroy dialog with the class
The dialog has several bindings to proxy settings, so it shouldn't
outlive the proxy class.

https://bugzilla.gnome.org/show_bug.cgi?id=788776
2017-11-01 16:08:45 +01:00
Rui Matos
8ae6950248 network/eap-method-tls: Don't require a private key password
The private key may be unencrypted or we might want to enable "always
ask".

https://bugzilla.gnome.org/show_bug.cgi?id=789660
2017-10-30 18:16:43 +01:00
Jeremy Bicha
c9c1ba5f11 wifi: Fix help link
https://bugzilla.gnome.org/show_bug.cgi?id=789321
2017-10-24 11:42:31 -04:00
Rui Matos
338719a876 network/wifi: Use cancellables for NM async operations
Our NM async callbacks already handle being cancelled and we already
have a cancellable in the base NetObject class, we just weren't wiring
it up to the async calls. Do that to prevent use after free crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=787010
2017-10-03 19:18:59 +02:00
Georges Basile Stavracas Neto
5a3b19ef33 network: Don't unref device after when parsing arguments
When we add the NetDevice pointer to the GPtrArray, we have
a single reference owned by the panel. When iterating over
this GPtrArray, no reference is taken.

The problem is that the code to handle command-line arguments
was unreferencing the NetDevices when iterating over it,
creating a disparity in the ref/unref pairs.

Fix that by simply not unreferencing the NetDevice instance
when iterating over it.

https://bugzilla.gnome.org/show_bug.cgi?id=786514
2017-08-29 18:11:30 -03:00
Georges Basile Stavracas Neto
4922f370fb network: Update NetDeviceSimple layout
Following the previous commit, this patch adapts the
NetDeviceSimple layout to be consistent with the other
devices in the Network panel.

This is, however, a temporary solution, for simple devices
will be handled in a separate panel in the future.

https://bugzilla.gnome.org/show_bug.cgi?id=786662
2017-08-23 15:15:52 +02:00
Georges Basile Stavracas Neto
d5de1d2b3c network: Show simple devices in an isolated section
As a temporary solution until we don't have the Mobile Broadband
panel, the Network panel should take care of simple devices such
as Bluetooth and metered connections, and should do so in such a
way that is consistent with how the rest of devices is managed.

Currently, however, NetDeviceSimple objects still present the old,
grid-based layout, breaking the expectations and completely destroying
the consistency of the panel

This patch moves simple devices to a section of its own. The next
patch will update the visuals to match the other devices.

https://bugzilla.gnome.org/show_bug.cgi?id=786662
2017-08-23 15:15:52 +02:00
Exalm
1e82b65674 wifi: Fix title centering
The stack switcher shown for multiple wireless devices can
have arbitrarily large width, so it can shift the title to
to the left. Setting hhomogenous to False prevents this

https://bugzilla.gnome.org/show_bug.cgi?id=786410
2017-08-23 14:40:24 +02:00
Allan Day
87568e9250 Harmonize list box row layouts
While it isn't possible, or even advisable, to make all the list
box rows the same height, using a number of standard heights will
make the control center feel more harmoneous.

Adust the height of the list box rows in Color, Date & Time,
Mouse & Touchpad, Network, Privacy, Region & Language, Sharing
and Universal Access. Makes standard rows that contain labels
and/or controls 58px tall. Some other rows, such as those which
contain two lines of text, are allowed to be taller.

https://bugzilla.gnome.org/show_bug.cgi?id=786384
2017-08-20 18:38:48 +02:00
Allan Day
8a8e53ab8a Standardize vertical spacing of panels
Ensure that the vertical spacing inside each panel is similar.
This makes the transition between each panel smoother and makes
the control center feel more cohesive.

Settings panels are given 32px above and below their content
and 32px vertical space between major sections. 12px space is
placed below headings.

Bluetooth, displays and printers are not addressed.

https://bugzilla.gnome.org/show_bug.cgi?id=786384
2017-08-20 18:38:42 +02:00
Scott Cohen
87c69ed955 network: Fix typo in error message
Replaced "conneciton" with "connection" (both without quotes) in
panels/network/connection-editor/net-connection-editor.c:860.

https://bugzilla.gnome.org/show_bug.cgi?id=785100
2017-08-18 11:36:21 -03:00
Georges Basile Stavracas Neto
fcf4e44ebd wifi: Don't access potentially invalid pointer
When the user launches Settings with a panel passed
as argument, the following things happen:

 1. The Wi-Fi panel starts loading.
 2. The command line arguments are passed and the given
    panel is activated.
 3. The Wi-Fi panel cancels the loading routine, and
    rfkill_proxy_acquired_cb() is called with the GError
    set as G_IO_ERROR_CANCELLED.
 4. Crash in rfkill_proxy_acquired_cb().

The crash is caused because, when rfkill_proxy_acquired_cb()
is called, the CcWifiPanel instance isn't valid anymore. And
yet, the code tries to cast 'gpointer user_data' to a
CcWifiPanel pointer.

Fix that by only trying to cast anything after parsing the
GError set by the callback.
2017-08-12 18:58:10 -03:00
Georges Basile Stavracas Neto
5c4f2ff8a6 shell: Hardcode panel list order
Per the latest mockups [1], the panel list must be sorted
by the category, and then follow a manual predefined order.

This commit adds the hardcoded order to the the panel list.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/shell/settings-organization.png
2017-08-12 11:03:17 -03:00
Georges Basile Stavracas Neto
ae59c77b45 network: Improve alignment and spacing
This patch improves the alignment and spacing of IPv4
and IPv6 widgets so that they look uniform and consistent.

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
1d0757d288 network: Use a table-like widget in address editor
According to the latest mockups for the connection editor dialog [1],
the IPv4 and IPv6 pages are supposed to use a table-like editor to
manage the addresses, in a similar fashion of what was done to the
routes editor. This way of editing is not only easier to comprehend,
but also improves the size of the dialog, requiring much less vertical
space to present the routes.

The current implementation, however, uses a vertical layout and a toolbar,
which is inefficient in its usage of space.

Fix that by implementing the table-like editor widget, both in IPv4
and IPv6 pages.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/network/aday2/network-wires.png

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
08657fac44 network: Use a table-like widget to edit routes
According to the latest mockups for the connection editor dialog [1],
the IPv4 and IPv6 pages are supposed to use a table-like editor to
manage the routes. This editor is not only easier to comprehend, but
also improves the size of the dialog, requiring much less vertical
space to present the routes.

The current implementation, however, uses a vertical layout and a toolbar,
which is inefficient in its usage of space.

Fix that by implementing the table-like editor widget, both in IPv4
and IPv6 pages.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/network/aday2/network-wires.png

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
2e570099f6 network: Simplify DNS management in connection editor
When editing the DNS servers of a given connection, a simple
entry is enough to display and edit the DNS servers. The user
can separate IP addresses with commas. This is exemplified
by the mockup at [1].

This, however, is not the current implementation, which uses
a combination of listbox rows, entries and buttons to manage
that with added complexity.

Fix that by using an entry to handle the DNS servers.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/network/aday2/network-wires.png

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
6bdbf685d9 network: Make widgets cover a third of screen width
Following the design decision on other panels, make the central
column of the Network panel cover at most a third of the window,
or more depending on the width of the window.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
aabc1621b8 network: Update VPN section
The last remaining network device to be updated is
the VPN device, and this patch is the result of this
effort.

The changes were mostly towards cleaning up and
removing unecessary code. By removing the info labels,
many getters were removed as well.

In order to achieve a listbox-like UI, a couple of
UI refactorings.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
bcc8a9ce27 network: Add header to VPN section
Since each VPN will be a row in a listbox, we
can't rely on NetVPN:add_to_stack() to handle
the header.

This header must, then, be handled by the panel
itself. For now, we just open the already available
dialog to add connections, when the ideal approach
(to be implemented yet) is to move the contents
of this dialog in a built-in popover.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
331d7fbf11 network: Prevent compile warning
If we build with strict compile check, the pointer
alignment gets messed up. So just cast to gpointer
to satisfy the compiler.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
b64c605e69 network: Update Proxy section widgets
According to the lastest mockups [1], the Proxy section is now
composed of a row with the state of the proxy, and a settings
button that leads to a dialog where one can configure the different
proxy settings.

This commit ports the current code to do that, and various changes
took place to made this happen. Namely:

 * A new ProxyMode enum was added to improve readability and
   improve the semantic of the code. No more random numbers
   are present.

 * The current widgets for editing proxy settings were repacked
   into a GtkStack (so that we keep an homogeneous sizing), and
   the GtkStack itself was moved into a new dialog. With that,
   we can just set the stack page, rather than controlling the
   visibility of all individual widgets.

 * Many unused widgets were removed.

 * The combo box was replaced by 3 radio buttons. Now, there's
   no need to deal with GtkTreeIters anymore. Another refactoring
   of the code that led to more readable and smaller code.

Overall, these changes made the code be more readable, smaller
codebase with a smaller surface for mistakes.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
21943a42bf network: Ensure WirelessSecurity type is initialized
When calling for the wireless security widgets, the code
simply assumes that the corresponding GType is initialized.
This may not always be true, which leads to a nasty crash
every time e.g. we open the network connection editor dialog.

This commit fixes that by introducing a new standard macro
wrapping wireless_security_get_type(), and ensuring the type
is initializing when calling wireless_security_init(), thus
protecting every code path from this crash.

This commit also makes CePageSecurity use the new macro for
better legibility.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
965ef93143 network: Update "Wired" section UI
The current "Wired" section UI is still optimized for
the old, multi-page panel layout. Recent work [1],
however, suggest that this should change and the standard
widgets be rearranged.

This commit, then, implements this new UI for the wired
devices UI by using a listbox row when there's only one
profile (ditching out the old info labels), and moving
and deleting the bottom action buttons.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
a87d804fa2 network: Wrap panel in a scrolled window
After introducing the new single-column layout,
we can easily hit the case where there are too
many connections and/or devices and the panel
gets way too tall.

To fix that, wrap all the widgets inside a
scrolled window that only scrolls vertically.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
e35ecd5468 network: Add connections and devices to different stack
The current Network panel is composed of a single stack and
a treeview to select the currently visible stack page. Each
stack page represents a connection or device.

The new Network panel, however, has none of the concept of
selectable pages. In the new layout, all connections and
devices appear all at once in a more compact and simpler
fashion.

This commit, then, starts moving towards a unified, pageless
panel by adding all the connections and devices to different
stacks. These different stacks are transient to the network
object, and are added at appropriate boxes, giving the panel
a unified layout.

This has some serious implications in the design of the
current code. Most of the code removals were related to the
treeview and different pages handling. No more tree model
madness is present, and the devices are now stored in a
plain simple GPtrArray.

After this patch, NetObject:add_to_stack isn't a good code
design choice anymore. This will be addressed in a future
patch.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-09 19:32:43 +02:00
Georges Basile Stavracas Neto
e49496048f network: Make it a template class
The current Network panel class relies on GtkBuilder
when it could use a more modern feature that is the
template class.

By making it a template class, not only the Network
panel is slightly more performant, but it's also
simpler and easier to read.

This commit, then, turns the Network panel into a
template class, and cleans up the code to make it
work.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-07 20:23:40 +01:00
Georges Basile Stavracas Neto
71d9e5c5f1 network: Cleanup GtkBuilder file
The Network panel UI file uses deprecated widgets and
has many lines of needless code. This commit just cleans
it up, as a preparation for turning the Network panel
into a template class.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-07 20:23:40 +01:00
Georges Basile Stavracas Neto
29c6bab4d2 network: Remove Wi-Fi related commands
This should be in the Wi-Fi patchset...

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-07 20:23:40 +01:00
Georges Basile Stavracas Neto
09c202528f network: Turn into a final class
The Network panel is not really a deriverable type, and
since after 61d7abe795 we can use the
utility macros.

Thus, this commit removes all the boilerplate code and
turns CcNetworkPanel into a final class.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-07 20:23:40 +01:00
Georges Basile Stavracas Neto
f07c35747c network: Remove Airplane Mode switch
The Network panel does not deal with Wi-Fi devices anymore,
and does not make sense to have the Airplane Mode switch in
there, since it is now available at the Wi-Fi panel.

This commit then removes the Airplane Mode switch from the
Network panel.

https://bugzilla.gnome.org/show_bug.cgi?id=785581
2017-08-07 20:23:40 +01:00
Georges Basile Stavracas Neto
016efdfac8 wifi: Introduce Wi-Fi panel
The glory moment has come. The new Wi-Fi panel is finally
introduced using a different code style from the rest of
the Network panel, since Control Center itself is written
using the GTK+ C code style.

The Wi-Fi panel uses modern GTK+ features like template
classes and new widgets. The files are stored together
with the Network panel so that we can reuse the abstraction
layer that the Network panel has to manage devices.

https://bugzilla.gnome.org/show_bug.cgi?id=784818
2017-07-18 13:30:46 -03:00