* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
+#include <QHeaderView>
+#include <QDebug>
+#include <QMenu>
+
#include "nickview.h"
#include "nickmodel.h"
+#include "networkmodel.h"
+#include "types.h"
+#include "client.h"
-#include <QHeaderView>
-#include <QDebug>
NickView::NickView(QWidget *parent)
: QTreeView(parent)
header()->hide();
setSortingEnabled(true);
sortByColumn(0, Qt::AscendingOrder);
+
+ setContextMenuPolicy(Qt::CustomContextMenu);
+
+ connect(this, SIGNAL(customContextMenuRequested(const QPoint&)),
+ this, SLOT(showContextMenu(const QPoint&)));
}
NickView::~NickView() {
expandAll(); // FIXME We need to do this more intelligently. Maybe a pimped TreeView?
}
+void NickView::showContextMenu(const QPoint & pos ) {
+ QModelIndex index = indexAt(pos);
+ QString username = index.sibling(index.row(), 0).data().toString();
+ BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
+
+ QMenu nickContextMenu(this);
+ nickContextMenu.addAction(tr("context menu for %1").arg(username));
+ nickContextMenu.addSeparator();
+
+ QAction *whoisAction = nickContextMenu.addAction(tr("WHOIS"));
+ QAction *result = nickContextMenu.exec(QCursor::pos());
+
+ if (result == whoisAction ) {
+ Client::userInput(bufferInfo, "/WHOIS "+username);
+ }
+}