if(net->connectionState() == Network::Disconnected) net->requestConnect();
else net->requestDisconnect();
}
+
+void MainWin::keyPressEvent(QKeyEvent *event) {
+#ifdef Q_WS_MAC
+ int bindModifier = Qt::ControlModifier | Qt::AltModifier;
+ int jumpModifier = Qt::ControlModifier;
+#else
+ int bindModifier = Qt::ControlModifier;
+ int jumpModifier = Qt::AltModifier;
+#endif
+
+ if(Qt::Key_0 <= event->key() && event->key() <= Qt::Key_9) {
+ if(event->modifiers() == bindModifier) {
+ QModelIndex bufferIdx = Client::bufferModel()->standardSelectionModel()->currentIndex();
+ NetworkId netId = bufferIdx.data(NetworkModel::NetworkIdRole).value<NetworkId>();
+ const Network *net = Client::network(netId);
+ if(!net)
+ return;
+ QString bufferName = bufferIdx.sibling(bufferIdx.row(), 0).data().toString();
+
+ _keyboardJump[event->key()] = bufferIdx;
+ statusBar()->showMessage(tr("Bound Buffer %1::%2 to Key %3").arg(net->networkName()).arg(bufferName).arg(event->key() - Qt::Key_0), 10000);
+ event->accept();
+ }
+
+ else if(event->modifiers() == jumpModifier && _keyboardJump.contains(event->key())) {
+ Client::bufferModel()->standardSelectionModel()->setCurrentIndex(_keyboardJump[event->key()], QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+ event->accept();
+ }
+
+ else {
+ event->ignore();
+ }
+ }
+ event->ignore();
+}
protected:
void closeEvent(QCloseEvent *event);
+ virtual void keyPressEvent(QKeyEvent *event);
protected slots:
void connectedToCore();
void enableMenus();
+ QHash<int, QModelIndex> _keyboardJump;
QSystemTrayIcon *systray;
CoreConnectDlg *coreConnectDlg;
{
connect(this, SIGNAL(returnPressed()), this, SLOT(enter()));
tabComplete = new TabCompleter(this);
+
+#ifdef Q_WS_MAC
+ bindModifier = Qt::ControlModifier | Qt::AltModifier;
+ jumpModifier = Qt::ControlModifier;
+#else
+ bindModifier = Qt::ControlModifier;
+ jumpModifier = Qt::AltModifier;
+#endif
}
InputLine::~InputLine() {
}
void InputLine::keyPressEvent(QKeyEvent * event) {
+ if(event->modifiers() == jumpModifier || event->modifiers() == bindModifier) {
+ event->ignore();
+ return;
+ }
+
if(event->key() == Qt::Key_Tab) { // Tabcomplete
tabComplete->complete();
event->accept();
quasselVersion = "0.2.0-pre";
quasselDate = "2008-02-04";
- quasselBuild = 456;
+ quasselBuild = 457;
//! Minimum client build number the core needs
clientBuildNeeded = 456;