1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-04 15:45:25 +02:00

Bug 529799 - problem with entries tree in LanguageSettingsEntriesTab

- fix provided by Christian Walther
- fix methods to use addTreeListener() instead
  of addPaintListener() to handle resizing
- in TreeListener, define treeExpanded method which uses pack method
  for entries column

Change-Id: I28db2059d3e0561ce9e5e52f569409de9aff9a6d
This commit is contained in:
Jeff Johnston 2018-01-16 16:17:52 -05:00
parent 9dbd3cffef
commit d84a19cfb9

View file

@ -28,7 +28,6 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.Status;
import org.eclipse.jface.layout.PixelConverter;
import org.eclipse.jface.viewers.IDecoration; import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewer;
@ -39,8 +38,9 @@ import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.TreeAdapter;
import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
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.Button; import org.eclipse.swt.widgets.Button;
@ -361,13 +361,12 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
columnLanguages.setResizable(false); columnLanguages.setResizable(false);
columnLanguages.setToolTipText(Messages.AbstractLangsListTab_Languages); columnLanguages.setToolTipText(Messages.AbstractLangsListTab_Languages);
treeLanguages.addPaintListener(new PaintListener() { treeLanguages.addTreeListener(new TreeAdapter() {
@Override @Override
public void paintControl(PaintEvent e) { public void treeExpanded(TreeEvent e) {
int x = treeLanguages.getBounds().width - 5; treeLanguages.getDisplay().asyncExec(() -> {
if (columnLanguages.getWidth() != x) { columnLanguages.pack();
columnLanguages.setWidth(x); });
}
} }
}); });
} }
@ -382,19 +381,18 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
treeEntries.setLinesVisible(true); treeEntries.setLinesVisible(true);
final TreeColumn treeCol = new TreeColumn(treeEntries, SWT.NONE); final TreeColumn treeCol = new TreeColumn(treeEntries, SWT.NONE);
treeEntries.addPaintListener(new PaintListener() { treeEntries.addTreeListener(new TreeAdapter() {
@Override @Override
public void paintControl(PaintEvent e) { public void treeExpanded(TreeEvent e) {
Point p = treeEntries.computeSize(SWT.DEFAULT, SWT.DEFAULT); treeEntries.getDisplay().asyncExec(() -> {
if (treeCol.getWidth() != p.x) treeCol.pack();
treeCol.setWidth(p.x); });
} }
}); });
treeCol.setText(Messages.LanguageSettingsProviderTab_SettingEntries); treeCol.setText(Messages.LanguageSettingsProviderTab_SettingEntries);
treeCol.setWidth(200); treeCol.setWidth(200);
treeCol.setResizable(false);
treeCol.setToolTipText(Messages.LanguageSettingsProviderTab_SettingEntriesTooltip); treeCol.setToolTipText(Messages.LanguageSettingsProviderTab_SettingEntriesTooltip);
treeEntriesViewer = new TreeViewer(treeEntries); treeEntriesViewer = new TreeViewer(treeEntries);