Mercurial > octave
annotate libgui/src/documentation-bookmarks.cc @ 33634:4a70f390c85e default tip @
maint: Merge stable to default.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 28 May 2024 15:25:54 +0200 |
parents | 689d4d069bbf |
children |
rev | line source |
---|---|
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
2 // |
32632
2e484f9f1f18
maint: update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
31994
diff
changeset
|
3 // Copyright (C) 2018-2024 The Octave Project Developers |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
4 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
7 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
8 // This file is part of Octave. |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
9 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
13 // (at your option) any later version. |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
14 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
18 // GNU General Public License for more details. |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
19 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
23 // |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
25 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
27 # include "config.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
28 #endif |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
29 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
30 #include <QCompleter> |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
31621
diff
changeset
|
31 #include <QDir> |
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
31621
diff
changeset
|
32 #include <QFileInfo> |
31692
2422fb7f1e6c
move shortcut setting functions to gui_settings from shortcut_manager
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
33 #include <QLabel> |
2422fb7f1e6c
move shortcut setting functions to gui_settings from shortcut_manager
John W. Eaton <jwe@octave.org>
parents:
31649
diff
changeset
|
34 #include <QLineEdit> |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
35 #include <QMenu> |
31639
ca7d58406f82
eliminate unnecessary uses of octave_qobject in GUI classes
John W. Eaton <jwe@octave.org>
parents:
31621
diff
changeset
|
36 #include <QMessageBox> |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
37 #include <QVBoxLayout> |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
38 #include <QWidget> |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
39 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
40 #include "documentation.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
41 #include "documentation-bookmarks.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
42 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
43 #include "gui-preferences-global.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
44 #include "gui-preferences-dc.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
45 #include "gui-preferences-sc.h" |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
46 #include "gui-settings.h" |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
47 |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
48 #include "defaults.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
49 #include "file-ops.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
50 #include "oct-env.h" |
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
51 |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
52 OCTAVE_BEGIN_NAMESPACE(octave) |
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
53 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
54 documentation_bookmarks::documentation_bookmarks (documentation *doc, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
55 documentation_browser *browser, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
56 QWidget *p) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
57 : QWidget (p), m_doc (doc), m_browser (browser), m_ctx_menu_item (nullptr) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
58 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
59 setObjectName ("documentation_tab_bookmarks"); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
60 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
61 gui_settings settings; |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
62 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
63 // Setup the tree view with the bookmarks |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
64 m_tree = new QTreeWidget (p); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
65 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
66 m_tree->setContextMenuPolicy (Qt::CustomContextMenu); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
67 m_tree->setSelectionMode (QAbstractItemView::ExtendedSelection); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
68 m_tree->setSortingEnabled (false); |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
69 m_tree->setDragEnabled (true); |
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
70 m_tree->viewport ()->setAcceptDrops (true); |
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
71 m_tree->setDropIndicatorShown (true); |
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
72 m_tree->setDragDropMode (QAbstractItemView::InternalMove); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
73 m_tree->setColumnCount (1); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
74 m_tree->setHeaderHidden (true); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
75 m_tree->setEditTriggers (QAbstractItemView::EditKeyPressed |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
76 | QAbstractItemView::SelectedClicked); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
77 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
78 connect (m_tree, &QTreeWidget::customContextMenuRequested, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
79 this, &documentation_bookmarks::ctx_menu); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
80 connect (m_tree, &QTreeWidget::itemDoubleClicked, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
81 this, &documentation_bookmarks::handle_double_click); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
82 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
83 // Define the icons for the tree view |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
84 m_icon_folder.addPixmap (style ()->standardPixmap (QStyle::SP_DirClosedIcon), |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
85 QIcon::Normal, QIcon::Off); |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
86 m_icon_folder.addPixmap (style ()->standardPixmap (QStyle::SP_DirOpenIcon), |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
87 QIcon::Normal, QIcon::On); |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
88 m_icon_bookmark.addPixmap (style ()->standardPixmap (QStyle::SP_FileIcon)); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
89 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
90 // Setup and read the bookmarkfile |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
91 QFileInfo f (settings.fileName ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
92 QString f_path = f.absolutePath (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
93 f.setFile (QDir (f_path), dc_bookmark_file); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
94 m_xbel_file.setFileName (f.absoluteFilePath ()); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
95 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
96 if (m_xbel_file.exists ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
97 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
98 QString err = read_bookmarks (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
99 if ( !err.isEmpty ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
100 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
101 err.append (tr ("\nNo documentation bookmarks loaded!")); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
102 QMessageBox::warning (this, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
103 tr ("Octave: Loading Documentation Bookmarks"), |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
104 err); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
105 m_xbel_file.close (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
106 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
107 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
108 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
109 // Setup the filter widget |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
110 m_filter_widget = new QWidget (p); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
111 m_filter = new QComboBox (m_filter_widget); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
112 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
113 m_filter->setToolTip (tr ("Enter text to search the bookmarks")); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
114 m_filter->setEditable (true); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
115 m_filter->setInsertPolicy (QComboBox::NoInsert); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
116 m_filter->setMaxCount (10); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
117 m_filter->setMaxVisibleItems (10); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
118 m_filter->setSizeAdjustPolicy (QComboBox::AdjustToMinimumContentsLengthWithIcon); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
119 QSizePolicy size_pol (QSizePolicy::Expanding, QSizePolicy::Preferred); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
120 m_filter->setSizePolicy (size_pol); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
121 m_filter->completer ()->setCaseSensitivity (Qt::CaseSensitive); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
122 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
123 m_filter->addItems (settings.string_list_value (dc_bookmark_filter_mru)); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
124 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
125 connect (m_filter, &QComboBox::editTextChanged, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
126 this, &documentation_bookmarks::filter_bookmarks); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
127 connect (m_filter->lineEdit (), &QLineEdit::editingFinished, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
128 this, &documentation_bookmarks::update_filter_history); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
129 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
130 m_filter_checkbox = new QCheckBox (m_filter_widget); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
131 bool filter_state = settings.bool_value (dc_bookmark_filter_active); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
132 m_filter_checkbox->setChecked (filter_state); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
133 filter_activate (filter_state); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
134 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
135 connect (m_filter_checkbox, &QCheckBox::toggled, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
136 this, &documentation_bookmarks::filter_activate); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
137 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
138 QLabel *filter_label = new QLabel (tr ("Filter"), m_filter_widget); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
139 QHBoxLayout *h_box_bm = new QHBoxLayout (m_filter_widget); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
140 h_box_bm->addWidget (filter_label); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
141 h_box_bm->addWidget (m_filter_checkbox); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
142 h_box_bm->addWidget (m_filter); |
31994
77fc9f9653e8
Replace deprecated QLayout::setMargin by QLayout::setContentsMargin.
Markus Mützel <markus.muetzel@gmx.de>
parents:
31838
diff
changeset
|
143 h_box_bm->setContentsMargins (2, 2, 2, 2); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
144 m_filter_widget->setLayout (h_box_bm); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
145 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
146 m_filter_shown = settings.bool_value (dc_bookmark_filter_shown); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
147 m_filter_widget->setVisible (m_filter_shown); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
148 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
149 // Resulting Layout of this widget |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
150 QVBoxLayout *v_box_bm = new QVBoxLayout (this); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
151 v_box_bm->addWidget (m_filter_widget); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
152 v_box_bm->addWidget (m_tree); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
153 setLayout (v_box_bm); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
154 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
155 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
156 // Slot for adding the current page as a bookmark |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
157 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
158 documentation_bookmarks::add_bookmark () |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
159 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
160 QUrl url = m_browser->historyUrl (0); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
161 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
162 // Check if bookmark already exists and select if yes |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
163 QTreeWidgetItemIterator it (m_tree); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
164 while (*it) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
165 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
166 QUrl url_i = (*it)->data (0, url_role).toUrl (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
167 if (url == url_i) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
168 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
169 m_tree->setCurrentItem (*it); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
170 (*it)->setExpanded (true); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
171 return; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
172 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
173 it++; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
174 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
175 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
176 // Add the anchor name to the title of the page and add the bookmark |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
177 // as top-level-item |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
178 QString title = m_doc->title_and_anchor (m_browser->historyTitle (0), url); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
179 add_bookmark (title, url.toString ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
180 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
181 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
182 // Function for actually adding a bookmark to the tree |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
183 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
184 documentation_bookmarks::add_bookmark (const QString& title, |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
185 const QString& url, |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
186 QTreeWidgetItem *item) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
187 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
188 // Create new bookmark |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
189 QTreeWidgetItem *new_item = new QTreeWidgetItem (QStringList (title)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
190 new_item->setData (0, tag_role, QVariant (bookmark_tag)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
191 new_item->setData (0, url_role, QVariant (url)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
192 new_item->setFlags ((new_item->flags () & (~Qt::ItemIsDropEnabled)) |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
193 | Qt::ItemIsEditable |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
194 | Qt::ItemIsDragEnabled); |
31838
45f8b601c992
maint: Use "m_" prefix on all private member variables in classes.
Rik <rik@octave.org>
parents:
31808
diff
changeset
|
195 new_item->setIcon (0, m_icon_bookmark); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
196 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
197 // Insert as top level or child item |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
198 // TODO: Open dialog allowing to select a target folder if this |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
199 // bookmark is added manually and not by reading a bookmark file |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
200 if (item) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
201 item->addChild (new_item); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
202 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
203 m_tree->addTopLevelItem (new_item); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
204 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
205 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
206 // Slot for adding a folder from the context menu |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
207 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
208 documentation_bookmarks::add_folder (bool) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
209 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
210 QTreeWidgetItem *parent_item = nullptr; |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
211 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
212 if (m_ctx_menu_item) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
213 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
214 if (m_ctx_menu_item->data (0, tag_role).toInt () == folder_tag) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
215 parent_item = m_ctx_menu_item; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
216 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
217 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
218 QTreeWidgetItem *p = m_ctx_menu_item->parent (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
219 if (p) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
220 parent_item = p; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
221 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
222 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
223 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
224 QTreeWidgetItem *new_folder = add_folder (tr ("New Folder"), parent_item); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
225 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
226 m_tree->setCurrentItem (new_folder); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
227 m_tree->editItem (new_folder); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
228 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
229 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
230 // Function for actually adding a folder to the tree |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
231 QTreeWidgetItem * |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
232 documentation_bookmarks::add_folder (const QString& folder, |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
233 QTreeWidgetItem *item, bool expanded) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
234 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
235 QTreeWidgetItem *new_folder = new QTreeWidgetItem (QStringList (folder)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
236 new_folder->setData (0, tag_role, QVariant (folder_tag)); |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
237 new_folder->setFlags (new_folder->flags () | Qt::ItemIsEditable |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
238 | Qt::ItemIsDragEnabled |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
239 | Qt::ItemIsDropEnabled); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
240 new_folder->setChildIndicatorPolicy (QTreeWidgetItem::DontShowIndicatorWhenChildless); |
31838
45f8b601c992
maint: Use "m_" prefix on all private member variables in classes.
Rik <rik@octave.org>
parents:
31808
diff
changeset
|
241 new_folder->setIcon (0, m_icon_folder); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
242 new_folder->setExpanded (expanded); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
243 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
244 // Insert as top level or child item |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
245 if (item) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
246 item->addChild (new_folder); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
247 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
248 m_tree->addTopLevelItem (new_folder); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
249 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
250 return new_folder; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
251 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
252 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
253 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
254 documentation_bookmarks::filter_bookmarks (const QString& pattern) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
255 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
256 QTreeWidgetItemIterator it (m_tree); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
257 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
258 while (*it) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
259 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
260 if ((*it)->text (0).contains (pattern, Qt::CaseInsensitive)) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
261 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
262 (*it)->setHidden (false); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
263 (*it)->setExpanded (true); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
264 QTreeWidgetItem *p = (*it)->parent (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
265 while (p) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
266 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
267 p->setHidden (false); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
268 p->setExpanded (true); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
269 p = p->parent (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
270 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
271 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
272 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
273 (*it)->setHidden (true); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
274 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
275 it++; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
276 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
277 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
278 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
279 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
280 documentation_bookmarks::filter_activate (bool state) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
281 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
282 m_filter->setEnabled (state); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
283 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
284 QString pattern; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
285 if (state) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
286 pattern = m_filter->currentText (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
287 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
288 filter_bookmarks (pattern); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
289 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
290 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
291 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
292 documentation_bookmarks::update_filter_history () |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
293 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
294 QString text = m_filter->currentText (); // get current text |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
295 int index = m_filter->findText (text); // and its actual index |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
296 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
297 if (index > -1) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
298 m_filter->removeItem (index); // remove if already existing |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
299 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
300 m_filter->insertItem (0, text); // (re)insert at beginning |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
301 m_filter->setCurrentIndex (0); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
302 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
303 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
304 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
305 documentation_bookmarks::handle_double_click (QTreeWidgetItem *item, int) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
306 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
307 int tag = item->data (0, tag_role).toInt (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
308 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
309 if (tag == folder_tag) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
310 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
311 item->setExpanded (! item->isExpanded ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
312 return; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
313 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
314 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
315 if (tag == bookmark_tag) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
316 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
317 QUrl url = item->data (0, url_role).toUrl (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
318 if (! url.isEmpty ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
319 m_browser->setSource (url); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
320 return; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
321 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
322 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
323 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
324 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
325 documentation_bookmarks::ctx_menu (const QPoint& xpos) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
326 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
327 QMenu menu (this); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
328 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
329 m_ctx_menu_item = m_tree->itemAt (xpos); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
330 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
331 if (m_ctx_menu_item) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
332 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
333 gui_settings settings; |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
334 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
335 menu.addAction (tr ("&Open"), this, &documentation_bookmarks::open); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
336 menu.addAction (tr ("&Rename"), this, &documentation_bookmarks::edit); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
337 menu.addAction (settings.icon ("window-close"), tr ("Remo&ve"), |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
338 this, &documentation_bookmarks::remove); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
339 menu.addSeparator (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
340 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
341 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
342 menu.addAction (tr ("&Add Folder"), this, |
33239
775dde0cb3e5
use qOverload<T>(fptr) instead of QOverload<T>::of(fptr)
John W. Eaton <jwe@octave.org>
parents:
32633
diff
changeset
|
343 qOverload<bool> (&documentation_bookmarks::add_folder)); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
344 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
345 menu.addSeparator (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
346 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
347 if (m_filter_shown) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
348 menu.addAction (tr ("Hide &Filter"), |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
349 this, &documentation_bookmarks::show_filter); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
350 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
351 menu.addAction (tr ("Show &Filter"), |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
352 this, &documentation_bookmarks::show_filter); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
353 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
354 menu.exec (m_tree->mapToGlobal (xpos)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
355 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
356 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
357 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
358 documentation_bookmarks::open (bool) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
359 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
360 QList<QTreeWidgetItem *> items = m_tree->selectedItems (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
361 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
362 if (items.size () > 0) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
363 handle_double_click (items.at (0)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
364 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
365 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
366 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
367 documentation_bookmarks::edit (bool) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
368 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
369 QList<QTreeWidgetItem *> items = m_tree->selectedItems (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
370 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
371 if (items.size () > 0) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
372 m_tree->editItem (items.at (0)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
373 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
374 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
375 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
376 documentation_bookmarks::remove (bool) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
377 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
378 QList<QTreeWidgetItem *> items = m_tree->selectedItems (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
379 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
380 for (const auto& it : items) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
381 if (it) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
382 m_tree->takeTopLevelItem (m_tree->indexOfTopLevelItem (it)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
383 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
384 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
385 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
386 documentation_bookmarks::show_filter (bool) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
387 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
388 m_filter_shown = ! m_filter_shown; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
389 m_filter_widget->setVisible (m_filter_shown); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
390 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
391 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
392 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
393 documentation_bookmarks::save_settings () |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
394 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
395 // Write the bookmarks to the xbel-file |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
396 write_bookmarks (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
397 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
398 // Store settings |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
399 gui_settings settings; |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
400 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
401 settings.setValue (dc_bookmark_filter_active.settings_key (), m_filter_checkbox->isChecked ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
402 settings.setValue (dc_bookmark_filter_shown.settings_key (), m_filter_shown); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
403 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
404 QStringList mru; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
405 for (int i = 0; i < m_filter->count (); i++) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
406 mru.append (m_filter->itemText (i)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
407 settings.setValue (dc_bookmark_filter_mru.settings_key (), mru); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
408 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
409 settings.sync (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
410 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
411 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
412 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
413 documentation_bookmarks::write_bookmarks () |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
414 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
415 if (! m_xbel_file.open (QFile::WriteOnly | QFile::Text)) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
416 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
417 QMessageBox::warning (this, tr("Octave: Saving Documentation Bookmarks"), |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
418 tr("Unable to write file %1:\n%2.\n\n" |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
419 "Documentation bookmarks are not saved!\n") |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
420 .arg (m_xbel_file.fileName ()) |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
421 .arg (m_xbel_file.errorString ())); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
422 return; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
423 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
424 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
425 QXmlStreamWriter xml_writer (&m_xbel_file); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
426 xml_writer.setAutoFormatting (true); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
427 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
428 xml_writer.writeStartDocument (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
429 xml_writer.writeDTD (dc_xbel_doctype); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
430 xml_writer.writeStartElement (dc_xbel_name_format); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
431 xml_writer.writeAttribute (dc_xbel_attr_version, dc_xbel_value_version); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
432 |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
433 for (int i = 0; i < m_tree->topLevelItemCount (); i++) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
434 write_tree_item (&xml_writer, m_tree->topLevelItem (i)); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
435 |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
436 xml_writer.writeEndDocument (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
437 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
438 m_xbel_file.flush (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
439 m_xbel_file.close (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
440 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
441 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
442 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
443 documentation_bookmarks::write_tree_item (QXmlStreamWriter *xml_writer, |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
444 const QTreeWidgetItem *item) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
445 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
446 switch (item->data (0, tag_role).toInt ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
447 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
448 case folder_tag: |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
449 xml_writer->writeStartElement (dc_xbel_name_folder); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
450 xml_writer->writeAttribute (dc_xbel_attr_folded, |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
451 item->isExpanded () ? dc_xbel_value_no : dc_xbel_value_yes); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
452 xml_writer->writeTextElement (dc_xbel_name_title, item->text(0)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
453 for (int i = 0; i < item->childCount (); i++) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
454 write_tree_item (xml_writer, item->child (i)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
455 xml_writer->writeEndElement (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
456 break; |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
457 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
458 case bookmark_tag: |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
459 xml_writer->writeStartElement (dc_xbel_name_bookmark); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
460 xml_writer->writeAttribute (dc_xbel_attr_href, item->data (0, url_role).toString ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
461 xml_writer->writeTextElement (dc_xbel_name_title, item->text (0)); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
462 xml_writer->writeEndElement (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
463 break; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
464 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
465 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
466 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
467 QString |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
468 documentation_bookmarks::read_bookmarks () |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
469 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
470 QString error_message; |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
471 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
472 // Check the file |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
473 if (! m_xbel_file.open (QFile::ReadOnly | QFile::Text)) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
474 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
475 error_message = tr ("Unable to read file %1:\n%2.") |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
476 .arg (m_xbel_file.fileName ()) |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
477 .arg (m_xbel_file.errorString ()); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
478 return error_message; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
479 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
480 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
481 QXmlStreamReader xml_reader (&m_xbel_file); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
482 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
483 if (! xml_reader.readNextStartElement ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
484 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
485 error_message = tr ("No start element found in %1.\n" |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
486 "Invalid bookmark file?") |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
487 .arg (m_xbel_file.fileName ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
488 return error_message; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
489 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
490 |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
491 if (xml_reader.name () != dc_xbel_name_format |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
492 || xml_reader.attributes ().value (dc_xbel_attr_version) != dc_xbel_value_version) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
493 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
494 error_message = tr ("The file\n" |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
495 "%1\n" |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
496 "is not a valid XBEL file version 1.0.") |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
497 .arg (m_xbel_file.fileName ()); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
498 return error_message; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
499 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
500 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
501 // Read the elements from the file |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
502 while (xml_reader.readNextStartElement ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
503 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
504 if (xml_reader.name () == dc_xbel_name_folder) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
505 read_next_item (&xml_reader, folder_tag); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
506 else if (xml_reader.name () == dc_xbel_name_bookmark) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
507 read_next_item (&xml_reader, bookmark_tag); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
508 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
509 xml_reader.skipCurrentElement (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
510 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
511 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
512 m_xbel_file.close (); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
513 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
514 return error_message; |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
515 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
516 |
32592
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
517 void |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
518 documentation_bookmarks::read_next_item (QXmlStreamReader *xml_reader, |
094a296b3ba1
maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents:
31994
diff
changeset
|
519 item_tag tag, QTreeWidgetItem *item) |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
520 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
521 QString title (tr ("Unknown title")); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
522 if (tag == folder_tag) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
523 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
524 // Next item is a folder, which might also have children |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
525 bool expanded = (xml_reader->attributes ().value (dc_xbel_attr_folded) == dc_xbel_value_no); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
526 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
527 QTreeWidgetItem *new_folder = add_folder (title, item, expanded); |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
528 |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
529 // Check elements of this folder for title and for recursively |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
530 // adding sub-items |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
531 while (xml_reader->readNextStartElement ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
532 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
533 if (xml_reader->name () == dc_xbel_name_title) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
534 { |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
535 title = xml_reader->readElementText (); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
536 new_folder->setText (0, title); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
537 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
538 else if (xml_reader->name () == dc_xbel_name_folder) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
539 read_next_item (xml_reader, folder_tag, new_folder); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
540 else if (xml_reader->name () == dc_xbel_name_bookmark) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
541 read_next_item (xml_reader, bookmark_tag, new_folder); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
542 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
543 xml_reader->skipCurrentElement (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
544 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
545 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
546 else if (tag == bookmark_tag) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
547 { |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
548 // Next item is a bookmark, without children |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
549 QString url = xml_reader->attributes ().value (dc_xbel_attr_href).toString (); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
550 while (xml_reader->readNextStartElement ()) |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
551 { |
33359
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
552 if (xml_reader->name () == dc_xbel_name_title) |
689d4d069bbf
maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents:
33239
diff
changeset
|
553 title = xml_reader->readElementText (); |
31808
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
554 else |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
555 xml_reader->skipCurrentElement (); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
556 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
557 add_bookmark (title, url, item); |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
558 } |
90621682cc03
maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents:
31803
diff
changeset
|
559 } |
29330
b92614cfdfed
add bookmark functionality to the documentation browser (bug #54938)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
diff
changeset
|
560 |
31646
c6d54dd31a7e
maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
561 OCTAVE_END_NAMESPACE(octave) |