summaryrefslogtreecommitdiff
path: root/gtk2_ardour/new_session_dialog.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-09-17 02:09:31 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-09-17 02:09:31 +0000
commitbd82dfce946a22eb23e6b3582726ce186a52c4b6 (patch)
tree571451c3e73c9552e5cb07a5a662c20cc6e6fb98 /gtk2_ardour/new_session_dialog.cc
parent1cd155a7287f662db0548a870d3b5de1a5f40969 (diff)
more NSD changes. if JACK is not running and no interface has ever been chosen, show JUST the audio setup tab. once JACK is successfully started, reshow the NSD with just new/open tabs. still not finished with this utter piece of dreck
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5670 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/new_session_dialog.cc')
-rw-r--r--gtk2_ardour/new_session_dialog.cc83
1 files changed, 62 insertions, 21 deletions
diff --git a/gtk2_ardour/new_session_dialog.cc b/gtk2_ardour/new_session_dialog.cc
index b094e3a635..7799131737 100644
--- a/gtk2_ardour/new_session_dialog.cc
+++ b/gtk2_ardour/new_session_dialog.cc
@@ -497,12 +497,20 @@ NewSessionDialog::set_have_engine (bool yn)
engine_control.discover_servers ();
if (engine_control.interface_chosen()) {
m_notebook->append_page (engine_control, _("Audio Setup"));
+ m_notebook->show_all_children();
+ page_set = Pages (page_set | EnginePage);
} else {
- /* no interface ever selected - make it the first page */
+ /* no interface ever selected - make it the first and only page */
m_notebook->prepend_page (engine_control, _("Audio Setup"));
+ if (page_set & NewPage) {
+ m_notebook->remove_page (*new_session_table);
+ }
+ if (page_set & OpenPage) {
+ m_notebook->remove_page (*open_session_vbox);
+ }
+ m_notebook->show_all_children();
+ page_set = Pages (EnginePage);
}
- m_notebook->show_all_children();
- page_set = Pages (page_set | EnginePage);
}
}
}
@@ -776,29 +784,58 @@ NewSessionDialog::which_page () const
}
} else if (page_set == (NewPage|EnginePage)) {
- switch (num) {
- case 0:
- return NewPage;
- default:
- return EnginePage;
+ if (engine_control.interface_chosen()) {
+ switch (num) {
+ case 0:
+ return NewPage;
+ default:
+ return EnginePage;
+ }
+ } else {
+ switch (num) {
+ case 0:
+ return EnginePage;
+ default:
+ return NewPage;
+ }
}
} else if (page_set == (NewPage|EnginePage|OpenPage)) {
- switch (num) {
- case 0:
- return NewPage;
- case 1:
- return OpenPage;
- default:
- return EnginePage;
+ if (engine_control.interface_chosen()) {
+ switch (num) {
+ case 0:
+ return NewPage;
+ case 1:
+ return OpenPage;
+ default:
+ return EnginePage;
+ }
+ } else {
+ switch (num) {
+ case 0:
+ return EnginePage;
+ case 1:
+ return NewPage;
+ default:
+ return OpenPage;
+ }
}
} else if (page_set == (OpenPage|EnginePage)) {
- switch (num) {
- case 0:
- return OpenPage;
- default:
- return EnginePage;
+ if (engine_control.interface_chosen()) {
+ switch (num) {
+ case 0:
+ return OpenPage;
+ default:
+ return EnginePage;
+ }
+ } else {
+ switch (num) {
+ case 0:
+ return EnginePage;
+ default:
+ return OpenPage;
+ }
}
}
@@ -852,7 +889,11 @@ NewSessionDialog::notebook_page_changed (GtkNotebookPage* np, uint pagenum)
case EnginePage:
on_new_session_page = false;
- m_okbutton->set_label(_("Open"));
+ if (!engine_control.interface_chosen()) {
+ m_okbutton->set_label(_("Start Audio Engine"));
+ } else {
+ m_okbutton->set_label(_("Open"));
+ }
m_okbutton->set_image (*(manage (new Gtk::Image (Gtk::Stock::OPEN, Gtk::ICON_SIZE_BUTTON))));
set_response_sensitive (Gtk::RESPONSE_NONE, false);
set_response_sensitive (Gtk::RESPONSE_OK, true);