Mercurial > octave-nkf
diff libgui/src/main-window.cc @ 16970:78116b88dbf5
enable readline key bindings in terminal widget of gui (bug #36986)
* TerminalView.cpp(constructor): connect signal indicating focus change to
related slot of main window for setting/resetting shortcuts,
(focusInEvent,focusOutEvent): emit focus change signal
* TerminalView.h: new signal set_global_shortcuts_signal for focus change
* QWinTerminalImpl.cpp(constructor): connect signal indicating focus change to
related slot in main window,
(focusInEvent,focusOutEvent): emit focus change signal
* QWinTerminalImpl.h: new signal set_global_shortcuts_signal for focus change
* main-window.cc(construct): connect signal emitted on terminal focus change
to related slot of the editor for setting/resetting shortcuts, call
new function set_global_shortcuts for initializing shortcuts
(construct_file_menu): add shortcut conext for open action, class variable
for exit action
(construct_new_menu): add shortcut conext for new action,
(construct_edit_menu): make find files action a class variable,
(set_global_shortcuts): new slot for setting or resetting some shortcuts,
also emits signal for child widgets
* main-window.h: new slot set_global_shortcuts,
new signal set_widget_shortcuts_signal,
class wide variables for find files and exit action
* file-editor.cc(construct): change QActions into class wide variables and
add _ before variale names, do not set shortcuts, call set_shortcuts instead,
(set_shortcuts): new function for setting or resetting shortcuts
* file-editor.h: new function set_shortcuts, new names for QActions
author | Torsten <ttl@justmail.de> |
---|---|
date | Sat, 13 Jul 2013 10:28:57 +0200 |
parents | eefcfeb37446 |
children | c50ee84842a9 |
line wrap: on
line diff
--- a/libgui/src/main-window.cc Fri Jul 12 20:31:08 2013 -0700 +++ b/libgui/src/main-window.cc Sat Jul 13 10:28:57 2013 +0200 @@ -799,6 +799,9 @@ connect (file_browser_window, SIGNAL (find_files_signal (const QString&)), this, SLOT (find_files (const QString&))); + connect (this, SIGNAL (set_widget_shortcuts_signal (bool)), + editor_window, SLOT (set_shortcuts (bool))); + connect_uiwidget_links (); setWindowTitle ("Octave"); @@ -835,6 +838,8 @@ construct_octave_qt_link (); + set_global_shortcuts (true); + #ifdef HAVE_QSCINTILLA connect (this, SIGNAL (insert_debugger_pointer_signal (const QString&, int)), @@ -966,6 +971,8 @@ _open_action = file_menu->addAction (QIcon (":/actions/icons/fileopen.png"), tr ("Open...")); + _open_action->setShortcutContext (Qt::ApplicationShortcut); + #ifdef HAVE_QSCINTILLA file_menu->addMenu (editor_window->get_mru_menu ()); @@ -987,8 +994,8 @@ file_menu->addSeparator (); - QAction *exit_action = file_menu->addAction (tr ("Exit")); - exit_action->setShortcut (QKeySequence::Quit); + _exit_action = file_menu->addAction (tr ("Exit")); + _exit_action->setShortcutContext (Qt::ApplicationShortcut); connect (preferences_action, SIGNAL (triggered ()), this, SLOT (process_settings_dialog_request ())); @@ -1004,7 +1011,7 @@ connect (save_workspace_action, SIGNAL (triggered ()), this, SLOT (handle_save_workspace_request ())); - connect (exit_action, SIGNAL (triggered ()), + connect (_exit_action, SIGNAL (triggered ()), this, SLOT (close ())); } @@ -1016,6 +1023,7 @@ _new_script_action = new_menu->addAction (QIcon (":/actions/icons/filenew.png"), tr ("Script")); + _new_script_action->setShortcutContext (Qt::ApplicationShortcut); QAction *new_function_action = new_menu->addAction (tr ("Function")); new_function_action->setEnabled (true); @@ -1060,9 +1068,8 @@ edit_menu->addSeparator (); - QAction *find_files_action + _find_files_action = edit_menu->addAction (tr ("Find Files...")); - find_files_action->setShortcut (ctrl_shift + Qt::Key_F); edit_menu->addSeparator (); @@ -1075,7 +1082,7 @@ QAction *clear_workspace_action = edit_menu->addAction (tr ("Clear Workspace")); - connect (find_files_action, SIGNAL (triggered()), + connect (_find_files_action, SIGNAL (triggered()), this, SLOT (find_files ())); connect (clear_command_window_action, SIGNAL (triggered ()), @@ -1571,4 +1578,33 @@ } +void +main_window::set_global_shortcuts (bool set_shortcuts) +{ + if (set_shortcuts) + { + _open_action->setShortcut (QKeySequence::Open); + _new_script_action->setShortcut (QKeySequence::New); + + _exit_action->setShortcut (QKeySequence::Quit); + + _find_files_action->setShortcut (Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_F); + + } + else + { + + QKeySequence no_key = QKeySequence (); + + _open_action->setShortcut (no_key); + _new_script_action->setShortcut (no_key); + + _exit_action->setShortcut (no_key); + + _find_files_action->setShortcut (no_key); + + } + + emit set_widget_shortcuts_signal (set_shortcuts); +}