Пример #1
0
/*!
    \reimp
*/
bool QButtonGroup::event( QEvent * e )
{
    if ( e->type() == QEvent::ChildInserted ) {
	QChildEvent * ce = (QChildEvent *) e;
	if ( radio_excl && ::qt_cast<QRadioButton*>(ce->child()) ) {
	    QButton * button = (QButton *) ce->child();
	    if ( button->isToggleButton() && !button->isOn() &&
		 selected() && (selected()->focusPolicy() & TabFocus) != 0 )
		button->setFocusPolicy( (FocusPolicy)(button->focusPolicy() &
					      ~TabFocus) );
	}
    }
    return QGroupBox::event( e );
}
Пример #2
0
/** Insert a check or radio button */
void KGroupEduca::insertAnswer( const QString& text)
{
    QButton *answer = 0;

    switch( _typeMode )
    {
    case Radio:
        answer = new KRadioEduca( _vbox2 );
        break;
    case Check:
        answer = new KCheckEduca( _vbox2 );
        break;
    }
    answer->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0 ) );
    answer->setText( text );
    answer->show();
    insert(answer);
}
Пример #3
0
void MainWindow::setCurrent(QListViewItem *item)
{
    if (!item)
        return;
    
    _currentItem = (OListViewItem*)item;
//    _currentItem = dynamic_cast<OListViewItem*>(item);
    if (_currentItem->rtti() == OListViewItem::Result) {
        ResultItem *res = (ResultItem*)item;
//        ResultItem *res = dynamic_cast<ResultItem*>(item);
        richEdit->setText( res->toRichText() );
        QIntDict<QString> acts = res->actions();
        QButton *button;
        for (uint i = 0; i < acts.count(); i++) {
            button = buttonMap[i];
            if (!button && acts[i]) {
                owarn << " no button for " << *acts[i] << oendl;
                button = new QPushButton( buttonBox );
                buttonMap.insert( i,  button );
                signalMapper->setMapping(button, i );
                connect(button, SIGNAL(clicked() ), signalMapper, SLOT(map() ) );
            } else if (!acts[i]) {
		owarn << "No action for index " << i << oendl;
		continue;
	    }
            button->setText( *acts[i] );
            button->show();
        }
        for (uint i = acts.count(); i < _buttonCount; i++) {
            button = buttonMap[i];
            if (button)
                button->hide();
        }
        _buttonCount = acts.count();
        detailsFrame->show();
        buttonBox->show();
    }
    else {
        detailsFrame->hide();
        buttonBox->hide();
    }
    popupTimer->start( 300, true );
}
Пример #4
0
void QButtonGroup::buttonToggled( bool on )
{
    // introduce a QButtonListIt if calling anything
    if ( !on || !excl_grp && !radio_excl )
	return;
    QButton *bt = ::qt_cast<QButton*>(sender());		// object that sent the signal
#if defined(QT_CHECK_NULL)
    Q_ASSERT( bt );
    Q_ASSERT( bt->isToggleButton() );
#endif

    if ( !excl_grp && !::qt_cast<QRadioButton*>(bt) )
	return;
    QButtonItem * i = buttons->first();
    bool hasTabFocus = FALSE;

    while( i != 0 && hasTabFocus == FALSE ) {
	if ( ( excl_grp || ::qt_cast<QRadioButton*>(i->button) ) &&
	     (i->button->focusPolicy() & TabFocus) )
	    hasTabFocus = TRUE;
	i = buttons->next();
    }

    i = buttons->first();
    while( i ) {
	if ( bt != i->button &&
	     i->button->isToggleButton() &&
	     i->button->isOn() &&
	     ( excl_grp || ::qt_cast<QRadioButton*>(i->button) ) )
	    i->button->setOn( FALSE );
	if ( ( excl_grp || ::qt_cast<QRadioButton*>(i->button) ) &&
	     i->button->isToggleButton() &&
	     hasTabFocus )
	    i->button->setFocusPolicy( (FocusPolicy)(i->button->focusPolicy() &
						     ~TabFocus) );
	i = buttons->next();
    }

    if ( hasTabFocus )
	bt->setFocusPolicy( (FocusPolicy)(bt->focusPolicy() | TabFocus) );
}
Пример #5
0
QString EmailSelectDialog::selected()
{
  QButton *button = mButtonGroup->selected();
  if ( button ) return button->text();
  return QString::null;
}
Пример #6
0
KeyPad::KeyPad(LCDDisplay *lcd, QWidget *parent, const char *name )
    : QGrid(5, parent, name)
{
    int         i;
    QButton *btnButton;

    // save lcd at init
    display     = lcd;
    // Init variable
    dCurrent    = 0;
    iLenCurrent = 1;
    bIsDec      = false;
    dDecCurrent = 0;
    iPreviousOperator   = 0;
    dPreviousValue      = 0;

    // First line
    btnClear    = new QPushButton("CE/C", this, "Clear");
    btn7        = new QPushButton("7", this, "7");
    btn8        = new QPushButton("8", this, "8");
    btn9        = new QPushButton("9", this, "9");
    btnPlus     = new QPushButton("+", this, "+");
    // 2nd line
    btnBackspace = new QPushButton("<-",this, "Backspace");
    btn4        = new QPushButton("4", this, "4");
    btn5        = new QPushButton("5", this, "5");
    btn6        = new QPushButton("6", this, "6");
    btnMinus    = new QPushButton("-", this, "-");
    // 3rd line
    btnPercent  = new QPushButton("%", this, "percent");
    btn1        = new QPushButton("1", this, "1");
    btn2        = new QPushButton("2", this, "2");
    btn3        = new QPushButton("3", this, "3");
    btnMultiply = new QPushButton("X", this, "X");
    // 4th line
    btnAbout    = new QPushButton("?", this, "About");
    btn0        = new QPushButton("0", this, "0");
    btnDot      = new QPushButton(".", this, "dot");
    btnEqual    = new QPushButton("=", this, "equal");
    btnDivide   = new QPushButton("/", this, "divide");

    // Digit key
    grpbtnDigits = new QButtonGroup(0, "digits");
    grpbtnDigits->insert(btn0, 0);
    grpbtnDigits->insert(btn1, 1);
    grpbtnDigits->insert(btn2, 2);
    grpbtnDigits->insert(btn3, 3);
    grpbtnDigits->insert(btn4, 4);
    grpbtnDigits->insert(btn5, 5);
    grpbtnDigits->insert(btn6, 6);
    grpbtnDigits->insert(btn7, 7);
    grpbtnDigits->insert(btn8, 8);
    grpbtnDigits->insert(btn9, 9);

    // set appearance of buttons
    for(i=0; i<10; i++) {
        btnButton = grpbtnDigits->find(i);
        btnButton->setFixedSize(30,30);
    }

    // Operator key
    grpbtnOperators = new QButtonGroup(0, "operator");
    grpbtnOperators->insert(btnPlus, 1);
    grpbtnOperators->insert(btnMinus,2);
    grpbtnOperators->insert(btnMultiply,3);
    grpbtnOperators->insert(btnDivide,4);
    grpbtnOperators->insert(btnEqual,5);
    // set appearance of buttons
    for(i=1; i<6; i++) {
        btnButton = grpbtnOperators->find(i);
        btnButton->setFixedSize(30,30);
    }
    btnClear->setFixedSize(30,30);
    btnClear->setPalette(QPalette( QColor(255, 99, 71) ) );
    btnDot->setFixedSize(30,30);
    btnPercent->setFixedSize(30,30);
    btnBackspace->setFixedSize(30,30);
    btnAbout->setFixedSize(30,30);

    m_buttonKeys.insert(Key_0, btn0);
    m_buttonKeys.insert(Key_1, btn1);
    m_buttonKeys.insert(Key_2, btn2);
    m_buttonKeys.insert(Key_3, btn3);
    m_buttonKeys.insert(Key_4, btn4);
    m_buttonKeys.insert(Key_5, btn5);
    m_buttonKeys.insert(Key_6, btn6);
    m_buttonKeys.insert(Key_7, btn7);
    m_buttonKeys.insert(Key_8, btn8);
    m_buttonKeys.insert(Key_9, btn9);
    m_buttonKeys.insert(Key_Period, btnDot);
    m_buttonKeys.insert(Key_Plus, btnPlus);
    m_buttonKeys.insert(Key_Minus, btnMinus);
    m_buttonKeys.insert(Key_Equal, btnEqual);
    m_buttonKeys.insert(Key_Asterisk, btnMultiply);
    m_buttonKeys.insert(Key_Slash, btnDivide);
    m_buttonKeys.insert(Key_Percent, btnPercent);
    m_buttonKeys.insert(Key_Backspace, btnBackspace);

    // SIGNALS AND SLOTS
    connect(grpbtnDigits, SIGNAL(clicked(int) ), this, SLOT(enterDigits(int)));
    connect(grpbtnOperators, SIGNAL(clicked(int)), this, SLOT(operatorPressed(int)));
    connect(btnClear, SIGNAL(clicked()), this, SLOT(clearLCD()));
    connect(btnBackspace, SIGNAL(clicked()), this, SLOT(backspace()));
    connect(btnAbout, SIGNAL(clicked()), this, SLOT(aboutDialog()));
    connect(btnDot, SIGNAL(clicked()), this, SLOT(gotoDec()));
    connect(display, SIGNAL(keyPressed(int)), SLOT(slotKeyPressed(int)));
    connect(display, SIGNAL(keyReleased(int)), SLOT(slotKeyReleased(int)));
}
void ElogEntryI::saveSettings() {
  KstELOGAttribStruct	attrib;
  KConfig cfg("kstrc", false, false);
  QButton* button;
  QString str;
  unsigned int i;
  int j;

  _strAttributes.truncate( 0 );
  for( i=0; i<_attribs.count(); i++ ) {
    attrib = _attribs[i];

    switch( attrib.type ) {
      case AttribTypeText:
      str.sprintf( "%s=%s\n", attrib.attribName.latin1(), ((QLineEdit*)(attrib.pWidget))->text().latin1() );
      _strAttributes += str;
      break;

      case AttribTypeBool:
      if( ((QCheckBox*)(attrib.pWidget))->isChecked() ) {
        str.sprintf( "%s=1\n", attrib.attribName.latin1() );
        _strAttributes += str;
      }
      break;

      case AttribTypeCombo:
        str.sprintf( "%s=%s\n", attrib.attribName.latin1(), ((QComboBox*)(attrib.pWidget))->currentText().latin1() );
        _strAttributes += str;
      break;

      case AttribTypeRadio:
      button = ((QHButtonGroup*)(attrib.pWidget))->selected( );
      if( button != NULL ) {
        str.sprintf( "%s=%s\n", attrib.attribName.latin1(), button->text( ).latin1() );
        _strAttributes += str;
      }
      break;

      case AttribTypeCheck:
      for( j=0; j<((QHButtonGroup*)(attrib.pWidget))->count(); j++ ) {
        button = ((QHButtonGroup*)(attrib.pWidget))->find( j );
        if( button != NULL ) {
          if( ((QRadioButton*)button)->isChecked() ) {
            str.sprintf( "%s#%d=%s\n", attrib.attribName.latin1(), j, button->text( ).latin1() );
            _strAttributes += str;
          }
        }
      }
      break;
    }
  }

  _strText = textEditText->text();
  _bIncludeCapture = checkBoxIncludeCapture->isChecked();
  _bIncludeConfiguration = checkBoxIncludeConfiguration->isChecked();
  _bIncludeDebugInfo = checkBoxIncludeDebugInfo->isChecked();

  cfg.setGroup("ELOG");
  str.sprintf( "Attributes:%s:%d:%s", 
               _elog->configuration()->ipAddress().ascii(),
               _elog->configuration()->portNumber(),
               _elog->configuration()->name().ascii() );  
  cfg.writeEntry(str, _strAttributes);
  cfg.writeEntry("IncludeCapture", _bIncludeCapture);
  cfg.writeEntry("IncludeConfiguration", _bIncludeConfiguration);
  cfg.writeEntry("IncludeDebugInfo", _bIncludeDebugInfo);
  cfg.sync();
}
Пример #8
0
static void
button_clicked(GtkButton *button, gpointer user_data)
{
    QButton* btn = static_cast<QButton*>(user_data);
    btn->clicked();
}
Пример #9
0
void QButtonGroup::moveFocus( int key )
{
    QWidget * f = qApp->focusWidget();

    QButtonItem * i;
    i = buttons->first();
    while( i && i->button != f )
	i = buttons->next();

    if ( !i || !i->button )
	return;

    QWidget * candidate = 0;
    int bestScore = -1;

    QPoint goal( f->mapToGlobal( f->geometry().center() ) );

    i = buttons->first();
    while( i && i->button ) {
	if ( i->button != f &&
	     i->button->isEnabled() ) {
	    QPoint p(i->button->mapToGlobal(i->button->geometry().center()));
	    int score = (p.y() - goal.y())*(p.y() - goal.y()) +
			(p.x() - goal.x())*(p.x() - goal.x());
	    bool betterScore = score < bestScore || !candidate;
	    switch( key ) {
	    case Key_Up:
		if ( p.y() < goal.y() && betterScore ) {
		    if ( QABS( p.x() - goal.x() ) < QABS( p.y() - goal.y() ) ) {
			candidate = i->button;
			bestScore = score;
		    } else if ( i->button->x() == f->x() ) {
			candidate = i->button;
			bestScore = score/2;
		    }
		}
		break;
	    case Key_Down:
		if ( p.y() > goal.y() && betterScore ) {
		    if ( QABS( p.x() - goal.x() ) < QABS( p.y() - goal.y() ) ) {
			candidate = i->button;
			bestScore = score;
		    } else if ( i->button->x() == f->x() ) {
			candidate = i->button;
			bestScore = score/2;
		    }
		}
		break;
	    case Key_Left:
		if ( p.x() < goal.x() && betterScore ) {
		    if ( QABS( p.y() - goal.y() ) < QABS( p.x() - goal.x() ) ) {
			candidate = i->button;
			bestScore = score;
		    } else if ( i->button->y() == f->y() ) {
			candidate = i->button;
			bestScore = score/2;
		    }
		}
		break;
	    case Key_Right:
		if ( p.x() > goal.x() && betterScore ) {
		    if ( QABS( p.y() - goal.y() ) < QABS( p.x() - goal.x() ) ) {
			candidate = i->button;
			bestScore = score;
		    } else if ( i->button->y() == f->y() ) {
			candidate = i->button;
			bestScore = score/2;
		    }
		}
		break;
	    }
	}
	i = buttons->next();
    }

    QButton *buttoncand = ::qt_cast<QButton*>(candidate);
    if ( buttoncand && ::qt_cast<QButton*>(f) &&
	 ((QButton*)f)->isOn() &&
	 buttoncand->isToggleButton() &&
	 ( isExclusive() || ( ::qt_cast<QRadioButton*>(f) &&
			      ::qt_cast<QRadioButton*>(candidate)))) {
	if ( f->focusPolicy() & TabFocus ) {
	    f->setFocusPolicy( (FocusPolicy)(f->focusPolicy() & ~TabFocus) );
	    candidate->setFocusPolicy( (FocusPolicy)(candidate->focusPolicy()|
						     TabFocus) );
	}
	buttoncand->setOn( TRUE );
	buttoncand->animateClick();
	buttoncand->animateTimeout(); // ### crude l&f hack
    }

    if ( candidate ) {
	if (key == Key_Up || key == Key_Left)
	    QFocusEvent::setReason(QFocusEvent::Backtab);
	else
	    QFocusEvent::setReason(QFocusEvent::Tab);
	candidate->setFocus();
	QFocusEvent::resetReason();
    }
}
Пример #10
0
void QButtonGroup::setButton( int id )
{
    QButton * b = find( id );
    if ( b )
	b->setOn( TRUE );
}