Skip to content

Commit

Permalink
Registers filmstrip shortcut from bottom toolbar
Browse files Browse the repository at this point in the history
  • Loading branch information
yanas committed Aug 29, 2016
1 parent 45e38ae commit 9693cba
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 9 deletions.
26 changes: 25 additions & 1 deletion modules/UI/toolbars/BottomToolbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,14 @@ const defaultBottomToolbarButtons = {
id: '#bottom_toolbar_contact_list'
},
'filmstrip': {
id: '#bottom_toolbar_film_strip'
id: '#bottom_toolbar_film_strip',
shortcut: "F",
shortcutAttr: "filmstripPopover",
shortcutFunc: function() {
JitsiMeetJS.analytics.sendEvent("shortcut.film.toggled");
APP.UI.toggleFilmStrip();
},
shortcutDescription: "keyboardShortcuts.toggleFilmstrip"
}
};

Expand Down Expand Up @@ -38,6 +45,7 @@ const BottomToolbar = {
isEnabled() {
return this.enabled;
},

setupListeners (emitter) {
UIUtil.hideDisabledButtons(defaultBottomToolbarButtons);

Expand All @@ -58,6 +66,22 @@ const BottomToolbar = {
}
};

Object.keys(defaultBottomToolbarButtons).forEach(
id => {
if (UIUtil.isButtonEnabled(id)) {
var button = defaultBottomToolbarButtons[id];

if (button.shortcut)
APP.keyboardshortcut.registerShortcut(
button.shortcut,
button.shortcutAttr,
button.shortcutFunc,
button.shortcutDescription
);
}
}
);

Object.keys(buttonHandlers).forEach(
buttonId => $(`#${buttonId}`).click(buttonHandlers[buttonId])
);
Expand Down
3 changes: 1 addition & 2 deletions modules/UI/toolbars/Toolbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
/* jshint -W101 */
import UIUtil from '../util/UIUtil';
import UIEvents from '../../../service/UI/UIEvents';
import KeyboardShortcut from '../../keyboardshortcut/keyboardshortcut';

let roomUrl = null;
let emitter = null;
Expand Down Expand Up @@ -253,7 +252,7 @@ const Toolbar = {
var button = defaultToolbarButtons[id];

if (button.shortcut)
KeyboardShortcut.registerShortcut(
APP.keyboardshortcut.registerShortcut(
button.shortcut,
button.shortcutAttr,
button.shortcutFunc,
Expand Down
28 changes: 22 additions & 6 deletions modules/keyboardshortcut/keyboardshortcut.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,10 @@ function initGlobalShortcuts() {
APP.conference.muteAudio(true);
}, "keyboardShortcuts.pushToTalk");

KeyboardShortcut.registerShortcut("F", 'filmstripPopover', function() {
JitsiMeetJS.analytics.sendEvent("shortcut.film.toggled");
APP.UI.toggleFilmStrip();
}, "keyboardShortcuts.toggleFilmstrip");

// Focus keys are directly implemented below.
/**
* FIXME: Currently focus keys are directly implemented below in onkeyup.
* They should be moved to the SmallVideo instead.
*/
KeyboardShortcut._addShortcutToHelp("0", "keyboardShortcuts.focusLocal");
KeyboardShortcut._addShortcutToHelp("1-9", "keyboardShortcuts.focusRemote");
}
Expand Down Expand Up @@ -123,6 +121,8 @@ var KeyboardShortcut = {
*/
unregisterShortcut: function(shortcutChar) {
_shortcuts.remove(shortcutChar);

this._removeShortcutFromHelp(shortcutChar);
},

/**
Expand Down Expand Up @@ -177,6 +177,7 @@ var KeyboardShortcut = {
_addShortcutToHelp: function (shortcutChar, shortcutDescriptionKey) {

var listElement = document.createElement("li");
listElement.id = shortcutChar;

var spanElement = document.createElement("span");
spanElement.className = "item-action";
Expand All @@ -200,6 +201,21 @@ var KeyboardShortcut = {

if (parentListElement)
parentListElement.appendChild(listElement);
},

/**
* Removes the list element corresponding to the given shortcut from the
* help dialog
* @private
*/
_removeShortcutFromHelp: function (shortcutChar) {
var parentListElement
= document.getElementById("keyboard-shortcuts-list");

var shortcutElement = document.getElementById(shortcutChar);

if (shortcutElement)
parentListElement.removeChild(shortcutElement);
}
};

Expand Down

0 comments on commit 9693cba

Please sign in to comment.