Show
Ignore:
Timestamp:
02/16/07 05:47:30 (22 months ago)
Author:
flynd
Message:

Added option to use double Return instead of Ctrl+Return as requested in #1492.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/qt-gui/src/mledit.cpp

    r4800 r4857  
    3333 
    3434QFont *MLEditWrap::editFont = NULL; 
     35bool MLEditWrap::useDoubleReturn = false; 
    3536 
    3637MLEditWrap::MLEditWrap (bool wordWrap, QWidget* parent, bool /* doQuotes */, const char *name) 
    37   : MLEditWrapBase(parent, name), m_fixSetTextNewlines(true) 
     38  : MLEditWrapBase(parent, name), 
     39    m_fixSetTextNewlines(true), 
     40    m_lastKeyWasReturn(false) 
    3841{ 
    3942  setTextFormat(Qt::PlainText); 
     
    124127  const bool isControl = e->state() & ControlButton; 
    125128 
     129  // Get flag from last time and reset it before any possible returns 
     130  bool lastKeyWasReturn = m_lastKeyWasReturn; 
     131  m_lastKeyWasReturn = false; 
     132 
    126133  if (isShift && e->key() == Key_Insert) 
    127134    return paste(); 
     
    150157    case Key_Return: 
    151158    case Key_Enter: 
    152       emit signal_CtrlEnterPressed(); 
     159      if (useDoubleReturn) 
     160        insert("\n"); 
     161      else 
     162        emit signal_CtrlEnterPressed(); 
    153163      break; 
    154164    default: 
     
    156166    } 
    157167    return; 
     168  } 
     169 
     170  if ((e->state() & Qt::KeyButtonMask) == 0) 
     171  { 
     172    switch (e->key()) 
     173    { 
     174      case Key_Return: 
     175      case Key_Enter: 
     176        if (lastKeyWasReturn && useDoubleReturn) 
     177        { 
     178          // Return pressed twice, remove the previous line break and emit signal 
     179          moveCursor(QTextEdit::MoveBackward, true); 
     180          del(); 
     181          emit signal_CtrlEnterPressed(); 
     182          return; 
     183        } 
     184        else 
     185        { 
     186          // Return pressed once 
     187          m_lastKeyWasReturn = true; 
     188        } 
     189        break; 
     190    } 
    158191  } 
    159192