#include "connectionDialog.h" ConnectionDialog::ConnectionDialog(MainWindow* newParent, const Glib::ustring& title) : buttonOK("OK"), buttonCancel("Cancel") { set_default_size(300, 100); if (newParent) myParent = newParent; else ; // handle errors set_title(title); buttonOK.signal_clicked().connect(sigc::mem_fun(*this, &ConnectionDialog::on_button_ok_click)); buttonCancel.signal_clicked().connect(sigc::mem_fun(*this, &ConnectionDialog::on_button_cancel_click)); windowBox.pack_start(contentBox, Gtk::PACK_SHRINK); windowBox.pack_start(buttonBox, Gtk::PACK_SHRINK); buttonBox.pack_end(buttonOK, Gtk::PACK_SHRINK); buttonBox.pack_end(buttonCancel, Gtk::PACK_SHRINK); add(windowBox); show_all_children(); } ConnectionDialog::~ConnectionDialog() {} void ConnectionDialog::on_button_ok_click() { hide(); } void ConnectionDialog::on_button_cancel_click() { hide(); } PasswordDialog::PasswordDialog(MainWindow* newParent, const Glib::ustring& title, QString* newTargetPW) : ConnectionDialog(newParent, title), frameIP(*newTargetPW), targetPW(newTargetPW) { *newTargetPW = ""; entryPW.signal_activate().connect(sigc::mem_fun(*this, &PasswordDialog::on_enter_password)); frameIP.add(entryPW); contentBox.add(frameIP); show_all_children(); } PasswordDialog::~PasswordDialog() {} void PasswordDialog::on_button_ok_click() { if (password != "") // there was a password set by pressing enter in the pw-entry { *targetPW = password; ConnectionDialog::on_button_ok_click(); } else // it was just typed or not supplied { *targetPW = entryPW.get_text(); if (*targetPW != "") ConnectionDialog::on_button_ok_click(); } } void PasswordDialog::on_button_cancel_click() { *targetPW = ""; ConnectionDialog::on_button_cancel_click(); } void PasswordDialog::on_enter_password() { password = entryPW.get_text(); if (password != "") on_button_ok_click(); } NewConDialog::NewConDialog(MainWindow* newParent, const Glib::ustring& title) : ConnectionDialog(newParent, title), frameIP("Host"), framePW("Password"), buttonFromFile("From File") { entryIP.signal_activate().connect(sigc::mem_fun(*this, &NewConDialog::on_enter_IP)); entryPW.signal_activate().connect(sigc::mem_fun(*this, &NewConDialog::on_enter_password)); buttonFromFile.signal_clicked().connect(sigc::mem_fun(*this, &NewConDialog::on_button_fromFile_click)); frameIP.add(entryIP); framePW.add(entryPW); contentBox.add(frameIP); contentBox.add(framePW); contentBox.add(buttonFromFile); show_all_children(); } NewConDialog::~NewConDialog() {} void NewConDialog::on_enter_password() { if (entryIP.get_text() != "") // if the IP/hostname was already supplied, we proceed without putting the focus // back on the IP field. // we also proceed if theres no password given, because theres either no password // needed or the password dialog will take care of that later on on_button_ok_click(); else entryIP.grab_focus(); } void NewConDialog::on_enter_IP() { if (entryIP.get_text() != "") { if (entryPW.get_text() == "") // if no password was supplied we put the focus on the password entryPW.grab_focus(); else on_button_ok_click(); } else return; } void NewConDialog::on_button_ok_click() { connection_IP = entryIP.get_text(); if (connection_IP != "") // we only proceed if the IP/hostname field isnt empty { connection_password = entryPW.get_text(); QString infoLine; infoLine = connection_IP; if (connection_password.length() > 0) // if the password was supplied, we assemble the string // with the necessary information { infoLine.append(" "); infoLine.append(connection_password); } // VNCConnectInfo* newCon = getConInfo(infoLine); // myParent->addConnection(newCon); ConnectionDialog::on_button_ok_click(); } } void NewConDialog::on_button_fromFile_click() { // myParent->readClientsFromFile(); ConnectionDialog::on_button_ok_click(); } MessageDialog::MessageDialog(MainWindow* newParent, const Glib::ustring& title, QString* newMessage) : ConnectionDialog(newParent, title), frameMsg("Message") { message = newMessage; entryMsg.signal_activate().connect(sigc::mem_fun(*this, &MessageDialog::on_enter_message)); frameMsg.add(entryMsg); contentBox.add(frameMsg); show_all_children(); } MessageDialog::~MessageDialog() {} void MessageDialog::on_enter_message() { if (entryMsg.get_text() != "") { on_button_ok_click(); } } void MessageDialog::on_button_ok_click() { if (entryMsg.get_text().empty()) return; *message = entryMsg.get_text(); ConnectionDialog::on_button_ok_click(); }