Exemplo n.º 1
0
void MarkListTable::select( int i )
{
	if ( i < 0 || i >= (signed) items.count() || i == sel )
		return ;

	MarkListTableItem *it = items.at( i );
	if ( sel != -1 )
	{
		items.at( sel )->setSelect( FALSE );
		updateCell( sel, 0 );
		updateCell( sel, 1 );
		//updateCell( sel, 2 );
	}
	it->setSelect( TRUE );
	sel = i;
	updateCell( i, 0 );
	updateCell( i, 1 );
	//updateCell( i, 2 );
	emit selected( i );
	emit selected( it->text() );
	if ( ( i<=0 || rowIsVisible( i-1 ) ) &&
	     ( i>= (signed) items.count()-1 || rowIsVisible( i+1 ) ) )
		return;
	setTopCell( QMAX( 0, i - viewHeight()/cellHeight()/2 ) );
}
/**
 * Override QMultiLineEdit to performe traversal.
 *
 * @param keyEvent key event to handle
 */
void TextViewer::keyPressEvent(QKeyEvent *key)
{
    int k = key->key();
    if ((k == Qt::Key_Up && rowIsVisible(0))
        || (k == Qt::Key_Down && rowIsVisible(numRows() - 1))
        || (k == Qt::Key_Tab))  {
        parentWidget()->setFocus();
    } else {
        QMultiLineEdit::keyPressEvent(key);
    }
}
Exemplo n.º 3
0
void DiffView::setCenterOffset(int offset)
{
    if (!rowIsVisible(offset))
    {
        int visiblerows = viewHeight()/cellHeight(0);
        setTopCell( qMax(0, offset - visiblerows/2) );
    }
}
/**
 * Override QMultiLineEdit to notify Java peer of traversal out.
 *
 * @param keyEvent key event to handle
 */
void TextFieldBody::keyPressEvent(QKeyEvent *key)
{
    int k = key->key();
    // always handle select event because it switches 
    // between the modal and non-modal modes
#ifdef QT_KEYPAD_MODE
    if (k == Qt::Key_Select) {
        QMultiLineEdit::keyPressEvent(key);
    } else if (isModalEditing()) {
#endif
        if (isReadOnly()) {
            if ((k == Qt::Key_Up && rowIsVisible(0))
                || (k == Qt::Key_Down && rowIsVisible(numRows() - 1)))  {
                
                PlatformMScreen * mscreen = PlatformMScreen::getMScreen();
                mscreen->keyPressEvent(key);
                
            } else {
                QMultiLineEdit::keyPressEvent(key);
            }
        } else {
            int line;
            int col;
            QMultiLineEdit::getCursorPosition(&line, &col);
            if ((k == Qt::Key_Up && line == 0)  
                || (k == Qt::Key_Down && (line == numLines() - 1))){
                
                PlatformMScreen * mscreen = PlatformMScreen::getMScreen();
                mscreen->keyPressEvent(key);
                
            } else {
                QMultiLineEdit::keyPressEvent(key);
            }
        }
#ifdef QT_KEYPAD_MODE
    } else {
        // not handle events while it's in not modal state
        key->ignore();
    }
#endif
}