From: Alexander von Renteln Date: Thu, 28 Feb 2008 17:32:02 +0000 (+0000) Subject: added "join channel" to network context menu in the bufferview (bug 122) X-Git-Tag: 0.2.0-alpha2~10 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=e0872cf3b3cdb8c52c5a52f32c3140143a29409d added "join channel" to network context menu in the bufferview (bug 122) --- diff --git a/src/client/client.h b/src/client/client.h index 4d1bad6c..30a3d164 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -62,6 +62,8 @@ public: static Buffer *buffer(BufferInfo); static inline Buffer *monitorBuffer() { return instance()->_monitorBuffer; } + Buffer *statusBuffer(const NetworkId &networkid) const; + static QList networkIds(); static const Network * network(NetworkId); @@ -193,8 +195,6 @@ private: static void setCurrentCoreAccount(AccountId); static inline BufferSyncer *bufferSyncer() { return instance()->_bufferSyncer; } - Buffer *statusBuffer(const NetworkId &networkid) const; - static QPointer instanceptr; QPointer socket; diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index d83f696a..d4deeea9 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -153,6 +153,7 @@ void BufferView::showContextMenu(const QPoint &pos) { QMenu contextMenu(this); QAction *connectNetAction = new QAction(tr("Connect"), this); QAction *disconnectNetAction = new QAction(tr("Disconnect"), this); + QAction *joinChannelAction = new QAction(tr("Join Channel"), this); QAction *joinBufferAction = new QAction(tr("Join"), this); QAction *partBufferAction = new QAction(tr("Part"), this); @@ -182,6 +183,8 @@ void BufferView::showContextMenu(const QPoint &pos) { if(index.data(NetworkModel::ItemTypeRole) == NetworkModel::NetworkItemType) { if(index.data(NetworkModel::ItemActiveRole).toBool()) { contextMenu.addAction(disconnectNetAction); + contextMenu.addSeparator(); + contextMenu.addAction(joinChannelAction); } else { contextMenu.addAction(connectNetAction); } @@ -204,6 +207,7 @@ void BufferView::showContextMenu(const QPoint &pos) { removeBufferAction->setEnabled(false); removeBufferAction->setToolTip("To delete the buffer, part the channel first."); joinBufferAction->setVisible(false); + whoBufferAction->setVisible(false); } else { partBufferAction->setVisible(false); } @@ -222,6 +226,18 @@ void BufferView::showContextMenu(const QPoint &pos) { else network->requestDisconnect(); } else + if(result == joinChannelAction) { + bool ok; + QString channelName = QInputDialog::getText(this, tr("Join Channel"), + tr("Input channel name:"),QLineEdit::Normal, + QDir::home().dirName(), &ok); + if (ok && !channelName.isEmpty()) { + const Buffer *statusbuffer = Client::instance()->statusBuffer(index.data(NetworkModel::NetworkIdRole).value()); + if(statusbuffer) { + Client::instance()->userInput(statusbuffer->bufferInfo(), QString("/J %1").arg(channelName)); + } + } + } else if(result == joinBufferAction) { Client::instance()->userInput(bufferInfo, QString("/JOIN %1").arg(channelname)); } else diff --git a/version.inc b/version.inc index 244d8df8..a9c60541 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-alpha1+"; quasselDate = "2008-02-27"; - quasselBuild = 593; + quasselBuild = 595; //! Minimum client build number the core needs clientBuildNeeded = 563;