- const Network *network = Client::network(index.data(NetworkModel::NetworkIdRole).value<NetworkId>());
- Q_CHECK_PTR(network);
-
- NetworkModel::itemType itemType = static_cast<NetworkModel::itemType>(index.data(NetworkModel::ItemTypeRole).toInt());
-
- switch(itemType) {
- case NetworkModel::NetworkItemType:
- showChannelList.setData(index.data(NetworkModel::NetworkIdRole));
- addItemToMenu(&showChannelList, contextMenu, index, ActiveState);
- addItemToMenu(_menuActions.action("DisconnectNet"), contextMenu, network->connectionState() != Network::Disconnected);
- addItemToMenu(_menuActions.action("ConnectNet"), contextMenu, network->connectionState() == Network::Disconnected);
- addSeparatorToMenu(contextMenu, index, ActiveState);
- addItemToMenu(_menuActions.action("JoinChannel"), contextMenu, index, ActiveState);
- break;
- case NetworkModel::BufferItemType:
- {
- BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
- switch(bufferInfo.type()) {
- case BufferInfo::ChannelBuffer:
- addItemToMenu(_menuActions.action("JoinBuffer"), contextMenu, index, InactiveState);
- addItemToMenu(_menuActions.action("PartBuffer"), contextMenu, index, ActiveState);
- addItemToMenu(_menuActions.action("HideBuffersTemporarily"), contextMenu, (bool)config());
- addItemToMenu(_menuActions.action("HideBuffersPermanently"), contextMenu, (bool)config());
- addItemToMenu(_menuActions.action("RemoveBuffer"), contextMenu, index, InactiveState);
- createHideEventsSubMenu(contextMenu, bufferInfo.bufferId());
- addItemToMenu(_menuActions.action("IgnoreList"), contextMenu);
- break;
- case BufferInfo::QueryBuffer:
- addItemToMenu(_menuActions.action("HideBuffersTemporarily"), contextMenu, (bool)config());
- addItemToMenu(_menuActions.action("HideBuffersPermanently"), contextMenu, (bool)config());
- addItemToMenu(_menuActions.action("RemoveBuffer"), contextMenu);
- createHideEventsSubMenu(contextMenu, bufferInfo.bufferId());
- break;
- default:
- addItemToMenu(_menuActions.action("HideBuffersTemporarily"), contextMenu, (bool)config());
- addItemToMenu(_menuActions.action("HideBuffersPermanently"), contextMenu, (bool)config());
- break;
- }
- }
- break;
- default:
- return;
- }
-}
-
-void BufferView::actionTriggered(QAction *result) {
- const Network *network = Client::network(_menuIndex.data(NetworkModel::NetworkIdRole).value<NetworkId>());
- Q_CHECK_PTR(network);
-
- if(network && result == _menuActions.action("ConnectNet")) {
- network->requestConnect();
- return;
- }
-
- if(network && result == _menuActions.action("DisconnectNet")) {
- network->requestDisconnect();
- return;
- }
-
-if(result == _menuActions.action("JoinChannel")) {
- // FIXME no QInputDialog in Qtopia
-#ifndef Q_WS_QWS
- bool ok;
- QString channelName = QInputDialog::getText(this, tr("Join Channel"), tr("Input channel name:"), QLineEdit::Normal, QString(), &ok);
- if(ok && !channelName.isEmpty()) {
- Client::instance()->userInput(BufferInfo::fakeStatusBuffer(_menuIndex.data(NetworkModel::NetworkIdRole).value<NetworkId>()),
- QString("/J %1").arg(channelName));
- }
-#endif
- return;
- }
-
- if(result == _menuActions.action("JoinBuffer")) {
- BufferInfo bufferInfo = _menuIndex.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
- Client::instance()->userInput(bufferInfo, QString("/JOIN %1").arg(bufferInfo.bufferName()));
- return;
- }