Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ircservereditor.cpp

Go to the documentation of this file.
00001 #include "ircservereditor.h"
00002 #include "ircchannel.h"
00003 
00004 /* OPIE */
00005 #include <qpe/qpeapplication.h>
00006 
00007 /* QT */
00008 #include <qmessagebox.h>
00009 #include <qlayout.h>
00010 #include <qlabel.h>
00011 #include <qwhatsthis.h>
00012 
00013 IRCServerEditor::IRCServerEditor(IRCServer server, QWidget* parent, const char* name, bool modal, WFlags) : QDialog(parent, name, modal, WStyle_ContextHelp) {
00014     QGridLayout *layout = new QGridLayout(this, 7, 2, 5, 5);
00015     QLabel *label = new QLabel(tr("Profile name :"), this);
00016     m_name = new QLineEdit(server.name(), this);
00017     QWhatsThis::add(m_name, tr("The name of this server profile in the overview"));
00018     layout->addWidget(label, 0, 0);
00019     layout->addWidget(m_name, 0, 1);
00020     label = new QLabel(tr("Hostname :"), this);
00021     m_hostname = new QLineEdit(server.hostname(), this);
00022     QWhatsThis::add(m_hostname, tr("The server to connect to - can be any valid host name or IP address"));
00023     layout->addWidget(label, 1, 0);
00024     layout->addWidget(m_hostname, 1, 1);
00025     label = new QLabel(tr("Port :"), this);
00026     m_port = new QLineEdit(QString::number(server.port()), this);
00027     QWhatsThis::add(m_port, tr("The server port to connect to. Usually 6667"));
00028     layout->addWidget(label, 2, 0);
00029     layout->addWidget(m_port, 2, 1);
00030     label = new QLabel(tr("Nickname :"), this);
00031     m_nickname = new QLineEdit(server.nick(), this);
00032     QWhatsThis::add(m_nickname, tr("Your nick name on the IRC network"));
00033     layout->addWidget(label, 3, 0);
00034     layout->addWidget(m_nickname, 3, 1);
00035     label = new QLabel(tr("Realname :"), this);
00036     m_realname = new QLineEdit(server.realname(), this);
00037     QWhatsThis::add(m_realname, tr("Your real name"));
00038     layout->addWidget(label, 4, 0);
00039     layout->addWidget(m_realname, 4, 1);
00040     label = new QLabel(tr("Password :"), this);
00041     m_password = new QLineEdit(server.password(), this);
00042     m_password->setEchoMode( QLineEdit::Password );
00043     QWhatsThis::add(m_password, tr("Password to connect to the server (if required)"));
00044     layout->addWidget(label, 5, 0);
00045     layout->addWidget(m_password, 5, 1);
00046     label = new QLabel(tr("Channels :"), this);
00047     m_channels = new QLineEdit(server.channels(), this);
00048     QWhatsThis::add(m_channels, tr("Comma-Separated list of all channels you would like to join automatically"));
00049     layout->addWidget(label, 6, 0);
00050     layout->addWidget(m_channels, 6, 1);
00051     setCaption(tr("Edit server information"));
00052 
00053     QPEApplication::showDialog( this );
00054 }
00055 
00056 
00057 void IRCServerEditor::accept() {
00058     if (m_name->text().length()==0)
00059         QMessageBox::critical(this, tr("Error"), tr("Profile name required"));
00060     else if (m_hostname->text().length()==0)
00061         QMessageBox::critical(this, tr("Error"), tr("Host name required"));
00062     //else if (m_port->text().toInt()<=0)
00063     //    QMessageBox::critical(this, tr("Error"), tr("Port required"));
00064     else if (m_nickname->text().length()==0)
00065         QMessageBox::critical(this, tr("Error"), tr("Nickname required"));
00066     //else if (m_realname->text().length()==0)
00067     //    QMessageBox::critical(this, tr("Error"), tr("Realname required"));
00068     else {
00069         /* Now verify whether the channel list has a valid format */
00070         QStringList channels = QStringList::split(QChar(','), m_channels->text());
00071         for (QStringList::Iterator it = channels.begin(); it != channels.end(); ++it) {
00072             QString channelName = (*it).stripWhiteSpace();
00073             if (!IRCChannel::isValid(channelName)) {
00074                 QMessageBox::critical(this, tr("Error"), tr("The channel list needs to contain a\ncomma "
00075                 "separated list of valid\n channel names (starting \n"
00076                 "with one of '#' '+' '&' '!'"));
00077                 return;
00078             }
00079         }
00080         QDialog::accept();
00081     }
00082 }
00083 
00084 IRCServer IRCServerEditor::getServer() {
00085     IRCServer server;
00086     server.setName(m_name->text());
00087     server.setHostname(m_hostname->text());
00088     server.setPort(m_port->text().toInt());
00089     server.setNick(m_nickname->text());
00090     server.setRealname(m_realname->text());
00091     server.setUsername(m_nickname->text());
00092     server.setPassword(m_password->text());
00093     server.setChannels(m_channels->text());
00094     return server;
00095 }

Generated on Sat Nov 5 16:17:41 2005 for OPIE by  doxygen 1.4.2