Merge branch 'master' into develop

# Conflicts:
#	release-notes.md
This commit is contained in:
antelle 2019-10-09 23:22:04 +02:00
commit 0411fe4cfe
14 changed files with 53 additions and 16 deletions

View File

@ -5,6 +5,9 @@ const path = require('path');
const webpackConfig = require('./build/webpack.config');
const pkg = require('./package.json');
const hookRcedit = require('./build/util/hook-rcedit');
hookRcedit.setup();
module.exports = function(grunt) {
require('time-grunt')(grunt);

View File

@ -254,7 +254,6 @@ const AutoType = {
Events.emit('open-file');
Events.once('closed-open-view', () => {
this.selectEntryView.show();
this.selectEntryView.setupKeys();
});
});
},

View File

@ -17,10 +17,10 @@ class EntryCollection extends Collection {
'-created': Comparators.dateComparator('created', false),
'updated': Comparators.dateComparator('updated', true),
'-updated': Comparators.dateComparator('updated', false),
'-attachments'(x, y) {
'-attachments': (x, y) => {
return this.attachmentSortVal(x).localeCompare(this.attachmentSortVal(y));
},
'-rank': Comparators.rankComparator()
'-rank': Comparators.rankComparator().bind(this)
};
defaultComparator = 'title';

View File

@ -63,7 +63,7 @@ class KeyHandler {
const keyShortcuts = this.shortcuts[code];
if (keyShortcuts && keyShortcuts.length) {
for (const sh of keyShortcuts) {
if (this.modal && sh.modal !== this.modal) {
if (this.modal && (sh.modal !== this.modal || sh.modal === '*')) {
e.stopPropagation();
continue;
}

View File

@ -103,7 +103,8 @@ class AppView extends View {
this.onKey(
Keys.DOM_VK_I,
this.openDevTools,
KeyHandler.SHORTCUT_ACTION + KeyHandler.SHORTCUT_OPT
KeyHandler.SHORTCUT_ACTION + KeyHandler.SHORTCUT_OPT,
'*'
);
}

View File

@ -61,6 +61,12 @@ class AutoTypeSelectView extends View {
this.once('remove', () => {
KeyHandler.setModal(null);
});
this.on('show', () => {
KeyHandler.setModal('auto-type');
});
this.on('hide', () => {
KeyHandler.setModal(null);
});
}
render() {

View File

@ -21,9 +21,10 @@ class ModalView extends View {
if (typeof this.model.enter === 'string') {
this.onKey(Keys.DOM_VK_RETURN, this.enterPressed, false, 'alert');
}
const prevModal = KeyHandler.modal;
KeyHandler.setModal('alert');
this.once('remove', () => {
KeyHandler.setModal(null);
KeyHandler.setModal(prevModal);
if (this.model.view) {
this.model.view.remove();
}

View File

@ -60,15 +60,17 @@ class OpenView extends View {
super(model);
this.resetParams();
this.passwordInput = new SecureInput();
this.onKey(Keys.DOM_VK_Z, this.undoKeyPress, KeyHandler.SHORTCUT_ACTION);
this.onKey(Keys.DOM_VK_TAB, this.tabKeyPress);
this.onKey(Keys.DOM_VK_ENTER, this.enterKeyPress);
this.onKey(Keys.DOM_VK_RETURN, this.enterKeyPress);
this.onKey(Keys.DOM_VK_DOWN, this.moveOpenFileSelectionDown);
this.onKey(Keys.DOM_VK_UP, this.moveOpenFileSelectionUp);
this.onKey(Keys.DOM_VK_Z, this.undoKeyPress, KeyHandler.SHORTCUT_ACTION, 'open');
this.onKey(Keys.DOM_VK_TAB, this.tabKeyPress, null, 'open');
this.onKey(Keys.DOM_VK_ENTER, this.enterKeyPress, null, 'open');
this.onKey(Keys.DOM_VK_RETURN, this.enterKeyPress, null, 'open');
this.onKey(Keys.DOM_VK_DOWN, this.moveOpenFileSelectionDown, null, 'open');
this.onKey(Keys.DOM_VK_UP, this.moveOpenFileSelectionUp, null, 'open');
this.listenTo(Events, 'main-window-focus', this.windowFocused.bind(this));
KeyHandler.setModal('open');
this.once('remove', () => {
this.passwordInput.reset();
KeyHandler.setModal(null);
});
}

21
build/util/hook-rcedit.js Normal file
View File

@ -0,0 +1,21 @@
const childProcess = require('child_process');
// remove this once wine can be run on macOS
const childProcessSpawn = childProcess.spawn;
function hookedSpawn(command, options) {
if (command === 'wine') {
options = options.map(option => {
if (option.includes(' ')) {
option = `"${option.replace('"', '\\"')}"`;
}
return option;
});
}
return childProcessSpawn.call(childProcess, command, options);
}
module.exports.setup = function() {
childProcess.spawn = hookedSpawn;
};

View File

@ -1,6 +1,6 @@
{
"name": "KeeWeb",
"version": "1.11.6",
"version": "1.11.7",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "KeeWeb",
"version": "1.11.6",
"version": "1.11.7",
"description": "Free cross-platform password manager compatible with KeePass",
"main": "main.js",
"homepage": "https://keeweb.info",

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "keeweb",
"version": "1.11.6",
"version": "1.11.7",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "keeweb",
"version": "1.11.6",
"version": "1.11.7",
"description": "Free cross-platform password manager compatible with KeePass",
"main": "Gruntfile.js",
"private": true,

View File

@ -9,6 +9,10 @@ Release notes
`+` #480: option to launch the app minimized
`-` fix #1273: untranslated menu items
##### v1.11.7 (2019-10-08)
`-` fix #1289: crash on Auto sorting mode
`-` fix #1288: issues when opening a file during in auto-type mode
##### v1.11.6 (2019-10-04)
`-` fix #1285: issues in moving entries across files