annotate libgui/src/documentation.cc @ 31649:deb553ac2c54

maint: Merge stable to default.
author John W. Eaton <jwe@octave.org>
date Tue, 06 Dec 2022 15:45:27 -0500
parents 431f80aba37a 29d734430e5f
children 2422fb7f1e6c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 30398
diff changeset
3 // Copyright (C) 2018-2022 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
25
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
26 #if defined (HAVE_CONFIG_H)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
27 # include "config.h"
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
28 #endif
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
29
26050
ce46820c5e9f fix build failure for documentation.cc (bug #55003)
Torsten <mttl@mailbox.org>
parents: 26017
diff changeset
30 #include <QAction>
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
31 #include <QApplication>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
32 #include <QCompleter>
27612
62236e51a8c6 eliminate unnecessary includes from resource-manager.h
John W. Eaton <jwe@octave.org>
parents: 27611
diff changeset
33 #include <QDesktopServices>
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
34 #include <QDir>
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
35 #include <QFile>
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
36 #include <QFileInfo>
31293
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
37 #include <QFontDatabase>
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
38 #include <QHelpContentWidget>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
39 #include <QHelpIndexWidget>
29118
d34558c873dc documentation.cc: Include missing header (bug #59553).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29053
diff changeset
40 #if defined (HAVE_NEW_QHELPINDEXWIDGET_API) \
d34558c873dc documentation.cc: Include missing header (bug #59553).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29053
diff changeset
41 || defined (HAVE_QHELPENGINE_DOCUMENTSFORIDENTIFIER)
29034
e3bc897115ed Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents: 29031
diff changeset
42 # include <QHelpLink>
29031
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
43 #endif
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
44 #include <QHelpSearchEngine>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
45 #include <QHelpSearchQueryWidget>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
46 #include <QHelpSearchResultWidget>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
47 #include <QLabel>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
48 #include <QLineEdit>
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
49 #include <QMessageBox>
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
50 #include <QTabWidget>
29692
b4e2c6150976 fix missing contents page at startup of doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29613
diff changeset
51 #include <QTimer>
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
52 #include <QVBoxLayout>
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
53
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
54 #include "documentation.h"
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
55 #include "documentation-bookmarks.h"
27560
3fcc650de22f split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents: 27412
diff changeset
56 #include "gui-preferences-global.h"
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
57 #include "gui-preferences-dc.h"
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
58 #include "gui-preferences-sc.h"
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
59 #include "gui-settings.h"
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
60 #include "octave-qobject.h"
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
61 #include "shortcut-manager.h"
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
62
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
63 #include "defaults.h"
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
64 #include "file-ops.h"
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
65 #include "oct-env.h"
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
66
31646
c6d54dd31a7e maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
67 OCTAVE_BEGIN_NAMESPACE(octave)
c6d54dd31a7e maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
68
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
69 // The documentation splitter, which is the main widget
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
70 // of the doc dock widget
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
71 documentation::documentation (QWidget *p, base_qobject& oct_qobj)
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
72 : QSplitter (Qt::Horizontal, p),
29613
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
73 m_octave_qobj (oct_qobj), m_doc_widget (this),
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
74 m_tool_bar (new QToolBar (this)),
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
75 m_query_string (QString ()),
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
76 m_indexed (false),
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
77 m_current_ref_name (QString ()),
29613
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
78 m_prev_pages_menu (new QMenu (this)),
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
79 m_next_pages_menu (new QMenu (this)),
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
80 m_prev_pages_count (0),
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
81 m_next_pages_count (0),
29613
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
82 m_findnext_shortcut (new QShortcut (this)),
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
83 m_findprev_shortcut (new QShortcut (this))
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
84 {
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
85 // Get original collection
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
86 QString collection = getenv ("OCTAVE_QTHELP_COLLECTION");
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
87 if (collection.isEmpty ())
25460
627d6bde9b8d solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents: 25440
diff changeset
88 collection = QString::fromStdString (config::oct_doc_dir ()
627d6bde9b8d solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents: 25440
diff changeset
89 + sys::file_ops::dir_sep_str ()
627d6bde9b8d solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents: 25440
diff changeset
90 + "octave_interpreter.qhc");
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
91
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
92 // Setup the help engine with the original collection, use a writable copy
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
93 // of the original collection and load the help data
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
94 m_help_engine = new QHelpEngine (collection, this);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
95
26729
c66f509d9f5c Mark qt documentation as readonly (bug #53841).
John Donoghue
parents: 26554
diff changeset
96 // Mark help as readonly to avoid error if collection file is stored in a
c66f509d9f5c Mark qt documentation as readonly (bug #53841).
John Donoghue
parents: 26554
diff changeset
97 // readonly location
c66f509d9f5c Mark qt documentation as readonly (bug #53841).
John Donoghue
parents: 26554
diff changeset
98 m_help_engine->setProperty ("_q_readonly",
c66f509d9f5c Mark qt documentation as readonly (bug #53841).
John Donoghue
parents: 26554
diff changeset
99 QVariant::fromValue<bool> (true));
c66f509d9f5c Mark qt documentation as readonly (bug #53841).
John Donoghue
parents: 26554
diff changeset
100
31007
497de29f6946 * documentation.cc (ctor): use internal function for temp directory
Torsten Lilge <ttl-octave@mailbox.org>
parents: 30772
diff changeset
101 QString tmpdir = QString::fromStdString (sys::env::get_temp_directory ());
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
102 m_collection
25336
389757b7b6af eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents: 25258
diff changeset
103 = QString::fromStdString (sys::tempnam (tmpdir.toStdString (),
389757b7b6af eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents: 25258
diff changeset
104 "oct-qhelp-"));
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
105
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
106 if (m_help_engine->copyCollectionFile (m_collection))
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
107 m_help_engine->setCollectionFile (m_collection);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
108 else
26064
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
109 #ifdef ENABLE_DOCS
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
110 // FIXME: Perhaps a better way to do this would be to keep a count
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
111 // in the GUI preferences file. After issuing this warning 3 times
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
112 // it would be disabled. The count would need to be reset when a new
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
113 // version of Octave is installed.
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
114 QMessageBox::warning (this, tr ("Octave Documentation"),
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
115 tr ("Could not copy help collection to temporary\n"
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
116 "file. Search capabilities may be affected.\n"
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
117 "%1").arg (m_help_engine->error ()));
26064
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
118 #endif
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
119
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
120 connect(m_help_engine->searchEngine (), SIGNAL(indexingFinished ()),
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
121 this, SLOT(load_index ()));
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
122 connect(m_help_engine, SIGNAL(setupFinished ()),
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
123 m_help_engine->searchEngine (), SLOT(reindexDocumentation ()));
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
124
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
125 if (! m_help_engine->setupData())
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
126 {
26064
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
127 #ifdef ENABLE_DOCS
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
128 QMessageBox::warning (this, tr ("Octave Documentation"),
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
129 tr ("Could not setup the data required for the\n"
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
130 "documentation viewer. Only help texts in\n"
25163
3aed4f0ba3cd Update some GUI strings identified as unclear by translators.
Rik <rik@octave.org>
parents: 25121
diff changeset
131 "the Command Window will be available."));
26064
673b1af42143 Don't complain about missing Qt help files when configure with --disable-docs (bug #53006).
Rik <rik@octave.org>
parents: 26058
diff changeset
132 #endif
26746
3d0f687e4a21 avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26729
diff changeset
133
3d0f687e4a21 avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26729
diff changeset
134 disconnect (m_help_engine, 0, 0, 0);
3d0f687e4a21 avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26729
diff changeset
135
3d0f687e4a21 avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26729
diff changeset
136 delete m_help_engine;
3d0f687e4a21 avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26729
diff changeset
137 m_help_engine = nullptr;
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
138 }
26746
3d0f687e4a21 avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26729
diff changeset
139
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
140 // The browser
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
141 QWidget *browser_find = new QWidget (this);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
142 m_doc_browser = new documentation_browser (m_help_engine, browser_find);
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
143 connect (m_doc_browser, &documentation_browser::cursorPositionChanged,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
144 this, &documentation::handle_cursor_position_change);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
145
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
146 // Tool bar
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
147 construct_tool_bar ();
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
148
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
149 // Find bar
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
150 QWidget *find_footer = new QWidget (browser_find);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
151 QLabel *find_label = new QLabel (tr ("Find:"), find_footer);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
152 m_find_line_edit = new QLineEdit (find_footer);
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
153 connect (m_find_line_edit, &QLineEdit::returnPressed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
154 this, [=] () { find (); });
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
155 connect (m_find_line_edit, &QLineEdit::textEdited,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
156 this, &documentation::find_forward_from_anchor);
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
157 QToolButton *forward_button = new QToolButton (find_footer);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
158 forward_button->setText (tr ("Search forward"));
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
159 forward_button->setToolTip (tr ("Search forward"));
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
160
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
161 gui_settings settings;
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
162
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
163 forward_button->setIcon (settings.icon ("go-down"));
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
164 connect (forward_button, &QToolButton::pressed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
165 this, [=] () { find (); });
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
166 QToolButton *backward_button = new QToolButton (find_footer);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
167 backward_button->setText (tr ("Search backward"));
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
168 backward_button->setToolTip (tr ("Search backward"));
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
169 backward_button->setIcon (settings.icon ("go-up"));
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
170 connect (backward_button, &QToolButton::pressed,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
171 this, &documentation::find_backward);
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
172 QHBoxLayout *h_box_find_footer = new QHBoxLayout (find_footer);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
173 h_box_find_footer->addWidget (find_label);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
174 h_box_find_footer->addWidget (m_find_line_edit);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
175 h_box_find_footer->addWidget (forward_button);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
176 h_box_find_footer->addWidget (backward_button);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
177 h_box_find_footer->setMargin (2);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
178 find_footer->setLayout (h_box_find_footer);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
179
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
180 QVBoxLayout *v_box_browser_find = new QVBoxLayout (browser_find);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
181 v_box_browser_find->addWidget (m_tool_bar);
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
182 v_box_browser_find->addWidget (m_doc_browser);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
183 v_box_browser_find->addWidget (find_footer);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
184 browser_find->setLayout (v_box_browser_find);
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
185
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
186 notice_settings ();
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
187
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
188 m_findnext_shortcut->setContext (Qt::WidgetWithChildrenShortcut);
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
189 connect (m_findnext_shortcut, &QShortcut::activated,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
190 this, [=] () { find (); });
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
191 m_findprev_shortcut->setContext (Qt::WidgetWithChildrenShortcut);
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
192 connect (m_findprev_shortcut, &QShortcut::activated,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
193 this, &documentation::find_backward);
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
194
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
195 find_footer->hide ();
25155
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
196 m_search_anchor_position = 0;
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
197
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
198 if (m_help_engine)
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
199 {
29034
e3bc897115ed Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents: 29031
diff changeset
200 #if defined (HAVE_NEW_QHELPINDEXWIDGET_API)
e3bc897115ed Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents: 29031
diff changeset
201 // Starting in Qt 5.15, help engine uses filters instead of old API
29031
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
202 m_help_engine->setUsesFilterEngine (true);
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
203 #endif
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
204 // Layout contents, index and search
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
205 QTabWidget *navi = new QTabWidget (this);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
206 navi->setTabsClosable (false);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
207 navi->setMovable (true);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
208
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
209 // Contents
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
210 QHelpContentWidget *content = m_help_engine->contentWidget ();
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
211 content->setObjectName ("documentation_tab_contents");
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
212 navi->addTab (content, tr ("Contents"));
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
213
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
214 connect (m_help_engine->contentWidget (),
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
215 &QHelpContentWidget::linkActivated,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
216 m_doc_browser, [=] (const QUrl& url) {
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
217 m_doc_browser->handle_index_clicked (url); });
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
218
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
219 // Index
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
220 QHelpIndexWidget *index = m_help_engine->indexWidget ();
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
221
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
222 m_filter = new QComboBox (this);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
223 m_filter->setToolTip (tr ("Enter text to search the indices"));
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
224 m_filter->setEditable (true);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
225 m_filter->setInsertPolicy (QComboBox::NoInsert);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
226 m_filter->setMaxCount (10);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
227 m_filter->setMaxVisibleItems (10);
27276
7455523fdf01 style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents: 27124
diff changeset
228 m_filter->setSizeAdjustPolicy (QComboBox::AdjustToMinimumContentsLengthWithIcon);
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
229 QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
230 m_filter->setSizePolicy (sizePol);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
231 m_filter->completer ()->setCaseSensitivity (Qt::CaseSensitive);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
232 QLabel *filter_label = new QLabel (tr ("Search"));
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
233
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
234 QWidget *filter_all = new QWidget (navi);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
235 QHBoxLayout *h_box_index = new QHBoxLayout (filter_all);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
236 h_box_index->addWidget (filter_label);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
237 h_box_index->addWidget (m_filter);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
238 h_box_index->setMargin (2);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
239 filter_all->setLayout (h_box_index);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
240
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
241 QWidget *index_all = new QWidget (navi);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
242 index_all->setObjectName ("documentation_tab_index");
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
243 QVBoxLayout *v_box_index = new QVBoxLayout (index_all);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
244 v_box_index->addWidget (filter_all);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
245 v_box_index->addWidget (index);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
246 index_all->setLayout (v_box_index);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
247
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
248 navi->addTab (index_all, tr ("Function Index"));
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
249
29034
e3bc897115ed Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents: 29031
diff changeset
250 #if defined (HAVE_NEW_QHELPINDEXWIDGET_API)
29031
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
251 connect (m_help_engine->indexWidget (),
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
252 &QHelpIndexWidget::documentActivated,
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
253 this, [=] (const QHelpLink &link) {
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
254 m_doc_browser->handle_index_clicked (link.url); });
29031
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
255 #else
29034
e3bc897115ed Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents: 29031
diff changeset
256 connect (m_help_engine->indexWidget (),
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
257 &QHelpIndexWidget::linkActivated,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
258 m_doc_browser, &documentation_browser::handle_index_clicked);
29031
a0ff81c8b8e8 fix index in document browser for Qt 5.15 (bug #59375)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27935
diff changeset
259 #endif
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
260
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
261 connect (m_filter, &QComboBox::editTextChanged,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
262 this, &documentation::filter_update);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
263
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
264 connect (m_filter->lineEdit (), &QLineEdit::editingFinished,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
265 this, &documentation::filter_update_history);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
266
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
267 // Bookmarks (own class)
31639
ca7d58406f82 eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents: 31621
diff changeset
268 m_bookmarks = new documentation_bookmarks (this, m_doc_browser, navi);
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
269 navi->addTab (m_bookmarks, tr ("Bookmarks"));
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
270
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
271 connect (m_action_bookmark, &QAction::triggered,
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
272 m_bookmarks, [=] () { m_bookmarks->add_bookmark (); });
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
273
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
274 // Search
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
275 QHelpSearchEngine *search_engine = m_help_engine->searchEngine ();
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
276 QHelpSearchQueryWidget *search = search_engine->queryWidget ();
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
277 QHelpSearchResultWidget *result = search_engine->resultWidget ();
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
278 QWidget *search_all = new QWidget (navi);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
279 QVBoxLayout *v_box_search = new QVBoxLayout (search_all);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
280 v_box_search->addWidget (search);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
281 v_box_search->addWidget (result);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
282 search_all->setLayout (v_box_search);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
283 search_all->setObjectName ("documentation_tab_search");
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
284 navi->addTab (search_all, tr ("Search"));
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
285
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
286 connect (search, &QHelpSearchQueryWidget::search,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
287 this, &documentation::global_search);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
288
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
289 connect (search_engine, &QHelpSearchEngine::searchingStarted,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
290 this, &documentation::global_search_started);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
291 connect (search_engine, &QHelpSearchEngine::searchingFinished,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
292 this, &documentation::global_search_finished);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
293
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
294 connect (search_engine->resultWidget (),
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
295 &QHelpSearchResultWidget::requestShowLink,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
296 this, &documentation::handle_search_result_clicked);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
297
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
298 // Fill the splitter
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
299 insertWidget (0, navi);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
300 insertWidget (1, browser_find);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
301 setStretchFactor (1, 1);
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
302 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
303 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
304
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
305 documentation::~documentation (void)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
306 {
25102
65b7380655f2 prevent crash if help data could not be set up (bug #53006)
Torsten <mttl@mailbox.org>
parents: 25101
diff changeset
307 // Cleanup temporary file and directory
65b7380655f2 prevent crash if help data could not be set up (bug #53006)
Torsten <mttl@mailbox.org>
parents: 25101
diff changeset
308 QFile file (m_collection);
65b7380655f2 prevent crash if help data could not be set up (bug #53006)
Torsten <mttl@mailbox.org>
parents: 25101
diff changeset
309 if (file.exists ())
65b7380655f2 prevent crash if help data could not be set up (bug #53006)
Torsten <mttl@mailbox.org>
parents: 25101
diff changeset
310 {
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
311 QFileInfo finfo (file);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
312 QString bname = finfo.fileName ();
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
313 QDir dir = finfo.absoluteDir ();
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
314 dir.setFilter (QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
315 QStringList namefilter;
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
316 namefilter.append ("*" + bname + "*");
27676
ea7d36e9f197 use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents: 27672
diff changeset
317 for (const auto& fi : dir.entryInfoList (namefilter))
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
318 {
25094
c0d48cfbb59a use Octave system functions to avoid build failure with Qt 4 (bug #53540)
Mike Miller <mtmiller@octave.org>
parents: 25061
diff changeset
319 std::string file_name = fi.absoluteFilePath ().toStdString ();
c0d48cfbb59a use Octave system functions to avoid build failure with Qt 4 (bug #53540)
Mike Miller <mtmiller@octave.org>
parents: 25061
diff changeset
320 sys::recursive_rmdir (file_name);
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
321 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
322
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
323 file.remove();
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
324 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
325 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
326
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
327 QAction * documentation::add_action (const QIcon& icon, const QString& text,
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
328 const char *member, QWidget *receiver,
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
329 QToolBar *tool_bar)
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
330 {
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
331 QAction *a;
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
332 QWidget *r = this;
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
333 if (receiver != nullptr)
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
334 r = receiver;
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
335
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
336 a = new QAction (icon, text, this);
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
337
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
338 if (member)
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
339 connect (a, SIGNAL (triggered ()), r, member);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
340
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
341 if (tool_bar)
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
342 tool_bar->addAction (a);
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
343
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
344 m_doc_widget->addAction (a); // important for shortcut context
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
345 a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
346
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
347 return a;
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
348 }
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
349
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
350 void documentation::construct_tool_bar (void)
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
351 {
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
352 // Home, Previous, Next
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
353 gui_settings settings;
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
354
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
355 m_action_go_home
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
356 = add_action (settings.icon ("go-home"), tr ("Go home"), SLOT (home (void)),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
357 m_doc_browser, m_tool_bar);
29613
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
358
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
359 m_action_go_prev
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
360 = add_action (settings.icon ("go-previous"), tr ("Go back"),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
361 SLOT (backward (void)), m_doc_browser, m_tool_bar);
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
362 m_action_go_prev->setEnabled (false);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
363
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
364 // popdown menu with prev pages files
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
365 QToolButton *popdown_button_prev_pages = new QToolButton ();
26300
ef7f95f89407 updated language files for translation (bug #55279)
Torsten <mttl@mailbox.org>
parents: 26257
diff changeset
366 popdown_button_prev_pages->setToolTip (tr ("Previous pages"));
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
367 popdown_button_prev_pages->setMenu (m_prev_pages_menu);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
368 popdown_button_prev_pages->setPopupMode (QToolButton::InstantPopup);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
369 popdown_button_prev_pages->setToolButtonStyle (Qt::ToolButtonTextOnly);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
370 popdown_button_prev_pages->setCheckable (false);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
371 popdown_button_prev_pages->setArrowType(Qt::DownArrow);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
372 m_tool_bar->addWidget (popdown_button_prev_pages);
29613
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29550
diff changeset
373
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
374 m_action_go_next
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
375 = add_action (settings.icon ("go-next"), tr ("Go forward"),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
376 SLOT (forward (void)), m_doc_browser, m_tool_bar);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
377 m_action_go_next->setEnabled (false);
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
378
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
379 // popdown menu with prev pages files
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
380 QToolButton *popdown_button_next_pages = new QToolButton ();
26300
ef7f95f89407 updated language files for translation (bug #55279)
Torsten <mttl@mailbox.org>
parents: 26257
diff changeset
381 popdown_button_next_pages->setToolTip (tr ("Next pages"));
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
382 popdown_button_next_pages->setMenu (m_next_pages_menu);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
383 popdown_button_next_pages->setPopupMode (QToolButton::InstantPopup);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
384 popdown_button_next_pages->setToolButtonStyle (Qt::ToolButtonTextOnly);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
385 popdown_button_next_pages->setArrowType(Qt::DownArrow);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
386 m_tool_bar->addWidget (popdown_button_next_pages);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
387
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
388 connect (m_doc_browser, &documentation_browser::backwardAvailable,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
389 m_action_go_prev, &QAction::setEnabled);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
390 connect (m_doc_browser, &documentation_browser::backwardAvailable,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
391 popdown_button_prev_pages, &QToolButton::setEnabled);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
392 connect (m_doc_browser, &documentation_browser::forwardAvailable,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
393 m_action_go_next, &QAction::setEnabled);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
394 connect (m_doc_browser, &documentation_browser::forwardAvailable,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
395 popdown_button_next_pages, &QToolButton::setEnabled);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
396 connect (m_doc_browser, &documentation_browser::historyChanged,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
397 this, &documentation::update_history_menus);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
398
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
399 // Init prev/next menus
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
400 for (int i = 0; i < max_history_entries; ++i)
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
401 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
402 m_prev_pages_actions[i] = new QAction (this);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
403 m_prev_pages_actions[i]->setVisible (false);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
404 m_next_pages_actions[i] = new QAction (this);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
405 m_next_pages_actions[i]->setVisible (false);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
406 m_prev_pages_menu->addAction (m_prev_pages_actions[i]);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
407 m_next_pages_menu->addAction (m_next_pages_actions[i]);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
408 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
409
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
410 connect (m_prev_pages_menu, &QMenu::triggered,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
411 this, &documentation::open_hist_url);
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
412 connect (m_next_pages_menu, &QMenu::triggered,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
413 this, &documentation::open_hist_url);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
414
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
415 // Find
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
416 m_tool_bar->addSeparator ();
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
417 m_action_find
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
418 = add_action (settings.icon ("edit-find"), tr ("Find"),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
419 SLOT (activate_find (void)), this, m_tool_bar);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
420
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
421 // Zoom
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
422 m_tool_bar->addSeparator ();
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
423 m_action_zoom_in
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
424 = add_action (settings.icon ("view-zoom-in"), tr ("Zoom in"),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
425 SLOT (zoom_in (void)), m_doc_browser, m_tool_bar);
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
426 m_action_zoom_out
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
427 = add_action (settings.icon ("view-zoom-out"), tr ("Zoom out"),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
428 SLOT (zoom_out (void)), m_doc_browser, m_tool_bar);
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
429 m_action_zoom_original
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
430 = add_action (settings.icon ("view-zoom-original"), tr ("Zoom original"),
27629
8b6e928e0705 in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents: 27620
diff changeset
431 SLOT (zoom_original (void)), m_doc_browser, m_tool_bar);
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
432
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
433 // Bookmarks (connect slots later)
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
434 m_tool_bar->addSeparator ();
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
435 m_action_bookmark
31621
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
436 = add_action (settings.icon ("bookmark-new"),
0645ea65ca6b handle icons and themes in gui_settings class, not resource_manager
John W. Eaton <jwe@octave.org>
parents: 31619
diff changeset
437 tr ("Bookmark current page"), nullptr, nullptr, m_tool_bar);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
438 }
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
439
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
440 void documentation::global_search (void)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
441 {
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
442 if (! m_help_engine)
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
443 return;
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
444
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
445 QString query_string;
25061
5fef743c34d7 build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents: 25060
diff changeset
446 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
5fef743c34d7 build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents: 25060
diff changeset
447 QString queries
5fef743c34d7 build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents: 25060
diff changeset
448 = m_help_engine->searchEngine ()->queryWidget ()->searchInput ();
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
449 query_string = queries;
25061
5fef743c34d7 build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents: 25060
diff changeset
450 #else
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
451 // FIXME: drop this part when support for Qt4 is dropped
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
452 QList<QHelpSearchQuery> queries
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
453 = m_help_engine->searchEngine ()->queryWidget ()->query ();
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
454 if (queries.count ())
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
455 query_string = queries.first ().wordList.join (" ");
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
456 else
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
457 query_string = "";
25061
5fef743c34d7 build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents: 25060
diff changeset
458 #endif
5fef743c34d7 build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents: 25060
diff changeset
459
27112
f8434681af15 * documentation.cc (global_search): just return if query string is empty (bug #56388)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
460 if (query_string.isEmpty ())
f8434681af15 * documentation.cc (global_search): just return if query string is empty (bug #56388)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
461 return;
f8434681af15 * documentation.cc (global_search): just return if query string is empty (bug #56388)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
462
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
463 // Get quoted search strings first, then take first string as fall back
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
464 QRegExp rx ("\"([^\"]*)\"");
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
465 if (rx.indexIn (query_string, 0) != -1)
26497
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
466 m_internal_search = rx.cap (1);
26318
e1b849489e73 improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26300
diff changeset
467 else
29049
461bd8b9ce91 use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents: 29047
diff changeset
468 #if defined (HAVE_QT_SPLITBEHAVIOR_ENUM)
461bd8b9ce91 use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents: 29047
diff changeset
469 m_internal_search = query_string.split (" ", Qt::SkipEmptyParts).first ();
461bd8b9ce91 use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents: 29047
diff changeset
470 #else
26497
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
471 m_internal_search = query_string.split (" ", QString::SkipEmptyParts).first ();
29049
461bd8b9ce91 use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents: 29047
diff changeset
472 #endif
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
473
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
474 m_help_engine->searchEngine ()->search (queries);
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
475 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
476
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
477 void documentation::global_search_started (void)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
478 {
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
479 qApp->setOverrideCursor(QCursor(Qt::WaitCursor));
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
480 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
481
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
482 void documentation::global_search_finished (int)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
483 {
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
484 if (! m_help_engine)
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
485 return;
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
486
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
487 if (! m_internal_search.isEmpty ())
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
488 {
26497
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
489 m_query_string = m_internal_search;
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
490
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
491 QHelpSearchEngine *search_engine = m_help_engine->searchEngine ();
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
492 if (search_engine)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
493 {
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
494 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
495 QVector<QHelpSearchResult> res
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
496 = search_engine->searchResults (0, search_engine->searchResultCount ());
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
497 #else
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
498 QList< QPair<QString, QString> > res
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
499 = search_engine->hits (0, search_engine->hitCount ());
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
500 #endif
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
501
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
502 if (res.count ())
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
503 {
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
504 QUrl url;
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
505
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
506 if (res.count () == 1)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
507 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
508 url = res.front ().url ();
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
509 #else
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
510 url = res.front ().first;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
511 #endif
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
512 else
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
513 {
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
514 // Remove the quotes we added
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
515 QString search_string = m_internal_search;
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
516
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
517 for (auto r = res.begin (); r != res.end (); r++)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
518 {
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
519 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
520 QString title = r->title ().toLower ();
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
521 QUrl tmpurl = r->url ();
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
522 #else
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
523 QString title = r->second.toLower ();
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
524 QUrl tmpurl = r->first;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
525 #endif
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
526 if (title.contains (search_string.toLower ()))
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
527 {
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
528 if (title.indexOf (search_string.toLower ()) == 0)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
529 {
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
530 url = tmpurl;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
531 break;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
532 }
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
533 else if (url.isEmpty ())
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
534 url = tmpurl;
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
535 }
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
536 }
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
537 }
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
538
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
539 if (! url.isEmpty ())
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
540 {
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
541 connect (this, &documentation::show_single_result,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
542 this, &documentation::handle_search_result_clicked);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
543
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
544 emit show_single_result (url);
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
545 }
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
546 }
27935
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
547 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
548
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
549 m_internal_search = QString ();
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
550 }
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
551
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
552 qApp->restoreOverrideCursor();
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
553 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
554
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
555 void documentation::handle_search_result_clicked (const QUrl& url)
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
556 {
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
557 // Open url with matching text
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
558 m_doc_browser->handle_index_clicked (url);
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
559
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
560 // Select all occurrences of matching text
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
561 select_all_occurrences (m_query_string);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
562
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
563 // Open search widget with matching text as search string
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
564 m_find_line_edit->setText (m_query_string);
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
565 m_find_line_edit->parentWidget ()->show ();
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
566
26497
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
567 // If no occurrence can be found go to the top of the page
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
568 if (! m_doc_browser->find (m_find_line_edit->text ()))
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
569 m_doc_browser->moveCursor (QTextCursor::Start);
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
570 else
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
571 {
27929
265b386f8b20 maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents: 27923
diff changeset
572 // Go to to first occurrence of search text. Going to the end and then
26497
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
573 // search backwards until the last occurrence ensures the search text
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
574 // is visible in the first line of the visible part of the text.
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
575 m_doc_browser->moveCursor (QTextCursor::End);
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
576 while (m_doc_browser->find (m_find_line_edit->text (),
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
577 QTextDocument::FindBackward));
6e0bf8212b40 improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents: 26408
diff changeset
578 }
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
579 }
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
580
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
581 void documentation::select_all_occurrences (const QString& text)
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
582 {
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
583 // Get highlight background and text color
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
584 QPalette pal = QApplication::palette ();
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
585 QTextCharFormat format;
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
586 QColor col = pal.color (QPalette::Highlight);
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
587 col.setAlphaF (0.25);
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
588 format.setBackground (QBrush (col));
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
589 format.setForeground (QBrush (pal.color (QPalette::Text)));
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
590
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
591 // Create list for extra selected items
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
592 QList<QTextEdit::ExtraSelection> selected;
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
593 m_doc_browser->moveCursor (QTextCursor::Start);
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
594
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
595 // Find all occurrences and add them to the selection
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
596 while ( m_doc_browser->find (text) )
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
597 {
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
598 QTextEdit::ExtraSelection selected_item;
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
599 selected_item.cursor = m_doc_browser->textCursor ();
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
600 selected_item.format = format;
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
601 selected.append (selected_item);
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
602 }
26408
25dfa8c96b7b * documentation.cc (notice_settings): prevent segfault if help engine does not exist
Torsten <mttl@mailbox.org>
parents: 26376
diff changeset
603
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27818
diff changeset
604 // Apply selection and move back to the beginning
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27818
diff changeset
605 m_doc_browser->setExtraSelections (selected);
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27818
diff changeset
606 m_doc_browser->moveCursor (QTextCursor::Start);
26245
af99ea9c325f Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents: 26190
diff changeset
607 }
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
608
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
609 void documentation::notice_settings (void)
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
610 {
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
611 gui_settings settings;
27630
262cdd0f7619 don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents: 27629
diff changeset
612
27893
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27818
diff changeset
613 // If m_help_engine is not defined, the objects accessed by this method
465ac679e976 Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents: 27818
diff changeset
614 // are not valid. Thus, just return in this case.
26408
25dfa8c96b7b * documentation.cc (notice_settings): prevent segfault if help engine does not exist
Torsten <mttl@mailbox.org>
parents: 26376
diff changeset
615 if (! m_help_engine)
25dfa8c96b7b * documentation.cc (notice_settings): prevent segfault if help engine does not exist
Torsten <mttl@mailbox.org>
parents: 26376
diff changeset
616 return;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
617
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
618 // Icon size in the toolbar.
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
619 int size_idx = settings.value (global_icon_size).toInt ();
26058
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 26050
diff changeset
620 size_idx = (size_idx > 0) - (size_idx < 0) + 1; // Make valid index from 0 to 2
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
621
26058
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 26050
diff changeset
622 QStyle *st = style ();
ecd86b8b8979 use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents: 26050
diff changeset
623 int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
624 m_tool_bar->setIconSize (QSize (icon_size, icon_size));
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
625
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
626 // Shortcuts
27630
262cdd0f7619 don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents: 27629
diff changeset
627 shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager ();
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
628
27818
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
629 scmgr.set_shortcut (m_action_find, sc_edit_edit_find_replace);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
630 scmgr.shortcut (m_findnext_shortcut, sc_edit_edit_find_next);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
631 scmgr.shortcut (m_findprev_shortcut, sc_edit_edit_find_previous);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
632 scmgr.set_shortcut (m_action_zoom_in, sc_edit_view_zoom_in);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
633 scmgr.set_shortcut (m_action_zoom_out, sc_edit_view_zoom_out);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
634 scmgr.set_shortcut (m_action_zoom_original, sc_edit_view_zoom_normal);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
635 scmgr.set_shortcut (m_action_go_home, sc_doc_go_home);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
636 scmgr.set_shortcut (m_action_go_prev, sc_doc_go_back);
fa0582694fda replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27676
diff changeset
637 scmgr.set_shortcut (m_action_go_next, sc_doc_go_next);
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
638 scmgr.set_shortcut (m_action_bookmark, sc_doc_bookmark);
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
639
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
640 // Settings for the browser
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
641 m_doc_browser->notice_settings ();
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
642 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
643
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
644 void documentation::save_settings (void)
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
645 {
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
646 gui_settings settings;
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
647
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
648 m_doc_browser->save_settings ();
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
649 m_bookmarks->save_settings ();
25371
41bbdf17f51a make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents: 25336
diff changeset
650 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
651
25962
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
652 void documentation::copyClipboard (void)
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
653 {
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
654 if (m_doc_browser->hasFocus ())
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
655 {
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
656 m_doc_browser->copy();
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
657 }
12ad5eb2328e Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents: 25609
diff changeset
658 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
659
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
660 void documentation::pasteClipboard (void) { }
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
661
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
662 void documentation::selectAll (void) { }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
663
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
664 void documentation::load_index (void)
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
665 {
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
666 m_indexed = true;
29781
6cbd169e391b * documentation.cc (load_index): expand the contents tree view at startup
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29779
diff changeset
667
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
668 // Show index if no other page is required.
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
669 if (m_current_ref_name.isEmpty ())
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
670 m_doc_browser->setSource
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
671 (QUrl ("qthelp://org.octave.interpreter-1.0/doc/octave.html/index.html"));
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
672 else
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
673 load_ref (m_current_ref_name);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
674
29781
6cbd169e391b * documentation.cc (load_index): expand the contents tree view at startup
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29779
diff changeset
675 m_help_engine->contentWidget ()->expandToDepth (0);
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
676 }
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
677
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
678 void documentation::load_ref (const QString& ref_name)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
679 {
26770
2f550a8122d5 Simply show the doc browser when the search query is empty (bug #55756).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26755
diff changeset
680 if (! m_help_engine || ref_name.isEmpty ())
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
681 return;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
682
29779
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
683 m_current_ref_name = ref_name;
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
684
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
685 if (! m_indexed)
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
686 return;
58e7df720752 fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29711
diff changeset
687
29053
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
688 #if defined (HAVE_QHELPENGINE_DOCUMENTSFORIDENTIFIER)
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
689 QList<QHelpLink> found_links
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
690 = m_help_engine->documentsForIdentifier (ref_name);
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
691 #else
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
692 QMap<QString, QUrl> found_links
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
693 = m_help_engine->linksForIdentifier (ref_name);
29053
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
694 #endif
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
695
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29781
diff changeset
696 QTabWidget *navi = static_cast<QTabWidget *> (widget (0));
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
697
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
698 if (found_links.count() > 0)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
699 {
29174
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
700 // First search in the function index
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
701 #if defined (HAVE_QHELPENGINE_DOCUMENTSFORIDENTIFIER)
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
702 QUrl first_url = found_links.constFirst().url;
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
703 #else
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
704 QUrl first_url = found_links.constBegin().value ();
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
705 #endif
4ca50ceb9576 avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents: 29118
diff changeset
706
29053
0678fdb81efc avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents: 29050
diff changeset
707 m_doc_browser->setSource (first_url);
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
708
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
709 // Switch to function index tab
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
710 m_help_engine->indexWidget()->filterIndices (ref_name);
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
711 QWidget *index_tab
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29781
diff changeset
712 = navi->findChild<QWidget *> ("documentation_tab_index");
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
713 navi->setCurrentWidget (index_tab);
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
714 }
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
715 else
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
716 {
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
717 // Use full text search to provide the best match
25609
506419b5f817 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25541
diff changeset
718 QHelpSearchEngine *search_engine = m_help_engine->searchEngine ();
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
719 QHelpSearchQueryWidget *search_query = search_engine->queryWidget ();
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
720
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
721 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
722 QString query = ref_name;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
723 query.prepend ("\"").append ("\"");
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
724 #else
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
725 QList<QHelpSearchQuery> query;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
726 query << QHelpSearchQuery (QHelpSearchQuery::DEFAULT,
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
727 QStringList (QString("\"") + ref_name + QString("\"")));
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
728 #endif
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
729 m_internal_search = ref_name;
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
730 search_engine->search (query);
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
731
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
732 // Switch to search tab
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
733 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
734 search_query->setSearchInput (query);
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
735 #else
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
736 search_query->setQuery (query);
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
737 #endif
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
738 QWidget *search_tab
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29781
diff changeset
739 = navi->findChild<QWidget *> ("documentation_tab_search");
25541
517c73173011 doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25460
diff changeset
740 navi->setCurrentWidget (search_tab);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
741 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
742 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
743
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
744 void documentation::activate_find (void)
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
745 {
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
746 if (m_find_line_edit->parentWidget ()->isVisible ())
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
747 {
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
748 m_find_line_edit->parentWidget ()->hide ();
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
749 m_doc_browser->setFocus ();
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
750 }
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
751 else
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
752 {
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
753 m_find_line_edit->parentWidget ()->show ();
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
754 m_find_line_edit->selectAll ();
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
755 m_find_line_edit->setFocus ();
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
756 }
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
757 }
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
758
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
759 void documentation::filter_update (const QString& expression)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
760 {
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
761 if (! m_help_engine)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
762 return;
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
763
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
764 QString wildcard;
25103
078b795c5219 maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents: 25102
diff changeset
765 if (expression.contains (QLatin1Char('*')))
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
766 wildcard = expression;
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
767
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
768 m_help_engine->indexWidget ()->filterIndices(expression, wildcard);
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
769 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
770
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
771 void documentation::filter_update_history (void)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
772 {
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
773 QString text = m_filter->currentText (); // get current text
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
774 int index = m_filter->findText (text); // and its actual index
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
775
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
776 if (index > -1)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
777 m_filter->removeItem (index); // remove if already existing
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
778
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
779 m_filter->insertItem (0, text); // (re)insert at beginning
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
780 m_filter->setCurrentIndex (0);
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
781 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
782
27092
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
783 void documentation::find_backward (void)
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
784 {
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
785 find (true);
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
786 }
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
787
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
788 void documentation::find (bool backward)
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
789 {
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
790 if (! m_help_engine)
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
791 return;
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
792
29050
ce849f006568 avoid deprecated QFlags<T>::QFlags(QFlags<T>::Zero) constructor
John W. Eaton <jwe@octave.org>
parents: 29049
diff changeset
793 QTextDocument::FindFlags find_flags;
27092
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
794 if (backward)
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
795 find_flags = QTextDocument::FindBackward;
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
796
27092
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
797 if (! m_doc_browser->find (m_find_line_edit->text (), find_flags))
27935
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
798 {
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
799 // Nothing was found, restart search from the begin or end of text
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
800 QTextCursor textcur = m_doc_browser->textCursor ();
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
801 if (backward)
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
802 textcur.movePosition (QTextCursor::End);
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
803 else
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
804 textcur.movePosition (QTextCursor::Start);
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
805 m_doc_browser->setTextCursor (textcur);
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
806 m_doc_browser->find (m_find_line_edit->text (), find_flags);
f1844e33f621 maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents: 27929
diff changeset
807 }
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
808
25155
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
809 record_anchor_position ();
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
810 }
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
811
25155
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
812 void documentation::find_forward_from_anchor (const QString& text)
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
813 {
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
814 if (! m_help_engine)
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
815 return;
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
816
27091
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
817 // Search from the current position
25155
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
818 QTextCursor textcur = m_doc_browser->textCursor ();
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
819 textcur.setPosition (m_search_anchor_position);
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
820 m_doc_browser->setTextCursor (textcur);
27091
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
821
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
822 if (! m_doc_browser->find (text))
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
823 {
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
824 // Nothing was found, restart search from the beginning
27092
d1fe5bd5e005 wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27091
diff changeset
825 textcur.movePosition (QTextCursor::Start);
27091
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
826 m_doc_browser->setTextCursor (textcur);
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
827 m_doc_browser->find (text);
dcc3a8065ccd wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 26770
diff changeset
828 }
25155
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
829 }
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
830
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
831 void documentation::record_anchor_position (void)
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
832 {
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
833 if (! m_help_engine)
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
834 return;
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
835
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
836 m_search_anchor_position = m_doc_browser->textCursor ().position ();
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
837 }
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
838
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
839 void documentation::handle_cursor_position_change (void)
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
840 {
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
841 if (! m_help_engine)
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
842 return;
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
843
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
844 if (m_doc_browser->hasFocus ())
17387d4edd1d Add standard key bindings and actions to in-page Documentation find (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25121
diff changeset
845 record_anchor_position ();
25121
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
846 }
9578133ca03e Add a Ctrl+F unhide/hide in-page find footer to the Documentation window (bug #53006)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 25103
diff changeset
847
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
848 void documentation::registerDoc (const QString& qch)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
849 {
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
850 if (m_help_engine)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
851 {
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
852 QString ns = m_help_engine->namespaceName (qch);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
853 bool do_setup = true;
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
854 if (m_help_engine->registeredDocumentations ().contains (ns))
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
855 {
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
856 if (m_help_engine->documentationFileName (ns) == qch)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
857 do_setup = false;
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
858 else
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
859 {
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
860 m_help_engine->unregisterDocumentation (ns);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
861 m_help_engine->registerDocumentation (qch);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
862 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
863 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
864 else if (! m_help_engine->registerDocumentation (qch))
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
865 {
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
866 QMessageBox::warning (this, tr ("Octave Documentation"),
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
867 tr ("Unable to register help file %1.").
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
868 arg (qch));
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
869 return;
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
870 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
871
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
872 if (do_setup)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
873 m_help_engine->setupData();
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
874 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
875 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
876
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
877 void documentation::unregisterDoc (const QString& qch)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
878 {
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
879 if (! m_help_engine)
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
880 return;
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
881
25060
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
882 QString ns = m_help_engine->namespaceName (qch);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
883 if (m_help_engine
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
884 && m_help_engine->registeredDocumentations ().contains (ns)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
885 && m_help_engine->documentationFileName (ns) == qch)
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
886 {
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
887 m_help_engine->unregisterDocumentation (ns);
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
888 m_help_engine->setupData ();
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
889 }
1cd3aeda7598 Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25042
diff changeset
890 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
891
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
892 void documentation::update_history_menus (void)
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
893 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
894 if (m_prev_pages_count != m_doc_browser->backwardHistoryCount ())
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
895 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
896 update_history (m_doc_browser->backwardHistoryCount (),
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
897 m_prev_pages_actions);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
898 m_prev_pages_count = m_doc_browser->backwardHistoryCount ();
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
899 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
900
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
901 if (m_next_pages_count != m_doc_browser->forwardHistoryCount ())
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
902 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
903 update_history (m_doc_browser->forwardHistoryCount (),
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
904 m_next_pages_actions);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
905 m_next_pages_count = m_doc_browser->forwardHistoryCount ();
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
906 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
907 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
908
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
909 void documentation::update_history (int new_count, QAction **actions)
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
910 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
911 // Which menu has to be updated?
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
912 int prev_next = -1;
26133
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
913 QAction *a = m_action_go_prev;
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
914 if (actions == m_next_pages_actions)
26133
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
915 {
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
916 prev_next = 1;
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
917 a = m_action_go_next;
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
918 }
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
919
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
920 // Get maximal count limited by array size
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
921 int count = qMin (new_count, int (max_history_entries));
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
922
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
923 // Fill used menu entries
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
924 for (int i = 0; i < count; i++)
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
925 {
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
926 QString title
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
927 = title_and_anchor (m_doc_browser->historyTitle (prev_next*(i+1)),
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
928 m_doc_browser->historyUrl (prev_next*(i+1)));
26144
494452db0477 doc browser: append anchor from url to history titles (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26143
diff changeset
929
26133
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
930 if (i == 0)
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
931 a->setText (title); // set tool tip for prev/next buttons
84cd950f0f75 fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26128
diff changeset
932
26128
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
933 actions[i]->setText (title);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
934 actions[i]->setData (m_doc_browser->historyUrl (prev_next*(i+1)));
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
935 actions[i]->setEnabled (true);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
936 actions[i]->setVisible (true);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
937 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
938
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
939 // Hide unused menu entries
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
940 for (int j = count; j < max_history_entries; j++)
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
941 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
942 actions[j]->setEnabled (false);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
943 actions[j]->setVisible (false);
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
944 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
945 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
946
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
947 void documentation::open_hist_url (QAction *a)
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
948 {
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
949 m_doc_browser->setSource (a->data ().toUrl ());
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
950 }
20b87596b99a add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents: 26064
diff changeset
951
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
952 // Utility functions
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
953
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
954 QString documentation::title_and_anchor (const QString& title, const QUrl& url)
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
955 {
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
956 QString retval = title;
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
957 QString u = url.toString ();
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
958
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
959 retval.remove (QRegExp ("\\s*\\(*GNU Octave \\(version [^\\)]*\\)[: \\)]*"));
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
960
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
961 // Since the title only contains the section name and not the
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
962 // specific anchor, extract the latter from the url and append
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
963 // it to the title
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
964 if (u.contains ('#'))
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
965 {
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
966 // Get the anchor from the url
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
967 QString anchor = u.split ('#').last ();
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
968 // Remove internal string parts
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
969 anchor.remove (QRegExp ("^index-"));
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
970 anchor.remove (QRegExp ("^SEC_"));
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
971 anchor.remove (QRegExp ("^XREF"));
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
972 anchor.remove ("Concept-Index_cp_letter-");
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29781
diff changeset
973 anchor.replace ("-", " ");
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
974
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
975 // replace encoded special chars by their unencoded versions
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
976 QRegExp rx = QRegExp ("_00([0-7][0-9a-f])");
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
977 int pos = 0;
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
978 while ((pos = rx.indexIn(anchor, pos)) != -1)
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
979 {
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29781
diff changeset
980 anchor.replace ("_00"+rx.cap (1), QChar (rx.cap (1).toInt (nullptr, 16)));
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
981 pos += rx.matchedLength();
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
982 }
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
983
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
984 if (retval != anchor)
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
985 retval = retval + ": " + anchor;
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
986 }
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
987
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
988 return retval;
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
989 }
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
990
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
991 //
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
992 // The documentation browser
29330
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
993 //
b92614cfdfed add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29174
diff changeset
994
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
995 documentation_browser::documentation_browser (QHelpEngine *he, QWidget *p)
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
996 : QTextBrowser (p), m_help_engine (he), m_zoom_level (max_zoom_level+1)
26134
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
997 {
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
998 setOpenLinks (false);
29542
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
999 connect (this, &documentation_browser::anchorClicked,
3d34b70b5a49 connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
1000 this, [=] (const QUrl& url) { handle_index_clicked (url); });
31293
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1001
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1002 // Make sure we have access to one of the monospace fonts listed in
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1003 // octave.css for rendering formated code blocks
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1004 QStringList fonts = {"Fantasque Sans Mono", "FreeMono", "Courier New",
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1005 "Cousine", "Courier"};
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1006
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1007 bool load_default_font = true;
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1008
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1009 for (int i = 0; i < fonts.size (); ++i)
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1010 {
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1011 QFont font (fonts.at (i));
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1012 if (font.exactMatch ())
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1013 {
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1014 load_default_font = false;
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1015 break;
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1016 }
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1017 }
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1018
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1019 if (load_default_font)
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1020 {
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1021 QString fonts_dir =
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1022 QString::fromStdString (sys::env::getenv ("OCTAVE_FONTS_DIR")
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1023 + sys::file_ops::dir_sep_str ());
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1024
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1025 QStringList default_fonts = {"FreeMono", "FreeMonoBold",
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1026 "FreeMonoBoldOblique", "FreeMonoOblique"};
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1027
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1028 for (int i = 0; i < default_fonts.size (); ++i)
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1029 {
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1030 QString fontpath =
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1031 fonts_dir + default_fonts.at(i) + QString (".otf");
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1032 QFontDatabase::addApplicationFont (fontpath);
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1033 }
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1034 }
26134
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
1035 }
31293
17c8048a187b doc: use a default monospace font in Qt doc browser (bug #63204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 31007
diff changeset
1036
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1037 void documentation_browser::handle_index_clicked (const QUrl& url,
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1038 const QString&)
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1039 {
26134
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
1040 if (url.scheme () == "qthelp")
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
1041 setSource (url);
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
1042 else
3a38afebf949 open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents: 26133
diff changeset
1043 QDesktopServices::openUrl (url);
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1044 }
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1045
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1046 void documentation_browser::notice_settings (void)
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1047 {
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1048 gui_settings settings;
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1049
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1050 // Zoom level only at startup, not when other settings have changed
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1051 if (m_zoom_level > max_zoom_level)
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1052 {
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1053 m_zoom_level = settings.value (dc_browser_zoom_level).toInt ();
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1054 zoomIn (m_zoom_level);
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1055 }
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1056 }
25042
ba5af45bbfc4 documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff changeset
1057
30398
d4d83344d653 maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents: 29781
diff changeset
1058 QVariant documentation_browser::loadResource (int type, const QUrl& url)
25103
078b795c5219 maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents: 25102
diff changeset
1059 {
26755
c39d26971f4b avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents: 26746
diff changeset
1060 if (m_help_engine && url.scheme () == "qthelp")
25103
078b795c5219 maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents: 25102
diff changeset
1061 return QVariant (m_help_engine->fileData(url));
078b795c5219 maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents: 25102
diff changeset
1062 else
078b795c5219 maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents: 25102
diff changeset
1063 return QTextBrowser::loadResource(type, url);
078b795c5219 maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents: 25102
diff changeset
1064 }
25976
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1065
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1066 void documentation_browser::save_settings (void)
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1067 {
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1068 gui_settings settings;
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1069
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1070 settings.setValue (dc_browser_zoom_level.key, m_zoom_level);
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1071
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1072 settings.sync ();
29711
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1073 }
7a0be7c8b7ca restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29692
diff changeset
1074
25976
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1075 void documentation_browser::zoom_in (void)
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1076 {
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1077 if (m_zoom_level < max_zoom_level)
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1078 {
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1079 zoomIn ();
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1080 m_zoom_level++;
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1081 }
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1082 }
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1083
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1084 void documentation_browser::zoom_out (void)
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1085 {
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1086 if (m_zoom_level > min_zoom_level)
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1087 {
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1088 zoomOut ();
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1089 m_zoom_level--;
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1090 }
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1091 }
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1092
26017
390d59717711 adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents: 25985
diff changeset
1093 void documentation_browser::zoom_original (void)
25976
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1094 {
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1095 zoomIn (- m_zoom_level);
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1096 m_zoom_level = 0;
a7cc5b7a3d22 provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents: 25962
diff changeset
1097 }
25985
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1098
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1099 void documentation_browser::wheelEvent (QWheelEvent *we)
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1100 {
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1101 if (we->modifiers () == Qt::ControlModifier)
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1102 {
29047
94396ec1a89d avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents: 29034
diff changeset
1103 #if defined (HAVE_QWHEELEVENT_ANGLEDELTA)
94396ec1a89d avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents: 29034
diff changeset
1104 if (we->angleDelta().y () > 0)
94396ec1a89d avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents: 29034
diff changeset
1105 #else
94396ec1a89d avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents: 29034
diff changeset
1106 if (we->delta() > 0)
94396ec1a89d avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents: 29034
diff changeset
1107 #endif
25985
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1108 zoom_in ();
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1109 else
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1110 zoom_out ();
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1111
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1112 we->accept ();
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1113 }
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1114 else
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1115 QTextEdit::wheelEvent (we);
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1116 }
49ffd0e0242d enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents: 25976
diff changeset
1117
31646
c6d54dd31a7e maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents: 31548
diff changeset
1118 OCTAVE_END_NAMESPACE(octave)