View Issue Details

IDProjectCategoryView StatusLast Update
0004428ardourfeaturespublic2012-05-23 15:08
Reporteracolomb Assigned Topaul  
PrioritynormalSeveritytrivialReproducibilityalways
Status acknowledgedResolutionreopened 
Target Version3.0 
Summary0004428: [PATCH] Suggestion for preference reordering
DescriptionThe "Misc" tab in the rc_option_editor is very crowded. The attached patch against SVN r10389 tries to categorize and consolidate some options:

1. Move Metering section to Interface tab (it's only about visibility?)

2. Move Font scaling option to Interface tab

3. Move "Verify removal of last capture" and "Make periodic backups of the session file" under the "Undo" heading. This could be extended to "Undo and backups" or similar.

4. Move "Synchronise editor and mixer track order" and "Name new markers" to Editor tab.

5. Move "Use narrow mixer strips" to Interface tab and append "by default".

6. Consolidate "Keyboard" and "Control surfaces" tabs as new headings under a "User interaction" category. If anyone has a better idea for this title, please comment. As the control surfaces themselves are configured on double-click, both tabs were rather empty.
Additional InformationThis is just a suggestion to start cleaning up the preferences. If anyone has other / better ideas, please comment. Seeing how e.g. Mozilla completely messed up their preferences window multiple times, I think we can learn from it and find some sensible order _before_ there is extensive user experience and documentation referring to the current layout.

As a general rule, of course, options which are interesting to many users should be very visible :-) A distinction of "visible elements" vs. "altered workflow" preferences could help.

Another idea I'd like some feedback on: How about merging the Editor and Interface tabs? Pretty much everything in "Editor" concerns UI elements. This would affect at least point 4 from above. "Show meters on tracks in the editor" could also move to the Metering section.
TagsNo tags attached.

Activities

2011-11-02 10:43

 

rc_options_reordering.r10389.patch (6,764 bytes)   
Index: rc_option_editor.cc
===================================================================
--- rc_option_editor.cc	(revision 10389)
+++ rc_option_editor.cc	(working copy)
@@ -878,50 +878,10 @@
                 add_option (_("Misc"), procs);
         }
 
-	add_option (_("Misc"), new OptionEditorHeading (_("Metering")));
-
-	ComboOption<float>* mht = new ComboOption<float> (
-		"meter-hold",
-		_("Meter hold time"),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_hold),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_hold)
-		);
-
-	mht->add (MeterHoldOff, _("off"));
-	mht->add (MeterHoldShort, _("short"));
-	mht->add (MeterHoldMedium, _("medium"));
-	mht->add (MeterHoldLong, _("long"));
-
-	add_option (_("Misc"), mht);
-
-	ComboOption<float>* mfo = new ComboOption<float> (
-		"meter-falloff",
-		_("Meter fall-off"),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_falloff),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_falloff)
-		);
-
-	mfo->add (METER_FALLOFF_OFF, _("off"));
-	mfo->add (METER_FALLOFF_SLOWEST, _("slowest"));
-	mfo->add (METER_FALLOFF_SLOW, _("slow"));
-	mfo->add (METER_FALLOFF_MEDIUM, _("medium"));
-	mfo->add (METER_FALLOFF_FAST, _("fast"));
-	mfo->add (METER_FALLOFF_FASTER, _("faster"));
-	mfo->add (METER_FALLOFF_FASTEST, _("fastest"));
-
-	add_option (_("Misc"), mfo);
-
 	add_option (_("Misc"), new OptionEditorHeading (_("Undo")));
 
 	add_option (_("Misc"), new UndoOptions (_rc_config));
 
-	add_option (_("Misc"), new OptionEditorHeading (_("Misc")));
-
-#ifndef GTKOSX
-	/* font scaling does nothing with GDK/Quartz */
-	add_option (_("Misc"), new FontScalingOptions (_rc_config));
-#endif
-
 	add_option (_("Misc"),
 	     new BoolOption (
 		     "verify-remove-last-capture",
@@ -938,13 +898,7 @@
 		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_periodic_safety_backups)
 		     ));
 
-	add_option (_("Misc"),
-	     new BoolOption (
-		     "sync-all-route-ordering",
-		     _("Synchronise editor and mixer track order"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_all_route_ordering),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_all_route_ordering)
-		     ));
+	add_option (_("Misc"), new OptionEditorHeading (_("Misc")));
 
 	add_option (_("Misc"),
 	     new BoolOption (
@@ -954,22 +908,6 @@
 		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_only_copy_imported_files)
 		     ));
 
-	add_option (_("Misc"),
-	     new BoolOption (
-		     "default-narrow_ms",
-		     _("Use narrow mixer strips"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_default_narrow_ms),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_default_narrow_ms)
-		     ));
-
-	add_option (_("Misc"),
-	     new BoolOption (
-		     "name-new-markers",
-		     _("Name new markers"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_name_new_markers),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_name_new_markers)
-		     ));
-
 	add_option (_("Misc"), new OptionEditorHeading (_("Click")));
 
 	add_option (_("Misc"), new ClickOptions (_rc_config, this));
@@ -1154,6 +1092,22 @@
 			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_update_editor_during_summary_drag)
 			    ));
 
+	add_option (_("Editor"),
+	     new BoolOption (
+		     "sync-all-route-ordering",
+		     _("Synchronise editor and mixer track order"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_all_route_ordering),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_all_route_ordering)
+		     ));
+
+	add_option (_("Editor"),
+	     new BoolOption (
+		     "name-new-markers",
+		     _("Name new markers"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_name_new_markers),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_name_new_markers)
+		     ));
+
 	/* AUDIO */
 
 	add_option (_("Audio"), new OptionEditorHeading (_("Buffering")));
@@ -1507,10 +1461,16 @@
 			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_first_midi_bank_is_zero)
 			    ));
 
-	/* CONTROL SURFACES */
+	/* USER INTERACTION */
 
-	add_option (_("Control surfaces"), new ControlSurfacesOptions (*this));
+	add_option (_("User interaction"), new OptionEditorHeading (_("Keyboard")));
 
+	add_option (_("User interaction"), new KeyboardOptions);
+
+	add_option (_("User interaction"), new OptionEditorHeading (_("Control surfaces")));
+
+	add_option (_("User interaction"), new ControlSurfacesOptions (*this));
+
 	ComboOption<RemoteModel>* rm = new ComboOption<RemoteModel> (
 		"remote-model",
 		_("Control surface remote ID"),
@@ -1522,14 +1482,15 @@
 	rm->add (MixerOrdered, _("follows order of mixer"));
 	rm->add (EditorOrdered, _("follows order of editor"));
 
-	add_option (_("Control surfaces"), rm);
+	add_option (_("User interaction"), rm);
 
-	/* KEYBOARD */
+	/* INTERFACE */
 
-	add_option (_("Keyboard"), new KeyboardOptions);
+#ifndef GTKOSX
+	/* font scaling does nothing with GDK/Quartz */
+	add_option (_("Interface"), new FontScalingOptions (_rc_config));
+#endif
 
-	/* INTERFACE */
-
 	/* The names of these controls must be the same as those given in MixerStrip
 	   for the actual widgets being controlled.
 	*/
@@ -1549,6 +1510,47 @@
 			sigc::mem_fun (*_rc_config, &RCConfiguration::set_mixer_strip_visibility)
 			)
 		);
+
+	add_option (_("Interface"),
+	     new BoolOption (
+		     "default-narrow_ms",
+		     _("Use narrow mixer strips by default"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_default_narrow_ms),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_default_narrow_ms)
+		     ));
+
+	add_option (_("Interface"), new OptionEditorHeading (_("Metering")));
+
+	ComboOption<float>* mht = new ComboOption<float> (
+		"meter-hold",
+		_("Meter hold time"),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_hold),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_hold)
+		);
+
+	mht->add (MeterHoldOff, _("off"));
+	mht->add (MeterHoldShort, _("short"));
+	mht->add (MeterHoldMedium, _("medium"));
+	mht->add (MeterHoldLong, _("long"));
+
+	add_option (_("Interface"), mht);
+
+	ComboOption<float>* mfo = new ComboOption<float> (
+		"meter-falloff",
+		_("Meter fall-off"),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_falloff),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_falloff)
+		);
+
+	mfo->add (METER_FALLOFF_OFF, _("off"));
+	mfo->add (METER_FALLOFF_SLOWEST, _("slowest"));
+	mfo->add (METER_FALLOFF_SLOW, _("slow"));
+	mfo->add (METER_FALLOFF_MEDIUM, _("medium"));
+	mfo->add (METER_FALLOFF_FAST, _("fast"));
+	mfo->add (METER_FALLOFF_FASTER, _("faster"));
+	mfo->add (METER_FALLOFF_FASTEST, _("fastest"));
+
+	add_option (_("Interface"), mfo);
 }
 
 void

paul

2011-11-03 22:01

administrator   ~0011901

committed in rev 10432. thanks!

acolomb

2011-11-08 13:27

reporter   ~0011947

Last edited: 2011-11-09 14:38

Okay, here goes another attempt to further clean up the preferences experience. Attached patch against SVN r10492 does the following:

1. Add a new tab "Performance" at the end for tweaks concerning CPU usage etc. which novice users should rarely need.
2. Move DSP CPU Utilization option from Misc to Performance.
3. Move Buffering and Denormals options from Audio to Performance.
4. Move Click options from Misc to Audio.
5. Move Undo options from Misc to Editor.
6. Move remaining Misc options (only-copy-imported-files and default-session-parent-dir) from Misc to Editor.
7. Shuffle around some options under Editor and add a new group heading "Region editing".
8. Move the waveform options from Editor to Interface under a new "Waveforms" heading.
9. Move the "Show meters on tracks in the editor" from Editor to Interface under the "Metering" heading.
10. Get rid of the now empty "Misc" tab.
11. Change wording on the buffering options to put the unit (seconds) behind the number, to be consistent with other options. (EDIT)

This reduces the dialog's height a little overall and keeps the number of tabs constant. I hope you also find the options easier to locate and more logically grouped this way.

We might still want to switch the order of the tabs Editor and Transport tabs, so the more commonly used options are on the first page. But that is probably a matter of taste and I didn't want the patch to get huge.

Thanks for taking a look at this and merging the first version!

2011-11-08 13:29

 

rc_options_reordering2.r10492.patch (16,755 bytes)   
Index: rc_option_editor.cc
===================================================================
--- rc_option_editor.cc	(revision 10492)
+++ rc_option_editor.cc	(working copy)
@@ -592,7 +592,7 @@
 	{
 		_playback_adjustment.set_value (_rc_config->get_audio_playback_buffer_seconds());
 
-		Label* l = manage (new Label (_("Playback (seconds of buffering):")));
+		Label* l = manage (new Label (_("Playback buffer:")));
 		l->set_name ("OptionsLabel");
 
 		_playback_slider.set_update_policy (UPDATE_DISCONTINUOUS);
@@ -600,12 +600,14 @@
 		h->set_spacing (4);
 		h->pack_start (*l, false, false);
 		h->pack_start (_playback_slider, true, true);
+		l = manage (new Label (_("seconds")));
+		h->pack_start (*l, false, false);
 
 		_box->pack_start (*h, false, false);
 
 		_capture_adjustment.set_value (_rc_config->get_audio_capture_buffer_seconds());
 
-		l = manage (new Label (_("Recording (seconds of buffering):")));
+		l = manage (new Label (_("Recording buffer:")));
 		l->set_name ("OptionsLabel");
 
 		_capture_slider.set_update_policy (UPDATE_DISCONTINUOUS);
@@ -613,6 +615,8 @@
 		h->set_spacing (4);
 		h->pack_start (*l, false, false);
 		h->pack_start (_capture_slider, true, true);
+		l = manage (new Label (_("seconds")));
+		h->pack_start (*l, false, false);
 
 		_box->pack_start (*h, false, false);
 
@@ -854,71 +858,6 @@
         , _rc_config (Config)
 	, _mixer_strip_visibility ("mixer-strip-visibility")
 {
-	/* MISC */
-
-        uint32_t hwcpus = hardware_concurrency ();
-
-        if (hwcpus > 1) {
-                add_option (_("Misc"), new OptionEditorHeading (_("DSP CPU Utilization")));
-
-                ComboOption<int32_t>* procs = new ComboOption<int32_t> (
-                        "processor-usage",
-                        _("Signal processing uses"),
-                        sigc::mem_fun (*_rc_config, &RCConfiguration::get_processor_usage),
-                        sigc::mem_fun (*_rc_config, &RCConfiguration::set_processor_usage)
-                        );
-
-                procs->add (-1, _("all but one processor"));
-                procs->add (0, _("all available processors"));
-
-                for (uint32_t i = 1; i <= hwcpus; ++i) {
-                        procs->add (i, string_compose (_("%1 processors"), i));
-                }
-
-                add_option (_("Misc"), procs);
-        }
-
-	add_option (_("Misc"), new OptionEditorHeading (_("Undo")));
-
-	add_option (_("Misc"), new UndoOptions (_rc_config));
-
-	add_option (_("Misc"),
-	     new BoolOption (
-		     "verify-remove-last-capture",
-		     _("Verify removal of last capture"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_verify_remove_last_capture),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_verify_remove_last_capture)
-		     ));
-
-	add_option (_("Misc"),
-	     new BoolOption (
-		     "periodic-safety-backups",
-		     _("Make periodic backups of the session file"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_periodic_safety_backups),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_periodic_safety_backups)
-		     ));
-
-	add_option (_("Misc"), new OptionEditorHeading (_("Misc")));
-
-	add_option (_("Misc"),
-	     new BoolOption (
-		     "only-copy-imported-files",
-		     _("Always copy imported files"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_only_copy_imported_files),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_only_copy_imported_files)
-		     ));
-
-	add_option (_("Misc"), new DirectoryOption (
-			    X_("default-session-parent-dir"),
-			    _("Default folder for new sessions:"),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_default_session_parent_dir),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_default_session_parent_dir)
-			    ));
-
-	add_option (_("Misc"), new OptionEditorHeading (_("Click")));
-
-	add_option (_("Misc"), new ClickOptions (_rc_config, this));
-
 	/* TRANSPORT */
 
 	add_option (_("Transport"),
@@ -996,7 +935,49 @@
 	/* EDITOR */
 
 	add_option (_("Editor"),
+		    new BoolOption (
+			    "show-zoom-tools",
+			    _("Show zoom toolbar"),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_zoom_tools),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_zoom_tools)
+			    ));
+
+	add_option (_("Editor"),
+		    new BoolOption (
+			    "update-editor-during-summary-drag",
+			    _("Update editor window during drags of the summary"),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_update_editor_during_summary_drag),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_update_editor_during_summary_drag)
+			    ));
+
+	add_option (_("Editor"),
 	     new BoolOption (
+		     "sync-all-route-ordering",
+		     _("Synchronise editor and mixer track order"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_all_route_ordering),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_all_route_ordering)
+		     ));
+
+	add_option (_("Editor"),
+	     new BoolOption (
+		     "name-new-markers",
+		     _("Name new markers"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_name_new_markers),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_name_new_markers)
+		     ));
+
+	add_option (_("Editor"), new OptionEditorHeading (_("Region editing")));
+
+	add_option (_("Editor"),
+		    new BoolOption (
+			    "color-regions-using-track-color",
+			    _("Color regions using their track's color"),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_color_regions_using_track_color),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_color_regions_using_track_color)
+			    ));
+
+	add_option (_("Editor"),
+	     new BoolOption (
 		     "link-region-and-track-selection",
 		     _("Link selection of regions and tracks"),
 		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_link_region_and_track_selection),
@@ -1013,14 +994,6 @@
 
 	add_option (_("Editor"),
 	     new BoolOption (
-		     "show-track-meters",
-		     _("Show meters on tracks in the editor"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_track_meters),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_track_meters)
-		     ));
-
-	add_option (_("Editor"),
-	     new BoolOption (
 		     "use-overlap-equivalency",
 		     _("Use overlap equivalency for regions"),
 		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_use_overlap_equivalency),
@@ -1035,92 +1008,45 @@
 		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_rubberbanding_snaps_to_grid)
 		     ));
 
+	add_option (_("Editor"), new OptionEditorHeading (_("Undo")));
+
+	add_option (_("Editor"), new UndoOptions (_rc_config));
+
 	add_option (_("Editor"),
 	     new BoolOption (
-		     "show-waveforms",
-		     _("Show waveforms in regions"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_waveforms),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_waveforms)
+		     "verify-remove-last-capture",
+		     _("Verify removal of last capture"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_verify_remove_last_capture),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_verify_remove_last_capture)
 		     ));
 
-	ComboOption<WaveformScale>* wfs = new ComboOption<WaveformScale> (
-		"waveform-scale",
-		_("Waveform scale"),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::get_waveform_scale),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::set_waveform_scale)
-		);
-
-	wfs->add (Linear, _("linear"));
-	wfs->add (Logarithmic, _("logarithmic"));
-
-	add_option (_("Editor"), wfs);
-
-	ComboOption<WaveformShape>* wfsh = new ComboOption<WaveformShape> (
-		"waveform-shape",
-		_("Waveform shape"),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::get_waveform_shape),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::set_waveform_shape)
-		);
-
-	wfsh->add (Traditional, _("traditional"));
-	wfsh->add (Rectified, _("rectified"));
-
-	add_option (_("Editor"), wfsh);
-
 	add_option (_("Editor"),
 	     new BoolOption (
-		     "show-waveforms-while-recording",
-		     _("Show waveforms for audio while it is being recorded"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_waveforms_while_recording),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_waveforms_while_recording)
+		     "periodic-safety-backups",
+		     _("Make periodic backups of the session file"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_periodic_safety_backups),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_periodic_safety_backups)
 		     ));
 
-	add_option (_("Editor"),
-		    new BoolOption (
-			    "show-zoom-tools",
-			    _("Show zoom toolbar"),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_zoom_tools),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_zoom_tools)
-			    ));
+	add_option (_("Editor"), new OptionEditorHeading (_("File locations")));
 
-	add_option (_("Editor"),
-		    new BoolOption (
-			    "color-regions-using-track-color",
-			    _("Color regions using their track's color"),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_color_regions_using_track_color),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_color_regions_using_track_color)
+	add_option (_("Editor"), new DirectoryOption (
+			    X_("default-session-parent-dir"),
+			    _("Default folder for new sessions:"),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_default_session_parent_dir),
+			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_default_session_parent_dir)
 			    ));
 
 	add_option (_("Editor"),
-		    new BoolOption (
-			    "update-editor-during-summary-drag",
-			    _("Update editor window during drags of the summary"),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::get_update_editor_during_summary_drag),
-			    sigc::mem_fun (*_rc_config, &RCConfiguration::set_update_editor_during_summary_drag)
-			    ));
-
-	add_option (_("Editor"),
 	     new BoolOption (
-		     "sync-all-route-ordering",
-		     _("Synchronise editor and mixer track order"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_all_route_ordering),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_all_route_ordering)
+		     "only-copy-imported-files",
+		     _("Always copy imported files"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_only_copy_imported_files),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_only_copy_imported_files)
 		     ));
 
-	add_option (_("Editor"),
-	     new BoolOption (
-		     "name-new-markers",
-		     _("Name new markers"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_name_new_markers),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_name_new_markers)
-		     ));
-
 	/* AUDIO */
 
-	add_option (_("Audio"), new OptionEditorHeading (_("Buffering")));
-
-	add_option (_("Audio"), new BufferingOptions (_rc_config));
-
 	add_option (_("Audio"), new OptionEditorHeading (_("Monitoring")));
 
 	add_option (_("Audio"),
@@ -1192,41 +1118,10 @@
 
 	add_option (_("Audio"), oac);
 
-	add_option (_("Audio"), new OptionEditorHeading (_("Denormals")));
+	add_option (_("Audio"), new OptionEditorHeading (_("Click")));
 
-	add_option (_("Audio"),
-	     new BoolOption (
-		     "denormal-protection",
-		     _("Use DC bias to protect against denormals"),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_denormal_protection),
-		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_denormal_protection)
-		     ));
+	add_option (_("Audio"), new ClickOptions (_rc_config, this));
 
-	ComboOption<DenormalModel>* dm = new ComboOption<DenormalModel> (
-		"denormal-model",
-		_("Processor handling"),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::get_denormal_model),
-		sigc::mem_fun (*_rc_config, &RCConfiguration::set_denormal_model)
-		);
-
-	dm->add (DenormalNone, _("no processor handling"));
-
-	FPU fpu;
-
-	if (fpu.has_flush_to_zero()) {
-		dm->add (DenormalFTZ, _("use FlushToZero"));
-	}
-
-	if (fpu.has_denormals_are_zero()) {
-		dm->add (DenormalDAZ, _("use DenormalsAreZero"));
-	}
-
-	if (fpu.has_flush_to_zero() && fpu.has_denormals_are_zero()) {
-		dm->add (DenormalFTZDAZ, _("use FlushToZero and DenormalsAreZerO"));
-	}
-
-	add_option (_("Audio"), dm);
-
 	add_option (_("Audio"), new OptionEditorHeading (_("Plugins")));
 
 	add_option (_("Audio"),
@@ -1384,6 +1279,8 @@
 		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_main_outs)
 		     ));
 
+	/* MIDI */
+
 	add_option (_("MIDI"),
 		    new BoolOption (
 			    "send-midi-clock",
@@ -1558,6 +1455,119 @@
 	mfo->add (METER_FALLOFF_FASTEST, _("fastest"));
 
 	add_option (_("Interface"), mfo);
+
+	add_option (_("Interface"),
+	     new BoolOption (
+		     "show-track-meters",
+		     _("Show meters on tracks in the editor"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_track_meters),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_track_meters)
+		     ));
+
+	add_option (_("Interface"), new OptionEditorHeading (_("Waveforms")));
+
+	add_option (_("Interface"),
+	     new BoolOption (
+		     "show-waveforms",
+		     _("Show waveforms in regions"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_waveforms),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_waveforms)
+		     ));
+
+	ComboOption<WaveformScale>* wfs = new ComboOption<WaveformScale> (
+		"waveform-scale",
+		_("Waveform scale"),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::get_waveform_scale),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::set_waveform_scale)
+		);
+
+	wfs->add (Linear, _("linear"));
+	wfs->add (Logarithmic, _("logarithmic"));
+
+	add_option (_("Interface"), wfs);
+
+	ComboOption<WaveformShape>* wfsh = new ComboOption<WaveformShape> (
+		"waveform-shape",
+		_("Waveform shape"),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::get_waveform_shape),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::set_waveform_shape)
+		);
+
+	wfsh->add (Traditional, _("traditional"));
+	wfsh->add (Rectified, _("rectified"));
+
+	add_option (_("Interface"), wfsh);
+
+	add_option (_("Interface"),
+	     new BoolOption (
+		     "show-waveforms-while-recording",
+		     _("Show waveforms for audio while it is being recorded"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_waveforms_while_recording),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_waveforms_while_recording)
+		     ));
+
+	/* PERFORMANCE */
+
+        uint32_t hwcpus = hardware_concurrency ();
+
+        if (hwcpus > 1) {
+                add_option (_("Performance"), new OptionEditorHeading (_("DSP CPU Utilization")));
+
+                ComboOption<int32_t>* procs = new ComboOption<int32_t> (
+                        "processor-usage",
+                        _("Signal processing uses"),
+                        sigc::mem_fun (*_rc_config, &RCConfiguration::get_processor_usage),
+                        sigc::mem_fun (*_rc_config, &RCConfiguration::set_processor_usage)
+                        );
+
+                procs->add (-1, _("all but one processor"));
+                procs->add (0, _("all available processors"));
+
+                for (uint32_t i = 1; i <= hwcpus; ++i) {
+                        procs->add (i, string_compose (_("%1 processors"), i));
+                }
+
+                add_option (_("Performance"), procs);
+        }
+
+	add_option (_("Performance"), new OptionEditorHeading (_("Buffering")));
+
+	add_option (_("Performance"), new BufferingOptions (_rc_config));
+
+	add_option (_("Performance"), new OptionEditorHeading (_("Denormals")));
+
+	add_option (_("Performance"),
+	     new BoolOption (
+		     "denormal-protection",
+		     _("Use DC bias to protect against denormals"),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::get_denormal_protection),
+		     sigc::mem_fun (*_rc_config, &RCConfiguration::set_denormal_protection)
+		     ));
+
+	ComboOption<DenormalModel>* dm = new ComboOption<DenormalModel> (
+		"denormal-model",
+		_("Processor handling"),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::get_denormal_model),
+		sigc::mem_fun (*_rc_config, &RCConfiguration::set_denormal_model)
+		);
+
+	dm->add (DenormalNone, _("no processor handling"));
+
+	FPU fpu;
+
+	if (fpu.has_flush_to_zero()) {
+		dm->add (DenormalFTZ, _("use FlushToZero"));
+	}
+
+	if (fpu.has_denormals_are_zero()) {
+		dm->add (DenormalDAZ, _("use DenormalsAreZero"));
+	}
+
+	if (fpu.has_flush_to_zero() && fpu.has_denormals_are_zero()) {
+		dm->add (DenormalFTZDAZ, _("use FlushToZero and DenormalsAreZero"));
+	}
+
+	add_option (_("Performance"), dm);
 }
 
 void

paul

2011-11-09 11:11

administrator   ~0011958

Not as keen on this patch as the last one. Bits that I like:

(1) (2), (3) (5) (7) (8)

trying to get rid of Misc. is a sign that you don't accept the 2nd Law of Thermodynamics :)

I'd be happy to commit a version that dropped the other parts.

Issue History

Date Modified Username Field Change
2011-11-02 10:43 acolomb New Issue
2011-11-02 10:43 acolomb File Added: rc_options_reordering.r10389.patch
2011-11-02 13:04 cth103 cost => 0.00
2011-11-02 13:04 cth103 Target Version => 3.0-beta1
2011-11-03 22:01 paul Note Added: 0011901
2011-11-03 22:01 paul Status new => resolved
2011-11-03 22:01 paul Resolution open => fixed
2011-11-03 22:01 paul Assigned To => paul
2011-11-08 13:27 acolomb Note Added: 0011947
2011-11-08 13:27 acolomb Status resolved => feedback
2011-11-08 13:27 acolomb Resolution fixed => reopened
2011-11-08 13:29 acolomb File Added: rc_options_reordering2.r10492.patch
2011-11-09 11:11 paul Note Added: 0011958
2011-11-09 14:38 acolomb Note Edited: 0011947
2011-11-15 15:48 cth103 Target Version 3.0-beta1 => 3.0-beta2
2012-01-10 20:46 cth103 Target Version 3.0-beta2 => 3.0-beta3
2012-02-14 17:20 paul Target Version 3.0-beta3 => 3.0 beta4
2012-04-23 22:04 cth103 Status feedback => acknowledged
2012-05-23 15:08 cth103 Target Version 3.0 beta4 => 3.0