subsurface/desktop-widgets/usermanual.h
Berthold Stoeger 9611e92cf0 Desktop: Derive UserManual from QDialog
In commit d21d42b691 helpView was made
a child-object of MainWindow, which is Qt's idiomatic way of having
helpView deleted with MainWindow.

As an unintended consequence, the helpView didn't show. The reason
is that UserManual derives directly from QObject. In contrast, UserSurvey
derives from QDialog and is correctly shown. Therefore also derive
UserManual from QDialog.

Reported-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-05-31 21:29:29 +03:00

84 lines
1.5 KiB
C++

// SPDX-License-Identifier: GPL-2.0
#ifndef USERMANUAL_H
#define USERMANUAL_H
#ifdef USE_WEBENGINE
#include <QWebEngineView>
#include <QWebEnginePage>
#else
#include <QWebView>
#endif
#include <QDialog>
#include "ui_searchbar.h"
class SearchBar : public QWidget{
Q_OBJECT
public:
SearchBar(QWidget *parent = 0);
signals:
void searchTextChanged(const QString& s);
void searchNext();
void searchPrev();
protected:
void setVisible(bool visible);
private slots:
void enableButtons(const QString& s);
private:
Ui::SearchBar ui;
};
#ifdef USE_WEBENGINE
class MyQWebEnginePage : public QWebEnginePage
{
Q_OBJECT
public:
MyQWebEnginePage(QObject* parent = 0);
bool acceptNavigationRequest(const QUrl & url, QWebEnginePage::NavigationType type, bool);
};
class MyQWebEngineView : public QWebEngineView
{
Q_OBJECT
public:
MyQWebEngineView(QWidget* parent = 0);
MyQWebEnginePage* page() const;
};
#endif
class UserManual : public QDialog {
Q_OBJECT
public:
explicit UserManual(QWidget *parent = 0);
#ifdef Q_OS_MAC
protected:
void showEvent(QShowEvent *e);
void hideEvent(QHideEvent *e);
QAction *closeAction;
QAction *filterAction;
#endif
private
slots:
void searchTextChanged(const QString& s);
void searchNext();
void searchPrev();
#ifndef USE_WEBENGINE
void linkClickedSlot(const QUrl& url);
#endif
private:
SearchBar *searchBar;
QString mLastText;
#ifdef USE_WEBENGINE
QWebEngineView *userManual;
void search(QString, QWebEnginePage::FindFlags);
#else
QWebView *userManual;
void search(QString, QWebPage::FindFlags);
#endif
};
#endif // USERMANUAL_H