Prefs Dialog: consistent headings, spacing, reduce width,..

This commit is contained in:
Robin Gareus 2016-12-28 20:03:37 +01:00
parent 9b9cb4beaa
commit f2e00dfe07
5 changed files with 77 additions and 28 deletions

View file

@ -61,7 +61,10 @@ ColorThemeManager::ColorThemeManager ()
, palette_window (0) , palette_window (0)
, color_theme_label (_("Color Theme")) , color_theme_label (_("Color Theme"))
{ {
_box->set_spacing (12); Label* l = manage (new Label (string_compose ("<b>%1</b>", _("Colors"))));
l->set_alignment (0, 0.5);
l->set_use_markup (true);
_box->pack_start (*l, false, false);
std::map<string,string> color_themes; std::map<string,string> color_themes;
@ -146,8 +149,8 @@ ColorThemeManager::ColorThemeManager ()
notebook.set_size_request (400, 400); notebook.set_size_request (400, 400);
_box->pack_start (notebook, true, true); _box->pack_start (notebook, true, true, 12);
_box->pack_start (reset_button, false, false); _box->pack_start (reset_button, false, false, 12);
color_dialog.get_colorsel()->set_has_opacity_control (true); color_dialog.get_colorsel()->set_has_opacity_control (true);
color_dialog.get_colorsel()->set_has_palette (true); color_dialog.get_colorsel()->set_has_palette (true);

View file

@ -39,7 +39,7 @@ namespace ArdourCanvas {
class ArdourDialog; class ArdourDialog;
class ColorThemeManager : public OptionEditorBox class ColorThemeManager : public OptionEditorPageBox
{ {
public: public:
ColorThemeManager(); ColorThemeManager();

View file

@ -80,6 +80,7 @@ OptionEditorComponent::maybe_add_note (OptionEditorPage* p, int n)
if (!_note.empty ()) { if (!_note.empty ()) {
Gtk::Label* l = manage (new Gtk::Label (string_compose (X_("<i>%1</i>"), _note))); Gtk::Label* l = manage (new Gtk::Label (string_compose (X_("<i>%1</i>"), _note)));
l->set_use_markup (true); l->set_use_markup (true);
l->set_line_wrap (true);
p->table.attach (*l, 1, 3, n, n + 1, FILL | EXPAND); p->table.attach (*l, 1, 3, n, n + 1, FILL | EXPAND);
} }
} }
@ -102,7 +103,6 @@ void
OptionEditorHeading::add_to_page (OptionEditorPage* p) OptionEditorHeading::add_to_page (OptionEditorPage* p)
{ {
int const n = p->table.property_n_rows(); int const n = p->table.property_n_rows();
p->table.resize (n + 2, 3);
if (!_note.empty ()) { if (!_note.empty ()) {
p->table.resize (n + 3, 3); p->table.resize (n + 3, 3);
} else { } else {
@ -120,6 +120,21 @@ OptionEditorBox::add_to_page (OptionEditorPage* p)
add_widget_to_page (p, _box); add_widget_to_page (p, _box);
} }
void
OptionEditorPageBox::add_to_page (OptionEditorPage* p)
{
int const n = p->table.property_n_rows();
int m = n + 2;
if (!_note.empty ()) {
++m;
}
_box->set_border_width (0);
p->table.resize (m, 3);
p->table.attach (*manage (new Label ("")), 0, 3, n, n + 1, FILL | EXPAND);
p->table.attach (*_box, 0, 3, n + 1, n + 2, FILL | EXPAND);
maybe_add_note (p, n + 2);
}
RcActionButton::RcActionButton (std::string const & t, const Glib::SignalProxy0< void >::SlotType & slot, std::string const & l) RcActionButton::RcActionButton (std::string const & t, const Glib::SignalProxy0< void >::SlotType & slot, std::string const & l)
: _label (NULL) : _label (NULL)
{ {
@ -344,7 +359,7 @@ FaderOption::FaderOption (string const & i, string const & n, sigc::slot<gain_t>
, _get (g) , _get (g)
, _set (s) , _set (s)
{ {
_db_slider = manage (new HSliderController (&_db_adjustment, boost::shared_ptr<PBD::Controllable>(), 115, 18)); _db_slider = manage (new HSliderController (&_db_adjustment, boost::shared_ptr<PBD::Controllable>(), 220, 18));
_label.set_text (n + ":"); _label.set_text (n + ":");
_label.set_alignment (0, 0.5); _label.set_alignment (0, 0.5);
@ -356,9 +371,10 @@ FaderOption::FaderOption (string const & i, string const & n, sigc::slot<gain_t>
_box.set_homogeneous (false); _box.set_homogeneous (false);
_box.pack_start (_fader_centering_box, false, false); _box.pack_start (_fader_centering_box, false, false);
_box.pack_start (_db_display, false, false); _box.pack_start (_db_display, false, false);
_box.pack_start (*manage (new Label ("dB")), false, false);
_box.show_all (); _box.show_all ();
set_size_request_to_display_given_text (_db_display, "-99.00", 12, 12); set_size_request_to_display_given_text (_db_display, "-99.00", 12, 0);
_db_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &FaderOption::db_changed)); _db_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &FaderOption::db_changed));
_db_display.signal_activate().connect (sigc::mem_fun (*this, &FaderOption::on_activate)); _db_display.signal_activate().connect (sigc::mem_fun (*this, &FaderOption::on_activate));
@ -690,7 +706,7 @@ OptionEditorContainer::OptionEditorContainer (PBD::Configuration* c, string cons
{ {
set_border_width (4); set_border_width (4);
hpacker.pack_start (treeview(), false, false); hpacker.pack_start (treeview(), false, false);
hpacker.pack_start (notebook(), true, true); hpacker.pack_start (notebook(), false, false);
pack_start (hpacker, true, true); pack_start (hpacker, true, true);
show_all (); show_all ();

View file

@ -115,15 +115,21 @@ public:
void parameter_changed (std::string const &) = 0; void parameter_changed (std::string const &) = 0;
void set_state_from_config () = 0; void set_state_from_config () = 0;
void add_to_page (OptionEditorPage *); virtual void add_to_page (OptionEditorPage *);
Gtk::Widget& tip_widget() { return *_box->children().front().get_widget(); } Gtk::Widget& tip_widget() { return *_box->children().front().get_widget(); }
protected: protected:
Gtk::VBox* _box; ///< constituent box for subclasses to add widgets to Gtk::VBox* _box; ///< constituent box for subclasses to add widgets to
}; };
class OptionEditorPageBox : public OptionEditorBox
{
public:
virtual void add_to_page (OptionEditorPage *);
};
class RcConfigDisplay : public OptionEditorComponent class RcConfigDisplay : public OptionEditorComponent
{ {
public: public:

View file

@ -1350,7 +1350,7 @@ private:
ComboBoxText _buffering_presets_combo; ComboBoxText _buffering_presets_combo;
}; };
class ControlSurfacesOptions : public OptionEditorBox class ControlSurfacesOptions : public OptionEditorPageBox
{ {
public: public:
ControlSurfacesOptions () ControlSurfacesOptions ()
@ -1364,6 +1364,10 @@ public:
_view.append_column_editable (_("Enabled"), _model.enabled); _view.append_column_editable (_("Enabled"), _model.enabled);
_view.append_column_editable (_("Feedback"), _model.feedback); _view.append_column_editable (_("Feedback"), _model.feedback);
Label* l = manage (new Label (string_compose ("<b>%1</b>", _("Control Surfaces"))));
l->set_alignment (0, 0.5);
l->set_use_markup (true);
_box->pack_start (*l, false, false);
_box->pack_start (_view, false, false); _box->pack_start (_view, false, false);
Gtk::HBox* edit_box = manage (new Gtk::HBox); Gtk::HBox* edit_box = manage (new Gtk::HBox);
@ -1372,7 +1376,7 @@ public:
edit_box->show (); edit_box->show ();
Label* label = manage (new Label); Label* label = manage (new Label);
label->set_text (_("Click to edit the settings for selected protocol ( it must be ENABLED first ):")); label->set_text (_("Edit the settings for selected protocol (it must be ENABLED first):"));
edit_box->pack_start (*label, false, false); edit_box->pack_start (*label, false, false);
label->show (); label->show ();
@ -1473,6 +1477,7 @@ private:
if (was_feedback != is_feedback && cpi->protocol) { if (was_feedback != is_feedback && cpi->protocol) {
cpi->protocol->set_feedback (is_feedback); cpi->protocol->set_feedback (is_feedback);
} }
selection_changed ();
} }
void edit_btn_clicked () void edit_btn_clicked ()
@ -1547,7 +1552,7 @@ private:
Gtk::Button* edit_button; Gtk::Button* edit_button;
}; };
class VideoTimelineOptions : public OptionEditorBox class VideoTimelineOptions : public OptionEditorPageBox
{ {
public: public:
VideoTimelineOptions (RCConfiguration* c) VideoTimelineOptions (RCConfiguration* c)
@ -1560,12 +1565,10 @@ public:
Table* t = manage (new Table (8, 4)); Table* t = manage (new Table (8, 4));
t->set_spacings (4); t->set_spacings (4);
std::stringstream s; Label* l = manage (new Label (string_compose ("<b>%1</b>", _("Video Server"))));
s << "<b>" << _("Video Server") << "</b>";
Label* l = manage (new Label (s.str()));
l->set_use_markup (true); l->set_use_markup (true);
l->set_alignment (0, 0.5); l->set_alignment (0, 0.5);
t->attach (*l, 0, 4, 0, 1, EXPAND | FILL, FILL | EXPAND, 0, 8); t->attach (*l, 0, 4, 0, 1, EXPAND | FILL, FILL | EXPAND, 0, 0);
t->attach (_video_advanced_setup_button, 1, 4, 1, 2); t->attach (_video_advanced_setup_button, 1, 4, 1, 2);
_video_advanced_setup_button.signal_toggled().connect (sigc::mem_fun (*this, &VideoTimelineOptions::video_advanced_setup_toggled)); _video_advanced_setup_button.signal_toggled().connect (sigc::mem_fun (*this, &VideoTimelineOptions::video_advanced_setup_toggled));
@ -1596,12 +1599,13 @@ public:
Gtkmm2ext::UI::instance()->set_tip (_show_video_server_dialog_button, Gtkmm2ext::UI::instance()->set_tip (_show_video_server_dialog_button,
_("<b>When enabled</b> the video server is never launched automatically without confirmation")); _("<b>When enabled</b> the video server is never launched automatically without confirmation"));
s.str (std::string ()); l = manage (new Label (""));
s << "<b>" << _("Video Monitor") << "</b>"; t->attach (*l, 0, 4, 6, 7, EXPAND | FILL);
l = manage (new Label (s.str()));
l = manage (new Label (string_compose ("<b>%1</b>", _("Video Monitor"))));
l->set_use_markup (true); l->set_use_markup (true);
l->set_alignment (0, 0.5); l->set_alignment (0, 0.5);
t->attach (*l, 0, 4, 6, 7, EXPAND | FILL, FILL | EXPAND, 0, 8); t->attach (*l, 0, 4, 7, 8, EXPAND | FILL);
l = manage (new Label (string_compose (_("Custom Path to Video Monitor (%1) - leave empty for default:"), l = manage (new Label (string_compose (_("Custom Path to Video Monitor (%1) - leave empty for default:"),
#ifdef __APPLE__ #ifdef __APPLE__
@ -1613,10 +1617,10 @@ public:
#endif #endif
))); )));
l->set_alignment (0, 0.5); l->set_alignment (0, 0.5);
t->attach (*l, 1, 4, 7, 8, FILL); t->attach (*l, 1, 4, 8, 9, FILL);
t->attach (_custom_xjadeo_path, 2, 3, 8, 9); t->attach (_custom_xjadeo_path, 2, 3, 9, 10);
Gtkmm2ext::UI::instance()->set_tip (_custom_xjadeo_path, _("Set a custom path to the Video Monitor Executable, changing this requires a restart.")); Gtkmm2ext::UI::instance()->set_tip (_custom_xjadeo_path, _("Set a custom path to the Video Monitor Executable, changing this requires a restart."));
t->attach (_xjadeo_browse_button, 3, 4, 8, 9, FILL); t->attach (_xjadeo_browse_button, 3, 4, 9, 10, FILL);
_video_server_url_entry.signal_changed().connect (sigc::mem_fun(*this, &VideoTimelineOptions::server_url_changed)); _video_server_url_entry.signal_changed().connect (sigc::mem_fun(*this, &VideoTimelineOptions::server_url_changed));
_video_server_url_entry.signal_activate().connect (sigc::mem_fun(*this, &VideoTimelineOptions::server_url_changed)); _video_server_url_entry.signal_activate().connect (sigc::mem_fun(*this, &VideoTimelineOptions::server_url_changed));
@ -1864,10 +1868,12 @@ class MidiPortOptions : public OptionEditorBox, public sigc::trackable
setup_midi_port_view (midi_input_view, true); setup_midi_port_view (midi_input_view, true);
_box->pack_start (*manage (new Label("")), false, false);
input_label.set_markup (string_compose ("<span size=\"large\" weight=\"bold\">%1</span>", _("MIDI Inputs"))); input_label.set_markup (string_compose ("<span size=\"large\" weight=\"bold\">%1</span>", _("MIDI Inputs")));
_box->pack_start (input_label, false, false); _box->pack_start (input_label, false, false);
_box->pack_start (midi_input_view); _box->pack_start (midi_input_view);
_box->pack_start (*manage (new Label("")), false, false);
output_label.set_markup (string_compose ("<span size=\"large\" weight=\"bold\">%1</span>", _("MIDI Outputs"))); output_label.set_markup (string_compose ("<span size=\"large\" weight=\"bold\">%1</span>", _("MIDI Outputs")));
_box->pack_start (output_label, false, false); _box->pack_start (output_label, false, false);
_box->pack_start (midi_output_view); _box->pack_start (midi_output_view);
@ -2011,6 +2017,8 @@ MidiPortOptions::setup_midi_port_view (Gtk::TreeView& view, bool with_selection)
view.get_selection()->set_mode (SELECTION_NONE); view.get_selection()->set_mode (SELECTION_NONE);
view.set_tooltip_column (4); /* port "real" name */ view.set_tooltip_column (4); /* port "real" name */
view.get_column(0)->set_resizable (true);
view.get_column(0)->set_expand (true);
} }
bool bool
@ -2498,6 +2506,8 @@ RCOptionEditor::RCOptionEditor ()
/* EDITOR */ /* EDITOR */
add_option (_("Editor"), new OptionEditorHeading (_("Editor Settings")));
add_option (_("Editor"), add_option (_("Editor"),
new BoolOption ( new BoolOption (
"rubberbanding-snaps-to-grid", "rubberbanding-snaps-to-grid",
@ -2612,18 +2622,20 @@ if (!Profile->get_mixbus()) {
add_option (_("Editor"), fadeshape); add_option (_("Editor"), fadeshape);
#if 1
bco = new BoolComboOption ( bco = new BoolComboOption (
"use-overlap-equivalency", "use-overlap-equivalency",
_("Regions in active edit groups are edited together"), _("Regions in edit groups are edited together"),
_("whenever they overlap in time"), _("whenever they overlap in time"),
_("only if they have identical length, position and origin"), _("only if they have identical length and position"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_use_overlap_equivalency), sigc::mem_fun (*_rc_config, &RCConfiguration::get_use_overlap_equivalency),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_overlap_equivalency) sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_overlap_equivalency)
); );
add_option (_("Editor"), bco); add_option (_("Editor"), bco);
#endif
ComboOption<LayerModel>* lm = new ComboOption<LayerModel> ( ComboOption<LayerModel>* lm = new ComboOption<LayerModel> (
"layer-model", "layer-model",
_("Layering model"), _("Layering model"),
@ -3030,6 +3042,8 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_midi_feedback) sigc::mem_fun (*_rc_config, &RCConfiguration::set_midi_feedback)
)); ));
add_option (_("MIDI/Ports"), new OptionEditorHeading (_("MIDI Port Options")));
add_option (_("MIDI/Ports"), add_option (_("MIDI/Ports"),
new BoolOption ( new BoolOption (
"get-midi-input-follows-selection", "get-midi-input-follows-selection",
@ -3124,7 +3138,11 @@ if (!ARDOUR::Profile->get_mixbus()) {
if (manager.get_status (*i) == PluginManager::Hidden) continue; if (manager.get_status (*i) == PluginManager::Hidden) continue;
if (!(*i)->is_instrument()) continue; if (!(*i)->is_instrument()) continue;
if ((*i)->type != ARDOUR::LV2) continue; if ((*i)->type != ARDOUR::LV2) continue;
audition_synth->add((*i)->unique_id, (*i)->name); if ((*i)->name.length() > 46) {
audition_synth->add((*i)->unique_id, (*i)->name.substr (0, 44) + "...");
} else {
audition_synth->add((*i)->unique_id, (*i)->name);
}
} }
#endif #endif
@ -3132,12 +3150,13 @@ if (!ARDOUR::Profile->get_mixbus()) {
/* Control Surfaces */ /* Control Surfaces */
add_option (_("Control Surfaces"), new ControlSurfacesOptions); add_option (_("Control Surfaces"), new ControlSurfacesOptions ());
/* VIDEO Timeline */ /* VIDEO Timeline */
add_option (_("Video"), new VideoTimelineOptions (_rc_config)); add_option (_("Video"), new VideoTimelineOptions (_rc_config));
#if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT || defined AUDIOUNIT_SUPPORT) #if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT || defined AUDIOUNIT_SUPPORT)
add_option (_("Plugins"), new OptionEditorHeading (_("Scan/Discover")));
add_option (_("Plugins"), add_option (_("Plugins"),
new RcActionButton (_("Scan for Plugins"), new RcActionButton (_("Scan for Plugins"),
sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh))); sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh)));
@ -3336,6 +3355,9 @@ if (!ARDOUR::Profile->get_mixbus()) {
#endif #endif
/* INTERFACE */ /* INTERFACE */
#if (defined OPTIONAL_CAIRO_IMAGE_SURFACE || defined CAIRO_SUPPORTS_FORCE_BUGGY_GRADIENTS_ENVIRONMENT_VARIABLE)
add_option (S_("Preferences|GUI"), new OptionEditorHeading (_("Graphics Acceleration")));
#endif
#ifdef OPTIONAL_CAIRO_IMAGE_SURFACE #ifdef OPTIONAL_CAIRO_IMAGE_SURFACE
BoolOption* bgc = new BoolOption ( BoolOption* bgc = new BoolOption (
@ -3362,6 +3384,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
add_option (S_("Preferences|GUI"), bgo); add_option (S_("Preferences|GUI"), bgo);
#endif #endif
add_option (S_("Preferences|GUI"), new OptionEditorHeading (_("Graphical User Interface")));
add_option (S_("Preferences|GUI"), add_option (S_("Preferences|GUI"),
new BoolOption ( new BoolOption (
"use-wm-visibility", "use-wm-visibility",
@ -3728,6 +3751,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
/* and now the theme manager */ /* and now the theme manager */
ThemeManager* tm = manage (new ThemeManager); ThemeManager* tm = manage (new ThemeManager);
add_option (_("Theme"), new OptionEditorHeading (_("Theme")));
add_page (_("Theme"), *tm); add_page (_("Theme"), *tm);
add_option (_("Theme/Colors"), new ColorThemeManager); add_option (_("Theme/Colors"), new ColorThemeManager);