Merge pull request #963 from SiboVG/issue-950

[fixes #950] Photo Studio sky image empty option
This commit is contained in:
Billy Olsen 2021-07-13 20:25:06 -07:00 committed by GitHub
commit 5977975756
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,6 +23,7 @@ import javax.swing.colorchooser.ColorSelectionModel;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import com.jogamp.opengl.GL2;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.gui.adaptors.BooleanModel; import net.sf.openrocket.gui.adaptors.BooleanModel;
import net.sf.openrocket.gui.adaptors.DoubleModel; import net.sf.openrocket.gui.adaptors.DoubleModel;
@ -31,6 +32,7 @@ import net.sf.openrocket.gui.components.EditableSpinner;
import net.sf.openrocket.gui.components.StyledLabel; import net.sf.openrocket.gui.components.StyledLabel;
import net.sf.openrocket.gui.components.StyledLabel.Style; import net.sf.openrocket.gui.components.StyledLabel.Style;
import net.sf.openrocket.gui.components.UnitSelector; import net.sf.openrocket.gui.components.UnitSelector;
import net.sf.openrocket.gui.figure3d.TextureCache;
import net.sf.openrocket.gui.figure3d.photo.sky.Sky; import net.sf.openrocket.gui.figure3d.photo.sky.Sky;
import net.sf.openrocket.gui.figure3d.photo.sky.Sky.Credit; import net.sf.openrocket.gui.figure3d.photo.sky.Sky.Credit;
import net.sf.openrocket.gui.figure3d.photo.sky.builtin.Lake; import net.sf.openrocket.gui.figure3d.photo.sky.builtin.Lake;
@ -236,7 +238,16 @@ public class PhotoSettingsConfig extends JTabbedPane {
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.skyImage"))); add(new JLabel(trans.get("PhotoSettingsConfig.lbl.skyImage")));
add(new JComboBox<Sky>(new DefaultComboBoxModel<Sky>(new Sky[] { null, Mountains.instance, Meadow.instance, Sky noSky = new Sky() { // Dummy sky for 'none' selection option
@Override
public void draw(GL2 gl, TextureCache cache) { }
@Override
public String toString() {
return trans.get("DecalModel.lbl.select");
}
};
add(new JComboBox<Sky>(new DefaultComboBoxModel<Sky>(new Sky[] { noSky, Mountains.instance, Meadow.instance,
Storm.instance, Lake.instance, Orbit.instance, Miramar.instance }) { Storm.instance, Lake.instance, Orbit.instance, Miramar.instance }) {
}) { }) {
{ {
@ -245,10 +256,10 @@ public class PhotoSettingsConfig extends JTabbedPane {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
Object s = ((JComboBox<Sky>) e.getSource()).getSelectedItem(); Object s = ((JComboBox<Sky>) e.getSource()).getSelectedItem();
if (s instanceof Sky) { if (s instanceof Sky && s != noSky) {
p.setSky((Sky) s); p.setSky((Sky) s);
skyColorButton.setEnabled(false); skyColorButton.setEnabled(false);
} else if (s == null) { } else if (s == noSky) {
p.setSky(null); p.setSky(null);
skyColorButton.setEnabled(true); skyColorButton.setEnabled(true);
} }