int ai::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: moveNextStep((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 1: { GameState _r = generateGameState((*reinterpret_cast< const GameSetting(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< GameState*>(_a[0]) = _r; }  break;
        case 2: changeSetting(); break;
        case 3: renderGameBoard((*reinterpret_cast< const GameState(*)>(_a[1]))); break;
        case 4: changeBoard((*reinterpret_cast< GameState(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 5;
    }
    return _id;
}
示例#2
0
//////////////////////////////////////////////////////////////
/// \brief QQPalmiLineEditInt::keyPressEvent
/// \param e
///
void QQPalmiLineEditInt::keyPressEvent(QKeyEvent *e)
{
	QQSettings settings;
	bool saveHistory = true;

	QList< QPair<QChar, QString> > palmishortcuts = settings.palmiShorcuts();

	bool eventManaged = false;
	int keyInt = e->key();
	Qt::Key key = static_cast<Qt::Key>(keyInt);

	if(e->modifiers() == Qt::AltModifier)
	{
		if(key >= SETTINGS_PALMI_SHORTCUTS_MIN_KEY &&
				key <= SETTINGS_PALMI_SHORTCUTS_MAX_KEY)
		{
			QChar keyChr = QChar(keyInt).toLower();
			for(int i = 0; i < palmishortcuts.size(); i++)
			{
				if(keyChr == palmishortcuts.at(i).first)
				{
					insertText(palmishortcuts.at(i).second);

					eventManaged = true;
					e->accept();
					break;
				}
			}
		}
		else if(key == Qt::Key_Up || key == Qt::Key_Down)
		{
			e->accept();
			emit changeBoard(key == Qt::Key_Down);
		}
	}
	else if(e->modifiers() == Qt::NoModifier)
	{
		if(key == Qt::Key_Escape)
		{
			e->accept();
			clear();
			eventManaged = true;
		}

		else if(key == Qt::Key_Up || key == Qt::Key_Down)
		{
			e->accept();
			rotateHistory(key == Qt::Key_Down);
			saveHistory = false; // Ne pas sauver lors d'une rotation
		}
	}

	if(! eventManaged)
	{
		QLineEdit::keyPressEvent(e);

		if(keyInt <= Qt::Key_ydiaeresis) //Permet de ne pas reagir sur les touches fleches / delete / ...
			completeTotoz();
	}

	if(saveHistory)
	{
		m_postHistory.last() = text();
		m_indexInPostHistory = m_postHistory.size() - 1; //last
	}
}