44 *
55 */
66
7+ #include < QKeyEvent>
78#include < QHBoxLayout>
89#include " Common/Qt/NoWheelComboBox.h"
9- #include " CommonFramework/GlobalSettingsPanel.h"
10+ // #include "CommonFramework/GlobalSettingsPanel.h"
1011#include " Controllers/ControllerTypeStrings.h"
1112#include " ControllerSelectorWidget.h"
1213
@@ -70,6 +71,10 @@ ControllerSelectorWidget::ControllerSelectorWidget(QWidget& parent, ControllerSe
7071 m_status_text->setText (QString::fromStdString (session.status_text ()));
7172
7273 m_reset_button = new QPushButton (" Reset Ctrl." , this );
74+ m_reset_button->setToolTip (
75+ " <b>Click:</b> Reset the controller.<br><br>"
76+ " <b>Shift+Click:</b> Reset and clear the controller of any state. This will unpair it with any hosts it may be connected to."
77+ );
7378 serial_row->addWidget (m_reset_button, 1 );
7479
7580 bool options_locked = session.options_locked ();
@@ -78,6 +83,8 @@ ControllerSelectorWidget::ControllerSelectorWidget(QWidget& parent, ControllerSe
7883 }
7984 m_reset_button->setEnabled (!options_locked);
8085
86+ setFocusPolicy (Qt::StrongFocus);
87+
8188 connect (
8289 interface_dropdown, static_cast <void (QComboBox::*)(int )>(&QComboBox::activated),
8390 this , [this ](int index){
@@ -112,7 +119,9 @@ ControllerSelectorWidget::ControllerSelectorWidget(QWidget& parent, ControllerSe
112119 connect (
113120 m_reset_button, &QPushButton::clicked,
114121 this , [this ](bool ){
115- m_session.reset ();
122+ bool shift_held = QGuiApplication::keyboardModifiers () & Qt::ShiftModifier;
123+ // cout << "shift = " << shift_held << endl;
124+ m_session.reset (shift_held);
116125 }
117126 );
118127
@@ -210,6 +219,43 @@ void ControllerSelectorWidget::options_locked(bool locked){
210219}
211220
212221
222+ #if 0
223+ void ControllerSelectorWidget::update_buttons(){
224+ if (m_shift_held){
225+ m_reset_button->setText("Clear Ctrl.");
226+ }else{
227+ m_reset_button->setText("Reset Ctrl.");
228+ }
229+ }
230+
231+
232+ void ControllerSelectorWidget::keyPressEvent(QKeyEvent* event){
233+ // cout << "ControllerSelectorWidget::keyPressEvent()" << endl;
234+ if (event->key() == Qt::Key_Shift){
235+ m_shift_held = true;
236+ }
237+ update_buttons();
238+ // QWidget::keyPressEvent(event);
239+ }
240+ void ControllerSelectorWidget::keyReleaseEvent(QKeyEvent* event){
241+ // cout << "ControllerSelectorWidget::keyReleaseEvent()" << endl;
242+ if (event->key() == Qt::Key_Shift){
243+ m_shift_held = false;
244+ }
245+ update_buttons();
246+ // QWidget::keyReleaseEvent(event);
247+ }
248+ void ControllerSelectorWidget::focusInEvent(QFocusEvent* event){
249+ // cout << "ControllerSelectorWidget::focusInEvent()" << endl;
250+ QWidget::focusInEvent(event);
251+ }
252+ void ControllerSelectorWidget::focusOutEvent(QFocusEvent* event){
253+ // cout << "ControllerSelectorWidget::focusOutEvent()" << endl;
254+ m_shift_held = false;
255+ update_buttons();
256+ QWidget::focusOutEvent(event);
257+ }
258+ #endif
213259
214260
215261
0 commit comments