Re: Several newbie questions

Erik Johansson <[email protected]>
Newsgroups gmane.network.licq.general
Message-ID <[email protected]>
On Thursday 22 June 2006 11:38, Georgi Chulkov wrote:
> 1) Is it possible to send messages with Enter and insert a newline with
> Ctrl-enter, which is the opposite of the default.

Attaching a patch that makes this possible. It's a bit rough atm (not 
configurable at runtime), but i'll fix that as soon as i have some time to 
spare. But please test the patch and report back to the list.

// Erik

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Licq-Main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/licq-main
licq-send-with-enter.patch (text/x-diff, 1.4 KB)
Index: mledit.cpp
===================================================================
--- mledit.cpp	(revision 4451)
+++ mledit.cpp	(working copy)
@@ -47,12 +47,6 @@
     setWordWrap(NoWrap);
   }
 
-  QAccel *a = new QAccel( this );
-  a->connectItem(a->insertItem(Key_Enter + CTRL),
-                 this, SIGNAL(signal_CtrlEnterPressed()));
-  a->connectItem(a->insertItem(Key_Return + CTRL),
-                 this, SIGNAL(signal_CtrlEnterPressed()));
-
   if (editFont) QWidget::setFont(*editFont, true);
 }
 
@@ -154,8 +148,30 @@
 
 void MLEditWrap::keyPressEvent( QKeyEvent *e )
 {
-  if(e->state() & ControlButton) {
-    switch(e->key()) {
+  const bool m_sendWithCtrlEnter = false;
+
+  const bool isEnter = (e->key() == Key_Enter || e->key() == Key_Return);
+  const bool isCtrl  = (e->state() & ControlButton);
+
+  if (isEnter)
+  {
+    if ((m_sendWithCtrlEnter && isCtrl) || (!m_sendWithCtrlEnter && !isCtrl))
+    {
+      emit signal_CtrlEnterPressed();
+      return;
+    }
+
+    if (!m_sendWithCtrlEnter && isCtrl)
+    {
+      QKeyEvent enter(QEvent::KeyPress, e->key(), e->ascii(), Qt::NoButton, e->text(), e->isAutoRepeat(), e->count());
+      return QMultiLineEdit::keyPressEvent(&enter);
+    }
+  }
+
+  if (isCtrl)
+  {
+    switch (e->key())
+    {
     case Key_W:
       cursorWordBackward(true);
       del();
@@ -169,6 +185,7 @@
       break;
     default:
       QMultiLineEdit::keyPressEvent(e);
+      break;
     }
     return;
   }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.