summaryrefslogblamecommitdiffstats
path: root/src/gui/connectionDialog.cpp
blob: 8c5b7432606173ca34d352c136f4a8148f16383c (plain) (tree)























































































































































































































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