Commit graph

5081 commits

Author SHA1 Message Date
Rui Matos
088f35617c display: Make scale row be the same height as others 2017-08-23 18:32:27 +02: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
Rui Matos
535c5d1fa2 printers: Disconnect the search bar from the shell's key-press-event
Using g_connect_object() ensures the disconnection happens when the
search bar is finalized.

https://bugzilla.gnome.org/show_bug.cgi?id=786603
2017-08-23 14:30:20 +02:00
Felipe Borges
272bad14a0 printers: The scrolled window should vertically expand
In the new Shell the Printers panel scrolled window doesn't
necessarily fills the whole vertical space available.

https://bugzilla.gnome.org/show_bug.cgi?id=786674
2017-08-23 11:08:02 +02:00
Piotr Drąg
847f29c844 Update Polish translation 2017-08-23 03:57:27 +02:00
Piotr Drąg
fd9a646ff5 info: Correct translator comments 2017-08-23 03:27:51 +02:00
Rui Matos
e5a1afee9c display: Fix a crash when opening the panel with the lid closed
The configuration manager might not be ready yet when we're called
from the lid state monitor handler. Don't do anything in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=786080
2017-08-22 19:26:39 +02:00
Rui Matos
ef0cbf45f3 display: Make arrangement and scale rows non-activatable 2017-08-22 19:21:41 +02:00
Rui Matos
47919bcfb1 display: Fix underscanning switch [de]activating the output instead 2017-08-22 19:21:41 +02:00
Rui Matos
7c7c0b75d5 display: Switch to a toggle buttons design for scale
The slider design wasn't fit for this since we allow only a finite set
of scales.
2017-08-22 19:21:41 +02:00
Rui Matos
c50062a48b display: Update the two display mode switcher design
This makes us follow the updated design mockups more closely.
2017-08-22 19:21:41 +02:00
Rui Matos
90cf23a70a display: Redraw the arrangement area widget when outputs change
This ensures the arrangement area always reflects the current
changes.
2017-08-22 19:21:41 +02:00
Rui Matos
e4dc2995a3 display: Add a signal for scale changes
This will allows other bits of the UI to monitor scale changes.
2017-08-22 19:21:41 +02:00
Rui Matos
52d61d52b2 display: Force content to always have a fixed minimum width
This makes switching between configurations and/or active monitor look
a bit more polished.
2017-08-21 14:47:17 +02:00
Rui Matos
d0ca7e0abc display/config-manager-dbus: Clear the current state on error
This ensures that the higher levels notice that there was an error and
show the appropriate UI instead of showing the previous state.
2017-08-21 14:47:17 +02:00
Rui Matos
93a3bbe0fc display: Remove a few no longer needed variables
These are not needed since last commit.
2017-08-21 14:47:17 +02:00
Jonas Ådahl
ff30244c5c panels/display: Remove support for old config system
As mutter now has removed the legacy monitor config system and the
associated property on org.gnome.Mutter.DisplayConfig, also remove the
support from gnome-control-center.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
2017-08-21 12:33:38 +08: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
Allan Day
c7fea8894f Give search and notifications consistent row layouts
The search and notification panels have similar list rows,
as they both list applications. This gives the list rows more
consistent layouts - application icons are made to be 32px
throughout and row heights are made to be the same.

Note that the row widths are unfortunately still different.

https://bugzilla.gnome.org/show_bug.cgi?id=786384
2017-08-20 18:38:23 +02:00
Georges Basile Stavracas Neto
a9bf8b5b04 online-accounts: Fix parameter parsing
The Online Accounts panel supports two commands: 'add'
and 'show-account'. The 'add' command must receive an
additional parameter, the 'provider' name, and an
optional 'preseed' parameter.

In the past, Settings would just push all the parameters
to a GVariant and pass to the panels. Now, however, it
skips the first one, making the parameter parsing code
in Online Accounts panel wrong.

This patch fix that by refactoring add_account() code,
and fixing the GVariant parameter parsing.
2017-08-19 11:31:18 -03: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
7ccfa25b47 online-accounts: Fix crash after aborting web view and changing panels
The panel owns both the GtkDialog, and the GoaProvider that is used
with the dialog during goa_provider_add_account. When the panel is
destroyed, it drops its references to the provider but not the dialog,
which is a separate top-level widget. Therefore, if the panel is
switched while the WebKitWebView inside the dialog was still
navigating across pages, then WebKitWebView::decide-policy will be
called with an invalid provider.

To avoid this, and a memory leak, the panel should also destroy the
dialog when it is itself getting destructed.

Note that since the GtkDialog is a template child, it must be
destroyed in dispose. GtkWidget's (ie. the panel's) default default
destroy signal handler NULLifies all template children pointers, so
finalize is too late.

https://bugzilla.gnome.org/show_bug.cgi?id=782043
2017-08-17 21:29:15 +02:00
Debarshi Ray
115a1323b4 Revert "online-accounts: Fix crash after aborting web view ..."
I pushed it by mistake. The GtkDialog needs to be destroyed in
dispose, not finalize.

This reverts commit 60cf7f6b27.

https://bugzilla.gnome.org/show_bug.cgi?id=782043
2017-08-17 21:28:59 +02:00
Georges Basile Stavracas Neto
60cf7f6b27 online-accounts: Fix crash after aborting web view and changing panels
The panel owns both the GtkDialog, and the GoaProvider that is used
with the dialog during goa_provider_add_account. When the panel is
destroyed, it drops its references to the provider but not the dialog,
which is a separate top-level widget. Therefore, if the panel is
switched while the WebKitWebView inside the dialog was still
navigating across pages, then WebKitWebView::decide-policy will be
called with an invalid provider.

To avoid this, and a memory leak, the panel should also destroy the
dialog when it is itself getting destructed.

https://bugzilla.gnome.org/show_bug.cgi?id=782043
2017-08-17 20:05:16 +02:00
Georges Basile Stavracas Neto
024bb97a12 color: Avoid casting before checking for errors
When the asynchronous operation is finished in the Color
panel, the user may potentially have already changed to
another panel, making the CcColorPanel reference invalid.

In the callback, the first thing that is done is casting
(and type-checking) the CcColorPanel pointer, causing
a segmentation fault.

Fix that by only casting anything after checking the result
of the asynchronous call.

https://bugzilla.gnome.org/show_bug.cgi?id=786096
2017-08-16 18:07:19 -03:00
Georges Basile Stavracas Neto
f69c1e106b background: Improve background chooser dialog
The background chooser dialog behavior was modeled against
a fixed-size, unmaximizable window, and makes some assumptions
that doesn't work well on the new layout.

Fix that by always setting 3 columns, and adjusting the dialog
height according to the transient parent.
2017-08-16 17:28:01 -03:00
Georges Basile Stavracas Neto
b182402fa9 background: Properly align labels with buttons
When the window resizes, we still want to keep these
labels centralized against their parents.
2017-08-16 16:18:29 -03:00
Allan Day
e29e97a9a4 power: harmonize header positioning
Some of the headings have horizontal margins and others don't,
creating an inconsistent layout. Remove the horizontal margins
from all headings.

https://bugzilla.gnome.org/show_bug.cgi?id=786327
2017-08-16 15:43:04 -03:00
Georges Basile Stavracas Neto
c458e82580 universal-access: Improve indentation of labels 2017-08-13 10:04:01 -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
e465010faa background: Improve layout on the new shell
The current Background panel was designed and architectured
for a fixed size, non resizable window. As such, it has a
few quirks that does not scale well with the new shell.

Fix that by rearchitecturing the Background panel hierarchy,
removing the deprecated widgets and simplifying the overall
hierarchy of widgets.
2017-08-12 12:34:01 -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
Jeremy Bicha
aae4dd842b info: Move Removable Media from Details to Devices
https://bugzilla.gnome.org/show_bug.cgi?id=785874
2017-08-12 09:56:15 -03:00
Jeremy Bicha
d6104266f6 info: Set icons for split panels
https://bugzilla.gnome.org/show_bug.cgi?id=785873
2017-08-09 19:55:26 +02: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