Mercurial > hg > octave-nkf
changeset 18527:f01ac1bb8a5d gui-release
add menu entries and shortcuts for zoom functions in the editor (bug #41516)
* file-editor.cc (zoom_in): slot for zoom-in action, triggering signal for tab;
(zoom_out): slot for zoom-out action, triggering signal for tab;
(zoom_normal): slot for zoom-to-normal action, triggering signal for tab;
(construct): new View-menu with zoom-in, zoom-out and zoom-normal entries;
(add_file_editor_tab): connect zoom-signal to newly created tabs;
(set_shortcuts): set shortcuts for new zoom actions;
(check_actions): disable zoom action when no editor tab is open
* file-editor.h: zoom-in, zoom-out and zoom-normal actions, related slots
and related signals to the actual tab
* file-editor-tab.cc (zoom_in): new slot for signal from file_editor;
(zoom_out): new slot for signal from file_editor;
(zoom_normal): new slot for signal from file_editor
* file-editor-tab.h: new slots zoom_in, zoom_out, zoom_normal
* octave-qscintilla.cc (eventFilter): event filter for overriding qscintilla
internal shortcuts;
(constructor): install event filter
* octave-qscintilla.h: event filter
author | Torsten <ttl@justmail.de> |
---|---|
date | Thu, 13 Feb 2014 20:39:09 +0100 |
parents | ebb878596bcf |
children | f959c63934e6 |
files | libgui/src/m-editor/file-editor-tab.cc libgui/src/m-editor/file-editor-tab.h libgui/src/m-editor/file-editor.cc libgui/src/m-editor/file-editor.h libgui/src/m-editor/octave-qscintilla.cc libgui/src/m-editor/octave-qscintilla.h |
diffstat | 6 files changed, 109 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor-tab.cc +++ b/libgui/src/m-editor/file-editor-tab.cc @@ -767,6 +767,37 @@ void +file_editor_tab::zoom_in (const QWidget *ID) +{ + if (ID != this) + return; + + _edit_area->zoomIn (1); + auto_margin_width (); +} + +void +file_editor_tab::zoom_out (const QWidget *ID) +{ + if (ID != this) + return; + + _edit_area->zoomOut (1); + auto_margin_width (); +} + +void +file_editor_tab::zoom_normal (const QWidget *ID) +{ + if (ID != this) + return; + + _edit_area->zoomTo (0); + auto_margin_width (); +} + + +void file_editor_tab::handle_find_dialog_finished (int) { // Find dialog is going to hide. Save location of window for
--- a/libgui/src/m-editor/file-editor-tab.h +++ b/libgui/src/m-editor/file-editor-tab.h @@ -97,6 +97,10 @@ void indent_selected_text (const QWidget *ID); void unindent_selected_text (const QWidget *ID); + void zoom_in (const QWidget *ID); + void zoom_out (const QWidget *ID); + void zoom_normal (const QWidget *ID); + void find (const QWidget *ID); void goto_line (const QWidget *ID, int line = -1);
--- a/libgui/src/m-editor/file-editor.cc +++ b/libgui/src/m-editor/file-editor.cc @@ -825,6 +825,24 @@ } void +file_editor::zoom_in (bool) +{ + emit fetab_zoom_in (_tab_widget->currentWidget ()); +} + +void +file_editor::zoom_out (bool) +{ + emit fetab_zoom_out (_tab_widget->currentWidget ()); +} + +void +file_editor::zoom_normal (bool) +{ + emit fetab_zoom_normal (_tab_widget->currentWidget ()); +} + +void file_editor::handle_editor_state_changed (bool copy_available, const QString& file_name) { @@ -1113,6 +1131,15 @@ this, SLOT (request_styles_preferences (bool))); _menu_bar->addMenu (editMenu); + QMenu *view_menu = new QMenu (tr ("&View"), _menu_bar); + _zoom_in_action = view_menu->addAction (QIcon (), tr ("Zoom &In"), + this, SLOT (zoom_in (bool))); + _zoom_out_action = view_menu->addAction (QIcon (), tr ("Zoom &Out"), + this, SLOT (zoom_out (bool))); + _zoom_normal_action = view_menu->addAction (QIcon (), tr ("&Normal Size"), + this, SLOT (zoom_normal (bool))); + _menu_bar->addMenu (view_menu); + _debug_menu = new QMenu (tr ("&Debug"), _menu_bar); _debug_menu->addAction (toggle_breakpoint_action); _debug_menu->addAction (next_breakpoint_action); @@ -1333,6 +1360,13 @@ connect (this, SIGNAL (fetab_paste (const QWidget*)), f, SLOT (paste (const QWidget*))); + connect (this, SIGNAL (fetab_zoom_in (const QWidget*)), + f, SLOT (zoom_in (const QWidget*))); + connect (this, SIGNAL (fetab_zoom_out (const QWidget*)), + f, SLOT (zoom_out (const QWidget*))); + connect (this, SIGNAL (fetab_zoom_normal (const QWidget*)), + f, SLOT (zoom_normal (const QWidget*))); + connect (this, SIGNAL (fetab_context_help (const QWidget*, bool)), f, SLOT (context_help (const QWidget*, bool))); @@ -1456,6 +1490,11 @@ _context_help_action->setShortcut (QKeySequence::HelpContents); _context_doc_action->setShortcut (Qt::SHIFT + Qt::Key_F1); + _zoom_in_action->setShortcut (QKeySequence::ZoomIn); + _zoom_out_action->setShortcut (QKeySequence::ZoomOut); + _zoom_normal_action->setShortcut (Qt::ControlModifier + + Qt::AltModifier + Qt::Key_0); + _find_action->setShortcut (QKeySequence::Find); _goto_line_action->setShortcut (Qt::ControlModifier+ Qt::Key_G); @@ -1490,6 +1529,10 @@ _paste_action->setShortcut (no_key); _context_help_action->setShortcut (no_key); + _zoom_in_action->setShortcut (no_key); + _zoom_out_action->setShortcut (no_key); + _zoom_normal_action->setShortcut (no_key); + _find_action->setShortcut (no_key); _goto_line_action->setShortcut (no_key); @@ -1526,6 +1569,10 @@ _context_help_action->setEnabled (have_tabs); _context_doc_action->setEnabled (have_tabs); + _zoom_in_action->setEnabled (have_tabs); + _zoom_out_action->setEnabled (have_tabs); + _zoom_normal_action->setEnabled (have_tabs); + _find_action->setEnabled (have_tabs); _goto_line_action->setEnabled (have_tabs);
--- a/libgui/src/m-editor/file-editor.h +++ b/libgui/src/m-editor/file-editor.h @@ -102,6 +102,11 @@ void fetab_do_breakpoint_marker (bool insert, const QWidget* ID, int line = -1); void fetab_set_focus (const QWidget* ID); + + void fetab_zoom_in (const QWidget* ID); + void fetab_zoom_out (const QWidget* ID); + void fetab_zoom_normal (const QWidget* ID); + void request_settings_dialog (const QString&); void execute_command_in_terminal_signal (const QString&); void file_loaded_signal (); @@ -190,6 +195,10 @@ void request_styles_preferences (bool); void restore_create_file_setting (); + void zoom_in (bool); + void zoom_out (bool); + void zoom_normal (bool); + private: void construct (void); @@ -220,6 +229,10 @@ QAction *_context_help_action; QAction *_context_doc_action; + QAction *_zoom_in_action; + QAction *_zoom_out_action; + QAction *_zoom_normal_action; + QAction *_find_action; QAction *_goto_line_action;
--- a/libgui/src/m-editor/octave-qscintilla.cc +++ b/libgui/src/m-editor/octave-qscintilla.cc @@ -29,13 +29,16 @@ #ifdef HAVE_QSCINTILLA #include <Qsci/qscilexer.h> +#include <QShortcut> #include "octave-qscintilla.h" #include "file-editor-tab.h" octave_qscintilla::octave_qscintilla (QWidget *p) : QsciScintilla (p) -{ } +{ + installEventFilter (this); +} octave_qscintilla::~octave_qscintilla () { } @@ -186,4 +189,13 @@ emit execute_command_in_terminal_signal (commands.at (i)); } +bool +octave_qscintilla::eventFilter(QObject *obj, QEvent *e) + { + if (e->type() == QEvent::ShortcutOverride) + return true; + else + return QObject::eventFilter(obj, e); + } + #endif