Port minimize to tray to new settings tab (post-merge)

Brings in b02b371250
pull/21833/head
Travis Ralston 2019-02-25 09:43:39 -07:00
parent 4801b25f77
commit 5bf9f721c8
1 changed files with 26 additions and 3 deletions

View File

@ -59,24 +59,39 @@ export default class PreferencesUserSettingsTab extends React.Component {
this.state = { this.state = {
autoLaunch: false, autoLaunch: false,
autoLaunchSupported: false, autoLaunchSupported: false,
minimizeToTray: true,
minimizeToTraySupported: false,
}; };
} }
async componentWillMount(): void { async componentWillMount(): void {
const autoLaunchSupported = await PlatformPeg.get().supportsAutoLaunch(); const platform = PlatformPeg.get();
const autoLaunchSupported = await platform.supportsAutoLaunch();
let autoLaunch = false; let autoLaunch = false;
if (autoLaunchSupported) { if (autoLaunchSupported) {
autoLaunch = await PlatformPeg.get().getAutoLaunchEnabled(); autoLaunch = await platform.getAutoLaunchEnabled();
} }
this.setState({autoLaunch, autoLaunchSupported}); const minimizeToTraySupported = await platform.supportsMinimizeToTray();
let minimizeToTray = true;
if (minimizeToTraySupported) {
minimizeToTray = await platform.getMinimizeToTrayEnabled();
}
this.setState({autoLaunch, autoLaunchSupported, minimizeToTraySupported, minimizeToTray});
} }
_onAutoLaunchChange = (checked) => { _onAutoLaunchChange = (checked) => {
PlatformPeg.get().setAutoLaunchEnabled(checked).then(() => this.setState({autoLaunch: checked})); PlatformPeg.get().setAutoLaunchEnabled(checked).then(() => this.setState({autoLaunch: checked}));
}; };
_onMinimizeToTrayChange = (checked) => {
PlatformPeg.get().setMinimizeToTrayEnabled(checked).then(() => this.setState({minimizeToTray: checked}));
};
_onAutocompleteDelayChange = (e) => { _onAutocompleteDelayChange = (e) => {
SettingsStore.setValue("autocompleteDelay", null, SettingLevel.DEVICE, e.target.value); SettingsStore.setValue("autocompleteDelay", null, SettingLevel.DEVICE, e.target.value);
}; };
@ -94,6 +109,13 @@ export default class PreferencesUserSettingsTab extends React.Component {
label={_t('Start automatically after system login')} />; label={_t('Start automatically after system login')} />;
} }
let minimizeToTrayOption = null;
if (this.state.minimizeToTraySupported) {
minimizeToTrayOption = <LabelledToggleSwitch value={this.state.minimizeToTray}
onChange={this._onMinimizeToTrayChange}
label={_t('Close button should minimize window to tray')} />;
}
return ( return (
<div className="mx_SettingsTab mx_PreferencesUserSettingsTab"> <div className="mx_SettingsTab mx_PreferencesUserSettingsTab">
<div className="mx_SettingsTab_heading">{_t("Preferences")}</div> <div className="mx_SettingsTab_heading">{_t("Preferences")}</div>
@ -106,6 +128,7 @@ export default class PreferencesUserSettingsTab extends React.Component {
<span className="mx_SettingsTab_subheading">{_t("Advanced")}</span> <span className="mx_SettingsTab_subheading">{_t("Advanced")}</span>
{this._renderGroup(PreferencesUserSettingsTab.ADVANCED_SETTINGS)} {this._renderGroup(PreferencesUserSettingsTab.ADVANCED_SETTINGS)}
{minimizeToTrayOption}
{autoLaunchOption} {autoLaunchOption}
<Field id={"autocompleteDelay"} label={_t('Autocomplete delay (ms)')} type='number' <Field id={"autocompleteDelay"} label={_t('Autocomplete delay (ms)')} type='number'
value={SettingsStore.getValueAt(SettingLevel.DEVICE, 'autocompleteDelay')} value={SettingsStore.getValueAt(SettingLevel.DEVICE, 'autocompleteDelay')}