Mercurial > octave
changeset 29711:7a0be7c8b7ca
restore zoom level in documentation browser at start up
* documentation-bookmarks.cc/.h (save_settings): settings pointer
is provided as argument
* documentation-dock-widget.cc (save_settings): save_settings method
in documentation widget is called per function not signal
* documentation-dock-widget.h: remove obsolete save_settings_signal
* documentation.cc (documentation): pointer to bookmark widget
stored in new class variable, removed connection of obsolete
save_settings_signal;
(notice_settings): call notice_settings of the doc browser;
(save_settings): call save_settings of the doc browser and
the bookmarks widget;
(documentation_browser): initialize m_zoom_level above the
max. value;
(documentation_browser::notice_settings): if zoom level is greater
than the max. value, get the value from the previous session from
the settings file and restore the desired zoom level;
(documentation_browser::save_settings): new function for saving
the current zoom level
* documentation.h: new function documentation_browser::save_settings
for saving the current zoom level, new class variable m_bookmarks
* gui-preferences-dc.h: new gui pref for the doc browser zoom level
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Fri, 28 May 2021 15:20:51 +0200 |
parents | 97e12df28ee6 |
children | 7b4b7e2a524d |
files | libgui/src/documentation-bookmarks.cc libgui/src/documentation-bookmarks.h libgui/src/documentation-dock-widget.cc libgui/src/documentation-dock-widget.h libgui/src/documentation.cc libgui/src/documentation.h libgui/src/gui-preferences-dc.h |
diffstat | 7 files changed, 44 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/documentation-bookmarks.cc Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/documentation-bookmarks.cc Fri May 28 15:20:51 2021 +0200 @@ -380,15 +380,12 @@ m_filter_widget->setVisible (m_filter_shown); } - void documentation_bookmarks::save_settings (void) + void documentation_bookmarks::save_settings (gui_settings *settings) { // Write the bookmarks to the xbel-file write_bookmarks (); // Store settings - resource_manager& rmgr = m_octave_qobj.get_resource_manager (); - gui_settings *settings = rmgr.get_settings (); - settings->setValue (dc_bookmark_filter_active.key, m_filter_checkbox->isChecked ()); settings->setValue (dc_bookmark_filter_shown.key, m_filter_shown);
--- a/libgui/src/documentation-bookmarks.h Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/documentation-bookmarks.h Fri May 28 15:20:51 2021 +0200 @@ -56,7 +56,7 @@ void add_bookmark (void); void add_folder (bool); - void save_settings (void); + void save_settings (gui_settings *settings); private slots:
--- a/libgui/src/documentation-dock-widget.cc Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/documentation-dock-widget.cc Fri May 28 15:20:51 2021 +0200 @@ -55,7 +55,7 @@ void documentation_dock_widget::save_settings (void) { - emit save_settings_signal (); + m_docs->save_settings (); octave_dock_widget::save_settings (); }
--- a/libgui/src/documentation-dock-widget.h Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/documentation-dock-widget.h Fri May 28 15:20:51 2021 +0200 @@ -43,10 +43,6 @@ ~documentation_dock_widget (void) = default; - signals: - - void save_settings_signal (void); - public slots: void notice_settings (const gui_settings *settings);
--- a/libgui/src/documentation.cc Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/documentation.cc Fri May 28 15:20:51 2021 +0200 @@ -53,6 +53,7 @@ #include "documentation.h" #include "documentation-bookmarks.h" #include "gui-preferences-global.h" +#include "gui-preferences-dc.h" #include "gui-preferences-sc.h" #include "octave-qobject.h" #include "shortcut-manager.h" @@ -256,14 +257,12 @@ this, &documentation::filter_update_history); // Bookmarks (own class) - documentation_bookmarks *bookmarks + m_bookmarks = new documentation_bookmarks (this, m_doc_browser, m_octave_qobj, navi); - navi->addTab (bookmarks, tr ("Bookmarks")); + navi->addTab (m_bookmarks, tr ("Bookmarks")); connect (m_action_bookmark, &QAction::triggered, - bookmarks, [=] () { bookmarks->add_bookmark (); }); - connect (p, SIGNAL (save_settings_signal (void)), - bookmarks, SLOT (save_settings (void))); + m_bookmarks, [=] () { m_bookmarks->add_bookmark (); }); // Search QHelpSearchEngine *search_engine = m_help_engine->searchEngine (); @@ -639,6 +638,18 @@ scmgr.set_shortcut (m_action_go_prev, sc_doc_go_back); scmgr.set_shortcut (m_action_go_next, sc_doc_go_next); scmgr.set_shortcut (m_action_bookmark, sc_doc_bookmark); + + // Settings for the browser + m_doc_browser->notice_settings (settings); + } + + void documentation::save_settings (void) + { + resource_manager& rmgr = m_octave_qobj.get_resource_manager (); + gui_settings *settings = rmgr.get_settings (); + + m_doc_browser->save_settings (settings); + m_bookmarks->save_settings (settings); } void documentation::copyClipboard (void) @@ -968,7 +979,7 @@ // documentation_browser::documentation_browser (QHelpEngine *he, QWidget *p) - : QTextBrowser (p), m_help_engine (he), m_zoom_level (0) + : QTextBrowser (p), m_help_engine (he), m_zoom_level (max_zoom_level+1) { setOpenLinks (false); connect (this, &documentation_browser::anchorClicked, @@ -984,8 +995,15 @@ QDesktopServices::openUrl (url); } - void documentation_browser::notice_settings (const gui_settings *) - { } + void documentation_browser::notice_settings (const gui_settings *settings) + { + // Zoom level only at startup, not when other settings have changed + if (m_zoom_level > max_zoom_level) + { + m_zoom_level = settings->value (dc_browser_zoom_level).toInt (); + zoomIn (m_zoom_level); + } + } QVariant documentation_browser::loadResource (int type, const QUrl &url) { @@ -995,6 +1013,13 @@ return QTextBrowser::loadResource(type, url); } + void documentation_browser::save_settings (gui_settings *settings) + { + settings->setValue (dc_browser_zoom_level.key, m_zoom_level); + + settings->sync (); + } + void documentation_browser::zoom_in (void) { if (m_zoom_level < max_zoom_level)
--- a/libgui/src/documentation.h Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/documentation.h Fri May 28 15:20:51 2021 +0200 @@ -43,6 +43,7 @@ { class base_qobject; class documentation; + class documentation_bookmarks; //! Documentation browser derived from Textbrowser @@ -62,6 +63,7 @@ void handle_index_clicked (const QUrl& url, const QString& keyword = QString ()); void notice_settings (const gui_settings *settings); + void save_settings (gui_settings *settings); //! Zooming in and out while taking care of the zoom level //!@{ @@ -121,6 +123,7 @@ public slots: void notice_settings (const gui_settings *settings); + void save_settings (void); void copyClipboard (void); void pasteClipboard (void); @@ -164,6 +167,7 @@ QHelpEngine *m_help_engine; QString m_internal_search; documentation_browser *m_doc_browser; + documentation_bookmarks *m_bookmarks; QLineEdit *m_find_line_edit; int m_search_anchor_position; QComboBox *m_filter;
--- a/libgui/src/gui-preferences-dc.h Thu May 27 19:31:35 2021 -0400 +++ b/libgui/src/gui-preferences-dc.h Fri May 28 15:20:51 2021 +0200 @@ -54,4 +54,8 @@ const QLatin1String dc_xbel_name_bookmark ("bookmark"); const QLatin1String dc_xbel_name_format ("xbel"); +// Zoom level +const gui_pref +dc_browser_zoom_level ("documentation_widget/browser_zoom_level", QVariant (0)); + #endif