/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ /* Copyright (C) 2004 by Peter Simonsson */ #include "joinchanneldialog.h" #include "joinchannelui.h" #include "server.h" #include "channel.h" #include "servergroupsettings.h" #include #include #include #include namespace Konversation { JoinChannelDialog::JoinChannelDialog(Server* server, TQWidget *parent, const char *name) : KDialogBase(parent, name, true, i18n("Join Channel on %1").arg(server->getDisplayName()), Ok|Cancel, Ok) { m_server = server; m_widget = new JoinChannelUI(this); setMainWidget(m_widget); m_widget->serverLbl->setText(server->getDisplayName()); if (m_server->getServerGroup()) { ChannelList history = server->getServerGroup()->channelHistory(); ChannelList::iterator endIt = history.end(); const TQPtrList &channels = server->getChannelList(); TQPtrListIterator chanIt(channels); Channel* chan = 0; bool joined = false; for(ChannelList::iterator it = history.begin(); it != endIt; ++it) { chan = chanIt.toFirst(); joined = false; while(chan) { if(chan->getName() == (*it).name()) { joined = true; } ++chanIt; chan = chanIt.current(); } if(!joined) { m_widget->channelCombo->addToHistory((*it).name()); } } } m_widget->channelCombo->setCurrentText(""); } JoinChannelDialog::~JoinChannelDialog() { } TQString JoinChannelDialog::channel() const { TQString channel = m_widget->channelCombo->currentText(); if(!m_server->isAChannel(channel)) { channel = '#' + channel; } return channel; } TQString JoinChannelDialog::password() const { return m_widget->passwordEdit->text(); } void JoinChannelDialog::slotOk() { // If the channel already exist in the history only the password will be updated. if (m_server->getServerGroup()) m_server->getServerGroup()->appendChannelHistory(ChannelSettings(channel(), password())); accept(); } } #include "joinchanneldialog.moc"