From fec511c78665b1a65af3e17b85d2c16bc725e637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 26 Feb 2017 04:35:43 +0100 Subject: [PATCH] calendar: Only show section title for other days The section titles usually don't provide a lot of value - messages themselves are usually pretty unambiguous about their type, and having a hidden shortcut to some settings panel or application isn't essential either - except when showing the selected date when browsing other days, as it adds context to the listed events. Based on that, remove the section title as a general MessageListSection feature and move it into the EventsSection, where we only show it when it is useful. https://bugzilla.gnome.org/show_bug.cgi?id=775763 --- data/theme/gnome-shell-high-contrast.css | 10 +++--- data/theme/gnome-shell-sass | 2 +- data/theme/gnome-shell.css | 10 +++--- js/ui/calendar.js | 40 ++++++++++-------------- js/ui/messageList.js | 16 +--------- js/ui/mpris.js | 2 +- 6 files changed, 29 insertions(+), 51 deletions(-) diff --git a/data/theme/gnome-shell-high-contrast.css b/data/theme/gnome-shell-high-contrast.css index 476dfb2ea..2714b9258 100644 --- a/data/theme/gnome-shell-high-contrast.css +++ b/data/theme/gnome-shell-high-contrast.css @@ -737,7 +737,7 @@ StScrollBar { .datemenu-today-button, .world-clocks-button, .weather-button, -.message-list-section-title { +.events-section-title { border-radius: 4px; padding: .4em; } @@ -752,13 +752,13 @@ StScrollBar { .world-clocks-button:focus, .weather-button:hover, .weather-button:focus, -.message-list-section-title:hover, -.message-list-section-title:focus { +.events-section-title:hover, +.events-section-title:focus { background-color: #0d0d0d; } .datemenu-today-button:active, .world-clocks-button:active, .weather-button:active, -.message-list-section-title:active { +.events-section-title:active { color: white; background-color: #215d9c; } @@ -767,7 +767,7 @@ StScrollBar { .world-clocks-header, .weather-header, -.message-list-section-title { +.events-section-title { color: #999999; font-weight: bold; } diff --git a/data/theme/gnome-shell-sass b/data/theme/gnome-shell-sass index 8001b92b5..7f6d89bfc 160000 --- a/data/theme/gnome-shell-sass +++ b/data/theme/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 8001b92b5ef26cb8ea5674c72beed6a4a6439e89 +Subproject commit 7f6d89bfcd5fa1c4238eed83dcab75949df72a4d diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css index 40be8539d..efac28f91 100644 --- a/data/theme/gnome-shell.css +++ b/data/theme/gnome-shell.css @@ -737,7 +737,7 @@ StScrollBar { .datemenu-today-button, .world-clocks-button, .weather-button, -.message-list-section-title { +.events-section-title { border-radius: 4px; padding: .4em; } @@ -752,13 +752,13 @@ StScrollBar { .world-clocks-button:focus, .weather-button:hover, .weather-button:focus, -.message-list-section-title:hover, -.message-list-section-title:focus { +.events-section-title:hover, +.events-section-title:focus { background-color: #454c4c; } .datemenu-today-button:active, .world-clocks-button:active, .weather-button:active, -.message-list-section-title:active { +.events-section-title:active { color: white; background-color: #215d9c; } @@ -767,7 +767,7 @@ StScrollBar { .world-clocks-header, .weather-header, -.message-list-section-title { +.events-section-title { color: #8e8e80; font-weight: bold; } diff --git a/js/ui/calendar.js b/js/ui/calendar.js index 8669efe5b..68e560e97 100644 --- a/js/ui/calendar.js +++ b/js/ui/calendar.js @@ -811,7 +811,16 @@ const EventsSection = new Lang.Class({ this._desktopSettings.connect('changed', Lang.bind(this, this._reloadEvents)); this._eventSource = new EmptyEventSource(); - this.parent(''); + this.parent(); + + this._title = new St.Button({ style_class: 'events-section-title', + label: '', + x_align: St.Align.START, + can_focus: true }); + this.actor.insert_child_below(this._title, null); + + this._title.connect('clicked', Lang.bind(this, this._onTitleClicked)); + this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn)); Shell.AppSystem.get_default().connect('installed-changed', Lang.bind(this, this._appInstalledChanged)); @@ -832,10 +841,10 @@ const EventsSection = new Lang.Class({ }, _updateTitle: function() { - if (isToday(this._date)) { - this._title.label = _("Events"); + this._title.visible = !isToday(this._date); + + if (!this._title.visible) return; - } let dayFormat; let now = new Date(); @@ -897,7 +906,8 @@ const EventsSection = new Lang.Class({ }, _onTitleClicked: function() { - this.parent(); + Main.overview.hide(); + Main.panel.closeCalendar(); let app = this._getCalendarApp(); if (app.get_id() == 'evolution.desktop') @@ -928,7 +938,7 @@ const NotificationSection = new Lang.Class({ Extends: MessageList.MessageListSection, _init: function() { - this.parent(_("Notifications")); + this.parent(); this._sources = new Map(); this._nUrgent = 0; @@ -1017,26 +1027,8 @@ const NotificationSection = new Lang.Class({ message.notification.acknowledged = true; }, - _onTitleClicked: function() { - this.parent(); - - let app = Shell.AppSystem.get_default().lookup_app('gnome-notifications-panel.desktop'); - - if (!app) { - log('Settings panel for desktop file ' + desktopFile + ' could not be loaded!'); - return; - } - - app.activate(); - }, - _shouldShow: function() { return !this.empty && isToday(this._date); - }, - - _sync: function() { - this.parent(); - this._title.reactive = Main.sessionMode.allowSettings; } }); diff --git a/js/ui/messageList.js b/js/ui/messageList.js index 8978fa293..103878988 100644 --- a/js/ui/messageList.js +++ b/js/ui/messageList.js @@ -520,19 +520,10 @@ Signals.addSignalMethods(Message.prototype); const MessageListSection = new Lang.Class({ Name: 'MessageListSection', - _init: function(title) { + _init: function() { this.actor = new St.BoxLayout({ style_class: 'message-list-section', clip_to_allocation: true, x_expand: true, vertical: true }); - this._title = new St.Button({ style_class: 'message-list-section-title', - label: title, - can_focus: true, - x_expand: true, - x_align: St.Align.START }); - this.actor.add_actor(this._title); - - this._title.connect('clicked', Lang.bind(this, this._onTitleClicked)); - this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn)); this._list = new St.BoxLayout({ style_class: 'message-list-section-list', vertical: true }); @@ -554,11 +545,6 @@ const MessageListSection = new Lang.Class({ this._sync(); }, - _onTitleClicked: function() { - Main.overview.hide(); - Main.panel.closeCalendar(); - }, - _onKeyFocusIn: function(actor) { this.emit('key-focus-in', actor); }, diff --git a/js/ui/mpris.js b/js/ui/mpris.js index 825a00e42..b42d9aa57 100644 --- a/js/ui/mpris.js +++ b/js/ui/mpris.js @@ -214,7 +214,7 @@ const MediaSection = new Lang.Class({ Extends: MessageList.MessageListSection, _init: function() { - this.parent(_("Media")); + this.parent(); this._players = new Map();