diff --git a/app/scripts/auto-type/index.js b/app/scripts/auto-type/index.js index 4375a6f0..e5878bb2 100644 --- a/app/scripts/auto-type/index.js +++ b/app/scripts/auto-type/index.js @@ -258,7 +258,7 @@ const AutoType = { if (entries.length === 0) { if (evt.filter.useUrl) { evt.filter.useUrl = false; - if (evt.filter.title) { + if (evt.filter.title && AppSettingsModel.autoTypeTitleFilterEnabled) { evt.filter.useTitle = true; } } diff --git a/app/scripts/comp/extension/protocol-impl.js b/app/scripts/comp/extension/protocol-impl.js index 7d172edb..1f449659 100644 --- a/app/scripts/comp/extension/protocol-impl.js +++ b/app/scripts/comp/extension/protocol-impl.js @@ -325,7 +325,7 @@ async function findEntry(request, returnIfOneMatch, filterOptions) { if (!entries.length) { if (AppSettingsModel.extensionFocusIfEmpty) { filter.useUrl = false; - if (filter.title) { + if (filter.title && AppSettingsModel.autoTypeTitleFilterEnabled) { filter.useTitle = true; entries = filter.getEntries(); if (!entries.length) { diff --git a/app/scripts/const/default-app-settings.js b/app/scripts/const/default-app-settings.js index eb8f760b..63df7bb6 100644 --- a/app/scripts/const/default-app-settings.js +++ b/app/scripts/const/default-app-settings.js @@ -18,6 +18,7 @@ const DefaultAppSettings = { colorfulIcons: false, // use colorful custom icons instead of grayscale useMarkdown: true, // use Markdown in Notes field directAutotype: true, // if only one matching entry is found, select that one automatically + autoTypeTitleFilterEnabled: true, // enable the title filtering in auto-type by default titlebarStyle: 'default', // window titlebar style lockOnMinimize: true, // lock the app when it's minimized lockOnCopy: false, // lock the app after a password was copied diff --git a/app/scripts/locales/base.json b/app/scripts/locales/base.json index 9a9bba18..da4c2812 100644 --- a/app/scripts/locales/base.json +++ b/app/scripts/locales/base.json @@ -432,7 +432,8 @@ "setGenColorfulIcons": "Colorful custom icons in the list", "setGenUseMarkdown": "Markdown in notes", "setGenUseGroupIconForEntries": "Automatically use group icon for new entries", - "setGenDirectAutotype": "If only one matching entry is found, select that one automatically for Autotype", + "setGenDirectAutotype": "If only one matching entry is found, select that one automatically for auto-type", + "setGenAutoTypeTitleFilterEnabled": "Filter entries by title in auto-type", "setGenFunction": "Function", "setGenAutoSyncOnClose": "Automatically save and sync on close", "setGenAutoSyncTimer": "Automatically save and sync periodically", diff --git a/app/scripts/models/file-model.js b/app/scripts/models/file-model.js index 00ed88d4..5edb7800 100644 --- a/app/scripts/models/file-model.js +++ b/app/scripts/models/file-model.js @@ -677,10 +677,10 @@ class FileModel extends Model { addCustomIcon(iconData) { const uuid = kdbxweb.KdbxUuid.random(); - this.db.meta.customIcons[uuid] = { + this.db.meta.customIcons.set(uuid.id, { data: kdbxweb.ByteUtils.arrayToBuffer(kdbxweb.ByteUtils.base64ToBytes(iconData)), lastModified: new Date() - }; + }); return uuid.toString(); } diff --git a/app/scripts/views/settings/settings-general-view.js b/app/scripts/views/settings/settings-general-view.js index db8d6cd7..f29bbd3f 100644 --- a/app/scripts/views/settings/settings-general-view.js +++ b/app/scripts/views/settings/settings-general-view.js @@ -53,6 +53,7 @@ class SettingsGeneralView extends View { 'change .settings__general-use-markdown': 'changeUseMarkdown', 'change .settings__general-use-group-icon-for-entries': 'changeUseGroupIconForEntries', 'change .settings__general-direct-autotype': 'changeDirectAutotype', + 'change .settings__general-autotype-title-filter': 'changeAutoTypeTitleFilter', 'change .settings__general-field-label-dblclick-autotype': 'changeFieldLabelDblClickAutoType', 'change .settings__general-device-owner-auth': 'changeDeviceOwnerAuth', @@ -135,6 +136,7 @@ class SettingsGeneralView extends View { useMarkdown: AppSettingsModel.useMarkdown, useGroupIconForEntries: AppSettingsModel.useGroupIconForEntries, directAutotype: AppSettingsModel.directAutotype, + autoTypeTitleFilterEnabled: AppSettingsModel.autoTypeTitleFilterEnabled, fieldLabelDblClickAutoType: AppSettingsModel.fieldLabelDblClickAutoType, supportsTitleBarStyles: Features.supportsTitleBarStyles, supportsCustomTitleBarAndDraggableWindow: @@ -431,6 +433,11 @@ class SettingsGeneralView extends View { AppSettingsModel.directAutotype = directAutotype; } + changeAutoTypeTitleFilter(e) { + const autoTypeTitleFilterEnabled = e.target.checked || false; + AppSettingsModel.autoTypeTitleFilterEnabled = autoTypeTitleFilterEnabled; + } + changeFieldLabelDblClickAutoType(e) { const fieldLabelDblClickAutoType = e.target.checked || false; AppSettingsModel.fieldLabelDblClickAutoType = fieldLabelDblClickAutoType; diff --git a/app/templates/settings/settings-general.hbs b/app/templates/settings/settings-general.hbs index 6a997ad5..b2895a45 100644 --- a/app/templates/settings/settings-general.hbs +++ b/app/templates/settings/settings-general.hbs @@ -169,6 +169,11 @@ id="settings__general-direct-autotype" {{#if directAutotype}}checked{{/if}} /> +
+ + +
diff --git a/desktop/main.js b/desktop/main.js index 8421eb92..ba7a113b 100644 --- a/desktop/main.js +++ b/desktop/main.js @@ -376,6 +376,9 @@ function restoreMainWindow() { } function showAndFocusMainWindow() { + if (appIcon) { + restoreMainWindow(); + } if (mainWindowMaximized) { mainWindow.maximize(); } else { diff --git a/desktop/package.json b/desktop/package.json index 7db24e21..52888c6b 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,6 +1,6 @@ { "name": "KeeWeb", - "version": "1.18.3", + "version": "1.18.4", "description": "Free cross-platform password manager compatible with KeePass", "main": "main.js", "homepage": "https://keeweb.info", diff --git a/desktop/scripts/update-installer.js b/desktop/scripts/update-installer.js index 51dcb0c4..f89fd52c 100644 --- a/desktop/scripts/update-installer.js +++ b/desktop/scripts/update-installer.js @@ -39,7 +39,7 @@ function installDarwinUpdate(updateFilePath) { `--app=${appPath}` ]); - electron.app.exit(0); + electron.app.quit(); } function installWin32Update(updateFilePath) { @@ -52,7 +52,7 @@ function installWin32Update(updateFilePath) { const ps = spawnDetached('cmd'); ps.stdin.end(`${updateCommand}\nexit\n`, 'utf8', () => { - electron.app.exit(0); + electron.app.quit(); }); } diff --git a/package-lock.json b/package-lock.json index b0065b1c..caf28fce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "keeweb", - "version": "1.18.3", + "version": "1.18.4", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.18.1", + "version": "1.18.3", "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", @@ -14,7 +14,7 @@ "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/preset-env": "^7.14.1", "@fortawesome/fontawesome-free": "^5.15.3", - "@keeweb/keeweb-native-messaging-host": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.3/keeweb-native-messaging-host.tgz", + "@keeweb/keeweb-native-messaging-host": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.5/keeweb-native-messaging-host.tgz", "@keeweb/keeweb-native-modules": "https://github.com/keeweb/keeweb-native-modules/releases/download/0.11.6/keeweb-native-modules.tgz", "adm-zip": "^0.5.5", "argon2-browser": "1.15.4", @@ -1567,9 +1567,9 @@ } }, "node_modules/@keeweb/keeweb-native-messaging-host": { - "version": "0.3.3", - "resolved": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.3/keeweb-native-messaging-host.tgz", - "integrity": "sha512-AvHWU0Bwv46Xl6PLyehRRNuZMn+3iWB9zf/YORp4JoJQhQuO8E3XODUadz2gMrZ/irHxC71sQlZG1vAOiUJqdw==", + "version": "0.3.5", + "resolved": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.5/keeweb-native-messaging-host.tgz", + "integrity": "sha512-LitShO2m12x9z/FyNzLpmsA90bz96a45uESyz6oAQvoIqW7axrHtNqb8KHvmY8oz9+CySD3It8y+XuLXXS+gfw==", "license": "MIT" }, "node_modules/@keeweb/keeweb-native-modules": { @@ -21888,8 +21888,8 @@ } }, "@keeweb/keeweb-native-messaging-host": { - "version": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.3/keeweb-native-messaging-host.tgz", - "integrity": "sha512-AvHWU0Bwv46Xl6PLyehRRNuZMn+3iWB9zf/YORp4JoJQhQuO8E3XODUadz2gMrZ/irHxC71sQlZG1vAOiUJqdw==" + "version": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.5/keeweb-native-messaging-host.tgz", + "integrity": "sha512-LitShO2m12x9z/FyNzLpmsA90bz96a45uESyz6oAQvoIqW7axrHtNqb8KHvmY8oz9+CySD3It8y+XuLXXS+gfw==" }, "@keeweb/keeweb-native-modules": { "version": "https://github.com/keeweb/keeweb-native-modules/releases/download/0.11.6/keeweb-native-modules.tgz", diff --git a/package.json b/package.json index db0f45a9..5edeb963 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "keeweb", - "version": "1.18.3", + "version": "1.18.4", "description": "Free cross-platform password manager compatible with KeePass", "main": "Gruntfile.js", "private": true, @@ -16,7 +16,7 @@ "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/preset-env": "^7.14.1", "@fortawesome/fontawesome-free": "^5.15.3", - "@keeweb/keeweb-native-messaging-host": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.3/keeweb-native-messaging-host.tgz", + "@keeweb/keeweb-native-messaging-host": "https://github.com/keeweb/keeweb-connect/releases/download/0.3.5/keeweb-native-messaging-host.tgz", "@keeweb/keeweb-native-modules": "https://github.com/keeweb/keeweb-native-modules/releases/download/0.11.6/keeweb-native-modules.tgz", "adm-zip": "^0.5.5", "argon2-browser": "1.15.4", @@ -123,7 +123,7 @@ "author": { "name": "Antelle", "email": "antelle.net@gmail.com", - "url": "http://antelle.net" + "url": "https://antelle.net" }, "engines": { "node": ">=10.0" diff --git a/release-notes.md b/release-notes.md index 4c340c01..37d5176a 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,5 +1,12 @@ Release notes ------------- +##### v1.18.4 (2021-05-12) +`+` #1814: option to disable auto-type title filter by default +`-` #1808: restore KeeWeb from system tray on extension request +`-` fix #1810: extension connection on old macOS (10.11) +`-` fix #1813: custom icon selection +`-` fix #1811: app doesn't quit during update + ##### v1.18.3 (2021-05-09) `-` fix #1804: filling OTP in browser extensions `*` fix #1805: auto-unchecking auto-type filters if nothing found