20 firstWidgetInTabOrder = NULL;
21 lastWidgetInTabOrder = NULL;
32 if (json_object_object_get_ex(details,
"isDark", &o))
33 isDark = json_object_get_boolean(o);
35 bool showArrow =
true;
36 if (json_object_object_get_ex(details,
"showArrow", &o))
37 showArrow = json_object_get_boolean(o);
40 dialogPointer = &dialog;
45 dialog.setFixedSize(dialog.layout() ? dialog.layout()->
sizeHint() : dialog.
sizeHint());
50 if( dialog.layout() == 0 )
52 QPoint topLeftMargin = QPoint(margin.left(),margin.top());
53 foreach (QObject *widget, dialog.children())
54 static_cast<QWidget *
>(widget)->move(
static_cast<QWidget *
>(widget)->pos() + topLeftMargin);
62 int availableSpaceLeftBoundary = QApplication::desktop()->availableGeometry(&dialog).left();
63 QPoint dialogTopLeft = portLeftCenter - QPoint(dialog.width() - (showArrow ? 0 : margin.right()), dialog.height()/2.);
64 bool screenSpaceLimitsPos = (availableSpaceLeftBoundary > dialogTopLeft.x());
65 if (screenSpaceLimitsPos)
67 dialogTopLeft = (screenSpaceLimitsPos? QPoint(availableSpaceLeftBoundary, dialogTopLeft.y()) :
72 dialog.move(dialogTopLeft);
80 return (dialog.result() == QDialog::Accepted ?
getAcceptedValue() : originalValue);
98 if (firstWidgetInTabOrder)
99 firstWidgetInTabOrder->removeEventFilter(
this);
102 widget->installEventFilter(
this);
104 firstWidgetInTabOrder = widget;
114 if (lastWidgetInTabOrder)
115 lastWidgetInTabOrder->removeEventFilter(
this);
118 widget->installEventFilter(
this);
120 lastWidgetInTabOrder = widget;
132 if (event->type() == QEvent::KeyPress)
134 QKeyEvent *keyEvent = (QKeyEvent *)(event);
135 bool tabPressed = (keyEvent->key() == Qt::Key_Tab);
136 bool shiftTabPressed = (keyEvent->key() == Qt::Key_Backtab);
138 bool aboutToCompleteReverseTabCycle = ((
object == firstWidgetInTabOrder) && shiftTabPressed);
139 bool aboutToCompleteTabCycle = ((
object == lastWidgetInTabOrder) && tabPressed);
141 if (aboutToCompleteReverseTabCycle || aboutToCompleteTabCycle)
143 QKeyEvent modifiedKeyEvent(event->type(), Qt::Key_Return, 0);
144 QApplication::sendEvent(
object, &modifiedKeyEvent);
146 if (aboutToCompleteReverseTabCycle)
162 return VuoInputEditor::eventFilter(
object, event);