Mercurial > octave
diff libgui/src/history-dock-widget.cc @ 29340:0e97c97044ee
improve handling focus of filter widgets in history and workspace view
* history-dock-widget.cc (set_filter_focus): new function, setting focus and
focus proxy to the filter or the list view depending on the boolean argument;
(filter_activate): call new function set_filter_focus with the filter
activation state;
(handle_contextmenu_filter): call new function set_filter_focus with
filter activation and visibility state
* history-dock-widget.h: new function set_filter_focus
* workspace-view.cc: same as for history-dock-widget.cc
* workspace-view.h: same as for history-dock-widget.h
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Sat, 30 Jan 2021 12:24:05 +0100 |
parents | 6e0952fa5a4f |
children | 7854d5752dd2 |
line wrap: on
line diff
--- a/libgui/src/history-dock-widget.cc Thu Jan 28 00:23:00 2021 -0500 +++ b/libgui/src/history-dock-widget.cc Sat Jan 30 12:24:05 2021 +0100 @@ -124,6 +124,20 @@ m_filter->setCurrentIndex (0); } + void history_dock_widget::set_filter_focus (bool focus) + { + if (focus) + { + m_filter->setFocus (); + setFocusProxy (m_filter); + } + else + { + m_history_list_view->setFocus (); + setFocusProxy (m_history_list_view); + } + } + void history_dock_widget::filter_activate (bool state) { m_filter->setEnabled (state); @@ -133,6 +147,8 @@ m_sort_filter_proxy_model.setFilterWildcard (m_filter->currentText ()); else m_sort_filter_proxy_model.setFilterWildcard (QString ()); + + set_filter_focus (state); } void history_dock_widget::ctxMenu (const QPoint& xpos) @@ -223,6 +239,8 @@ { m_filter_shown = ! m_filter_shown; m_filter_widget->setVisible (m_filter_shown); + + set_filter_focus (m_filter_shown && m_filter_checkbox->isChecked ()) ; } void history_dock_widget::copyClipboard (void)