From e784f18e5fbbc7962cd543a03b401cb8a8f5986d Mon Sep 17 00:00:00 2001 From: greenmarine Date: Sat, 20 Feb 2010 22:26:30 +0000 Subject: [PATCH] Nexuiz demo recorder: bump to v0.3 - New feature: apply properties selectively from template to jobs git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8655 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- misc/tools/NexuizDemoRecorder/main/pom.xml | 2 +- .../application/jobs/RecordJob.java | 5 +- .../ui/swinggui/ApplyTemplateDialog.java | 175 ++++++++++++++++++ .../demorecorder/ui/swinggui/SwingGUI.java | 20 +- .../main/src/main/resources/about.html | 2 +- .../resources/help/DemoRecorderHelpTOC.xml | 2 + .../main/resources/help/JavaHelpSearch/DOCS | Bin 2905 -> 3166 bytes .../resources/help/JavaHelpSearch/DOCS.TAB | 24 ++- .../resources/help/JavaHelpSearch/OFFSETS | Bin 68 -> 72 bytes .../resources/help/JavaHelpSearch/POSITIONS | Bin 8799 -> 9508 bytes .../main/resources/help/JavaHelpSearch/SCHEMA | 2 +- .../main/resources/help/JavaHelpSearch/TMAP | Bin 14336 -> 14336 bytes .../main/src/main/resources/help/Map.jhm | 4 +- .../resources/help/html/apply_templates.html | 77 ++++++++ .../main/resources/help/html/changelog.html | 2 + .../src/main/resources/icons/editpaste.png | Bin 0 -> 3529 bytes 16 files changed, 293 insertions(+), 22 deletions(-) create mode 100644 misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/ApplyTemplateDialog.java create mode 100644 misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/apply_templates.html create mode 100644 misc/tools/NexuizDemoRecorder/main/src/main/resources/icons/editpaste.png diff --git a/misc/tools/NexuizDemoRecorder/main/pom.xml b/misc/tools/NexuizDemoRecorder/main/pom.xml index e5a698868..039019416 100644 --- a/misc/tools/NexuizDemoRecorder/main/pom.xml +++ b/misc/tools/NexuizDemoRecorder/main/pom.xml @@ -4,7 +4,7 @@ NexuizDemoRecorder NexuizDemoRecorder jar - 0.3-SNAPSHOT + 0.3 NexuizDemoRecorder http://maven.apache.org diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/jobs/RecordJob.java b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/jobs/RecordJob.java index 429ff9829..32f663170 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/jobs/RecordJob.java +++ b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/application/jobs/RecordJob.java @@ -417,9 +417,12 @@ public class RecordJob implements Runnable, Serializable { public void setDemoFile(File demoFile) { this.checkForProcessingState(); - if (demoFile == null || !demoFile.exists()) { + if (demoFile == null) { throw new DemoRecorderException("Could not locate demo file!"); } + if (!demoFile.exists()) { + throw new DemoRecorderException("Could not locate demo file!: " + demoFile.getAbsolutePath()); + } if (!doReadWriteTest(demoFile.getParentFile())) { throw new DemoRecorderException("The directory you specified for the demo to be recorded is not writable!"); } diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/ApplyTemplateDialog.java b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/ApplyTemplateDialog.java new file mode 100644 index 000000000..84b2c2920 --- /dev/null +++ b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/ApplyTemplateDialog.java @@ -0,0 +1,175 @@ +package com.nexuiz.demorecorder.ui.swinggui; + +import java.awt.Frame; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.io.File; +import java.util.List; + +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JOptionPane; + +import net.miginfocom.swing.MigLayout; + +import com.nexuiz.demorecorder.application.DemoRecorderUtils; +import com.nexuiz.demorecorder.application.jobs.RecordJob; + +public class ApplyTemplateDialog extends JDialog implements ActionListener, ItemListener { + + private static final long serialVersionUID = 4807155579295688578L; + private Frame parentFrame; + private RecordJobTemplate template; + private List jobs; + + private JCheckBox engineCB = new JCheckBox("Engine", true); + private JCheckBox engineParametersCB = new JCheckBox("Engine parameters", true); + private JCheckBox dpVideoDirCB = new JCheckBox("DPVideo directory", true); + private JCheckBox relativeDemoPathCB = new JCheckBox("Relative demo path", true); + private JCheckBox jobNameCB = new JCheckBox("Job name", true); + private JCheckBox demoDirectoryCB = new JCheckBox("Demo directory", true); + private JCheckBox execBeforeCapCB = new JCheckBox("Exec before capture", true); + private JCheckBox execAfterCB = new JCheckBox("Exec after capture", true); + private JCheckBox videoDestination = new JCheckBox("Video destination", true); + private JCheckBox pluginSettingsCB = new JCheckBox("Plug-in settings", true); + private JCheckBox selectAllCB = new JCheckBox("Select/deselect all", true); + + private JButton applyButton = new JButton("Apply"); + private JButton cancelButton = new JButton("Cancel"); + + public ApplyTemplateDialog(Frame owner, RecordJobTemplate template, List jobs) { + super(owner, true); + this.parentFrame = owner; + this.template = template; + this.jobs = jobs; + + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + setTitle("Apply template"); + this.setupLayout(); + } + + public void showDialog() { + this.pack(); + this.setLocationRelativeTo(this.parentFrame); + this.setVisible(true); + } + + private void setupLayout() { + setLayout(new MigLayout()); + getContentPane().add(new JLabel("Select which properties you want to apply to the selected jobs"), "wrap"); + + this.setupCheckBoxes(); + + applyButton.addActionListener(this); + cancelButton.addActionListener(this); + getContentPane().add(applyButton); + getContentPane().add(cancelButton); + } + + private void setupCheckBoxes() { + getContentPane().add(engineCB, "wrap"); + getContentPane().add(engineParametersCB, "wrap"); + getContentPane().add(dpVideoDirCB, "wrap"); + getContentPane().add(relativeDemoPathCB, "wrap"); + getContentPane().add(jobNameCB, "wrap"); + getContentPane().add(demoDirectoryCB, "wrap"); + getContentPane().add(execBeforeCapCB, "wrap"); + getContentPane().add(execAfterCB, "wrap"); + getContentPane().add(videoDestination, "wrap"); + getContentPane().add(pluginSettingsCB, "wrap"); + getContentPane().add(selectAllCB, "wrap"); + + selectAllCB.addItemListener(this); + } + + @Override + public void actionPerformed(ActionEvent e) { + if (e.getSource() == applyButton) { + this.applyTemplates(); + dispose(); + } else if (e.getSource() == cancelButton) { + dispose(); + } + } + + private void applyTemplates() { + String errors = ""; + for (RecordJob job : this.jobs) { + try { + this.applyTemplate(job); + } catch (Throwable e) { + errors += "Job " + job.getJobName() + ": " + e.getMessage() + "
"; + } + } + + if (!errors.equals("")) { + //error occurred! + String errorMsg = "Error occurred while trying to apply templates:

" + errors + ""; + JOptionPane.showMessageDialog(this.parentFrame, errorMsg, "Error(s) while applying template", JOptionPane.INFORMATION_MESSAGE); + } + } + + private void applyTemplate(RecordJob job) { + if (engineCB.isSelected()) { + job.setEnginePath(template.getEnginePath()); + } + if (engineParametersCB.isSelected()) { + job.setEngineParameters(template.getEngineParameters()); + } + if (dpVideoDirCB.isSelected()) { + job.setDpVideoPath(template.getDpVideoPath()); + } + if (relativeDemoPathCB.isSelected()) { + job.setRelativeDemoPath(template.getRelativeDemoPath()); + } + if (jobNameCB.isSelected()) { + job.setJobName(template.getJobName()); + } + if (demoDirectoryCB.isSelected()) { + File demoDir = template.getDemoFile(); + String demoFileName = DemoRecorderUtils.getJustFileNameOfPath(job.getDemoFile()); + String newDemoPath = demoDir.getAbsolutePath() + File.separator + demoFileName; + job.setDemoFile(new File(newDemoPath)); + } + if (execBeforeCapCB.isEnabled()) { + job.setExecuteBeforeCap(template.getExecuteBeforeCap()); + } + if (execAfterCB.isSelected()) { + job.setExecuteAfterCap(template.getExecuteAfterCap()); + } + if (videoDestination.isSelected()) { + File videoDestinatinDir = template.getVideoDestination(); + String videoFileName = DemoRecorderUtils.getJustFileNameOfPath(job.getVideoDestination()); + String newVideoPath = videoDestinatinDir.getAbsolutePath() + File.separator + videoFileName; + job.setVideoDestination(new File(newVideoPath)); + } + if (pluginSettingsCB.isSelected()) { + job.setEncoderPluginSettings(template.getEncoderPluginSettings()); + } + } + + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getSource() == selectAllCB) { + boolean selected = false; + if (e.getStateChange() == ItemEvent.SELECTED) { + selected = true; + } + + engineCB.setSelected(selected); + engineParametersCB.setSelected(selected); + dpVideoDirCB.setSelected(selected); + relativeDemoPathCB.setSelected(selected); + jobNameCB.setSelected(selected); + demoDirectoryCB.setSelected(selected); + execBeforeCapCB.setSelected(selected); + execAfterCB.setSelected(selected); + videoDestination.setSelected(selected); + pluginSettingsCB.setSelected(selected); + } + } +} diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/SwingGUI.java b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/SwingGUI.java index 6778794dc..7b1d8cc0f 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/SwingGUI.java +++ b/misc/tools/NexuizDemoRecorder/main/src/main/java/com/nexuiz/demorecorder/ui/swinggui/SwingGUI.java @@ -85,6 +85,7 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { private static final String LABEL_JOB_CLEAR = "Clear"; private static final String LABEL_JOB_EDIT = "Edit job"; private static final String LABEL_JOB_DUPLICATE = "Duplicate job"; + private static final String LABEL_JOB_APPLYTEMPL = "Apply template"; private static final String LABEL_JOB_START = "Start job"; private static final String LABEL_JOB_SHOWERROR = "Show error message"; private static final String LABEL_JOB_RESET_STATE_WAITING = "Reset job status to 'waiting'"; @@ -115,6 +116,7 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { private JButton jobs_clear = new JButton(LABEL_JOB_CLEAR, getIcon("editclear.png")); private JMenuItem jobs_contextmenu_edit = new JMenuItem(LABEL_JOB_EDIT, getIcon("edit.png")); private JMenuItem jobs_contextmenu_duplicate = new JMenuItem(LABEL_JOB_DUPLICATE, getIcon("editcopy.png")); + private JMenuItem jobs_contextmenu_applytempl = new JMenuItem(LABEL_JOB_APPLYTEMPL, getIcon("editpaste.png")); private JMenuItem jobs_contextmenu_delete = new JMenuItem(LABEL_JOB_DELETE, getIcon("editdelete.png")); private JMenuItem jobs_contextmenu_start = new JMenuItem(LABEL_JOB_START, getIcon("player_play.png")); private JMenuItem jobs_contextmenu_showerror = new JMenuItem(LABEL_JOB_SHOWERROR, getIcon("status_unknown.png")); @@ -142,7 +144,7 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { private static final String mainHelpSetName = "help/DemoRecorderHelp.hs"; public SwingGUI(DemoRecorderApplication appLayer) { - super("Nexuiz Demo Recorder v0.2"); + super("Nexuiz Demo Recorder v0.3"); addWindowListener(this); this.appLayer = appLayer; @@ -237,6 +239,7 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { this.jobs_contextmenu_edit.addActionListener(this.jobButtonActionListener); this.jobs_contextmenu_duplicate.addActionListener(this.jobButtonActionListener); + this.jobs_contextmenu_applytempl.addActionListener(this.jobButtonActionListener); this.jobs_contextmenu_delete.addActionListener(this.jobButtonActionListener); this.jobs_contextmenu_start.addActionListener(this.jobButtonActionListener); this.jobs_contextmenu_showerror.addActionListener(this.jobButtonActionListener); @@ -345,6 +348,7 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { this.jobsTablePopupMenu = new JPopupMenu(); this.jobsTablePopupMenu.add(jobs_contextmenu_edit); this.jobsTablePopupMenu.add(jobs_contextmenu_duplicate); + this.jobsTablePopupMenu.add(jobs_contextmenu_applytempl); this.jobsTablePopupMenu.add(jobs_contextmenu_delete); this.jobsTablePopupMenu.add(jobs_contextmenu_start); //add JMenus for plugins @@ -598,6 +602,12 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { jobsTable.setRowSelectionInterval(jobsTable.getRowCount() - selectedJobs.size(), jobsTable.getRowCount() - 1); configureTableButtons(); } + } else if (e.getSource() == jobs_contextmenu_applytempl) { + if (selectedTemplates.size() == 1 && selectedJobs.size() > 0) { + RecordJobTemplate template = (RecordJobTemplate) selectedTemplates.get(0); + ApplyTemplateDialog applyDialog = new ApplyTemplateDialog(SwingGUI.this, template, selectedJobs); + applyDialog.showDialog(); + } } else if (jobs_contextmenu_runPluginMenuItems.contains(e.getSource())) { int index = jobs_contextmenu_runPluginMenuItems.indexOf(e.getSource()); EncoderPlugin selectedPlugin = appLayer.getEncoderPlugins().get(index); @@ -946,6 +956,7 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { //Disable all buttons first jobs_contextmenu_edit.setEnabled(false); jobs_contextmenu_duplicate.setEnabled(false); + jobs_contextmenu_applytempl.setEnabled(false); jobs_contextmenu_delete.setEnabled(false); jobs_contextmenu_resetstate_waiting.setEnabled(false); jobs_contextmenu_resetstate_done.setEnabled(false); @@ -975,9 +986,10 @@ public class SwingGUI extends JFrame implements WindowListener, DemoRecorderUI { //none of the jobs is processing jobs_contextmenu_delete.setEnabled(true); jobs_contextmenu_resetstate_waiting.setEnabled(true); - } else { - jobs_contextmenu_edit.setEnabled(false); - jobs_contextmenu_duplicate.setEnabled(false); + + if (templatesTable.getSelectedRowCount() == 1) { + jobs_contextmenu_applytempl.setEnabled(true); + } } //Start button diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/about.html b/misc/tools/NexuizDemoRecorder/main/src/main/resources/about.html index 16729344f..c831190be 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/resources/about.html +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/about.html @@ -1,5 +1,5 @@ -

Nexuiz Demo Recorder v0.2

+

Nexuiz Demo Recorder v0.3

Written by GreEn`mArine

Credits

    diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/DemoRecorderHelpTOC.xml b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/DemoRecorderHelpTOC.xml index 2e12b8dd1..d2581f4c2 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/DemoRecorderHelpTOC.xml +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/DemoRecorderHelpTOC.xml @@ -8,6 +8,8 @@ + + diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/DOCS b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/DOCS index 4a370ac5a09954a48ffcec1b7ee4be72203d4849..93cdf674020f672a16fe546c85315670630646e3 100644 GIT binary patch literal 3166 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 Ls?MIBoh|Se diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/DOCS.TAB b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/DOCS.TAB index b61279852..a84787bdb 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/DOCS.TAB +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/DOCS.TAB @@ -1,14 +1,12 @@ -eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿ÷_÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿuÿÿuÿÿÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_ÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@7û*ÌebøÖBìå(⍦Ob³J6,Ù© -³vRꯪŒ/ŽX³r(͋1‹3,ϋª8³J4³Š6/4³<£J8¨Ò¨â¯3þ*0³K¬É‹£J³Š4º¾Œ+Œÿ‹4³h£"(Ì£J4®º+9 ªÌê/Œ.»Ì/Œ‹Œ*7¢Œ.9"*6Ë0¿üÈ£(£Jî£ -Ì*4£;*1¤,⮣K0£ -0³"£ºþ¨ÞʸÒó 6ªÊ»³ 2(ªªªªªºªª®0¸Â£ -£"º®3âŒ*͸ª£ -4®4£Kªº0ª¨Â¨Ê(ȳ -ºªª®þÌ.¯®0£ -0º2¢ºªìª³ -Ì*0¾0³:.ŒŠ6(Ê(È£"Œ+þ꺌*2.몣 -ªªº0ªªº2.£ -0ªª³ -0ª£ +eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿ÷_÷_ÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿuÿÿuÿÿÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý×ÿÿÿÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐ7û*2erøÖBìõ(⍦Or³J6,Ùù +³‹ª¾ª0¾9bÎR(ÆË1‹3,͖*£‹4£‹<£bÌË3b(ò£J£Š¼ßè¨ÂÍ.³'/*Ï(Òêú0£ +3öBÍ,Ú(Ø£J3(â+£J3²£=’,⮣‹4³ +9 +ºÍ+0º¬Î¢øÂë¼ÂøÂãJŽZ(Âã–*ŽFBÿó"Œ¢+ºŒ+®èÂó 4¸Ì¿2*0£Š0¸ÒŒèº0¾4£ +£2Î*ÎB¨Ò¬ÂªªŒ(/0³ +øÂëê®4¼Âͪ*îÌ,È£ +ªªªªªêªª»Œ*¨È®¨ÂŒâ«6⪌*ãJ4º«£ +ªŒ*ŒŠ2,ªªª»û0º¾¸ÂŒ(Âèʊ꫺«0¬Â£ ³2èŒ(Ê¢ŒŠ0¯ûªª0³ Œ‹ê0£"몣 +ªªºªªèȺŒ(ªªÌ(ªŒ*ªªŒ*£(³ ªª£ -«Œ¢Ì*ªŒ*0ª«ªê«Œ*0ªÌ,ÂÿÌ,ÂÌ,ÂÿÿÌ/0¿ÿÿÿÿÿÿÌ/ó 0³"Ì/ÿüÂÿÿÌ,È¿ÿüÂÿÌ/ÿ0¿Ì/þ«ªªªªªêªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¦ \ No newline at end of file +«ªê«Œ*0ªÌ,ÂÿÌ,Âó ÿüÂó ÿÿÿÿÿÿüÂÿ0³"Ì/ÿüÂÿÿÌ,È¿ÿÿüÂÿ0¿Ì/þªªªªªªª¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö \ No newline at end of file diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/OFFSETS b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/OFFSETS index bdbbc97d58d23d6b0ffcf8d23f4e6fe0e7e220f4..1d01078e67233d3e231f1baa80fe58594e3a24af 100644 GIT binary patch literal 72 zcmV-O0Jr}Kfof6MiY;xqxXNr!dOi6sdOsuyfIcaf6s5VwP)m4@Y+|a_Od6dbPA4YR e+%yQ(@wwjyjiKIhJ;pN3?-<;-Nyiv+E|Gwn^C6u8 literal 68 zcmV-K0K5MOfof6Mjk-!W%51M0t~oFIf20Y3J}H(I-zcHA6}d-8Fy`(#=RCl9Cdl zgd#uio&Kla!FOHn-bed-?!DH&*1h(cDz2mD!1jTG&s`yWu*(HPeMcX4@paP7hS4oDj_V7;n1zskf=qs zBwk{>D5_ADPtowY;LHz$-;%NlXc?npd*8aC+|X{&_4V}?z8MZ)LXp?El!`daDD^Ni z$0Agjue8H7XW`TJwL+f)A*EDW$$~}I%c|}0&d$!9n~}Y*EcEOZfeQQz>1IF0#Gr9uG@13vTr+e$nUHQ!ENgbOsQyWt#D<>yjBR+LIg4_349! z-+juTc!#<@!(&BCk@u{-8d}KG_LhGqT=GtB=6oK%pU^o(ACIafwt8UAp@DS?@6P*tk>4QztB44_cjMCref_NY>HnCgM36Vn^R_3-LqD%hVtJM*{m5B51tuHOq9 z!{r9Jhde2~CNVl%VIN)jw3&|m>&33F;CFg6mxyQu>-0!lY^76|`z>Mj9Gq`N%5ZlEIJ!+H^Ucb;G zDfak}shq7!54}__h`Hutj;9+<~ksNoX|)8TH}G}WiC zUr95uVs$}l^(Nt={`j&mtMAOkOoxXT)l;|cFC8=7VWsf8FkOQXgt(n0Pw#??k<4y= z4<%o2HZl!9;G{AlD^%z^UTJCM_>bMqeQIUhRHO`pt{GDG+Flw>J1&IkXx1wVY-n1qy>`rI(i=Ta1>Dlb93rH|9+`BS$zO>WrWvQP zK7?h-VbnytVbf9LhM%0saQsn(&qi*c_#i+8o@4Pt6?fjQA`HZ&Hral5FCnezY2Y!6 z3j*FHu;{ym;UtCt3CSaoBWV>QuB}{C{XY+M+;tv6jAk))WtRWx{6@d?{P5;bs( z#w!JYoCWO-9$-uBEks9SL?O0CUo26RIj^+m`31`^V)OMTvx^6wV<)p5_gS6?)X`7e zZUgju1BB=;=)S`xRf_4cIZ>&ndFpy$^Lg=nO&z^T<8nPAt_}z_JED#G%og?o<=D!9 zjH(R#iM9JN*^6igio&d8&ng^S(Ix#pCj(yc&(MxyU3qhy$VG@L4H2O5)QP9q{yE#? zRFN|>%T+9HNphik2VYUcNpOIGywwquE-<$=jfRc;FnbICMu9Wi=H&AsQ zcHQ@M<0}rh>2k3=ToAFj%NveijLUg94iH~~K@XINrI;`@$0fMF()a!nSgcvw>Sf%h z_Hyhajny_?ct=*IlT-KFsU46pg8o5xaJQrIIg7KilLj@^N7c}0OEhhK)_=$Gd*G|m znk#|!uY*jReXL1}QbX#9j(d{#t8OGE>j3(s=!exxBgx(a%M0>LspxuQe0m(1T=HJb zPp`p{==|fTcEq!!;tjPNPVlf>{xVm*Z2-Q4FYA2l6 zy;y9Cx@uS!-OEaExE6V7YFQIhS3Iyqn?*s^si?R}L|BA>W=~U_RN5FBa?1{x5Rgk$ z6OGjNWlh>y=HOGJV2^TkSc2wu)u-wXR&b~6WIUMZ20v~ei^JCp;3i>kWx91se#B^G;iO%LaMVxU2q_K8wPcJe_s1J zTS9exfW4XVk1(vXwVKRQANZHVQ64(CBFzB#dn)Do$szX2H}$)2^S$mryAH|9Vwc^Q z1;EnCJyBS@7pdaK>pJU|-|Ift4>`Rb?}UZH?S)WH_bWuhc$ZvZG}C1IbbLvZO1XsX zh3|w>VBDM#8}fYj86|b}-XNvVcg_3SR*EnFjb#YX;B&3ySnj=a`4WZS?GWMKEFqoh zz)6d)Ltq*@vZcG^&XyK5kZms00~y89E27L07jv&d8bf##cSgqM`@cITpDu)o-pT;w zgot|dGIFo4lsJ@N%VK@>U+xta&#ra$=3E5WRL4F7{0>7 zEr0kUfGE5gBv*`%mNmNF3qfTgH;O)cB6aXM_a{vC7^#aVe(i{#8+Qa14cQe;;kkIC8#Or zw+r_v7fH0VD++Ti?LG)Z3-qa|$9UmV<-lsH0Vp?sgmC!-`zcS{5BM**lX zK91cDf5V$~T|yM4XM*~x=g{934T4=?sYq+Ex;JsRC!0Vl-usA@e|_|#0~4US_2(_y za693|O1(foxahTCX3VpewMrC?G2>B6J)1}d&!L(6f&v;Kl22O`Fb85hj7 z!US5L30GdPX50=Bd`c##eqK|0l)wt0Aq7U2$^W2J5}b@s-rgun+k!;yC#px?M~a#3 z7`q>VfM?h%lX7lpLB}_wFs?SWjnSl;LOVK^(WI64t>z4zO#77fz5?tC0$=2IO8a<; zJhhAWx$`~}S{dfJL<@XL8GxH_I&`DFbhW2>w4@@Vd>HXrQ3|&uePF8$Bft0ITc*IM zPgbJ3E=~42@>Toh>gS!E^0qrAr5FJU$P-J?X=~BfwP(0!K6W(W!zBMURs4OL4@n`? zBfAKtIG%>z1|!G?#IV0asG0Nd$)_C>i)pu|2b~#R` zIRT2cM=4$BRz_%zmO!>Or0lY2ldlMM8>F6|vQ`0h62lzQUgD7i(aWi_N! zL$zh`DXEgt&#aJjGEZ*4D@bnuSX3ZINh9g}IdMJi6%FHg=5T@do*oPtwk zyHzHGSCV4vakv7FtRo#oP}>h0!|uN)Om%y{>OA1H=Cf9?zu-MB!;>TSG(#klL*&vZ z?YJoIBn<5Y`@lOF^A~mx)4&H<7#UroO(nGL>$8kT6$`INjibu8Re?Uqqr8u4V|}pA zdOf5`E@xl077qC=}GEg)w z_^xeRz#{Xi!45yB{T}u)(#JPG734=X^bKkT=W*hO@gfk3(Wy34j6a23ACfT8SZ;p{9d9Zd%clC3K1?>Xmu<3 zu)X%JRl~>inEjt6W0;g9D5y;D&s#c`I`$PIIQK#s{pqC>Fq{)msUxIj2^Y%Q-QuUx zmgud1Mg~)RCSGx_Ki8|hG^M$h!R)z?U?&|=C)RxSDUms1Lz$YSaHxb)t~PIZaa;J6 z&daf1wFgwmlHzaGq&z#=j#}r;OGDg#|C>=2mW~%B2Y_Tf5(-X?gN|wjQLY%mCiQpD zy5{C+ZB2i^{3W(G$!VD!{l0+?M8CC+*QtBgl*?dt$WZBiZxe!M z;%A3(ld5ZCb?G`~-#V%xpY2duH($q7!8Es&JNi~nK2fp0q_-y?Z+1YP|VxY_x2>wm5XNzGVp zqvHYc2uVr(p$|}|6+KGrMydkTqu7Hwsk}X%VYP7Ekh@6uKR&URig#x*@w1XRy43fq zJ(F*HZ$rVpNIdrh3ga@tM!lxSSUCQV$G>JFWFkq{^g1d;4K`bjsV!ybfH!A0f;aXP zp8gZSCpo!GtNRIv6Hdz0x{TnhH%Y`~MX)~Mtz7=jWga~;HjXjA2o7IEv{Td3b#|_- zgM_?I)gS=(asD3pay$l&p9PD zCWdEyyXTvds#o9Qno>i;SYVg<q@KAEfs@LP{pI}gW9HDnWpqqsaLV4mi zh&e2^hp~wJ`=yImXYL|_810m*GEjx2+;j!ts**@S;$&dUQ3NPBUehumUlDo;+kA&% zT;ctIZY815uY-&la7unl-&$8c2%my23$>T9W)smL+9^L6>I*h)c;nfmh+w1vOM~k| zToqv!vFcZs{4b*DjOEuHXZn0S7SPGH!BcPPYTJ=N$py{fY- zkciaH7<<1oPUMug0BbClK#c(IV ztZjImw64WL6{p1sc%e)x)B~K!;Oyw!;^vxyA7)T-h`syknA{Oqzj8kY2L?hI)=6Jc z3e*`(l^2oqYnXSJqSUaDrs4fiof)N~&+YF|im zo+68j3+Q}hSsvxhtXuc`n7&BP{}bvhYLkt2PPTY9LoU{b8ii2Vb?KeY1lN^78&>%6 zUN1OI>l0t*kZ!9M0yE~rVK^Z}>E-&FS()WfMguZAb$S3d-;VnRq@OQSS$)?BRJUie zWg}hKSTc+!HUb;j%$fsEi_gQ=bFVkH<)1{yPug$^y#|mq?sW zMJS)uT7rJ@&9W&pbjjFeHz7H_W7AUBT;ZLDrl_!SFYTz$J-!EGlHVpPJVOK7zn7F^ z&>v{m#e~iHec-c8)6c!0_Z~NP1zJ^_umU_A>)b4=l7^=WOAFRc#o0;N{6nx6ahfY; z>@Cf4g|*6P{n#LwMze13I7>YH5JRtyq1`6s{O-)IIQ7g(l+#dFOkFC1?&5oDHCw<; zhO6=)oR%}{U2n-K##*kd{*6$1z<#>P7&6mNAQecFsMGE2vl^BeNj~&yX|)CV>nA?A zfXblkWjEkcpL2^-eaq39ev**xN~5Js;dOcs^Q+K97D33i zfCE6J{A(ydK!`rn82-cp%eZMN8VtwPn`5dyg4^cAI-i zE5`c8%hBz8Ypf>hT0P%j_zDP{7Kh%c+`}45_2E?TD2KsV*0j1@g~y1o=2Dch4HOGp zQTjKy99jvO9I6F$h9rcFMk)|gfpq++ciCWj-`ZJCnB`so{zob)0osI#UP{@Q;=2)I znDyRzVqss{>BJO^ODX~iCmVgCIYM)n3MV`o2NwXFrunc^J1LgqMTDYJZi2LWR3tJAZho$OL%oob#?Xs$Erd8>(&12 m)&A?%{;zno7ymn6?fUu@5BmuRM|}W7U<|1;DZOM9%lm(A;I}yd delta 5791 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 ZM?IBA;6sA{)YpIN>p%7N|4Dt({SViKSR?=d diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/SCHEMA b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/SCHEMA index ec57b7c29..67474c82d 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/SCHEMA +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/SCHEMA @@ -1,2 +1,2 @@ JavaSearch 1.0 -TMAP bs=2048 rt=1 fl=-1 id1=1038 id2=1 +TMAP bs=2048 rt=1 fl=-1 id1=1083 id2=1 diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/TMAP b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/JavaHelpSearch/TMAP index d004b6247ed2a68b2f4fc9e4abb5b64dbb5679df..fce491e2a82650fb2ca361f96a76df6c97988711 100644 GIT binary patch literal 14336 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 U`F~FSXN;bc|L5fY|7-sLA1V=6-v9sr literal 14336 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 diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/Map.jhm b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/Map.jhm index 9d004f116..eba21cafe 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/Map.jhm +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/Map.jhm @@ -10,9 +10,11 @@ + + - + diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/apply_templates.html b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/apply_templates.html new file mode 100644 index 000000000..660e36486 --- /dev/null +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/apply_templates.html @@ -0,0 +1,77 @@ + + + + + + + + + + +

    Applying templates

    +

    Since version 0.3 you are able to +selectively apply settings from a template of your choice to any job +you like. One reason might be that you want jobs that have already +been recorded to be recorded using different config settings (e.g. +other quality settings, resolution, etc.). If you wanted to do this +for many jobs at once, it would be very tedious to edit each job +manually, setting up changes.

    +

    You can apply properties of templates +very easily:

    +
      +
    • Select the template you want to + use

      +
    • Select the job(s) whose + properties you want to be affected by the template

      +
    • Right-click inside the jobs + table and select “Apply template”

      +
    • A new dialog will open where you + will be able to select which one of the settings should be copied + from the template to the job. Please, be aware that old settings of + the job will be overwritten!

      +
    • Usually the settings will be + copied 1:1 from the template to the job. There are 2 exceptions, + though:

      +
        +
      • Demo directory: Here + copying the value from the template to the job would not make + sense, because in a template you actually specified a directory, + not a file. However, a job needs to point at a file. + What will happen shall be demonstrated by the following example: + Let's say that the job's path to the demo file (before applying the + template) has been C:\Nexuiz\data\demos\mydemo.dem + and the path setup in the template has been pointing to the + directory C:\Games\Nexuiz2.5.2\data\demos. + The new demo file path, after the “apply” process is + done, would be C:\Games\Nexuiz2.5.2\data\demos\mydemo.dem; + this means that from the job's + demo path the program will just take the name of the demo by itself + (mydemo.dem), and put the path from the template + in front of it

        +
      • Video + destination: Here the same thing happens like for the Demo + directory. The new video destination will be <Directory set up + in the template> + <just the filename of the setting of the + job>

        +
      +
    +

    Another example of how this feature could be useful is this one: Suppose some +movie maker was to create a community movie with frags from different +people, or a movie maker was to continue or finish a movie from +someone else. If one person creates a queue of jobs (which naturally +includes the demo's names, start second and end second) and then +decides not to record the frags herself but send it to some other +movie maker, all that needs to be done is to save the job queue and +send it to the other movie maker, together with the demos. The other +movie maker can then copy the demos into his own demo directory and +import the job queue. Of course the problem would then be that all +these imported jobs could not really be executed right away, because +all these paths might be incorrect, I mean, would simply not exist or +match to the system of the movie maker who wants to record the jobs +(e.g. path to Nexuiz engine or demo directory). But this can easily +be fixed. The movie maker just needs to select the imported jobs and +apply one of her own templates to them, and by doing so, fix all +incorrect paths.

    + + + diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/changelog.html b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/changelog.html index f49cf0470..f15c319ec 100644 --- a/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/changelog.html +++ b/misc/tools/NexuizDemoRecorder/main/src/main/resources/help/html/changelog.html @@ -19,6 +19,8 @@
  • Open dialogs for jobs or templates allow you to select whether to overwrite the current list/queue or not (if not, the loaded items will be added to the current list/queue)

    +
  • New feature: Applying properties of a template + selectively to one or more selected jobs

diff --git a/misc/tools/NexuizDemoRecorder/main/src/main/resources/icons/editpaste.png b/misc/tools/NexuizDemoRecorder/main/src/main/resources/icons/editpaste.png new file mode 100644 index 0000000000000000000000000000000000000000..f9156c175607032f45811ddb19a332b6abd5def5 GIT binary patch literal 3529 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