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
