Mercurial > octave
diff libgui/src/documentation.h @ 29330:b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
* libgui/src/documentation-bookmarks.cc: new file for the bookmarks tab;
(documentation_bookmarks): initialize the tab, the filter and the tree;
prepare the bookmark file and read existing bookmarks;
(~documentation_bookmarks): empty destructor;
(add_bookmark): slot for the adding bookmark action, get current title
and url;
(add_bookmark): do the adding, possibly as child of a parent item;
(add_folder): slot for context menu action for adding a folder, check
current position where to insert the new folder;
(add_folder): do the folder adding;
(filter_bookmarks): filter bookmarks following the changed filter text;
(filter_activate): enable/disable filter;
(update_filter_history): save a search term when acknowledged by return;
(handle_double_click): open the clicked bookmark;
(ctx_menu): show context menu at current mouse position;
(open): open a bookmark via context menu;
(edit): edit a bookmark via context menu;
(remove): remove selected bookmarks via context menu;
(show_filter): toggle visibility of the filter;
(save_settings): save settings and initiate writing the bookmarks;
(write_bookmarks): open file and initiate writing all top level items;
(write_tree_item): write a single item and its children;
(read_bookmarks): open the file, check if it is valid and loop over
all top level items for reading them from the file;
(read_next_item): read an item and its children in case of a folder;
* documentation-bookmarks.h: class documentation_bookmarks derived
from QWidget, declaration of all required functions and class variables;
* documentation-dock-widget.cc (save_settings): new derived method,
emitting a signal for saving setting in child widgets and callinf the
original method
* documentation-dock-widget.h: derived method save_settings and signal
for child widgets
* documentation.cc: include documentation-bookmarks.h;
(documentation): add bookmark tab, connect signal for saving settings;
(add_action): check reveiver before connection the actions signal;
(construct_tool_bar): add toolbar button for adding a bookmark, connect
its signal the add_bookmark slot and connect signal for saving settings;
(notice_settings): add shortcut for adding a bookmark;
(update_history): move combining page title and current anchor into a
more specific title ...
(title_and_anchor): to here;
* documentation.h: new function title_and_anchor, new action
* gui-preferences-dc.h: new file with constants for some bookmark settings
and for the xbel file syntax
* gui-preferences-sc.h: default value for bookmark action
* bookmark-new.png/bookmark-new.svg: icon for tool bar button
* icons_license: add new icon
* module.mk: add new files
* shortcut-manager.cc (init_data): initialize new short for bookmarking
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Sun, 10 Jan 2021 14:04:35 +0100 |
parents | c014440a2935 |
children | 7854d5752dd2 |
line wrap: on
line diff
--- a/libgui/src/documentation.h Tue Jan 26 16:41:36 2021 +0100 +++ b/libgui/src/documentation.h Sun Jan 10 14:04:35 2021 +0100 @@ -32,6 +32,7 @@ #include <QSplitter> #include <QTextBrowser> #include <QToolBar> +#include <QListWidget> #include <QToolButton> #include <QWidget> #include <QtHelp/QHelpEngine> @@ -41,6 +42,7 @@ namespace octave { class base_qobject; + class documentation; //! Documentation browser derived from Textbrowser @@ -101,6 +103,17 @@ documentation (QWidget *parent, base_qobject& oct_qobj); ~documentation (void); + /*! + Generate a string with page name @p title and current anchor + from @p url for using in prev/next or bookmarks menu: + + @param title current title of the page as QString + @param url current url as QUrl + + @return QString "title: anchor" + */ + QString title_and_anchor (const QString& title, const QUrl& url); + signals: void show_single_result (const QUrl&); @@ -172,6 +185,8 @@ QAction *m_prev_pages_actions[max_history_entries]; QAction *m_next_pages_actions[max_history_entries]; + QAction *m_action_bookmark; + QAction *m_action_find; QShortcut *m_findnext_shortcut; QShortcut *m_findprev_shortcut; @@ -180,6 +195,7 @@ QAction *m_action_zoom_out; QAction *m_action_zoom_original; }; + } #endif