mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Simplify game menu event handling
Handle selection changes rather than menu item clicks, which cleans up dom.js and means fewer event handlers need to be registered.
This commit is contained in:
@@ -44,10 +44,8 @@
|
||||
for (let i = 0; i < gameMenuItems.length; ++i) {
|
||||
if (installedGames.indexOf(gameMenuItems[i].getAttribute('value')) === -1) {
|
||||
gameMenuItems[i].setAttribute('disabled', true);
|
||||
gameMenuItems[i].removeEventListener('click', onChangeGame);
|
||||
} else {
|
||||
gameMenuItems[i].removeAttribute('disabled');
|
||||
gameMenuItems[i].addEventListener('click', onChangeGame);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -62,7 +60,6 @@
|
||||
gameSelect.removeChild(gameSelect.lastElementChild);
|
||||
}
|
||||
while (gameMenu.firstElementChild) {
|
||||
gameMenu.firstElementChild.removeEventListener('click', onChangeGame);
|
||||
gameMenu.removeChild(gameMenu.firstElementChild);
|
||||
}
|
||||
gameTable.clear();
|
||||
|
||||
@@ -107,13 +107,13 @@ function onOpenLogLocation(evt) {
|
||||
}
|
||||
function onChangeGame(evt) {
|
||||
/* Check that the selected game isn't the current one. */
|
||||
if (evt.target.className.indexOf('core-selected') !== -1) {
|
||||
if (!evt.detail.isSelected) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Send off a CEF query with the folder name of the new game. */
|
||||
loot.Dialog.showProgress(loot.l10n.translate('Loading game data...'));
|
||||
loot.query('changeGame', evt.currentTarget.getAttribute('value')).then((result) => {
|
||||
loot.query('changeGame', evt.detail.item.getAttribute('value')).then((result) => {
|
||||
/* Filters should be re-applied on game change, except the conflicts
|
||||
filter. Don't need to deactivate the others beforehand. Strictly not
|
||||
deactivating the conflicts filter either, just resetting it's value.
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
document.getElementById('helpButton').addEventListener('click', onOpenReadme);
|
||||
document.getElementById('aboutButton').addEventListener('click', onShowAboutDialog);
|
||||
document.getElementById('quitButton').addEventListener('click', onQuit);
|
||||
document.getElementById('gameMenu').addEventListener('core-select', onChangeGame);
|
||||
document.getElementById('updateMasterlistButton').addEventListener('click', onUpdateMasterlist);
|
||||
document.getElementById('sortButton').addEventListener('click', onSortPlugins);
|
||||
document.getElementById('applySortButton').addEventListener('click', onApplySort);
|
||||
|
||||
Reference in New Issue
Block a user