diff options
Diffstat (limited to 'src/gui/connectionDialog.cpp')
| -rw-r--r-- | src/gui/connectionDialog.cpp | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/src/gui/connectionDialog.cpp b/src/gui/connectionDialog.cpp new file mode 100644 index 0000000..8c5b743 --- /dev/null +++ b/src/gui/connectionDialog.cpp @@ -0,0 +1,216 @@ +#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(); +} |
