Source Code (Use browser search to find items of interest.)

Class Index

kdevelop'KAccelInput (./kdevelop/kdevelop/kwrite/kguicommand.h:271)

class KAccelInput : public QLineEdit {
    Q_OBJECT
  public:
    KAccelInput(QWidget *parent);
    int getKeyCode1();
    int getKeyCode2();
    void clear();
  signals:
    void valid(bool);
    void changed();
//  public slots:
//    void removeModifiers();
  protected:
    void setContents();
    virtual void keyPressEvent(QKeyEvent *);
    virtual void keyReleaseEvent(QKeyEvent *);

    int pos;
    int keyCodes[2];
};


kdevelop'KAccelInput::KAccelInput() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:897)

KAccelInput::KAccelInput(QWidget *parent) : QLineEdit(parent) {
  pos = 0;
  keyCodes[0] = keyCodes[1] = 0;
}


kdevelop'KAccelInput::getKeyCode1() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:902)

int KAccelInput::getKeyCode1() {
  return keyCodes[0];
}


kdevelop'KAccelInput::getKeyCode2() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:906)

int KAccelInput::getKeyCode2() {
  return keyCodes[1];
}


kdevelop'KAccelInput::clear() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:910)

void KAccelInput::clear() {
  //clear input line
  pos = 0;
  keyCodes[0] = keyCodes[1] = 0;
  setText("");
  emit valid(false);
  emit changed();
}
/*
void KAccelInput::removeModifiers() {

  keyCodes[0] &= ~modifierMask;
  keyCodes[1] &= ~modifierMask;
  setContents();
  emit changed();
}
*/

kdevelop'KAccelInput::setContents() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:927)

void KAccelInput::setContents() {
  QString s = keyToLanguage(keyCodes[0]);
  if (keyCodes[1] != 0) {
    s += ", ";
    s += keyToLanguage(keyCodes[1]);
  }
  setText(s);
}


kdevelop'KAccelInput::keyPressEvent() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:936)

void KAccelInput::keyPressEvent(QKeyEvent *e) {
  int keyCode, modifiers, m;

  keyCode = e->key();
  if (isSpecialKey(keyCode)) return;
  if ((pos != 0 && keyCode == Key_Backspace) || pos >= 2) {
    clear();
    if (keyCode == Key_Backspace) return;
  }

  modifiers = globalModifiers;//((KGuiCmdApp *) kapp)->getModifiers();
  m = modifier2Flag(keyCode);
  if (m) {
    //modifier pressed
    keyCodes[pos] = modifiers |= m;
  } else {
    //key pressed
    keyCodes[pos] = keyCode | modifiers;
    if (pos == 0) emit valid(true);
    emit changed();
    pos++;
  }

  //set contents of input line
  setContents();
}


kdevelop'KAccelInput::keyReleaseEvent() (./kdevelop/kdevelop/kwrite/kguicommand.cpp:963)

void KAccelInput::keyReleaseEvent(QKeyEvent *e) {
  int m;

  //remove modifier flags on release
  m = modifier2Flag(e->key());
  if (m && pos < 2) {
    keyCodes[pos] &= ~m;
    setContents();
  }
}