forked from qt-creator/qt-creator
Help: Provide native WebView backend on Mac
Run Qt Creator with environment variable QTC_HELPVIEWER_BACKEND to * 'native' to get the WebView based one on Mac * 'textbrowser' to get the QTextBrowser based one Defaults to use QWebView if QtWebKit is available, or QTextBrowser if not, like before. Change-Id: If0660782b18ff3d89301fa7bcaf4e2e2fb69627d Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
140
src/plugins/help/macwebkithelpviewer.h
Normal file
140
src/plugins/help/macwebkithelpviewer.h
Normal file
@@ -0,0 +1,140 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef MACWEBKITHELPVIEWER_H
|
||||
#define MACWEBKITHELPVIEWER_H
|
||||
|
||||
#include "helpviewer.h"
|
||||
|
||||
#include <QMacCocoaViewContainer>
|
||||
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(DOMNode);
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(DOMRange);
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(NSString);
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(WebView);
|
||||
|
||||
namespace Help {
|
||||
namespace Internal {
|
||||
|
||||
class MacWebKitHelpViewer;
|
||||
class MacWebKitHelpWidgetPrivate;
|
||||
|
||||
class MacResponderHack : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MacResponderHack(QObject *parent);
|
||||
|
||||
private slots:
|
||||
void responderHack(QWidget *old, QWidget *now);
|
||||
};
|
||||
|
||||
class MacWebKitHelpWidget : public QMacCocoaViewContainer
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MacWebKitHelpWidget(MacWebKitHelpViewer *parent);
|
||||
~MacWebKitHelpWidget();
|
||||
|
||||
void setOpenInNewWindowActionVisible(bool visible);
|
||||
|
||||
WebView *webView() const;
|
||||
|
||||
protected:
|
||||
void hideEvent(QHideEvent *);
|
||||
void showEvent(QShowEvent *);
|
||||
|
||||
private:
|
||||
MacWebKitHelpWidgetPrivate *d;
|
||||
};
|
||||
|
||||
class MacWebKitHelpViewer : public HelpViewer
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MacWebKitHelpViewer(qreal zoom, QWidget *parent = 0);
|
||||
~MacWebKitHelpViewer();
|
||||
|
||||
QFont viewerFont() const;
|
||||
void setViewerFont(const QFont &font);
|
||||
|
||||
void scaleUp();
|
||||
void scaleDown();
|
||||
void resetScale();
|
||||
|
||||
qreal scale() const;
|
||||
|
||||
QString title() const;
|
||||
|
||||
QUrl source() const;
|
||||
void setSource(const QUrl &url);
|
||||
void scrollToAnchor(const QString &anchor);
|
||||
void highlightId(const QString &id) { Q_UNUSED(id) }
|
||||
|
||||
void setHtml(const QString &html);
|
||||
|
||||
QString selectedText() const;
|
||||
bool isForwardAvailable() const;
|
||||
bool isBackwardAvailable() const;
|
||||
void addBackHistoryItems(QMenu *backMenu);
|
||||
void addForwardHistoryItems(QMenu *forwardMenu);
|
||||
void setOpenInNewWindowActionVisible(bool visible);
|
||||
|
||||
bool findText(const QString &text, Core::FindFlags flags,
|
||||
bool incremental, bool fromSearch, bool *wrapped = 0);
|
||||
|
||||
MacWebKitHelpWidget *widget() const { return m_widget; }
|
||||
|
||||
public slots:
|
||||
void copy();
|
||||
void stop();
|
||||
void forward();
|
||||
void backward();
|
||||
void print(QPrinter *printer);
|
||||
|
||||
public slots:
|
||||
void slotLoadStarted();
|
||||
void slotLoadFinished();
|
||||
|
||||
private slots:
|
||||
void goToHistoryItem();
|
||||
|
||||
private:
|
||||
DOMRange *findText(NSString *text, bool forward, bool caseSensitive, DOMNode *startNode,
|
||||
int startOffset);
|
||||
MacWebKitHelpWidget *m_widget;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Help
|
||||
|
||||
#endif // MACWEBKITHELPVIEWER_H
|
||||
Reference in New Issue
Block a user