From dfa307b1ad6d9e2c9c1befc379202fe333e8ce59 Mon Sep 17 00:00:00 2001 From: Neil Weinstock Date: Thu, 12 Jan 2023 08:35:13 -0500 Subject: [PATCH 01/10] RC1 release notes placeholder --- ReleaseNotes.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 823d24092..72d614fef 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -13,6 +13,20 @@ Release Notes +
+OpenRocket 22.02.RC.01 (2023-01-xx) +------------------------ +(through PRxxxx) +## New Features + +## UI Improvements + +## Notable Bug Fixes + +## Other + +
+
OpenRocket 22.02.beta.05 (2022-09-28) @@ -701,4 +715,4 @@ OpenRocket 0.9.0 (2009-05-24) Initial release.
- \ No newline at end of file + From faedd1e454daf69047bd9861b253fe5d98a77870 Mon Sep 17 00:00:00 2001 From: Neil Weinstock Date: Thu, 12 Jan 2023 08:36:20 -0500 Subject: [PATCH 02/10] Newline cleanup --- ReleaseNotes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 72d614fef..5b4749ccb 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -14,9 +14,11 @@ Release Notes
+ OpenRocket 22.02.RC.01 (2023-01-xx) ------------------------ (through PRxxxx) + ## New Features ## UI Improvements From 82d7a7a95385e09d5ad16d2e2a8a47535578331d Mon Sep 17 00:00:00 2001 From: Neil Weinstock Date: Thu, 12 Jan 2023 10:26:33 -0500 Subject: [PATCH 03/10] First pass of RC1 release notes --- ReleaseNotes.md | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 5b4749ccb..6a42724fc 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -17,16 +17,42 @@ Release Notes OpenRocket 22.02.RC.01 (2023-01-xx) ------------------------ -(through PRxxxx) +(through PR1966) ## New Features +* **Native ARM build for Apple Silicon Macs!** (fixes #1136 and #1533) +* Added "Cancel" button to component config window (fixes #960) +* Added component information box in config window (fixes #1564) +* Example designs have been updated and reorganized +* Add option to switch flight event markers to icons in sim plots +* Add support for tail cones (fixes #1889) +* Added "plugged" to delay options for all motors +* Support rail button screws, updated rail button aerodynamics +* Updated surface roughness settings to be consistent with standard terminology +* Separate "override subcomponents" option for mass, CG, and drag (fixes #1750) +* Add motor designation to motor selection table ## UI Improvements +* Added "Top View" option to rocket display +* Add option to automatically open preset dialog when creating new component (fixes #1479) +* Tell user where body discontinuities are (fixes #241) +* Improved consistency of warning message text +* Hitting left arrow moves cursor to front of text fields (fixes #1942) +* New app icons +* Zoom to active stages in rocket display +* Added welcome dialog (fixes #1768) +* Updated bug report form ## Notable Bug Fixes - -## Other - +* Fix various significant 3D view issues (fixes #939, #966, #1191, #1771) +* Account for all recovery devices in pods when calculating descent rate (fixes #1910) +* Eliminated many occurrences of mystery discontinuity warnings (fixes #999) +* Rocksim import/export file updates +** Support import and export of pods (fixes #1348) +** Support import of trapezoidal fins on transitions (fixes #1553) +** Support subassembly import +* Assorted extension and plug-in fixes +
From 09b19b4ec6796c83fb5e28a55ed5c29962130465 Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Tue, 24 Jan 2023 09:23:18 -0700 Subject: [PATCH 04/10] Enable graphic editor selection in Preferences panel for UNIX-like (eg Linux) platforms not confined in a snap. --- .../gui/dialogs/preferences/GraphicsPreferencesPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java index f2eed023d..65b12b145 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java @@ -145,7 +145,7 @@ public class GraphicsPreferencesPanel extends PreferencesPanel { * we will rely on using the xdg-open command which allows the user to pick * their preferred application. */ - if (SystemInfo.getPlatform() != Platform.UNIX && !SystemInfo.isConfined()) { + if (SystemInfo.getPlatform() != Platform.UNIX || !SystemInfo.isConfined()) { this.add(editorPrefPanel, "growx, span"); } From 4a4a89990fea030ce835b49c63930e71163d7845 Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Tue, 24 Jan 2023 10:22:41 -0700 Subject: [PATCH 05/10] Enable command text input and chooser when Desktop or Desktop.Action.EDIT isn't supported --- swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java index 316ccebbd..8ed3bf885 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java @@ -96,11 +96,11 @@ public class EditDecalDialog extends JDialog { } else { commandText = new JTextArea(); - commandText.setEnabled(false); + commandText.setEnabled(true); panel.add(commandText, "growx, wrap"); final JButton chooser = new SelectColorButton(trans.get("EditDecalDialog.btn.chooser")); - chooser.setEnabled(false); + chooser.setEnabled(true); chooser.addActionListener(new ActionListener() { @Override From c2a2f05a3b9f8337c4fcf362d18ece2a00e78e5a Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 24 Jan 2023 22:24:10 +0100 Subject: [PATCH 06/10] Add decal file selector image filter --- swing/src/net/sf/openrocket/gui/adaptors/DecalModel.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swing/src/net/sf/openrocket/gui/adaptors/DecalModel.java b/swing/src/net/sf/openrocket/gui/adaptors/DecalModel.java index 5880d564d..29ba731ac 100644 --- a/swing/src/net/sf/openrocket/gui/adaptors/DecalModel.java +++ b/swing/src/net/sf/openrocket/gui/adaptors/DecalModel.java @@ -13,6 +13,7 @@ import net.sf.openrocket.appearance.DecalImage; import net.sf.openrocket.document.Attachment; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.file.FileSystemAttachmentFactory; +import net.sf.openrocket.gui.util.FileHelper; import net.sf.openrocket.gui.util.SwingPreferences; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.startup.Application; @@ -70,6 +71,7 @@ public class DecalModel extends AbstractListModel implements ComboBo lastImageDir = current; JFileChooser fc = new JFileChooser(current); + fc.setFileFilter(FileHelper.getImageFileFilter()); fc.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory()); int action = fc.showOpenDialog(SwingUtilities.getWindowAncestor(parent)); if (action == JFileChooser.APPROVE_OPTION) { From cc0d04aa42d36c1c6401865379d5bbf882e4652e Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 25 Jan 2023 00:07:24 +0100 Subject: [PATCH 07/10] Remove insets if insideOutside panel Bad description of the commit, but I'm tired --- .../net/sf/openrocket/gui/configdialog/AppearancePanel.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java b/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java index b8c8c0eb3..45107e329 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java @@ -427,6 +427,8 @@ public class AppearancePanel extends JPanel { edgesComboBox.setEnabled(customInside.isSelected()); if (customInside.isSelected()) { remove(outsidePanel); + MigLayout layout = (MigLayout) outsidePanel.getLayout(); + layout.setLayoutConstraints("fill"); outsideInsidePane.insertTab(trans.get(tr_outside), null, outsidePanel, "Outside Tool Tip", 0); outsideInsidePane.setSelectedIndex(0); @@ -434,6 +436,8 @@ public class AppearancePanel extends JPanel { } else { remove(outsideInsidePane); + MigLayout layout = (MigLayout) outsidePanel.getLayout(); + layout.setLayoutConstraints("fill, ins 0"); add(outsidePanel, "span 4, growx, wrap"); } From fb99a11989318d9e61f9a9114eafdbf4e54069ba Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 25 Jan 2023 00:07:46 +0100 Subject: [PATCH 08/10] Hide edit decal button if edit not possible --- .../gui/configdialog/AppearancePanel.java | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java b/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java index 45107e329..b18419536 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java @@ -2,6 +2,7 @@ package net.sf.openrocket.gui.configdialog; import java.awt.Color; import java.awt.Component; +import java.awt.Desktop; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.lang.reflect.Method; @@ -494,13 +495,11 @@ public class AppearancePanel extends JPanel { if (!insideBuilder) { builder = ab; mDefault = new BooleanModel(c.getAppearance() == null || defaultAppearance.equals(c.getAppearance())); - } - else if (c instanceof InsideColorComponent) { + } else if (c instanceof InsideColorComponent) { builder = insideAb; - Appearance appearance = ((InsideColorComponent)c).getInsideColorComponentHandler().getInsideAppearance(); + Appearance appearance = ((InsideColorComponent) c).getInsideColorComponentHandler().getInsideAppearance(); mDefault = new BooleanModel(appearance == null || defaultAppearance.equals(appearance)); - } - else return; + } else return; DecalModel decalModel = new DecalModel(panel, document, builder); JComboBox textureDropDown = new JComboBox(decalModel); @@ -509,6 +508,7 @@ public class AppearancePanel extends JPanel { // for multi-comp edits, the listeners' decals may not be updated otherwise textureDropDown.addActionListener(new ActionListener() { private DecalImage previousSelection = (DecalImage) decalModel.getSelectedItem(); + @Override public void actionPerformed(ActionEvent e) { DecalImage decal = (DecalImage) textureDropDown.getSelectedItem(); @@ -534,8 +534,7 @@ public class AppearancePanel extends JPanel { if (!insideBuilder) { previousUserSelectedAppearance = (builder == null) ? null : builder.getAppearance(); - } - else { + } else { previousUserSelectedInsideAppearance = (builder == null) ? null : builder.getAppearance(); } @@ -556,8 +555,7 @@ public class AppearancePanel extends JPanel { listener.setAppearance(previousUserSelectedAppearance); } builder.setAppearance(previousUserSelectedAppearance); - } - else { + } else { // Set the listeners' inside appearance to the previous user selected appearance for (AppearanceBuilder listener : builder.getConfigListeners().values()) { listener.setAppearance(previousUserSelectedInsideAppearance); @@ -576,37 +574,41 @@ public class AppearancePanel extends JPanel { JPanel p = new JPanel(new MigLayout("fill, ins 0", "[grow][]")); mDefault.addEnableComponent(textureDropDown, false); p.add(textureDropDown, "grow"); - panel.add(p, "span 3, growx, wrap"); + panel.add(p, "spanx 3, growx, wrap"); order.add(textureDropDown); - JButton editBtn = new SelectColorButton( - trans.get("AppearanceCfg.but.edit")); - editBtn.setEnabled(builder.getImage() != null); - // Enable the editBtn only when the appearance builder has an Image - // assigned to it. - builder.addChangeListener(new StateChangeListener() { - @Override - public void stateChanged(EventObject e) { - editBtn.setEnabled(builder.getImage() != null); - } - }); - editBtn.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - try { - DecalImage newImage = editDecalHelper.editDecal( - SwingUtilities - .getWindowAncestor(panel), - document, c, builder.getImage(), insideBuilder); - builder.setImage(newImage); - } catch (EditDecalHelperException ex) { - JOptionPane.showMessageDialog(panel, - ex.getMessage(), "", JOptionPane.ERROR_MESSAGE); + //// Edit button + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) { + JButton editBtn = new SelectColorButton( + trans.get("AppearanceCfg.but.edit")); + editBtn.setEnabled(builder.getImage() != null); + // Enable the editBtn only when the appearance builder has an Image + // assigned to it. + builder.addChangeListener(new StateChangeListener() { + @Override + public void stateChanged(EventObject e) { + editBtn.setEnabled(builder.getImage() != null); } - } + }); - }); - p.add(editBtn); + editBtn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + try { + DecalImage newImage = editDecalHelper.editDecal( + SwingUtilities + .getWindowAncestor(panel), + document, c, builder.getImage(), insideBuilder); + builder.setImage(newImage); + } catch (EditDecalHelperException ex) { + JOptionPane.showMessageDialog(panel, + ex.getMessage(), "", JOptionPane.ERROR_MESSAGE); + } + } + + }); + p.add(editBtn); + } // TODO: move the separate columns in two separate panels instead of adding them in a zig-zag way // Color From 8a0ba46624d278a5e0f7acd909db43adc84fdf4a Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Wed, 25 Jan 2023 09:24:20 -0700 Subject: [PATCH 09/10] Only case (I know of) to hide the Edit button is if we're both running Linux and confined to a snap --- .../sf/openrocket/gui/configdialog/AppearancePanel.java | 8 +++++--- .../gui/dialogs/preferences/GraphicsPreferencesPanel.java | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java b/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java index 1016ab875..d0569ea2f 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java @@ -32,6 +32,8 @@ import net.sf.openrocket.appearance.AppearanceBuilder; import net.sf.openrocket.appearance.Decal.EdgeMode; import net.sf.openrocket.appearance.DecalImage; import net.sf.openrocket.appearance.defaults.DefaultAppearance; +import net.sf.openrocket.arch.SystemInfo; +import net.sf.openrocket.arch.SystemInfo.Platform; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.gui.SpinnerEditor; import net.sf.openrocket.gui.adaptors.BooleanModel; @@ -576,14 +578,14 @@ public class AppearancePanel extends JPanel { p.add(textureDropDown, "grow"); panel.add(p, "spanx 3, growx, wrap"); order.add(textureDropDown); - + //// Edit button - if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) { + if ((SystemInfo.getPlatform() != Platform.UNIX) || !SystemInfo.isConfined()) { JButton editBtn = new SelectColorButton( trans.get("AppearanceCfg.but.edit")); - editBtn.setEnabled(!materialDefault.isSelected() && builder.getImage() != null); // Enable the editBtn only when the appearance builder has an Image // assigned to it. + editBtn.setEnabled(!materialDefault.isSelected() && builder.getImage() != null); builder.addChangeListener(new StateChangeListener() { @Override public void stateChanged(EventObject e) { diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java index 65b12b145..b0b241b9b 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java @@ -145,7 +145,7 @@ public class GraphicsPreferencesPanel extends PreferencesPanel { * we will rely on using the xdg-open command which allows the user to pick * their preferred application. */ - if (SystemInfo.getPlatform() != Platform.UNIX || !SystemInfo.isConfined()) { + if ((SystemInfo.getPlatform() != Platform.UNIX) || !SystemInfo.isConfined()) { this.add(editorPrefPanel, "growx, span"); } From 45f217f06bddf0d81f83230bba2b021ef034bc41 Mon Sep 17 00:00:00 2001 From: Neil Weinstock Date: Wed, 25 Jan 2023 19:58:21 -0500 Subject: [PATCH 10/10] Final release notes other than release date --- ReleaseNotes.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 6a42724fc..23da6b4cd 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -17,7 +17,7 @@ Release Notes OpenRocket 22.02.RC.01 (2023-01-xx) ------------------------ -(through PR1966) +(through PR1996) ## New Features * **Native ARM build for Apple Silicon Macs!** (fixes #1136 and #1533) @@ -26,18 +26,22 @@ OpenRocket 22.02.RC.01 (2023-01-xx) * Example designs have been updated and reorganized * Add option to switch flight event markers to icons in sim plots * Add support for tail cones (fixes #1889) +* Added additional warnings for inline pods, gaps and overlaps in airframe (fixes #1894) * Added "plugged" to delay options for all motors * Support rail button screws, updated rail button aerodynamics * Updated surface roughness settings to be consistent with standard terminology * Separate "override subcomponents" option for mass, CG, and drag (fixes #1750) * Add motor designation to motor selection table +* Enable decal editing on Linux ## UI Improvements +* Reorganized Config dialogs for improved clarity and consistency * Added "Top View" option to rocket display * Add option to automatically open preset dialog when creating new component (fixes #1479) * Tell user where body discontinuities are (fixes #241) * Improved consistency of warning message text * Hitting left arrow moves cursor to front of text fields (fixes #1942) +* Grey out texture edit button if using default material * New app icons * Zoom to active stages in rocket display * Added welcome dialog (fixes #1768) @@ -45,6 +49,7 @@ OpenRocket 22.02.RC.01 (2023-01-xx) ## Notable Bug Fixes * Fix various significant 3D view issues (fixes #939, #966, #1191, #1771) +* Don't mark all simulations out-of-date on flight config change (fixes #1973) * Account for all recovery devices in pods when calculating descent rate (fixes #1910) * Eliminated many occurrences of mystery discontinuity warnings (fixes #999) * Rocksim import/export file updates