View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002756 | ardour | other | public | 2009-06-28 13:31 | 2020-04-19 20:14 |
| Reporter | tinram | Assigned To | cth103 | ||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | closed | Resolution | fixed | ||
| Summary | 0002756: [Patch] refresh add_route_dialog ui | ||||
| Description | This patch is for add_route_dialog.cc/.h in 3.0. It turns the class inheritance from Dialog to ArdourDialog and refresh the ui. Tested without problems. | ||||
| Tags | No tags attached. | ||||
|
2009-06-28 13:31
|
Ardour_refresh_add_route_dialog.patch (12,960 bytes)
*** add_route_dialog.cc.old 2009-06-27 14:17:12.000000000 +0200
--- add_route_dialog.cc 2009-06-28 15:10:59.000000000 +0200
***************
*** 24,29 ****
--- 24,30 ----
#include <gtkmm/stock.h>
#include <gtkmm/separator.h>
#include <gtkmm/table.h>
+ #include <gtkmm2ext/window_title.h>
#include "pbd/error.h"
#include "pbd/convert.h"
***************
*** 53,65 ****
};
AddRouteDialog::AddRouteDialog (Session & s)
! : Dialog (_("ardour: add track/bus")),
! _session (s),
! track_button (_("Tracks")),
! bus_button (_("Busses")),
! routes_adjustment (1, 1, 128, 1, 4),
! routes_spinner (routes_adjustment),
! new_route_group_button (_("New..."))
{
if (track_mode_strings.empty()) {
track_mode_strings = I18N (track_mode_names);
--- 54,66 ----
};
AddRouteDialog::AddRouteDialog (Session & s)
! : ArdourDialog (X_("add route dialog"))
! , _session (s)
! , track_button (_("Tracks"))
! , bus_button (_("Busses"))
! , routes_adjustment (1, 1, 128, 1, 4)
! , routes_spinner (routes_adjustment)
! , track_mode_label (_("Track mode:"))
{
if (track_mode_strings.empty()) {
track_mode_strings = I18N (track_mode_names);
***************
*** 74,87 ****
}
set_name ("AddRouteDialog");
- set_wmclass (X_("ardour_add_track_bus"), "Ardour");
set_position (Gtk::WIN_POS_MOUSE);
set_resizable (false);
! name_template_entry.set_name ("AddRouteDialogNameTemplateEntry");
! track_button.set_name ("AddRouteDialogRadioButton");
! bus_button.set_name ("AddRouteDialogRadioButton");
! routes_spinner.set_name ("AddRouteDialogSpinner");
refill_channel_setups ();
refill_route_groups ();
--- 75,95 ----
}
set_name ("AddRouteDialog");
set_position (Gtk::WIN_POS_MOUSE);
+ set_modal (true);
+ set_skip_taskbar_hint (true);
set_resizable (false);
! WindowTitle title(Glib::get_application_name());
! title += _("Add Route");
! set_title(title.get_string());
!
! name_template_entry.set_name (X_("AddRouteDialogNameTemplateEntry"));
! track_button.set_name (X_("AddRouteDialogRadioButton"));
! bus_button.set_name (X_("AddRouteDialogRadioButton"));
! routes_spinner.set_name (X_("AddRouteDialogSpinner"));
! channel_combo.set_name (X_("ChannelCountSelector"));
! track_mode_combo.set_name (X_("ChannelCountSelector"));
refill_channel_setups ();
refill_route_groups ();
***************
*** 90,147 ****
channel_combo.set_active_text (channel_combo_strings.front());
track_mode_combo.set_active_text (track_mode_strings.front());
RadioButton::Group g = track_button.get_group();
bus_button.set_group (g);
track_button.set_active (true);
! Table* table = manage (new Table (5, 3));
! table->set_spacings (4);
/* add */
! Label* l = manage (new Label (_("Add this many:")));
! l->set_alignment (1, 0.5);
! table->attach (*l, 0, 1, 0, 1);
! table->attach (routes_spinner, 1, 2, 0, 1, FILL | EXPAND);
! /* track/bus choice & modes */
- HBox* hbox = manage (new HBox);
- hbox->set_spacing (6);
- hbox->pack_start (track_button, PACK_EXPAND_PADDING);
- hbox->pack_start (bus_button, PACK_EXPAND_PADDING);
- table->attach (*hbox, 0, 3, 1, 2);
! channel_combo.set_name (X_("ChannelCountSelector"));
! track_mode_combo.set_name (X_("ChannelCountSelector"));
! track_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
! bus_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
! new_route_group_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::new_route_group));
! l = manage (new Label (_("Channel configuration:")));
! l->set_alignment (1, 0.5);
! table->attach (*l, 0, 1, 2, 3);
! table->attach (channel_combo, 1, 2, 2, 3, FILL | EXPAND);
if (!ARDOUR::Profile->get_sae ()) {
! l = manage (new Label (_("Track mode:")));
! l->set_alignment (1, 0.5);
! table->attach (*l, 0, 1, 3, 4);
! table->attach (track_mode_combo, 1, 2, 3, 4, FILL | EXPAND);
}
! l = manage (new Label (_("Add to edit group:")));
! l->set_alignment (1, 0.5);
! table->attach (*l, 0, 1, 4, 5);
! table->attach (route_group_combo, 1, 2, 4, 5, FILL | EXPAND);
! table->attach (new_route_group_button, 2, 3, 4, 5);
!
! get_vbox()->pack_start (*table);
!
! get_vbox()->set_spacing (6);
! get_vbox()->set_border_width (6);
! get_vbox()->show_all ();
/* track template info will be managed whenever
this dialog is shown, via ::on_show()
--- 98,188 ----
channel_combo.set_active_text (channel_combo_strings.front());
track_mode_combo.set_active_text (track_mode_strings.front());
+ VBox* vbox = manage (new VBox);
+ Gtk::Label* l;
+
+ get_vbox()->set_spacing (4);
+
+ vbox->set_spacing (18);
+ vbox->set_border_width (5);
+
+ Table *type_table = manage (new Table (2, 4, false));
+
+ type_table->set_row_spacings (6);
+ type_table->set_col_spacing (2, 6);
+
+ /* track/bus choice & modes */
+
RadioButton::Group g = track_button.get_group();
bus_button.set_group (g);
track_button.set_active (true);
+ type_table->attach (track_button, 0, 1, 0, 1, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
+ type_table->attach (bus_button, 0, 1, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
! l = manage (new Label ("", Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false ));
! l->set_padding (8, 0);
! type_table->attach (*l, 1, 2, 0, 2, Gtk::FILL, Gtk::FILL, 0, 0);
/* add */
! l = manage (new Label (_("Add this many:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
! type_table->attach (*l, 2, 3, 0, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
! type_table->attach (routes_spinner, 3, 4, 0, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
! vbox->pack_start (*type_table, false, true);
! VBox* options_box = manage (new VBox);
! Table *table2 = manage (new Table (3, 3, false));
! options_box->set_spacing (6);
! table2->set_row_spacings (6);
! table2->set_col_spacing (1, 6);
!
! l = manage (new Label (_("<b>Options</b>"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
! l->set_use_markup ();
! options_box->pack_start (*l, false, true);
!
! l = manage (new Label ("", Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
! l->set_padding (8, 0);
! table2->attach (*l, 0, 1, 0, 3, Gtk::FILL, Gtk::FILL, 0, 0);
!
! /* Route configuration */
! l = manage (new Label (_("Configuration:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
! table2->attach (*l, 1, 2, 0, 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
! table2->attach (channel_combo, 2, 3, 0, 1, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
if (!ARDOUR::Profile->get_sae ()) {
!
! /* Track mode */
!
! track_mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
! table2->attach (track_mode_label, 1, 2, 1, 2, Gtk::FILL, Gtk::EXPAND, 0, 0);
! table2->attach (track_mode_combo, 2, 3, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
!
}
+
+ /* Group choise */
+
+ l = manage (new Label (_("Group:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
+ table2->attach (*l, 1, 2, 2, 3, Gtk::FILL, Gtk::EXPAND, 0, 0);
+ table2->attach (route_group_combo, 2, 3, 2, 3, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
! options_box->pack_start (*table2, false, true);
! vbox->pack_start (*options_box, false, true);
!
!
! get_vbox()->pack_start (*vbox, false, false);
!
! track_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
! bus_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
! channel_combo.set_row_separator_func (mem_fun (*this, &AddRouteDialog::channel_separator));
! route_group_combo.set_row_separator_func (mem_fun (*this, &AddRouteDialog::route_separator));
! route_group_combo.signal_changed ().connect (mem_fun (*this, &AddRouteDialog::group_changed));
!
!
! show_all_children ();
/* track template info will be managed whenever
this dialog is shown, via ::on_show()
***************
*** 161,168 ****
--- 202,211 ----
AddRouteDialog::track_type_chosen ()
{
if (track_button.get_active()) {
+ track_mode_label.set_sensitive (true);
track_mode_combo.set_sensitive (true);
} else {
+ track_mode_label.set_sensitive (false);
track_mode_combo.set_sensitive (false);
}
}
***************
*** 270,275 ****
--- 313,321 ----
chn.channels = 0;
channel_setups.push_back (chn);
+ chn.name = "separator";
+ channel_setups.push_back (chn);
+
chn.name = _("Mono");
chn.channels = 1;
channel_setups.push_back (chn);
***************
*** 331,337 ****
void
AddRouteDialog::add_route_group (RouteGroup* g)
{
! route_group_combo.append_text (g->name ());
}
RouteGroup*
--- 377,383 ----
void
AddRouteDialog::add_route_group (RouteGroup* g)
{
! route_group_combo.insert_text (2, g->name ());
}
RouteGroup*
***************
*** 349,371 ****
{
route_group_combo.clear ();
route_group_combo.append_text (_("No group"));
_session.foreach_route_group (mem_fun (*this, &AddRouteDialog::add_route_group));
route_group_combo.set_active (0);
}
!
void
! AddRouteDialog::new_route_group ()
{
! RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active);
! RouteGroupDialog d (g, Gtk::Stock::NEW);
! int const r = d.do_run ();
! if (r == Gtk::RESPONSE_OK) {
! _session.add_route_group (g);
! add_route_group (g);
! route_group_combo.set_active (route_group_combo.get_model()->children().size() - 1);
! } else {
! delete g;
}
}
--- 395,446 ----
{
route_group_combo.clear ();
route_group_combo.append_text (_("No group"));
+
+ route_group_combo.append_text ("separator");
+
_session.foreach_route_group (mem_fun (*this, &AddRouteDialog::add_route_group));
+
+ route_group_combo.append_text ("separator");
+
+ route_group_combo.append_text (_("New group..."));
+
route_group_combo.set_active (0);
}
!
void
! AddRouteDialog::group_changed ()
{
! if (route_group_combo.get_active_text () == _("New group...")) {
! RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active);
! RouteGroupDialog d (g, Gtk::Stock::NEW);
! int const r = d.do_run ();
! if (r == Gtk::RESPONSE_OK) {
! _session.add_route_group (g);
! add_route_group (g);
! route_group_combo.set_active (2);
! } else {
! delete g;
!
! route_group_combo.set_active (0);
! }
}
}
+
+ bool
+ AddRouteDialog::channel_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i)
+ {
+ channel_combo.set_active (i);
+
+ return channel_combo.get_active_text () == "separator";
+ }
+
+ bool
+ AddRouteDialog::route_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i)
+ {
+ route_group_combo.set_active (i);
+
+ return route_group_combo.get_active_text () == "separator";
+ }
+
*** add_route_dialog.h.old 2009-06-27 14:17:12.000000000 +0200
--- add_route_dialog.h 2009-06-28 14:51:49.000000000 +0200
***************
*** 30,41 ****
#include <gtkmm/spinbutton.h>
#include <gtkmm/button.h>
#include <gtkmm/comboboxtext.h>
#include "ardour/types.h"
#include "ardour/template_utils.h"
#include "ardour/session.h"
! class AddRouteDialog : public Gtk::Dialog
{
public:
AddRouteDialog (ARDOUR::Session &);
--- 30,46 ----
#include <gtkmm/spinbutton.h>
#include <gtkmm/button.h>
#include <gtkmm/comboboxtext.h>
+ #include <gtkmm/treemodel.h>
#include "ardour/types.h"
#include "ardour/template_utils.h"
#include "ardour/session.h"
! #include "ardour_dialog.h"
!
! class Editor;
!
! class AddRouteDialog : public ArdourDialog
{
public:
AddRouteDialog (ARDOUR::Session &);
***************
*** 60,68 ****
Gtk::Adjustment routes_adjustment;
Gtk::SpinButton routes_spinner;
Gtk::ComboBoxText channel_combo;
Gtk::ComboBoxText track_mode_combo;
Gtk::ComboBoxText route_group_combo;
- Gtk::Button new_route_group_button;
std::vector<ARDOUR::TemplateInfo> route_templates;
--- 65,73 ----
Gtk::Adjustment routes_adjustment;
Gtk::SpinButton routes_spinner;
Gtk::ComboBoxText channel_combo;
+ Gtk::Label track_mode_label;
Gtk::ComboBoxText track_mode_combo;
Gtk::ComboBoxText route_group_combo;
std::vector<ARDOUR::TemplateInfo> route_templates;
***************
*** 70,76 ****
void refill_channel_setups ();
void refill_route_groups ();
void add_route_group (ARDOUR::RouteGroup *);
! void new_route_group ();
void reset_template_option_visibility ();
--- 75,83 ----
void refill_channel_setups ();
void refill_route_groups ();
void add_route_group (ARDOUR::RouteGroup *);
! void group_changed ();
! bool channel_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
! bool route_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
void reset_template_option_visibility ();
|
|
2009-06-28 13:32
|
|
|
|
Thanks, that's an improvement :) I might be inclined to put the tracks/busses option in a combobox. Any thoughts on that? |
|
|
That could be great ! If you do that just replace the options_table by a VBox (spacing (6)) and maybe add a label like "Type:[newcombobox]".Also pack"Add thist many :" down souhld be better don't you think ? |
|
|
Just an other thing: to always keep a 12px border, I use (in ArdourDialog::init) set_border_width (7); because the button_box of a dialog got a 5px border. It may be good to modify in svn, but it's just a detail ;) |
|
|
Applied to SVN with a couple of tweaks. Thanks! |
|
|
That you have done is really good ! Just one thing: line 402 (add_route_dialog.cc) should be : route_group_combo.set_active (2); because if it's not, clicking "New group..." / "Cancel" / "New groupe..." will just not work (because of the combobox signal_change(): value has to change !)... |
|
|
Carl can I go ahead and resolve this issue out then? |
|
|
Fix applied to SVN, thanks! |
|
|
Issue has been closed automatically, by Trigger Close Plugin. Feel free to re-open with additional information if you think the issue is not resolved. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2009-06-28 13:31 | tinram | New Issue | |
| 2009-06-28 13:31 | tinram | File Added: Ardour_refresh_add_route_dialog.patch | |
| 2009-06-28 13:32 | tinram | File Added: Ardour_refresh_add_route_dialog.png | |
| 2009-06-28 15:35 | cth103 | Note Added: 0006187 | |
| 2009-06-28 15:35 | cth103 | Status | new => feedback |
| 2009-06-28 16:40 | tinram | Note Added: 0006188 | |
| 2009-06-28 16:43 | tinram | Note Added: 0006189 | |
| 2009-06-29 00:40 | cth103 | cost | => 0.00 |
| 2009-06-29 00:40 | cth103 | Note Added: 0006191 | |
| 2009-06-29 00:40 | cth103 | Status | feedback => resolved |
| 2009-06-29 00:40 | cth103 | Resolution | open => fixed |
| 2009-06-29 00:40 | cth103 | Assigned To | => cth103 |
| 2009-06-29 11:18 | tinram | Note Added: 0006200 | |
| 2009-06-29 11:18 | tinram | Status | resolved => feedback |
| 2009-06-29 11:18 | tinram | Resolution | fixed => reopened |
| 2009-07-05 03:16 | seablade | Note Added: 0006296 | |
| 2009-07-05 03:16 | seablade | Description Updated | |
| 2009-07-05 13:47 | cth103 | Note Added: 0006341 | |
| 2009-07-05 13:47 | cth103 | Status | feedback => resolved |
| 2009-07-05 13:47 | cth103 | Fixed in Version | => SVN 3.0 |
| 2009-07-05 13:47 | cth103 | Resolution | reopened => fixed |
| 2020-04-19 20:14 | system | Note Added: 0021940 | |
| 2020-04-19 20:14 | system | Status | resolved => closed |