diff options
author | David Robillard <d@drobilla.net> | 2006-09-06 21:08:52 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-09-06 21:08:52 +0000 |
commit | 80923fdb966c74263a723f2ac6a39ea44efb07b2 (patch) | |
tree | ad84b87670612949bad257efed77652e6346beb0 /src/progs/ingenuity/ConnectWindow.cpp | |
parent | dac2461ba66560c00efb43a12e35394a698b60f7 (diff) | |
download | ingen-80923fdb966c74263a723f2ac6a39ea44efb07b2.tar.gz ingen-80923fdb966c74263a723f2ac6a39ea44efb07b2.tar.bz2 ingen-80923fdb966c74263a723f2ac6a39ea44efb07b2.zip |
Connecting/Disconnecting/Reconnecting to the engine without restarting.
git-svn-id: http://svn.drobilla.net/lad/ingen@115 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/progs/ingenuity/ConnectWindow.cpp')
-rw-r--r-- | src/progs/ingenuity/ConnectWindow.cpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/progs/ingenuity/ConnectWindow.cpp b/src/progs/ingenuity/ConnectWindow.cpp index 4cfb7a9c..6715c4ed 100644 --- a/src/progs/ingenuity/ConnectWindow.cpp +++ b/src/progs/ingenuity/ConnectWindow.cpp @@ -26,6 +26,7 @@ #include "Store.h" #include "PatchController.h" #include "PatchModel.h" +#include "App.h" namespace Ingenuity { @@ -63,10 +64,27 @@ ConnectWindow::start(CountedPtr<Ingen::Shared::ClientInterface> client) show(); } +void +ConnectWindow::init() +{ + _icon->set(Gtk::Stock::DISCONNECT, Gtk::ICON_SIZE_LARGE_TOOLBAR); + _progress_bar->set_fraction(0.0); + _url_entry->set_sensitive(true); + _connect_button->set_sensitive(true); + _disconnect_button->set_sensitive(false); + _port_spinbutton->set_sensitive(false); + _launch_radio->set_sensitive(true); + _internal_radio->set_sensitive(false); + server_toggled(); + + _progress_label->set_text(string("Disconnected")); +} void ConnectWindow::connect() { + _connect_button->set_sensitive(false); + if (_server_radio->get_active()) { Controller::instance().set_engine_url(_url_entry->get_text()); Glib::signal_timeout().connect( @@ -88,15 +106,19 @@ ConnectWindow::connect() sigc::mem_fun(this, &ConnectWindow::gtk_callback), 100); } } - - _connect_button->set_sensitive(false); } void ConnectWindow::disconnect() { - // Nope + _progress_bar->set_fraction(0.0); + _connect_button->set_sensitive(false); + _disconnect_button->set_sensitive(false); + + App::instance().disconnect(); + + init(); } @@ -247,9 +269,11 @@ ConnectWindow::gtk_callback() _progress_bar->set_fraction(1.0); _url_entry->set_sensitive(false); _connect_button->set_sensitive(false); + _disconnect_button->set_sensitive(true); _port_spinbutton->set_sensitive(false); _launch_radio->set_sensitive(false); _internal_radio->set_sensitive(false); + stage = 0; // set ourselves up for next time (if there is one) return false; // deregister this callback } else { return true; |