#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();
}