PyObject* QString2PyString(QString string)
{
  PyObject *pyString;
  
  const unsigned short* tmp = string.ucs2();
  
  if(tmp)
  {
    #if Py_UNICODE_SIZE == 4
      Py_UNICODE *buf = new Py_UNICODE[string.length()];
      
      for(unsigned int i = 0; i < string.length(); i++)
      {
        buf[i] = tmp[i];
      }
      pyString = PyUnicode_FromWideChar(buf, string.length());
  
      delete [] buf;
    #else
      pyString = PyUnicode_FromWideChar((Py_UNICODE*)tmp, string.length());
    #endif
  }
    
  else
    pyString = PyString_FromString("");
  
  return pyString;
}

void SKLineEdit::keyPressEvent(QKeyEvent* e)
{
  QLineEdit::keyPressEvent(e);

  if(!e->text().isEmpty())
  {
    karamba* k = static_cast<karamba*>(parent());
    k->keyPressed(e->text(), m_input);
  }
}

void SKLineEdit::keyReleaseEvent(QKeyEvent* e)
{
  QLineEdit::keyReleaseEvent(e);
}