Mercurial > octave
annotate libgui/src/documentation.cc @ 29779:58e7df720752
fix doc browser startup when launched from cli
* documentation.cc (documentation): init new data members, connect
indexingFinished signal to new slot load_index, do not load index
automatically;
(load_index): new slot for indexingFinished signal, loading index
or the desired page if given by the user;
(load_ref): store ref name in new data member for later use in
load:index, return if indexing not yet ready
* documentation.h new slot load_index, load_ref with emtpy argument
by default, new data memebrs m_indexed and m_current_ref_name
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Fri, 18 Jun 2021 21:22:21 +0200 |
parents | 7a0be7c8b7ca |
children | 6cbd169e391b |
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 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29174
diff
changeset
|
3 // Copyright (C) 2018-2021 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> |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
37 #include <QHelpContentWidget> |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
38 #include <QHelpIndexWidget> |
29118
d34558c873dc
documentation.cc: Include missing header (bug #59553).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29053
diff
changeset
|
39 #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
|
40 || 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
|
41 # 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
|
42 #endif |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
43 #include <QHelpSearchEngine> |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
44 #include <QHelpSearchQueryWidget> |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
45 #include <QHelpSearchResultWidget> |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
46 #include <QLabel> |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
47 #include <QLineEdit> |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
48 #include <QMessageBox> |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
49 #include <QTabWidget> |
29692
b4e2c6150976
fix missing contents page at startup of doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29613
diff
changeset
|
50 #include <QTimer> |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
51 #include <QVBoxLayout> |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
52 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
53 #include "documentation.h" |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
54 #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
|
55 #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
|
56 #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
|
57 #include "gui-preferences-sc.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
|
58 #include "octave-qobject.h" |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
59 #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
|
60 |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
61 #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
|
62 #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
|
63 #include "oct-env.h" |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
64 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
65 namespace octave |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
66 { |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
67 // 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
|
68 // 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
|
69 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
|
70 : 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
|
71 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
|
72 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
|
73 m_query_string (QString ()), |
29779
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
74 m_indexed (false), |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
75 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
|
76 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
|
77 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
|
78 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
|
79 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
|
80 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
|
81 m_findprev_shortcut (new QShortcut (this)) |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
82 { |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
83 // Get original collection |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
84 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
|
85 if (collection.isEmpty ()) |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
86 collection = QString::fromStdString (config::oct_doc_dir () |
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
87 + sys::file_ops::dir_sep_str () |
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
88 + "octave_interpreter.qhc"); |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
89 |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
90 // 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
|
91 // 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
|
92 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
|
93 |
26729
c66f509d9f5c
Mark qt documentation as readonly (bug #53841).
John Donoghue
parents:
26554
diff
changeset
|
94 // 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
|
95 // readonly location |
c66f509d9f5c
Mark qt documentation as readonly (bug #53841).
John Donoghue
parents:
26554
diff
changeset
|
96 m_help_engine->setProperty ("_q_readonly", |
c66f509d9f5c
Mark qt documentation as readonly (bug #53841).
John Donoghue
parents:
26554
diff
changeset
|
97 QVariant::fromValue<bool> (true)); |
c66f509d9f5c
Mark qt documentation as readonly (bug #53841).
John Donoghue
parents:
26554
diff
changeset
|
98 |
25101
29641449ca90
use qt routines for determining users tmp directory (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25094
diff
changeset
|
99 QString tmpdir = QDir::tempPath(); |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
100 m_collection |
25336
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25258
diff
changeset
|
101 = QString::fromStdString (sys::tempnam (tmpdir.toStdString (), |
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25258
diff
changeset
|
102 "oct-qhelp-")); |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
103 |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
104 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
|
105 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
|
106 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
|
107 #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
|
108 // 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
|
109 // 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
|
110 // 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
|
111 // 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
|
112 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
|
113 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
|
114 "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
|
115 "%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
|
116 #endif |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
117 |
29779
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
118 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
|
119 this, SLOT(load_index ())); |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
120 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
|
121 m_help_engine->searchEngine (), SLOT(reindexDocumentation ())); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
122 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
123 if (! m_help_engine->setupData()) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
124 { |
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
|
125 #ifdef ENABLE_DOCS |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
126 QMessageBox::warning (this, tr ("Octave Documentation"), |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
127 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
|
128 "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
|
129 "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
|
130 #endif |
26746
3d0f687e4a21
avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26729
diff
changeset
|
131 |
3d0f687e4a21
avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26729
diff
changeset
|
132 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
|
133 |
3d0f687e4a21
avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26729
diff
changeset
|
134 delete m_help_engine; |
3d0f687e4a21
avoid crash if help engine setup fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26729
diff
changeset
|
135 m_help_engine = nullptr; |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
136 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
137 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
138 // 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
|
139 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
|
140 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
|
141 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
|
142 this, &documentation::handle_cursor_position_change); |
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
|
143 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
144 // Tool bar |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
145 construct_tool_bar (); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
146 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
147 // 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
|
148 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
|
149 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
|
150 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
|
151 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
|
152 this, [=] () { find (); }); |
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::textEdited, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
154 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
|
155 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
|
156 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
|
157 forward_button->setToolTip (tr ("Search 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
|
158 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
159 forward_button->setIcon (rmgr.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
|
160 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
|
161 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
|
162 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
|
163 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
|
164 backward_button->setToolTip (tr ("Search backward")); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
165 backward_button->setIcon (rmgr.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
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 |
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 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
|
177 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
|
178 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
|
179 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
|
180 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
|
181 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
182 notice_settings (rmgr.get_settings ()); |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
183 |
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
184 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
|
185 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
|
186 this, [=] () { find (); }); |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
187 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
|
188 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
|
189 this, &documentation::find_backward); |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
190 |
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
|
191 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
|
192 m_search_anchor_position = 0; |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
193 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
194 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
|
195 { |
29034
e3bc897115ed
Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents:
29031
diff
changeset
|
196 #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
|
197 // 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
|
198 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
|
199 #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
|
200 // 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
|
201 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
|
202 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
|
203 navi->setMovable (true); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
204 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
205 // Contents |
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
206 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
|
207 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
|
208 navi->addTab (content, tr ("Contents")); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
209 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
210 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
|
211 &QHelpContentWidget::linkActivated, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
212 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
|
213 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
|
214 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
215 // Index |
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
216 QHelpIndexWidget *index = m_help_engine->indexWidget (); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
217 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
218 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
|
219 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
|
220 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
|
221 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
|
222 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
|
223 m_filter->setMaxVisibleItems (10); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27124
diff
changeset
|
224 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
|
225 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
|
226 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
|
227 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
|
228 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
|
229 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
230 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
|
231 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
|
232 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
|
233 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
|
234 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
|
235 filter_all->setLayout (h_box_index); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
236 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
237 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
|
238 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
|
239 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
|
240 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
|
241 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
|
242 index_all->setLayout (v_box_index); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
243 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
244 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
|
245 |
29034
e3bc897115ed
Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents:
29031
diff
changeset
|
246 #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
|
247 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
|
248 &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
|
249 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
|
250 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
|
251 #else |
29034
e3bc897115ed
Change feature test to OCTAVE_CHECK_NEW_QHELPINDEXWIDGET_API in cset a0ff81c8b8e8.
Rik <rik@octave.org>
parents:
29031
diff
changeset
|
252 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
|
253 &QHelpIndexWidget::linkActivated, |
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, &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
|
255 #endif |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
256 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
257 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
|
258 this, &documentation::filter_update); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
259 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
260 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
|
261 this, &documentation::filter_update_history); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
262 |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
263 // Bookmarks (own class) |
29711
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
264 m_bookmarks |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
265 = new documentation_bookmarks (this, m_doc_browser, m_octave_qobj, navi); |
29711
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
266 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
|
267 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
268 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
|
269 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
|
270 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
271 // Search |
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
272 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
|
273 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
|
274 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
|
275 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
|
276 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
|
277 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
|
278 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
|
279 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
|
280 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
|
281 navi->addTab (search_all, tr ("Search")); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
282 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
283 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
|
284 this, &documentation::global_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_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
|
287 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
|
288 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
|
289 this, &documentation::global_search_finished); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
290 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
291 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
|
292 &QHelpSearchResultWidget::requestShowLink, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
293 this, &documentation::handle_search_result_clicked); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
294 |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
295 // 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
|
296 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
|
297 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
|
298 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
|
299 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
300 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
301 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
302 documentation::~documentation (void) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
303 { |
25102
65b7380655f2
prevent crash if help data could not be set up (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25101
diff
changeset
|
304 // 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
|
305 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
|
306 if (file.exists ()) |
65b7380655f2
prevent crash if help data could not be set up (bug #53006)
Torsten <mttl@mailbox.org>
parents:
25101
diff
changeset
|
307 { |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
308 QFileInfo finfo (file); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
309 QString bname = finfo.fileName (); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
310 QDir dir = finfo.absoluteDir (); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
311 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
|
312 QStringList namefilter; |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
313 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
|
314 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
|
315 { |
25094
c0d48cfbb59a
use Octave system functions to avoid build failure with Qt 4 (bug #53540)
Mike Miller <mtmiller@octave.org>
parents:
25061
diff
changeset
|
316 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
|
317 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
|
318 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
319 |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
320 file.remove(); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
321 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
322 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
323 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
324 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
|
325 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
|
326 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
|
327 { |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
328 QAction *a; |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
329 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
|
330 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
|
331 r = receiver; |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
332 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
333 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
|
334 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
335 if (member) |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
336 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
|
337 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
338 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
|
339 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
|
340 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
341 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
|
342 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
|
343 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
344 return a; |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
345 } |
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 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
|
348 { |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
349 // Home, Previous, Next |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
350 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
351 m_action_go_home |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
352 = add_action (rmgr.icon ("go-home"), tr ("Go home"), SLOT (home (void)), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
353 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
|
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_prev |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
356 = add_action (rmgr.icon ("go-previous"), tr ("Go back"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
357 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
|
358 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
|
359 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
360 // 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
|
361 QToolButton *popdown_button_prev_pages = new QToolButton (); |
26300
ef7f95f89407
updated language files for translation (bug #55279)
Torsten <mttl@mailbox.org>
parents:
26257
diff
changeset
|
362 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
|
363 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
|
364 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
|
365 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
|
366 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
|
367 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
|
368 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
|
369 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
370 m_action_go_next |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
371 = add_action (rmgr.icon ("go-next"), tr ("Go forward"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
372 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
|
373 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
|
374 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
375 // 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
|
376 QToolButton *popdown_button_next_pages = new QToolButton (); |
26300
ef7f95f89407
updated language files for translation (bug #55279)
Torsten <mttl@mailbox.org>
parents:
26257
diff
changeset
|
377 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
|
378 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
|
379 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
|
380 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
|
381 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
|
382 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
|
383 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
384 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
|
385 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
|
386 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
|
387 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
|
388 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
|
389 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
|
390 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
|
391 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
|
392 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
|
393 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
|
394 |
26128
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
395 // 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
|
396 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
|
397 { |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
398 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
|
399 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
|
400 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
|
401 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
|
402 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
|
403 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
|
404 } |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
405 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
406 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
|
407 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
|
408 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
|
409 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
|
410 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
411 // Find |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
412 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
|
413 m_action_find |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
414 = add_action (rmgr.icon ("edit-find"), tr ("Find"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
415 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
|
416 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
417 // Zoom |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
418 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
|
419 m_action_zoom_in |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
420 = add_action (rmgr.icon ("zoom-in"), tr ("Zoom in"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
421 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
|
422 m_action_zoom_out |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
423 = add_action (rmgr.icon ("zoom-out"), tr ("Zoom out"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
424 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
|
425 m_action_zoom_original |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
426 = add_action (rmgr.icon ("zoom-original"), tr ("Zoom original"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
427 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
|
428 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
429 // Bookmarks (connect slots later) |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
430 m_tool_bar->addSeparator (); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
431 m_action_bookmark |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
432 = add_action (rmgr.icon ("bookmark-new"), tr ("Bookmark current page"), |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
433 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
|
434 } |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
435 |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
436 void documentation::global_search (void) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
437 { |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
438 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
|
439 return; |
26318
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
440 |
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
441 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
|
442 #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
|
443 QString queries |
5fef743c34d7
build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents:
25060
diff
changeset
|
444 = 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
|
445 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
|
446 #else |
26318
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
447 // 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
|
448 QList<QHelpSearchQuery> queries |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
449 = 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
|
450 if (queries.count ()) |
26318
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
451 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
|
452 else |
26318
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
453 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
|
454 #endif |
5fef743c34d7
build: Check for new help query member in qt 5.9 (bug #53006).
Torsten <mttl@mailbox.org>
parents:
25060
diff
changeset
|
455 |
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
|
456 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
|
457 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
|
458 |
26318
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
459 // 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
|
460 QRegExp rx ("\"([^\"]*)\""); |
e1b849489e73
improve displaying search result in documentation browser (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26300
diff
changeset
|
461 if (rx.indexIn (query_string, 0) != -1) |
26497
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
462 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
|
463 else |
29049
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
29047
diff
changeset
|
464 #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
|
465 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
|
466 #else |
26497
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
467 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
|
468 #endif |
26245
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
469 |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
470 m_help_engine->searchEngine ()->search (queries); |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
471 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
472 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
473 void documentation::global_search_started (void) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
474 { |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
475 qApp->setOverrideCursor(QCursor(Qt::WaitCursor)); |
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 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
478 void documentation::global_search_finished (int) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
479 { |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
480 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
|
481 return; |
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
482 |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
483 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
|
484 { |
26497
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
485 m_query_string = m_internal_search; |
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
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 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
|
488 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
|
489 { |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
490 #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
|
491 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
|
492 = 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
|
493 #else |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
494 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
|
495 = 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
|
496 #endif |
25609
506419b5f817
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
25541
diff
changeset
|
497 |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
498 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
|
499 { |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
500 QUrl url; |
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 () == 1) |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
503 #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
|
504 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
|
505 #else |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
506 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
|
507 #endif |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
508 else |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
509 { |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
510 // 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
|
511 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
|
512 |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
513 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
|
514 { |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
515 #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
|
516 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
|
517 QUrl tmpurl = r->url (); |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
518 #else |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
519 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
|
520 QUrl tmpurl = r->first; |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
521 #endif |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
522 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
|
523 { |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
524 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
|
525 { |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
526 url = tmpurl; |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
527 break; |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
528 } |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
529 else 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
|
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 } |
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 } |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
534 |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
535 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
|
536 { |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
537 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
|
538 this, &documentation::handle_search_result_clicked); |
25609
506419b5f817
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
25541
diff
changeset
|
539 |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
540 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
|
541 } |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
542 } |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
543 } |
25609
506419b5f817
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
25541
diff
changeset
|
544 |
506419b5f817
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
25541
diff
changeset
|
545 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
|
546 } |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
547 |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
548 qApp->restoreOverrideCursor(); |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
549 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
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 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
|
552 { |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
553 // 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
|
554 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
|
555 |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
556 // 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
|
557 select_all_occurrences (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
|
558 |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
559 // 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
|
560 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
|
561 m_find_line_edit->parentWidget ()->show (); |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
562 |
26497
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
563 // 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
|
564 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
|
565 m_doc_browser->moveCursor (QTextCursor::Start); |
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
566 else |
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
567 { |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
568 // 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
|
569 // 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
|
570 // 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
|
571 m_doc_browser->moveCursor (QTextCursor::End); |
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
572 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
|
573 QTextDocument::FindBackward)); |
6e0bf8212b40
improve full text search in documentation browser
Torsten <mttl@mailbox.org>
parents:
26408
diff
changeset
|
574 } |
26245
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
575 } |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
576 |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
577 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
|
578 { |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
579 // 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
|
580 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
|
581 QTextCharFormat format; |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
582 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
|
583 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
|
584 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
|
585 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
|
586 |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
587 // 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
|
588 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
|
589 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
|
590 |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
591 // 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
|
592 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
|
593 { |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
594 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
|
595 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
|
596 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
|
597 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
|
598 } |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
599 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27818
diff
changeset
|
600 // 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
|
601 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
|
602 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
|
603 } |
af99ea9c325f
Doc browser: go to search text when clicking a search result (bug #55228)
Torsten <mttl@mailbox.org>
parents:
26190
diff
changeset
|
604 |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27560
diff
changeset
|
605 void documentation::notice_settings (const gui_settings *settings) |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
606 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27818
diff
changeset
|
607 // 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
|
608 // 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
|
609 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
|
610 return; |
25dfa8c96b7b
* documentation.cc (notice_settings): prevent segfault if help engine does not exist
Torsten <mttl@mailbox.org>
parents:
26376
diff
changeset
|
611 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
612 // Icon size in the toolbar. |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27630
diff
changeset
|
613 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
|
614 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
|
615 |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
26050
diff
changeset
|
616 QStyle *st = style (); |
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
26050
diff
changeset
|
617 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
|
618 m_tool_bar->setIconSize (QSize (icon_size, icon_size)); |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
619 |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
620 // Shortcuts |
27630
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
621 shortcut_manager& scmgr = m_octave_qobj.get_shortcut_manager (); |
262cdd0f7619
don't use singleton pattern for shortcut manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
622 |
27818
fa0582694fda
replace literal strings by symbolic constants for shortcut preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27676
diff
changeset
|
623 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
|
624 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
|
625 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
|
626 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
|
627 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
|
628 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
|
629 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
|
630 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
|
631 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
|
632 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
|
633 |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
634 // Settings for the browser |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
635 m_doc_browser->notice_settings (settings); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
636 } |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
637 |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
638 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
|
639 { |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
640 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
641 gui_settings *settings = rmgr.get_settings (); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
642 |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
643 m_doc_browser->save_settings (settings); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
644 m_bookmarks->save_settings (settings); |
25371
41bbdf17f51a
make shortcuts for searching within the documentation configurable
Torsten <mttl@mailbox.org>
parents:
25336
diff
changeset
|
645 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
646 |
25962
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
647 void documentation::copyClipboard (void) |
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
648 { |
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
649 if (m_doc_browser->hasFocus ()) |
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
650 { |
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
651 m_doc_browser->copy(); |
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
652 } |
12ad5eb2328e
Call the document browser copy on clipboard signal (Bug #54879)
John Donoghue
parents:
25609
diff
changeset
|
653 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
654 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
655 void documentation::pasteClipboard (void) { } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
656 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
657 void documentation::selectAll (void) { } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
658 |
29779
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
659 void documentation::load_index (void) |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
660 { |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
661 m_indexed = true; |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
662 |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
663 // 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
|
664 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
|
665 m_doc_browser->setSource |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
666 (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
|
667 else |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
668 load_ref (m_current_ref_name); |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
669 } |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
670 |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
671 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
|
672 { |
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
|
673 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
|
674 return; |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
675 |
29779
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
676 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
|
677 |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
678 if (! m_indexed) |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
679 return; |
58e7df720752
fix doc browser startup when launched from cli
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29711
diff
changeset
|
680 |
29053
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
681 #if defined (HAVE_QHELPENGINE_DOCUMENTSFORIDENTIFIER) |
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
682 QList<QHelpLink> found_links |
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
683 = m_help_engine->documentsForIdentifier (ref_name); |
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
684 #else |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
685 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
|
686 = m_help_engine->linksForIdentifier (ref_name); |
29053
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
687 #endif |
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
688 |
29174
4ca50ceb9576
avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents:
29118
diff
changeset
|
689 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
|
690 |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
691 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
|
692 { |
29174
4ca50ceb9576
avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents:
29118
diff
changeset
|
693 // 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
|
694 #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
|
695 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
|
696 #else |
4ca50ceb9576
avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents:
29118
diff
changeset
|
697 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
|
698 #endif |
4ca50ceb9576
avoid crash due to accessing first element of empty list (bug #59656)
John W. Eaton <jwe@octave.org>
parents:
29118
diff
changeset
|
699 |
29053
0678fdb81efc
avoid deprecated QHelpEngine::linksForIdentifier function
John W. Eaton <jwe@octave.org>
parents:
29050
diff
changeset
|
700 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
|
701 |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
702 // 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
|
703 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
|
704 QWidget *index_tab |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
705 = navi->findChild<QWidget*> ("documentation_tab_index"); |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
706 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
|
707 } |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
708 else |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
709 { |
25541
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
710 // 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
|
711 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
|
712 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
|
713 |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
714 #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
|
715 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
|
716 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
|
717 #else |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
718 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
|
719 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
|
720 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
|
721 #endif |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
722 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
|
723 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
|
724 |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
725 // 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
|
726 #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
|
727 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
|
728 #else |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
729 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
|
730 #endif |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
731 QWidget *search_tab |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
732 = navi->findChild<QWidget*> ("documentation_tab_search"); |
517c73173011
doc.m: allow full text search in GUI mode (bug #54053).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25460
diff
changeset
|
733 navi->setCurrentWidget (search_tab); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
734 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
735 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
736 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
737 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
|
738 { |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
739 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
|
740 { |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
741 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
|
742 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
|
743 } |
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
744 else |
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 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
|
747 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
|
748 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
|
749 } |
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 |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
752 void documentation::filter_update (const QString& expression) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
753 { |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
754 if (! m_help_engine) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
755 return; |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
756 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
757 QString wildcard; |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25102
diff
changeset
|
758 if (expression.contains (QLatin1Char('*'))) |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
759 wildcard = 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 m_help_engine->indexWidget ()->filterIndices(expression, wildcard); |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
762 } |
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 void documentation::filter_update_history (void) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
765 { |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
766 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
|
767 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
|
768 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
769 if (index > -1) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
770 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
|
771 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
772 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
|
773 m_filter->setCurrentIndex (0); |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
774 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
775 |
27092
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
776 void documentation::find_backward (void) |
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
777 { |
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
778 find (true); |
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
779 } |
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
780 |
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
781 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
|
782 { |
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
|
783 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
|
784 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
|
785 |
29050
ce849f006568
avoid deprecated QFlags<T>::QFlags(QFlags<T>::Zero) constructor
John W. Eaton <jwe@octave.org>
parents:
29049
diff
changeset
|
786 QTextDocument::FindFlags find_flags; |
27092
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
787 if (backward) |
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
788 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
|
789 |
27092
d1fe5bd5e005
wrap while searching in doc browser
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27091
diff
changeset
|
790 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
|
791 { |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
792 // 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
|
793 QTextCursor textcur = m_doc_browser->textCursor (); |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
794 if (backward) |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
795 textcur.movePosition (QTextCursor::End); |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
796 else |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
797 textcur.movePosition (QTextCursor::Start); |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
798 m_doc_browser->setTextCursor (textcur); |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
799 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
|
800 } |
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
|
801 |
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
|
802 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
|
803 } |
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
|
804 |
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
|
805 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
|
806 { |
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
|
807 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
|
808 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
|
809 |
27091
dcc3a8065ccd
wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26770
diff
changeset
|
810 // 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
|
811 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
|
812 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
|
813 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
|
814 |
dcc3a8065ccd
wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26770
diff
changeset
|
815 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
|
816 { |
dcc3a8065ccd
wrap during search-while-typing in doc browser (bug #56216)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26770
diff
changeset
|
817 // 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
|
818 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
|
819 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
|
820 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
|
821 } |
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
|
822 } |
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
|
823 |
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
|
824 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
|
825 { |
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
|
826 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
|
827 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
|
828 |
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 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
|
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 |
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 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
|
833 { |
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 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
|
835 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
|
836 |
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 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
|
838 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
|
839 } |
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
|
840 |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
841 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
|
842 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
843 if (m_help_engine) |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
844 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
845 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
|
846 bool do_setup = true; |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
847 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
|
848 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
849 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
|
850 do_setup = false; |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
851 else |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
852 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
853 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
|
854 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
|
855 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
856 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
857 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
|
858 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
859 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
|
860 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
|
861 arg (qch)); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
862 return; |
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 |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
865 if (do_setup) |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
866 m_help_engine->setupData(); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
867 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
868 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
869 |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
870 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
|
871 { |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
872 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
|
873 return; |
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
874 |
25060
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
875 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
|
876 if (m_help_engine |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
877 && 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
|
878 && 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
|
879 { |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
880 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
|
881 m_help_engine->setupData (); |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
882 } |
1cd3aeda7598
Allow registering compressed help at run time (bug #53006).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25042
diff
changeset
|
883 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
884 |
26128
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
885 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
|
886 { |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
887 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
|
888 { |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
889 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
|
890 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
|
891 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
|
892 } |
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_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
|
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->forwardHistoryCount (), |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
897 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
|
898 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
|
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 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
902 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
|
903 { |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
904 // 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
|
905 int prev_next = -1; |
26133
84cd950f0f75
fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26128
diff
changeset
|
906 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
|
907 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
|
908 { |
84cd950f0f75
fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26128
diff
changeset
|
909 prev_next = 1; |
84cd950f0f75
fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26128
diff
changeset
|
910 a = m_action_go_next; |
84cd950f0f75
fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26128
diff
changeset
|
911 } |
26128
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
912 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
913 // 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
|
914 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
|
915 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
916 // 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
|
917 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
|
918 { |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
919 QString title |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
920 = 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
|
921 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
|
922 |
26133
84cd950f0f75
fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26128
diff
changeset
|
923 if (i == 0) |
84cd950f0f75
fix some tool tips in the documentation browser (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26128
diff
changeset
|
924 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
|
925 |
26128
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
926 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
|
927 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
|
928 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
|
929 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
|
930 } |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
931 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
932 // 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
|
933 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
|
934 { |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
935 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
|
936 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
|
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 |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
940 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
|
941 { |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
942 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
|
943 } |
20b87596b99a
add mru-lists to the doc browser back/forward buttons (bug #54938)
Torsten <mttl@mailbox.org>
parents:
26064
diff
changeset
|
944 |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
945 // Utility functions |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
946 |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
947 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
|
948 { |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
949 QString retval = title; |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
950 QString u = url.toString (); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
951 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
952 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
|
953 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
954 // 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
|
955 // 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
|
956 // it to the title |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
957 if (u.contains ('#')) |
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 // 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
|
960 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
|
961 // Remove internal string parts |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
962 anchor.remove (QRegExp ("^index-")); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
963 anchor.remove (QRegExp ("^SEC_")); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
964 anchor.remove (QRegExp ("^XREF")); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
965 anchor.remove ("Concept-Index_cp_letter-"); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
966 anchor.replace ("-"," "); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
967 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
968 // 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
|
969 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
|
970 int pos = 0; |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
971 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
|
972 { |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
973 anchor.replace ("_00"+rx.cap (1), QChar (rx.cap (1).toInt (nullptr,16))); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
974 pos += rx.matchedLength(); |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
975 } |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
976 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
977 if (retval != anchor) |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
978 retval = retval + ": " + anchor; |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
979 } |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
980 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
981 return retval; |
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 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
985 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
986 // |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
987 // The documentation browser |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
988 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29174
diff
changeset
|
989 |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
990 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
|
991 : 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
|
992 { |
3a38afebf949
open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents:
26133
diff
changeset
|
993 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
|
994 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
|
995 this, [=] (const QUrl& url) { handle_index_clicked (url); }); |
26134
3a38afebf949
open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents:
26133
diff
changeset
|
996 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
997 |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
998 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
|
999 const QString&) |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
1000 { |
26134
3a38afebf949
open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents:
26133
diff
changeset
|
1001 if (url.scheme () == "qthelp") |
3a38afebf949
open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents:
26133
diff
changeset
|
1002 setSource (url); |
3a38afebf949
open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents:
26133
diff
changeset
|
1003 else |
3a38afebf949
open external links indoc browser help files in the standard browser
Torsten <mttl@mailbox.org>
parents:
26133
diff
changeset
|
1004 QDesktopServices::openUrl (url); |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
1005 } |
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
1006 |
29711
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1007 void documentation_browser::notice_settings (const gui_settings *settings) |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1008 { |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1009 // 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
|
1010 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
|
1011 { |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1012 m_zoom_level = settings->value (dc_browser_zoom_level).toInt (); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1013 zoomIn (m_zoom_level); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1014 } |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1015 } |
25042
ba5af45bbfc4
documentation widget based on qt help engine (bug #53006)
Torsten <mttl@mailbox.org>
parents:
diff
changeset
|
1016 |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25102
diff
changeset
|
1017 QVariant documentation_browser::loadResource (int type, const QUrl &url) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25102
diff
changeset
|
1018 { |
26755
c39d26971f4b
avoid crash in doc browser when help engine init fails (bug #55736)
John W. Eaton <jwe@octave.org>
parents:
26746
diff
changeset
|
1019 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
|
1020 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
|
1021 else |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25102
diff
changeset
|
1022 return QTextBrowser::loadResource(type, url); |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25102
diff
changeset
|
1023 } |
25976
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1024 |
29711
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1025 void documentation_browser::save_settings (gui_settings *settings) |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1026 { |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1027 settings->setValue (dc_browser_zoom_level.key, m_zoom_level); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1028 |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1029 settings->sync (); |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1030 } |
7a0be7c8b7ca
restore zoom level in documentation browser at start up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29692
diff
changeset
|
1031 |
25976
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1032 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
|
1033 { |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1034 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
|
1035 { |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1036 zoomIn (); |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1037 m_zoom_level++; |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1038 } |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1039 } |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1040 |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1041 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
|
1042 { |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1043 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
|
1044 { |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1045 zoomOut (); |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1046 m_zoom_level--; |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1047 } |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1048 } |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1049 |
26017
390d59717711
adding a toolbar with common browse tools to the doc browser (bug 54938)
Torsten <mttl@mailbox.org>
parents:
25985
diff
changeset
|
1050 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
|
1051 { |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1052 zoomIn (- m_zoom_level); |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1053 m_zoom_level = 0; |
a7cc5b7a3d22
provide shortcuts for zooming into the doc browser (bug #54877)
Torsten <mttl@mailbox.org>
parents:
25962
diff
changeset
|
1054 } |
25985
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1055 |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1056 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
|
1057 { |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1058 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
|
1059 { |
29047
94396ec1a89d
avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents:
29034
diff
changeset
|
1060 #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
|
1061 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
|
1062 #else |
94396ec1a89d
avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents:
29034
diff
changeset
|
1063 if (we->delta() > 0) |
94396ec1a89d
avoid warnings about deprecated QWheelEvent methods delta and orientation
John W. Eaton <jwe@octave.org>
parents:
29034
diff
changeset
|
1064 #endif |
25985
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1065 zoom_in (); |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1066 else |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1067 zoom_out (); |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1068 |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1069 we->accept (); |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1070 } |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1071 else |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1072 QTextEdit::wheelEvent (we); |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1073 } |
49ffd0e0242d
enable resetting doc browser zoom level even when zooming with mouse wheel
Torsten <mttl@mailbox.org>
parents:
25976
diff
changeset
|
1074 |
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
|
1075 } |