Developer Documentation
helpWidget.hh
1 /*===========================================================================*\
2 * *
3 * OpenFlipper *
4  * Copyright (c) 2001-2015, RWTH-Aachen University *
5  * Department of Computer Graphics and Multimedia *
6  * All rights reserved. *
7  * www.openflipper.org *
8  * *
9  *---------------------------------------------------------------------------*
10  * This file is part of OpenFlipper. *
11  *---------------------------------------------------------------------------*
12  * *
13  * Redistribution and use in source and binary forms, with or without *
14  * modification, are permitted provided that the following conditions *
15  * are met: *
16  * *
17  * 1. Redistributions of source code must retain the above copyright notice, *
18  * this list of conditions and the following disclaimer. *
19  * *
20  * 2. Redistributions in binary form must reproduce the above copyright *
21  * notice, this list of conditions and the following disclaimer in the *
22  * documentation and/or other materials provided with the distribution. *
23  * *
24  * 3. Neither the name of the copyright holder nor the names of its *
25  * contributors may be used to endorse or promote products derived from *
26  * this software without specific prior written permission. *
27  * *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39 * *
40 \*===========================================================================*/
41 
42 /*===========================================================================*\
43 * *
44 * $Revision$ *
45 * $LastChangedBy$ *
46 * $Date$ *
47 * *
48 \*===========================================================================*/
49 
50 
51 /*
52  * helpWidget.hh
53  *
54  * Created on: Apr 7, 2009
55  * Author: kremer
56  */
57 
58 #ifndef HELPWIDGET_HH_
59 #define HELPWIDGET_HH_
60 
61 #include "ui_helpWidget.hh"
62 
63 #if QT_VERSION >= 0x050000
64  #include <QtWidgets>
65 #else
66  #include <QtGui>
67 #endif
68 
69 
70 #include <QtHelp>
71 #include <QTextDocument>
72 
73 #include <QHelpSearchEngine>
74 #include <QTabWidget>
75 
76 #include <iostream>
77 
78 #include "helpBrowser.hh"
79 
80 class HelpWidget : public QMainWindow, public Ui::HelpWidget
81 {
82  Q_OBJECT
83 
84  public:
85 
86  HelpWidget(QWidget* parent = 0, const QString& _homeSite = "", const bool _loadHomeSite = true);
87 
88  virtual ~HelpWidget();
89 
90  void setHomeSite(const QString& _homeSite);
91 
92 private slots:
93 
94  void startSearch();
95 
96  void goBack();
97 
98  void goForward();
99 
100  void goHome();
101 
102  void showSearchWidget();
103 
104  //the entry was already selected by user
105  void linkActivated(const QUrl& _url);
106 
107  //activate the url and jump to the entry
108  void activateLink(const QUrl& _url);
109 
110  void showFoundSite(const QUrl& _url);
111 
112  void showResults(int _hits);
113 
114  // updates the buttons an the content widget
115  // the content widget is synchronized with the helpBrowser
116  void update(const QUrl& url);
117 
118  void openFoundSite(QListWidgetItem* _item);
119 
120  //updates only the buttons (for/back)
121  void updateButtons();
122 
123  private:
124 
125  // For the search popup
126  QDockWidget* searchWidget_;
127 
128  QTabWidget* tabWidget_;
129 
130  HelpBrowser* textWindow_;
131 
132  QHelpEngine* helpEngine_;
133  QHelpSearchEngine* searchEngine_;
134 
135  QString homeSite_;
136 
137  int homeIndex_;
138 
139 };
140 
141 
142 #endif /* HELPWIDGET_HH_ */