mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-21 21:52:10 +02:00
Bug 573796: Warn user if not using UTF-8 on Windows
The PTY, in case of ConPTY, operates always in UTF-8. This is suggested back to the user with a decorated combo if they try to change the default. Change-Id: Iaf4c13e256ea7ee3469eecab4a0ec3df1ceb19a4
This commit is contained in:
parent
481f08beb4
commit
27f6637d3f
6 changed files with 74 additions and 2 deletions
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.tm.terminal.connector.local;singleton:=true
|
Bundle-SymbolicName: org.eclipse.tm.terminal.connector.local;singleton:=true
|
||||||
Bundle-Version: 4.7.100.qualifier
|
Bundle-Version: 4.7.200.qualifier
|
||||||
Bundle-Activator: org.eclipse.tm.terminal.connector.local.activator.UIPlugin
|
Bundle-Activator: org.eclipse.tm.terminal.connector.local.activator.UIPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Import-Package: org.eclipse.cdt.utils.pty;mandatory:=native
|
Import-Package: org.eclipse.cdt.utils.pty;mandatory:=native
|
||||||
|
|
|
@ -16,10 +16,13 @@ import java.util.Map;
|
||||||
import org.eclipse.core.runtime.IAdaptable;
|
import org.eclipse.core.runtime.IAdaptable;
|
||||||
import org.eclipse.core.runtime.Platform;
|
import org.eclipse.core.runtime.Platform;
|
||||||
import org.eclipse.jface.dialogs.IDialogSettings;
|
import org.eclipse.jface.dialogs.IDialogSettings;
|
||||||
|
import org.eclipse.jface.fieldassist.ControlDecoration;
|
||||||
|
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
import org.eclipse.jface.viewers.StructuredSelection;
|
import org.eclipse.jface.viewers.StructuredSelection;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.graphics.Image;
|
||||||
import org.eclipse.swt.layout.GridData;
|
import org.eclipse.swt.layout.GridData;
|
||||||
import org.eclipse.swt.layout.GridLayout;
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
|
@ -83,6 +86,20 @@ public class LocalWizardConfigurationPanel extends AbstractExtendedConfiguration
|
||||||
setControl(panel);
|
setControl(panel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void decorateEncoding(ControlDecoration encodingComboDecorator, String encoding) {
|
||||||
|
if ((Platform.OS_MACOSX.equals(Platform.getOS()) || Platform.OS_WIN32.equals(Platform.getOS()))
|
||||||
|
&& !"UTF-8".equals(encoding)) { //$NON-NLS-1$
|
||||||
|
Image decorationImage = FieldDecorationRegistry.getDefault()
|
||||||
|
.getFieldDecoration(FieldDecorationRegistry.DEC_WARNING).getImage();
|
||||||
|
encodingComboDecorator.setImage(decorationImage);
|
||||||
|
encodingComboDecorator.setDescriptionText(Messages.LocalWizardConfigurationPanel_encoding_does_not_match);
|
||||||
|
encodingComboDecorator.show();
|
||||||
|
} else {
|
||||||
|
super.decorateEncoding(encodingComboDecorator, encoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setupData(Map<String, Object> data) {
|
public void setupData(Map<String, Object> data) {
|
||||||
if (data == null)
|
if (data == null)
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2021 Kichwa Coders Canada Inc. and others.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the terms
|
||||||
|
* of the Eclipse Public License 2.0 which accompanies this distribution, and is
|
||||||
|
* available at https://www.eclipse.org/legal/epl-2.0/
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*******************************************************************************/
|
||||||
|
package org.eclipse.tm.terminal.connector.local.controls;
|
||||||
|
|
||||||
|
import org.eclipse.osgi.util.NLS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @noreference This class is not intended to be referenced by clients.
|
||||||
|
*/
|
||||||
|
public class Messages extends NLS {
|
||||||
|
private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.connector.local.controls.Messages"; //$NON-NLS-1$
|
||||||
|
public static String LocalWizardConfigurationPanel_encoding_does_not_match;
|
||||||
|
static {
|
||||||
|
// initialize resource bundle
|
||||||
|
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Messages() {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
###############################################################################
|
||||||
|
# Copyright (c) 2021 Kichwa Coders Canada Inc. and others.
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License 2.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# https://www.eclipse.org/legal/epl-2.0/
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EPL-2.0
|
||||||
|
###############################################################################
|
||||||
|
LocalWizardConfigurationPanel_encoding_does_not_match=The selected encoding does not match the terminal being connected to. Recommended encoding is UTF-8.
|
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.tm.terminal.view.ui;singleton:=true
|
Bundle-SymbolicName: org.eclipse.tm.terminal.view.ui;singleton:=true
|
||||||
Bundle-Version: 4.9.0.qualifier
|
Bundle-Version: 4.10.0.qualifier
|
||||||
Bundle-Activator: org.eclipse.tm.terminal.view.ui.activator.UIPlugin
|
Bundle-Activator: org.eclipse.tm.terminal.view.ui.activator.UIPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Require-Bundle: org.eclipse.core.expressions;bundle-version="3.4.400",
|
Require-Bundle: org.eclipse.core.expressions;bundle-version="3.4.400",
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.eclipse.core.runtime.Assert;
|
||||||
import org.eclipse.core.runtime.Platform;
|
import org.eclipse.core.runtime.Platform;
|
||||||
import org.eclipse.jface.dialogs.IDialogSettings;
|
import org.eclipse.jface.dialogs.IDialogSettings;
|
||||||
import org.eclipse.jface.dialogs.InputDialog;
|
import org.eclipse.jface.dialogs.InputDialog;
|
||||||
|
import org.eclipse.jface.fieldassist.ControlDecoration;
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
import org.eclipse.jface.window.Window;
|
import org.eclipse.jface.window.Window;
|
||||||
|
@ -454,6 +455,7 @@ public abstract class AbstractExtendedConfigurationPanel extends AbstractConfigu
|
||||||
label.setText(Messages.AbstractConfigurationPanel_encoding);
|
label.setText(Messages.AbstractConfigurationPanel_encoding);
|
||||||
|
|
||||||
encodingCombo = new Combo(panel, SWT.READ_ONLY);
|
encodingCombo = new Combo(panel, SWT.READ_ONLY);
|
||||||
|
ControlDecoration encodingComboDecorator = new ControlDecoration(encodingCombo, SWT.TOP | SWT.LEFT);
|
||||||
encodingCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
|
encodingCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
|
||||||
encodingCombo.addSelectionListener(new SelectionAdapter() {
|
encodingCombo.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -494,6 +496,8 @@ public abstract class AbstractExtendedConfigurationPanel extends AbstractConfigu
|
||||||
encodingCombo.select(encodingCombo.indexOf(lastSelectedEncoding));
|
encodingCombo.select(encodingCombo.indexOf(lastSelectedEncoding));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
decorateEncoding(encodingComboDecorator, encodingCombo.getText());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -506,6 +510,20 @@ public abstract class AbstractExtendedConfigurationPanel extends AbstractConfigu
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allow the encoding combo box to be decorated with a warning or similar in case user selects
|
||||||
|
* inappropriate encoding.
|
||||||
|
*
|
||||||
|
* @param encodingComboDecorator control decoration on the encoding combo box
|
||||||
|
* @param encoding the encoding the user has selected
|
||||||
|
* @since 4.10
|
||||||
|
*/
|
||||||
|
protected void decorateEncoding(ControlDecoration encodingComboDecorator, String encoding) {
|
||||||
|
// by default don't warn users
|
||||||
|
encodingComboDecorator.hide();
|
||||||
|
encodingComboDecorator.hideHover();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill the encoding combo.
|
* Fill the encoding combo.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue