|
From: Tatsuro M. <tma...@ya...> - 2014-06-19 03:45:18
|
> I have test on 5.0-rc1 on Ubuntu 12.04 LTS and windows 7.
>
> On Ubuntu, on wxt and qt, space key functionality does not work, while on x11,
> it works as expected.
> On windows, on qt, space key functionality does not work, while on wxt and
> windows, it works as expected.
>
> Ubuntu: wxwidgtes 2.8.12, qt 4.8.1.
> Windows wxwidgtes 3.0.0, qt 5.3.0
>
> Does someone else check the qt terminal?
For qt terminal I have done quick look into the code,
Is void QtGnuplotScene::keyPressEvent(QKeyEvent* event)
in the qtterminal/QtGnuplotScene.cpp related this issue?
void QtGnuplotScene::keyPressEvent(QKeyEvent* event)
{
updateModifiers();
int key = -1;
int live;
/// @todo quit on 'q' or Ctrl+'q'
// Keypad keys
if (event->modifiers() & Qt::KeypadModifier)
switch (event->key())
{
case Qt::Key_Space : key = GP_KP_Space ; break;
case Qt::Key_Tab : key = GP_KP_Tab ; break;
case Qt::Key_Enter : key = GP_KP_Enter ; break;
case Qt::Key_F1 : key = GP_KP_F1 ; break;
case Qt::Key_F2 : key = GP_KP_F2 ; break;
case Qt::Key_F3 : key = GP_KP_F3 ; break;
case Qt::Key_F4 : key = GP_KP_F4 ; break;
case Qt::Key_Insert : key = GP_KP_Insert ; break;
case Qt::Key_End : key = GP_KP_End ; break;
case Qt::Key_Down : key = GP_KP_Down ; break;
case Qt::Key_PageDown : key = GP_KP_Page_Down; break;
case Qt::Key_Left : key = GP_KP_Left ; break;
case Qt::Key_Right : key = GP_KP_Right ; break;
case Qt::Key_Home : key = GP_KP_Home ; break;
case Qt::Key_Up : key = GP_KP_Up ; break;
case Qt::Key_PageUp : key = GP_KP_Page_Up ; break;
case Qt::Key_Delete : key = GP_KP_Delete ; break;
case Qt::Key_Equal : key = GP_KP_Equal ; break;
case Qt::Key_Asterisk : key = GP_KP_Multiply ; break;
case Qt::Key_Plus : key = GP_KP_Add ; break;
case Qt::Key_Comma : key = GP_KP_Separator; break;
case Qt::Key_Minus : key = GP_KP_Subtract ; break;
case Qt::Key_Period : key = GP_KP_Decimal ; break;
case Qt::Key_Slash : key = GP_KP_Divide ; break;
case Qt::Key_0 : key = GP_KP_0 ; break;
case Qt::Key_1 : key = GP_KP_1 ; break;
case Qt::Key_2 : key = GP_KP_2 ; break;
case Qt::Key_3 : key = GP_KP_3 ; break;
case Qt::Key_4 : key = GP_KP_4 ; break;
case Qt::Key_5 : key = GP_KP_5 ; break;
case Qt::Key_6 : key = GP_KP_6 ; break;
case Qt::Key_7 : key = GP_KP_7 ; break;
case Qt::Key_8 : key = GP_KP_8 ; break;
case Qt::Key_9 : key = GP_KP_9 ; break;
}
// ASCII keys
else if ((event->key() <= 0xff) && (!event->text().isEmpty()))
// event->key() does not respect the case
key = event->text()[0].toLatin1();
// Special keys
else
switch (event->key())
{
case Qt::Key_Backspace : key = GP_BackSpace ; break;
case Qt::Key_Tab : key = GP_Tab ; break;
case Qt::Key_Return : key = GP_Return ; break;
case Qt::Key_Escape : key = GP_Escape ; break;
case Qt::Key_Delete : key = GP_Delete ; break;
case Qt::Key_Pause : key = GP_Pause ; break;
case Qt::Key_ScrollLock : key = GP_Scroll_Lock; break;
case Qt::Key_Insert : key = GP_Insert ; break;
case Qt::Key_Home : key = GP_Home ; break;
case Qt::Key_Left : key = GP_Left ; break;
case Qt::Key_Up : key = GP_Up ; break;
case Qt::Key_Right : key = GP_Right ; break;
case Qt::Key_Down : key = GP_Down ; break;
case Qt::Key_PageUp : key = GP_PageUp ; break;
case Qt::Key_PageDown : key = GP_PageDown ; break;
case Qt::Key_End : key = GP_End ; break;
case Qt::Key_Enter : key = GP_KP_Enter ; break;
case Qt::Key_F1 : key = GP_F1 ; break;
case Qt::Key_F2 : key = GP_F2 ; break;
case Qt::Key_F3 : key = GP_F3 ; break;
case Qt::Key_F4 : key = GP_F4 ; break;
case Qt::Key_F5 : key = GP_F5 ; break;
case Qt::Key_F6 : key = GP_F6 ; break;
case Qt::Key_F7 : key = GP_F7 ; break;
case Qt::Key_F8 : key = GP_F8 ; break;
case Qt::Key_F9 : key = GP_F9 ; break;
case Qt::Key_F10 : key = GP_F10 ; break;
case Qt::Key_F11 : key = GP_F11 ; break;
case Qt::Key_F12 : key = GP_F12 ; break;
}
if (key >= 0)
live = m_eventHandler->postTermEvent(GE_keypress,
int(m_lastMousePos.x()), int(m_lastMousePos.y()), key, 0, m_widget);
else
live = true;
// Key handling in persist mode
// !live means (I think!) that we are in persist mode
if (!live) {
switch (key) {
default:
break;
case 'i':
int i = m_key_boxes.count();
/* FIXME: This shouldn't happen, but it does. */
if (i > m_plot_group.count())
i = m_plot_group.count();
while (i-- > 0) {
bool isVisible = m_plot_group[i]->isVisible();
isVisible = !isVisible;
m_plot_group[i]->setVisible(isVisible);
m_key_boxes[i].setHidden(!isVisible);
}
break;
}
}
QGraphicsScene::keyPressEvent(event);
}
Tatsuro
|