26 #if defined (HAVE_CONFIG_H)
31 #include <QApplication>
34 #include <QDialogButtonBox>
35 #include <QFileDialog>
36 #include <QGridLayout>
37 #include <QHeaderView>
38 #include <QKeySequence>
40 #include <QMessageBox>
41 #include <QPushButton>
42 #include <QVBoxLayout>
58 m_direct_shortcut =
true;
59 m_shift_modifier =
false;
67 QLineEdit::keyPressEvent (e);
71 if (e->type () == QEvent::KeyPress)
75 if (key == Qt::Key_unknown || key == 0)
78 Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers ();
82 if (modifiers & Qt::ControlModifier)
84 if (modifiers & Qt::AltModifier)
86 if (modifiers & Qt::MetaModifier)
89 setText (QKeySequence (key).toString ());
112 : m_octave_qobj (oct_qobj)
114 setObjectName (
"Shortcut_Manager");
117 #if defined (Q_OS_MAC)
118 QCoreApplication::setAttribute (Qt::AA_MacDontSwapCtrlAndMeta,
true);
216 #if defined (Q_OS_MAC)
253 #if defined (Q_OS_MAC)
313 bool sc_ctrld =
false;
317 for (
int i = 0; i <
m_sc.count (); i++)
320 m_sc.at (i).m_actual_sc.toString ());
322 if (
m_sc.at (i).m_settings_key.startsWith (sc_main)
323 &&
m_sc.at (i).m_actual_sc == QKeySequence (Qt::ControlModifier+Qt::Key_D))
344 action->setShortcut (QKeySequence ());
354 if (index > -1 && index <
m_sc.count ())
358 action->setShortcut (QKeySequence (
settings->sc_value (scpref)));
361 qDebug () <<
"Key: " << scpref.
key <<
" not found in m_action_hash";
370 if (index > -1 && index <
m_sc.count ())
374 sc->setKey (QKeySequence (
settings->sc_value (scpref)));
377 qDebug () <<
"Key: " << scpref.
key <<
" not found in m_action_hash";
385 tree_view->header ()->setSectionResizeMode (QHeaderView::ResizeToContents);
387 QTreeWidgetItem *
main =
new QTreeWidgetItem (tree_view);
388 main->setText (0, tr (
"Global"));
389 main->setExpanded (
true);
390 QTreeWidgetItem *main_file =
new QTreeWidgetItem (
main);
391 main_file->setText (0, tr (
"File Menu"));
392 QTreeWidgetItem *main_edit =
new QTreeWidgetItem (
main);
393 main_edit->setText (0, tr (
"Edit Menu"));
394 QTreeWidgetItem *main_debug =
new QTreeWidgetItem (
main);
395 main_debug->setText (0, tr (
"Debug Menu"));
396 QTreeWidgetItem *main_tools =
new QTreeWidgetItem (
main);
397 main_tools->setText (0, tr (
"Tools Menu"));
400 QTreeWidgetItem *main_help =
new QTreeWidgetItem (
main);
401 main_help->setText (0, tr (
"Help Menu"));
402 QTreeWidgetItem *main_news =
new QTreeWidgetItem (
main);
403 main_news->setText (0, tr (
"News Menu"));
404 QTreeWidgetItem *main_dock_widgets =
new QTreeWidgetItem (
main);
405 main_dock_widgets->setText (0, tr (
"Handling of Dock Widgets"));
406 QTreeWidgetItem *main_tabs =
new QTreeWidgetItem (
main);
407 main_tabs->setText (0, tr (
"Tab Handling in Dock Widgets"));
408 QTreeWidgetItem *main_find =
new QTreeWidgetItem (
main);
409 main_find->setText (0, tr (
"Find & Replace in Dock Widgets"));
410 QTreeWidgetItem *main_zoom =
new QTreeWidgetItem (
main);
411 main_zoom->setText (0, tr (
"Zooming in Editor and Documentation"));
425 QTreeWidgetItem *editor =
new QTreeWidgetItem (tree_view);
426 editor->setText (0, tr (
"Editor"));
427 editor->setExpanded (
true);
428 QTreeWidgetItem *editor_file =
new QTreeWidgetItem (editor);
429 editor_file->setText (0, tr (
"File Menu"));
430 QTreeWidgetItem *editor_edit =
new QTreeWidgetItem (editor);
431 editor_edit->setText (0, tr (
"Edit Menu"));
432 QTreeWidgetItem *editor_view =
new QTreeWidgetItem (editor);
433 editor_view->setText (0, tr (
"View Menu"));
434 QTreeWidgetItem *editor_debug =
new QTreeWidgetItem (editor);
435 editor_debug->setText (0, tr (
"Debug Menu"));
436 QTreeWidgetItem *editor_run =
new QTreeWidgetItem (editor);
437 editor_run->setText (0, tr (
"Run Menu"));
438 QTreeWidgetItem *editor_help =
new QTreeWidgetItem (editor);
439 editor_help->setText (0, tr (
"Help Menu"));
448 QTreeWidgetItem *doc =
new QTreeWidgetItem (tree_view);
449 doc->setText (0, tr (
"Documentation Viewer"));
450 doc->setExpanded (
true);
452 QTreeWidgetItem *doc_browser =
new QTreeWidgetItem (doc);
453 doc_browser->setText (0, tr (
"Browser"));
457 connect (tree_view, &QTreeWidget::itemDoubleClicked,
460 for (
int i = 0; i <
m_sc.count (); i++)
468 if (section == editor_file)
474 if (section == editor_edit)
480 if (section == editor_view)
487 QTreeWidgetItem *tree_item =
new QTreeWidgetItem (section);
490 QColor fg = QColor (tree_item->foreground (1).color ());
492 tree_item->setForeground (1, QBrush (fg));
497 tree_item->setText (2, sc.
m_actual_sc.toString ());
528 opts = QFileDialog::DontUseNativeDialog;
531 file = QFileDialog::getOpenFileName (
this,
532 tr (
"Import shortcuts from file..."), QString (),
533 tr (
"Octave Shortcut Files (*.osc);;All Files (*)"),
534 nullptr, QFileDialog::Option (opts));
536 file = QFileDialog::getSaveFileName (
this,
537 tr (
"Export shortcuts to file..."), QString (),
538 tr (
"Octave Shortcut Files (*.osc);;All Files (*)"),
539 nullptr, QFileDialog::Option (opts));
546 if (osc_settings.status () != QSettings::NoError)
548 qWarning () << tr (
"Failed to open %1 as Octave shortcut file")
582 if (result == QDialog::Rejected)
591 tr (
"The chosen shortcut\n \"%1\"\n"
592 "is already used for the action\n \"%2\".\n"
593 "Do you want to use the shortcut anyhow removing it "
594 "from the previous action?")
596 .arg (
m_sc.at (double_index).m_description),
597 QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
599 if (ret == QMessageBox::Yes)
603 m_sc.replace (double_index, double_shortcut);
611 if (!
shortcut.m_actual_sc.isEmpty ())
618 if (!
shortcut.m_actual_sc.isEmpty ())
632 QKeySequence actual = QKeySequence (
settings->sc_value (sc));
640 m_sc << shortcut_info;
643 if (! actual.isEmpty ())
648 QString main_group_prefix
650 if (sc.
key.startsWith (main_group_prefix)
651 && actual == QKeySequence (Qt::ControlModifier+Qt::Key_D))
661 m_dialog->setWindowTitle (tr (
"Enter new Shortcut"));
665 box->setContentsMargins (12, 12, 12, 12);
667 QLabel *help =
new QLabel (tr (
"Apply the desired shortcut or click "
668 "on the right button to reset the "
669 "shortcut to its default."));
670 help->setWordWrap (
true);
671 box->addWidget (help);
674 =
new QCheckBox (tr (
"Enter shortcut directly by performing it"));
677 =
new QCheckBox (tr (
"Add Shift modifier\n"
678 "(allows one to enter number keys)"));
681 (
"QCheckBox::indicator { subcontrol-position: left top; }");
683 connect (direct, &QCheckBox::clicked, shift, &QCheckBox::setEnabled);
685 direct->setCheckState (Qt::Checked);
687 box->addWidget (direct);
688 box->addWidget (shift);
690 box->addSpacing (15);
692 QGridLayout *grid =
new QGridLayout ();
697 grid->addWidget (actual, 0, 0);
703 grid->addWidget (def, 1, 0);
707 grid->addWidget (set_default, 0, 2);
708 connect (set_default, &QPushButton::clicked,
711 box->addLayout (grid);
713 box->addSpacing (18);
715 QDialogButtonBox *button_box =
new QDialogButtonBox (QDialogButtonBox::Ok
716 | QDialogButtonBox::Cancel);
718 for (
int i = 0; i < buttons.count (); i++)
719 buttons.at (i)->setShortcut (QKeySequence ());
720 connect (button_box, &QDialogButtonBox::accepted,
722 connect (button_box, &QDialogButtonBox::rejected,
724 box->addWidget (button_box);
728 connect (direct, &QCheckBox::stateChanged,
730 connect (shift, &QCheckBox::stateChanged,
732 connect (
m_dialog, &QDialog::finished,
750 for (
int i = 0; i <
m_sc.count (); i++)
762 m_sc.replace (i, sc);
766 tree_item->setText (2, sc.
m_actual_sc.toString ());
775 msg_box.setWindowTitle (tr (
"Overwriting Shortcuts"));
776 msg_box.setIcon (QMessageBox::Warning);
777 msg_box.setText (tr (
"You are about to overwrite all shortcuts.\n"
778 "Would you like to save the current shortcut set or cancel the action?"));
779 msg_box.setStandardButtons (QMessageBox::Save | QMessageBox::Cancel);
780 QPushButton *discard = msg_box.addButton (tr (
"Don't save"),
781 QMessageBox::DestructiveRole);
782 msg_box.setDefaultButton (QMessageBox::Save);
784 int ret = msg_box.exec ();
786 if (msg_box.clickedButton () == discard)
789 if (ret == QMessageBox::Save)
Base class for Octave interfaces that use Qt.
resource_manager & get_resource_manager(void)
virtual void keyPressEvent(QKeyEvent *e)
void handle_direct_shortcut(int)
void handle_shift_modifier(int)
Represents the main window.
gui_settings * get_settings(void) const
QKeySequence m_default_sc
void shortcut_dialog_set_default()
enter_shortcut * m_edit_actual
QHash< QString, QTreeWidgetItem * > m_level_hash
void set_shortcut(QAction *action, const sc_pref &scpref, bool enable=true)
void handle_double_clicked(QTreeWidgetItem *, int)
QHash< int, QTreeWidgetItem * > m_index_item_hash
bool overwrite_all_shortcuts(void)
void shortcut_dialog_finished(int)
shortcut_manager(base_qobject &oct_qobj)
QHash< QString, int > m_shortcut_hash
void shortcut_dialog(int)
QHash< QString, int > m_action_hash
QHash< QTreeWidgetItem *, int > m_item_index_hash
void write_shortcuts(gui_settings *settings, bool closing)
base_qobject & m_octave_qobj
bool import_export(int action)
void init(const QString &, const sc_pref &scpref)
void import_shortcuts(gui_settings *settings)
void fill_treewidget(QTreeWidget *tree_view)
void shortcut(QShortcut *sc, const sc_pref &scpref)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
void warning(const char *fmt,...)
const gui_pref global_use_native_dialogs("use_native_file_dialogs", QVariant(true))
const sc_pref sc_main_help_online_doc(sc_main_help+":online_doc", QKeySequence::UnknownKey)
const sc_pref sc_edit_view_show_long_line(sc_edit_view+":show_long_line", QKeySequence::UnknownKey)
const QString sc_edit_view_zoom(sc_edit_view+":zoom")
const sc_pref sc_edit_file_close(sc_edit_file_cl, QKeySequence::Close)
const sc_pref sc_edit_edit_completion_list(sc_edit_edit+":completion_list", CTRL+Qt::Key_Space)
const sc_pref sc_edit_debug_next_breakpoint(sc_edit_debug+":next_breakpoint", QKeySequence::UnknownKey)
const sc_pref sc_doc_go_home(sc_doc+":go_home", Qt::AltModifier+Qt::Key_Home)
const sc_pref sc_main_file_exit(sc_main_file+":exit", QKeySequence::Quit)
const sc_pref sc_edit_debug_previous_breakpoint(sc_edit_debug+":previous_breakpoint", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_delete_line(sc_edit_edit+":delete_line", CTRL_SHIFT+Qt::Key_L)
const sc_pref sc_main_file_new_file(sc_main_file+":new_file", QKeySequence::New)
const sc_pref sc_edit_edit_move_to_brace(sc_edit_edit+":move_to_brace", CTRL+Qt::Key_M)
const sc_pref sc_edit_edit_toggle_bookmark(sc_edit_edit+":toggle_bookmark", PRE+Qt::Key_F7)
const sc_pref sc_doc_go_back(sc_doc+":go_back", QKeySequence::Back)
const sc_pref sc_edit_edit_delete_start_line(sc_edit_edit+":delete_start_line", CTRL_SHIFT+Qt::Key_Backspace)
const sc_pref sc_main_news_release_notes(sc_main_news+":release_notes", QKeySequence::UnknownKey)
const QString sc_dock_widget("dock_widget")
const sc_pref sc_main_window_workspace(sc_main_window+":workspace", PRE+CTRL+Qt::Key_3)
const sc_pref sc_edit_edit_uncomment_selection(sc_edit_edit+":uncomment_selection", CTRL_SHIFT+Qt::Key_R)
const QString sc_edit_run("editor_run")
const sc_pref sc_edit_edit_cut_line(sc_edit_edit+":cut_line", CTRL_SHIFT+Qt::Key_X)
const sc_pref sc_edit_view_show_hscrollbar(sc_edit_view+":show_hscrollbar", QKeySequence::UnknownKey)
const sc_pref sc_main_file_new_figure(sc_main_file+":new_figure", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_remove_bookmark(sc_edit_edit+":remove_bookmark", QKeySequence::UnknownKey)
const sc_pref sc_main_window_doc(sc_main_window+":doc", PRE+CTRL+Qt::Key_5)
const sc_pref sc_main_debug_step_over(sc_main_debug+":step_over", PRE+Qt::Key_F10)
const sc_pref sc_main_window_show_editor(sc_main_window+":show_editor", PRE+CTRL_SHIFT+Qt::Key_4)
const sc_pref sc_main_edit_set_path(sc_main_edit+":set_path", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_upper_case(sc_edit_edit+":upper_case", CTRL+Qt::Key_U)
const sc_pref sc_edit_file_save(sc_edit_file+":save", QKeySequence::Save)
const sc_pref sc_edit_edit_styles_preferences(sc_edit_edit+":styles_preferences", QKeySequence::UnknownKey)
const sc_pref sc_main_window_file_browser(sc_main_window+":file_browser", PRE+CTRL+Qt::Key_2)
const sc_pref sc_edit_file_print(sc_edit_file+":print", QKeySequence::Print)
const sc_pref sc_edit_edit_goto_line(sc_edit_edit+":goto_line", CTRL+Qt::Key_L)
const sc_pref sc_edit_edit_smart_indent_line_or_selection(sc_edit_edit+":smart_indent_line_or_selection", QKeySequence::UnknownKey)
const sc_pref sc_main_debug_continue(sc_main_debug+":continue", PRE+Qt::Key_F5)
const sc_pref sc_edit_view_show_statusbar(sc_edit_view+":show_statusbar", QKeySequence::UnknownKey)
const sc_pref sc_main_edit_clear_clipboard(sc_main_edit+":clear_clipboard", QKeySequence::UnknownKey)
const sc_pref sc_edit_view_show_eol_chars(sc_edit_view+":show_eol_chars", QKeySequence::UnknownKey)
const sc_pref sc_main_window_show_history(sc_main_window+":show_history", PRE+CTRL_SHIFT+Qt::Key_1)
const sc_pref sc_edit_file_edit_function(sc_edit_file+":edit_function", CTRL+Qt::Key_E)
const sc_pref sc_edit_edit_comment_selection(sc_edit_edit+":comment_selection", CTRL+Qt::Key_R)
const sc_pref sc_main_window_show_workspace(sc_main_window+":show_workspace", PRE+CTRL_SHIFT+Qt::Key_3)
const sc_pref sc_main_edit_clear_workspace(sc_main_edit+":clear_workspace", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_comment_var_selection(sc_edit_edit+":comment_var_selection", CTRL_ALT+Qt::Key_R)
const QString sc_edit_find("editor_find")
const QString sc_main_window("main_window")
const sc_pref sc_dock_widget_dock(sc_dock_widget+":dock", CTRL_ALT+Qt::Key_D)
const gui_pref sc_main_ctrld("shortcuts/main_ctrld", QVariant(false))
const sc_pref sc_edit_run_run_file(sc_edit_run+":run_file", PRE+Qt::Key_F5)
const sc_pref sc_edit_file_save_as(sc_edit_file+":save_as", QKeySequence::SaveAs)
const sc_pref sc_main_file_open_file(sc_main_file+":open_file", QKeySequence::Open)
const sc_pref sc_main_window_show_doc(sc_main_window+":show_doc", PRE+CTRL_SHIFT+Qt::Key_5)
const sc_pref sc_main_file_new_function(sc_main_file+":new_function", CTRL_SHIFT+Qt::Key_N)
const sc_pref sc_main_debug_step_into(sc_main_debug+":step_into", PRE+Qt::Key_F11)
const QString sc_edit_debug("editor_debug")
const sc_pref sc_main_help_about(sc_main_help+":about", QKeySequence::UnknownKey)
const sc_pref sc_edit_view_zoom_normal(sc_edit_view_zoom+"_normal", CTRL+Qt::Key_Period)
const sc_pref sc_edit_edit_find_replace(sc_edit_edit_find+"_replace", QKeySequence::Find)
const sc_pref sc_edit_view_show_ind_guides(sc_edit_view+":show_ind_guides", QKeySequence::UnknownKey)
const sc_pref sc_main_window_show_variable_editor(sc_main_window+":show_variable_editor", PRE+CTRL_SHIFT+Qt::Key_6)
const sc_pref sc_main_window_show_command(sc_main_window+":show_command", PRE+CTRL_SHIFT+Qt::Key_0)
const sc_pref sc_main_window_editor(sc_main_window+":editor", PRE+CTRL+Qt::Key_4)
const sc_pref sc_main_window_variable_editor(sc_main_window+":variable_editor", PRE+CTRL+Qt::Key_6)
const sc_pref sc_edit_file_close_other(sc_edit_file_cl+"_other", QKeySequence::UnknownKey)
const QString sc_main_news("main_news")
const sc_pref sc_main_window_command(sc_main_window+":command", PRE+CTRL+Qt::Key_0)
const sc_pref sc_doc_bookmark(sc_doc+":bookmark", CTRL+Qt::Key_D)
const QString sc_edit_help("editor_help")
const sc_pref sc_main_debug_quit(sc_main_debug+":quit", PRE+Qt::ShiftModifier+Qt::Key_F5)
const QString sc_main_file("main_file")
const sc_pref sc_main_edit_copy(sc_main_edit+":copy", QKeySequence::Copy)
const sc_pref sc_main_help_ondisk_doc(sc_main_help+":ondisk_doc", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_copy_line(sc_edit_edit+":copy_line", CTRL_SHIFT+Qt::Key_C)
const sc_pref sc_edit_edit_transpose_line(sc_edit_edit+":transpose_line", CTRL+Qt::Key_T)
const sc_pref sc_edit_edit_find_next(sc_edit_edit_find+"_next", QKeySequence::FindNext)
const sc_pref sc_edit_help_help_keyword(sc_edit_help+":help_keyword", QKeySequence::HelpContents)
const Qt::KeyboardModifier CTRL
const sc_pref sc_edit_edit_duplicate_selection(sc_edit_edit+":duplicate_selection", CTRL+Qt::Key_D)
const sc_pref sc_edit_view_show_toolbar(sc_edit_view+":show_toolbar", QKeySequence::UnknownKey)
const sc_pref sc_edit_help_doc_keyword(sc_edit_help+":doc_keyword", Qt::SHIFT+Qt::Key_F1)
const sc_pref sc_edit_edit_delete_end_line(sc_edit_edit+":delete_end_line", CTRL_SHIFT+Qt::Key_Delete)
const sc_pref sc_edit_tabs_move_tab_right(sc_edit_tabs+":move_tab_right", Qt::AltModifier+Qt::Key_PageDown)
const QString sc_main_tools("main_tools")
const sc_pref sc_main_help_developer(sc_main_help+":developer", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_cut(sc_edit_edit+":cut", QKeySequence::Cut)
const sc_pref sc_main_edit_undo(sc_main_edit+":undo", QKeySequence::Undo)
const QString sc_doc("doc_browser")
const sc_pref sc_main_edit_clear_command_window(sc_main_edit+":clear_command_window", QKeySequence::UnknownKey)
const sc_pref sc_edit_debug_remove_breakpoints(sc_edit_debug+":remove_breakpoints", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_unindent_selection(sc_edit_edit+":unindent_selection", CTRL_SHIFT+Qt::Key_Tab)
const sc_pref sc_edit_edit_next_bookmark(sc_edit_edit+":next_bookmark", PRE+Qt::Key_F2)
const sc_pref sc_main_window_reset(sc_main_window+":reset", QKeySequence::UnknownKey)
const QString sc_edit_edit("editor_edit")
const QString sc_edit_edit_find(sc_edit_edit+":find")
const sc_pref sc_main_window_previous_dock(sc_main_window+":previous_widget", PRE+CTRL_ALT+Qt::Key_P)
const QString sc_edit_file("editor_file")
const sc_pref sc_main_help_contribute(sc_main_help+":contribute", QKeySequence::UnknownKey)
const sc_pref sc_main_window_history(sc_main_window+":history", PRE+CTRL+Qt::Key_1)
const sc_pref sc_edit_run_run_selection(sc_edit_run+":run_selection", PRE+Qt::Key_F9)
const sc_pref sc_edit_edit_find_previous(sc_edit_edit_find+"_previous", QKeySequence::FindPrevious)
const sc_pref sc_edit_view_show_white_spaces(sc_edit_view+":show_white_spaces", QKeySequence::UnknownKey)
const sc_pref sc_edit_file_close_all(sc_edit_file_cl+"_all", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_select_to_brace(sc_edit_edit+":select_to_brace", CTRL_SHIFT+Qt::Key_M)
const sc_pref sc_edit_debug_toggle_breakpoint(sc_edit_debug+":toggle_breakpoint", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_lower_case(sc_edit_edit+":lower_case", CTRL_ALT+Qt::Key_U)
const sc_pref sc_edit_edit_indent_selection(sc_edit_edit+":indent_selection", CTRL+Qt::Key_Tab)
const QString sc_edit_view("editor_view")
const sc_pref sc_edit_view_zoom_in(sc_edit_view_zoom+"_in", QKeySequence::ZoomIn)
const QString sc_edit_zoom("editor_zoom")
const sc_pref sc_main_edit_preferences(sc_main_edit+":preferences", QKeySequence::UnknownKey)
const sc_pref sc_main_tools_show_profiler(sc_main_tools+":show_profiler", Qt::AltModifier+Qt::ShiftModifier+Qt::Key_P)
const sc_pref sc_main_help_packages(sc_main_help+":packages", QKeySequence::UnknownKey)
const sc_pref sc_doc_go_next(sc_doc+":go_next", QKeySequence::Forward)
const QString sc_main_help("main_help")
const sc_pref sc_edit_tabs_move_tab_left(sc_edit_tabs+":move_tab_left", Qt::AltModifier+Qt::Key_PageUp)
const sc_pref sc_edit_edit_delete_end_word(sc_edit_edit+":delete_end_word", QKeySequence::DeleteEndOfWord)
const sc_pref sc_edit_edit_preferences(sc_edit_edit+":preferences", QKeySequence::UnknownKey)
const QString sc_edit_tabs("editor_tabs")
const sc_pref sc_edit_tabs_switch_right_tab(sc_edit_tabs+":switch_right_tab", CTRL+Qt::Key_PageDown)
const sc_pref sc_edit_edit_redo(sc_edit_edit+":redo", QKeySequence::Redo)
const sc_pref sc_main_file_save_workspace(sc_main_file+":save_workspace", QKeySequence::UnknownKey)
const sc_pref sc_main_edit_paste(sc_main_edit+":paste", QKeySequence::Paste)
const sc_pref sc_main_tools_resume_profiler(sc_main_tools+":resume_profiler", QKeySequence::UnknownKey)
const sc_pref sc_main_edit_find_in_files(sc_main_edit+":find_in_files", CTRL_SHIFT+Qt::Key_F)
const sc_pref sc_main_edit_select_all(sc_main_edit+":select_all", QKeySequence::SelectAll)
const sc_pref sc_main_window_show_file_browser(sc_main_window+":show_file_browser", PRE+CTRL_SHIFT+Qt::Key_2)
const sc_pref sc_main_edit_clear_history(sc_main_edit+":clear_history", QKeySequence::UnknownKey)
const sc_pref sc_main_debug_step_out(sc_main_debug+":step_out", PRE+Qt::ShiftModifier+Qt::Key_F11)
const sc_pref sc_dock_widget_close(sc_dock_widget+":close", CTRL_ALT+Qt::Key_C)
const QString sc_main_edit("main_edit")
const sc_pref sc_edit_edit_conv_eol_unix(sc_edit_edit+":conv_eol_unix", QKeySequence::UnknownKey)
const sc_pref sc_edit_view_sort_tabs(sc_edit_view+":sort_tabs", QKeySequence::UnknownKey)
const sc_pref sc_edit_tabs_switch_left_tab(sc_edit_tabs+":switch_left_tab", CTRL+Qt::Key_PageUp)
const sc_pref sc_edit_view_show_line_numbers(sc_edit_view+":show_line_numbers", QKeySequence::UnknownKey)
const QString sc_main_debug("main_debug")
const sc_pref sc_edit_view_zoom_out(sc_edit_view_zoom+"_out", QKeySequence::ZoomOut)
const sc_pref sc_edit_edit_conv_eol_mac(sc_edit_edit+":conv_eol_mac", QKeySequence::UnknownKey)
const sc_pref sc_main_news_community_news(sc_main_news+":community_news", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_conv_eol_winows(sc_edit_edit+":conv_eol_winows", QKeySequence::UnknownKey)
const QString sc_edit_file_cl(sc_edit_file+":close")
const sc_pref sc_main_tools_start_profiler(sc_main_tools+":start_profiler", CTRL_SHIFT+Qt::Key_P)
const sc_pref sc_edit_edit_previous_bookmark(sc_edit_edit+":previous_bookmark", PRE+Qt::SHIFT+Qt::Key_F2)
const sc_pref sc_main_help_report_bug(sc_main_help+":report_bug", QKeySequence::UnknownKey)
const sc_pref sc_main_file_load_workspace(sc_main_file+":load_workspace", QKeySequence::UnknownKey)
const sc_pref sc_edit_edit_delete_start_word(sc_edit_edit+":delete_start_word", QKeySequence::DeleteStartOfWord)
const QString sc_group("shortcuts/")
int main(int argc, char **argv)
static octave_value box(JNIEnv *jni_env, void *jobj, void *jcls_arg=nullptr)
static uint32_t state[624]