diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index d710890a9..df2440d39 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -48,19 +48,8 @@ import javax.swing.text.html.*; import javax.swing.undo.*; -import com.formdev.flatlaf.FlatLaf; import com.formdev.flatlaf.util.SystemInfo; -import processing.app.Base; -import processing.app.Formatter; -import processing.app.Language; -import processing.app.Messages; -import processing.app.Mode; -import processing.app.Platform; -import processing.app.Preferences; -import processing.app.Problem; -import processing.app.RunnerListener; -import processing.app.Sketch; -import processing.app.SketchCode; +import processing.app.*; import processing.utils.SketchException; import processing.app.contrib.ContributionManager; import processing.app.laf.PdeMenuItemUI; @@ -147,6 +136,7 @@ public abstract class Editor extends JFrame implements RunnerListener { private FindReplace find; JMenu toolsMenu; JMenu modePopup; + JMenu developMenu; protected List problems = Collections.emptyList(); @@ -680,6 +670,7 @@ protected void buildMenuBar() { helpMenu.setText(helpMenu.getText() + " "); } menubar.add(helpMenu); + updateDevelopMenu(menubar); Toolkit.setMenuMnemonics(menubar); setJMenuBar(menubar); @@ -1060,6 +1051,37 @@ public JMenu buildModeMenu() { abstract public JMenu buildHelpMenu(); + public void buildDevelopMenu(){ + developMenu = new JMenu(Language.text("menu.develop")); + + var updateTrigger = new JMenuItem(Language.text("menu.develop.check_for_updates")); + updateTrigger.addActionListener(e -> { + Preferences.unset("update.last"); + new UpdateCheck(base); + }); + developMenu.add(updateTrigger); + + } + + public void updateDevelopMenu(){ + updateDevelopMenu(null); + } + + void updateDevelopMenu(JMenuBar menu){ + if(menu == null){ + menu = getJMenuBar(); + } + if(developMenu == null){ + buildDevelopMenu(); + } + if(Base.DEBUG){ + menu.add(developMenu); + }else{ + menu.remove(developMenu); + } + + } + public void showReference(String filename) { File file = new File(mode.getReferenceFolder(), filename); diff --git a/app/src/processing/app/ui/EditorFooter.java b/app/src/processing/app/ui/EditorFooter.java index 276b78364..bc09b2376 100644 --- a/app/src/processing/app/ui/EditorFooter.java +++ b/app/src/processing/app/ui/EditorFooter.java @@ -116,6 +116,7 @@ public EditorFooter(Editor eddie) { public void mousePressed(MouseEvent e) { if(e.getClickCount() == 5){ Base.DEBUG = !Base.DEBUG; + editor.updateDevelopMenu(); } var debugInformation = String.join("\n", "Version: " + Base.getVersionName(), diff --git a/build/shared/lib/languages/PDE.properties b/build/shared/lib/languages/PDE.properties index 2f1946b79..19a5c9f86 100644 --- a/build/shared/lib/languages/PDE.properties +++ b/build/shared/lib/languages/PDE.properties @@ -172,6 +172,8 @@ menu.help.visit.url = https://processing.org/ menu.help.report.url = https://github.com/processing/processing4/issues menu.help.ask.url = https://discourse.processing.org +menu.develop = Develop +menu.develop.check_for_updates = Force Check for updates # --------------------------------------- # Basics