lock on computer sleep

This commit is contained in:
antelle 2017-06-02 20:16:09 +02:00
parent bb8e3390a0
commit 65a47a8fe4
7 changed files with 45 additions and 21 deletions

View File

@ -13,15 +13,11 @@ const IdleTracker = {
Backbone.trigger('user-idle');
}
},
osLock: function() {
Backbone.trigger('user-idle');
},
regUserAction: function() {
this.actionTime = Date.now();
}
};
Backbone.on('power-monitor-resume', IdleTracker.checkIdle, IdleTracker);
Backbone.on('os-lock', IdleTracker.osLock, IdleTracker);
module.exports = IdleTracker;

View File

@ -343,7 +343,7 @@
"setGenNoRememberKeyFiles": "Don't remember",
"setGenRememberKeyFilesData": "Store in the internal app storage",
"setGenRememberKeyFilesPath": "Remember only path to key files",
"setGenLockInactive": "Auto-lock if the app is inactive",
"setGenLockInactive": "If the app is inactive",
"setGenNoAutoLock": "Don't auto-lock",
"setGenLockMinutes": "In {} minutes",
"setGenLockHour": "In an hour",
@ -354,9 +354,11 @@
"setGenClearSeconds": "In {} seconds",
"setGenClearMinute": "In a minute",
"setGenMinInstead": "Minimize app instead of close",
"setGenLockMinimize": "Auto-lock on minimize",
"setGenLockCopy": "Auto-lock on password copy",
"setGenLockAutoType": "Auto-lock on auto-type",
"setGenLock": "Auto lock",
"setGenLockMinimize": "When the app is minimized",
"setGenLockCopy": "On password copy",
"setGenLockAutoType": "On auto-type",
"setGenLockOsLock": "When the computer is locked or put to sleep",
"setGenStorage": "Storage",
"setGenShowAdvanced": "Show advanced settings",
"setGenDevTools": "Show dev tools",

View File

@ -21,6 +21,7 @@ const AppSettingsModel = Backbone.Model.extend({
lockOnMinimize: true,
lockOnCopy: false,
lockOnAutoType: false,
lockOnOsLock: false,
helpTipCopyShown: false,
templateHelpShown: false,
skipOpenLocalWarn: false,

View File

@ -78,6 +78,8 @@ const AppView = Backbone.View.extend({
this.listenTo(Backbone, 'edit-generator-presets', this.editGeneratorPresets);
this.listenTo(Backbone, 'launcher-open-file', this.launcherOpenFile);
this.listenTo(Backbone, 'user-idle', this.userIdle);
this.listenTo(Backbone, 'os-lock', this.osLocked);
this.listenTo(Backbone, 'power-monitor-suspend', this.osLocked);
this.listenTo(Backbone, 'app-minimized', this.appMinimized);
this.listenTo(Backbone, 'show-context-menu', this.showContextMenu);
this.listenTo(Backbone, 'second-instance', this.showSingleInstanceAlert);
@ -421,6 +423,12 @@ const AppView = Backbone.View.extend({
this.lockWorkspace(true);
},
osLocked: function() {
if (this.model.settings.get('lockOnOsLock')) {
this.lockWorkspace(true);
}
},
appMinimized: function() {
if (this.model.settings.get('lockOnMinimize')) {
this.lockWorkspace(true);

View File

@ -33,6 +33,7 @@ const SettingsGeneralView = Backbone.View.extend({
'change .settings__general-lock-on-minimize': 'changeLockOnMinimize',
'change .settings__general-lock-on-copy': 'changeLockOnCopy',
'change .settings__general-lock-on-auto-type': 'changeLockOnAutoType',
'change .settings__general-lock-on-os-lock': 'changeLockOnOsLock',
'change .settings__general-table-view': 'changeTableView',
'change .settings__general-colorful-icons': 'changeColorfulIcons',
'change .settings__general-titlebar-style': 'changeTitlebarStyle',
@ -79,10 +80,12 @@ const SettingsGeneralView = Backbone.View.extend({
canAutoUpdate: Updater.enabled,
canMinimize: Launcher && Launcher.canMinimize(),
canDetectMinimize: !!Launcher,
canDetectOsLock: !!Launcher,
canAutoType: AutoType.enabled,
lockOnMinimize: Launcher && AppSettingsModel.instance.get('lockOnMinimize'),
lockOnCopy: AppSettingsModel.instance.get('lockOnCopy'),
lockOnAutoType: AppSettingsModel.instance.get('lockOnAutoType'),
lockOnOsLock: AppSettingsModel.instance.get('lockOnOsLock'),
tableView: AppSettingsModel.instance.get('tableView'),
canSetTableView: !FeatureDetector.isMobile,
autoUpdate: Updater.getAutoUpdateType(),
@ -247,6 +250,11 @@ const SettingsGeneralView = Backbone.View.extend({
AppSettingsModel.instance.set('lockOnAutoType', lockOnAutoType);
},
changeLockOnOsLock: function(e) {
const lockOnOsLock = e.target.checked || false;
AppSettingsModel.instance.set('lockOnOsLock', lockOnOsLock);
},
changeTableView: function(e) {
const tableView = e.target.checked || false;
AppSettingsModel.instance.set('tableView', tableView);

View File

@ -103,18 +103,6 @@
{{#if supportFiles}}<option value="path" {{#ifeq rememberKeyFiles 'path'}}selected{{/ifeq}}>{{res 'setGenRememberKeyFilesPath'}}</option>{{/if}}
</select>
</div>
<div>
<label for="settings__general-idle-minutes">{{res 'setGenLockInactive'}}:</label>
<select class="settings__general-idle-minutes settings__select input-base" id="settings__general-idle-minutes">
<option value="0" {{#cmp idleMinutes 0 '<='}}selected{{/cmp}}>{{res 'setGenNoAutoLock'}}</option>
<option value="5" {{#ifeq idleMinutes 5}}selected{{/ifeq}}>{{#res 'setGenLockMinutes'}}5{{/res}}</option>
<option value="10" {{#ifeq idleMinutes 10}}selected{{/ifeq}}>{{#res 'setGenLockMinutes'}}10{{/res}}</option>
<option value="15" {{#ifeq idleMinutes 15}}selected{{/ifeq}}>{{#res 'setGenLockMinutes'}}15{{/res}}</option>
<option value="60" {{#ifeq idleMinutes 60}}selected{{/ifeq}}>{{res 'setGenLockHour'}}</option>
<option value="720" {{#ifeq idleMinutes 720}}selected{{/ifeq}}>{{#res 'setGenLockHours'}}12{{/res}}</option>
<option value="1440" {{#ifeq idleMinutes 1440}}selected{{/ifeq}}>{{res 'setGenLockDay'}}</option>
</select>
</div>
{{#if canClearClipboard}}
<div>
<label for="settings__general-clipboard">{{res 'setGenClearClip'}}:</label>
@ -134,6 +122,20 @@
<label for="settings__general-minimize">{{res 'setGenMinInstead'}}</label>
</div>
{{/if}}
<h2>{{res 'setGenLock'}}</h2>
<div>
<label for="settings__general-idle-minutes">{{res 'setGenLockInactive'}}:</label>
<select class="settings__general-idle-minutes settings__select input-base" id="settings__general-idle-minutes">
<option value="0" {{#cmp idleMinutes 0 '<='}}selected{{/cmp}}>{{res 'setGenNoAutoLock'}}</option>
<option value="5" {{#ifeq idleMinutes 5}}selected{{/ifeq}}>{{#res 'setGenLockMinutes'}}5{{/res}}</option>
<option value="10" {{#ifeq idleMinutes 10}}selected{{/ifeq}}>{{#res 'setGenLockMinutes'}}10{{/res}}</option>
<option value="15" {{#ifeq idleMinutes 15}}selected{{/ifeq}}>{{#res 'setGenLockMinutes'}}15{{/res}}</option>
<option value="60" {{#ifeq idleMinutes 60}}selected{{/ifeq}}>{{res 'setGenLockHour'}}</option>
<option value="720" {{#ifeq idleMinutes 720}}selected{{/ifeq}}>{{#res 'setGenLockHours'}}12{{/res}}</option>
<option value="1440" {{#ifeq idleMinutes 1440}}selected{{/ifeq}}>{{res 'setGenLockDay'}}</option>
</select>
</div>
{{#if canDetectMinimize}}
<div>
<input type="checkbox" class="settings__input input-base settings__general-lock-on-minimize" id="settings__general-lock-on-minimize"
@ -153,6 +155,13 @@
<label for="settings__general-lock-on-auto-type">{{res 'setGenLockAutoType'}}</label>
</div>
{{/if}}
{{#if canDetectOsLock}}
<div>
<input type="checkbox" class="settings__input input-base settings__general-lock-on-os-lock" id="settings__general-lock-on-os-lock"
{{#if lockOnOsLock}}checked{{/if}} />
<label for="settings__general-lock-on-os-lock">{{res 'setGenLockOsLock'}}</label>
</div>
{{/if}}
<h2>{{res 'setGenStorage'}}</h2>
{{#each storageProviders as |prv|}}
<h4 class="settings__general-storage-header"><input

View File

@ -1,7 +1,7 @@
Release notes
-------------
##### v1.6.0 (WIP)
`+` auto-lock when Windows is locked
`+` auto-lock on computer lock
##### v1.5.3 (2017-05-29)
`-` fix #638: password generator drag issues