[gnome-documents] mainToolbar: Add fullscreen and nightmode to toolbar
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-documents] mainToolbar: Add fullscreen and nightmode to toolbar
- Date: Fri, 3 Jun 2016 11:12:47 +0000 (UTC)
commit a36a7dd38afebce181a5ec9cc7c9d57a65496e2b
Author: Bastien Nocera <hadess hadess net>
Date: Tue May 31 22:08:52 2016 +0200
mainToolbar: Add fullscreen and nightmode to toolbar
For gnome-books.
This also changes the fullscreen action to a stateful one, which is
useful for multi-screen setups, where the app menu is still visible even
with the window fullscreened.
https://bugzilla.gnome.org/show_bug.cgi?id=767103
src/application.js | 8 ++++++--
src/mainToolbar.js | 28 ++++++++++++++++++++++++++++
src/preview.js | 4 ++++
src/windowMode.js | 4 ----
4 files changed, 38 insertions(+), 6 deletions(-)
---
diff --git a/src/application.js b/src/application.js
index aee1777..f7a7e75 100644
--- a/src/application.js
+++ b/src/application.js
@@ -231,8 +231,11 @@ const Application = new Lang.Class({
settings.set_value('night-mode', GLib.Variant.new('b', !state.get_boolean()));
},
- _onActionFullscreen: function() {
- modeController.toggleFullscreen();
+ _onActionFullscreen: function(action) {
+ let state = action.get_state();
+ let newState = !state.get_boolean();
+ action.change_state(GLib.Variant.new('b', newState));
+ modeController.setFullscreen(newState);
},
_onActionViewAs: function(action, parameter) {
@@ -539,6 +542,7 @@ const Application = new Lang.Class({
accels: ['F1'] },
{ name: 'fullscreen',
callback: this._onActionFullscreen,
+ state: GLib.Variant.new('b', false),
create_hook: this._fullscreenCreateHook,
accels: ['F11'],
window_mode: WindowMode.WindowMode.PREVIEW },
diff --git a/src/mainToolbar.js b/src/mainToolbar.js
index 6bc98f7..e8d2cb8 100644
--- a/src/mainToolbar.js
+++ b/src/mainToolbar.js
@@ -90,6 +90,34 @@ const MainToolbar = new Lang.Class({
return searchButton;
},
+ _onFullscreenStateChanged: function() {
+ let state = Application.application.get_action_state('fullscreen');
+ if (state.get_boolean())
+ this._fullscreenButton.image.icon_name ='view-restore-symbolic';
+ else
+ this._fullscreenButton.image.icon_name ='view-fullscreen-symbolic';
+ },
+
+ addFullscreenButton: function() {
+ let fullscreenButton = new Gtk.Button({ image: new Gtk.Image ({ icon_name:
'view-fullscreen-symbolic' }),
+ tooltip_text: _("Fullscreen"),
+ action_name: 'app.fullscreen' });
+ this.toolbar.pack_end(fullscreenButton);
+ Application.application.connect('action-state-changed::fullscreen',
+ Lang.bind(this, this._onFullscreenStateChanged));
+ this._fullscreenButton = fullscreenButton;
+ this._onFullscreenStateChanged();
+ return fullscreenButton;
+ },
+
+ addNightmodeButton: function() {
+ let nightmodeButton = new Gtk.ToggleButton({ image: new Gtk.Image ({ icon_name:
'display-brightness-symbolic' }),
+ tooltip_text: _("Night Mode"),
+ action_name: 'app.night-mode' });
+ this.toolbar.pack_end(nightmodeButton);
+ return nightmodeButton;
+ },
+
addBackButton: function() {
let backButton = new Gtk.Button({ image: new Gtk.Image({ icon_name: 'go-previous-symbolic' }),
tooltip_text: _("Back") });
diff --git a/src/preview.js b/src/preview.js
index e882710..2d02997 100644
--- a/src/preview.js
+++ b/src/preview.js
@@ -873,6 +873,10 @@ const PreviewToolbar = new Lang.Class({
// search button, on the right of the toolbar
this.addSearchButton();
+ if (Application.application.isBooks) {
+ this.addFullscreenButton();
+ this.addNightmodeButton();
+ }
this._setToolbarTitle();
this.toolbar.show_all();
diff --git a/src/windowMode.js b/src/windowMode.js
index ab65d10..b70afc5 100644
--- a/src/windowMode.js
+++ b/src/windowMode.js
@@ -103,10 +103,6 @@ const ModeController = new Lang.Class({
this.emit('fullscreen-changed', this._fullscreen);
},
- toggleFullscreen: function() {
- this.setFullscreen(!this._fullscreen);
- },
-
getFullscreen: function() {
return this._fullscreen;
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]