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

Class Index

kspread'KSpreadFormulaEditor (./koffice/kspread/kspread_editors.h:74)

class KSpreadFormulaEditor : public KSpreadCellEditor
{
    Q_OBJECT
public:
    KSpreadFormulaEditor( KSpreadCell*, KSpreadCanvas* _parent = 0, const char* _name = 0 );
    ~KSpreadFormulaEditor();

    virtual void handleKeyPressEvent( QKeyEvent* _ev );
    virtual QString text() const;
    virtual void setText(QString text);
    virtual int cursorPosition() const;
    virtual void setCursorPosition(int pos);
    // virtual void setFocus();
    virtual void insertFormulaChar(int c);

protected slots:
    void slotSizeHint( QSize );

protected:
    void resizeEvent( QResizeEvent* );
    /**
     * Steals some key events from the KFormulaEdit and sends
     * it to the @ref KSpreadCancvas ( its parent ) instead.
     */
    bool eventFilter( QObject* o, QEvent* e );

private:
    KFormulaEdit* m_pEdit;
};

kspread'KSpreadFormulaEditor::KSpreadFormulaEditor() (./koffice/kspread/kspread_editors.cc:174)

KSpreadFormulaEditor::KSpreadFormulaEditor( KSpreadCell* _cell, KSpreadCanvas* _parent, const char* _name )
  : KSpreadCellEditor( _cell, _parent, _name )
{
  // m_pEdit = new KFormulaEdit( this, 0, 0, TRUE ); // make the formula restricted
  // m_pEdit->setExtraChars(QString("$,"));  // extra characters which are allowed in formula

  m_pEdit = new KFormulaEdit( this );
  m_pEdit->enableSizeHintSignal( true );

  m_pEdit->installEventFilter( this );
  connect( m_pEdit, SIGNAL( sizeHint( QSize ) ), this, SLOT( slotSizeHint( QSize ) ) );

  setFocusProxy( m_pEdit );
  setFontPropagation( AllChildren );
  setPalettePropagation( AllChildren );
}


kspread'KSpreadFormulaEditor::~KSpreadFormulaEditor() (./koffice/kspread/kspread_editors.cc:191)

KSpreadFormulaEditor::~KSpreadFormulaEditor()
{
}


kspread'KSpreadFormulaEditor::resizeEvent() (./koffice/kspread/kspread_editors.cc:195)

void KSpreadFormulaEditor::resizeEvent( QResizeEvent* )
{
  kdDebug() << "FORMULA w=" << width() << " h=" << height() << endl;
  m_pEdit->setGeometry( 0, 0, width(), height() );
}


kspread'KSpreadFormulaEditor::handleKeyPressEvent() (./koffice/kspread/kspread_editors.cc:201)

void KSpreadFormulaEditor::handleKeyPressEvent( QKeyEvent* _ev )
{
  // Send the key event to the KFormulaEdit
  QApplication::sendEvent( m_pEdit, _ev );
}


kspread'KSpreadFormulaEditor::text() (./koffice/kspread/kspread_editors.cc:207)

QString KSpreadFormulaEditor::text() const
{
    QString tmp( "*" );
    tmp += m_pEdit->text();
    return tmp;
}


kspread'KSpreadFormulaEditor::setText() (./koffice/kspread/kspread_editors.cc:214)

void KSpreadFormulaEditor::setText(QString text)
{
    if(m_pEdit !=0)
	m_pEdit->setText(text);
}

kspread'KSpreadFormulaEditor::cursorPosition() (./koffice/kspread/kspread_editors.cc:219)

int KSpreadFormulaEditor::cursorPosition() const
{
    // function cursorPosition() no implanted in libkformula
    //m_pEdit->cursorPosition();
    return 0;
}


kspread'KSpreadFormulaEditor::setCursorPosition() (./koffice/kspread/kspread_editors.cc:226)

void KSpreadFormulaEditor::setCursorPosition( int pos )
{
    //no implanted
    //m_pEdit->setCursorPosition(pos);
}

kspread'KSpreadFormulaEditor::insertFormulaChar() (./koffice/kspread/kspread_editors.cc:231)

void KSpreadFormulaEditor::insertFormulaChar( int c )
{
    m_pEdit->insertChar( c );
}


kspread'KSpreadFormulaEditor::eventFilter() (./koffice/kspread/kspread_editors.cc:236)

bool KSpreadFormulaEditor::eventFilter( QObject* o, QEvent* e )
{
  if ( o != m_pEdit )
    return FALSE;

  if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease )
  {
    QKeyEvent* k = (QKeyEvent*)e;
    if ( k->key() == Key_Escape )
    {
      QApplication::sendEvent( parent(), e );
      return TRUE;
    }
  }

  return FALSE;
}


kspread'KSpreadFormulaEditor::slotSizeHint() (./koffice/kspread/kspread_editors.cc:254)

void KSpreadFormulaEditor::slotSizeHint( QSize _s )
{
    int w = QMAX( _s.width(), width() );
    int h = QMAX( _s.height(), height() );
    resize( w, h );
}