BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
if(!bufferInfo.isValid())
return QString();
- if(!bufferInfo.type() == BufferInfo::QueryBuffer)
+ if(bufferInfo.type() != BufferInfo::QueryBuffer)
return QString();
return bufferInfo.bufferName(); // FIXME this might break with merged queries maybe
if(!indexList().count())
return;
NetworkId networkId = indexList().at(0).data(NetworkModel::NetworkIdRole).value<NetworkId>();
- if(!networkId.isValid())
- return;
switch(type) {
case JoinChannel: {
QString channelName = contextItem();
if(channelName.isEmpty()) {
- JoinDlg dlg(networkId);
+ JoinDlg dlg(indexList().first());
if(dlg.exec() == QDialog::Accepted) {
channelName = dlg.channelName();
networkId = dlg.networkId();
break;
}
case ShowChannelList:
- emit showChannelList(networkId);
+ if(networkId.isValid())
+ emit showChannelList(networkId);
break;
case ShowIgnoreList:
- emit showIgnoreList(networkId);
+ if(networkId.isValid())
+ emit showIgnoreList(networkId);
break;
default:
break;
* JoinDlg
***************************************************************************************************************/
-NetworkModelController::JoinDlg::JoinDlg(NetworkId defaultId, QWidget *parent) : QDialog(parent) {
+NetworkModelController::JoinDlg::JoinDlg(const QModelIndex &index, QWidget *parent) : QDialog(parent) {
setWindowIcon(SmallIcon("irc-join-channel"));
setWindowTitle(tr("Join Channel"));
connect(buttonBox, SIGNAL(rejected()), SLOT(reject()));
connect(channel, SIGNAL(textChanged(QString)), SLOT(on_channel_textChanged(QString)));
-
- QString defaultName;
foreach(NetworkId id, Client::networkIds()) {
const Network *net = Client::network(id);
if(net->isConnected()) {
networks->addItem(net->networkName(), QVariant::fromValue<NetworkId>(id));
- if(id == defaultId)
- defaultName = net->networkName();
}
}
- if(!defaultName.isEmpty())
- networks->setCurrentIndex(networks->findText(defaultName));
-
+ if(index.isValid()) {
+ NetworkId networkId = index.data(NetworkModel::NetworkIdRole).value<NetworkId>();
+ if(networkId.isValid()) {
+ networks->setCurrentIndex(networks->findText(Client::network(networkId)->networkName()));
+ if(index.data(NetworkModel::BufferTypeRole) == BufferInfo::ChannelBuffer
+ && !index.data(NetworkModel::ItemActiveRole).toBool())
+ channel->setText(index.data(Qt::DisplayRole).toString());
+ }
+ }
}
NetworkId NetworkModelController::JoinDlg::networkId() const {