⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qwebpage.h

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 H
字号:
/*    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)    Copyright (C) 2007 Staikos Computing Services Inc.    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Library General Public License for more details.    You should have received a copy of the GNU Library General Public License    along with this library; see the file COPYING.LIB.  If not, write to    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,    Boston, MA 02110-1301, USA.*/#ifndef QWEBPAGE_H#define QWEBPAGE_H#include "qwebsettings.h"#include "qwebkitglobal.h"#include <QtCore/qobject.h>#include <QtGui/qwidget.h>QT_BEGIN_NAMESPACEclass QNetworkProxy;class QUndoStack;class QUrl;class QMenu;class QNetworkRequest;class QNetworkReply;class QNetworkAccessManager;QT_END_NAMESPACEclass QWebFrame;class QWebNetworkRequest;class QWebHistory;class QWebPagePrivate;class QWebFrameData;class QWebNetworkInterface;class QWebPluginFactory;class QWebHitTestResult;class QWebHistoryItem;namespace WebCore {    class ChromeClientQt;    class EditorClientQt;    class FrameLoaderClientQt;    class FrameLoadRequest;    class InspectorClientQt;    class ResourceHandle;    class HitTestResult;}class QWEBKIT_EXPORT QWebPage : public QObject{    Q_OBJECT    Q_PROPERTY(bool modified READ isModified)    Q_PROPERTY(QString selectedText READ selectedText)    Q_PROPERTY(QSize viewportSize READ viewportSize WRITE setViewportSize)    Q_PROPERTY(QSize fixedLayoutSize READ fixedLayoutSize WRITE setFixedLayoutSize)    Q_PROPERTY(bool useFixedLayout READ useFixedLayout WRITE setUseFixedLayout)    Q_PROPERTY(bool forwardUnsupportedContent READ forwardUnsupportedContent WRITE setForwardUnsupportedContent)    Q_PROPERTY(LinkDelegationPolicy linkDelegationPolicy READ linkDelegationPolicy WRITE setLinkDelegationPolicy)    Q_PROPERTY(QPalette palette READ palette WRITE setPalette)    Q_PROPERTY(bool contentEditable READ isContentEditable WRITE setContentEditable)    Q_ENUMS(LinkDelegationPolicy NavigationType WebAction)public:    enum NavigationType {        NavigationTypeLinkClicked,        NavigationTypeFormSubmitted,        NavigationTypeBackOrForward,        NavigationTypeReload,        NavigationTypeFormResubmitted,        NavigationTypeOther    };    enum WebAction {        NoWebAction = - 1,        OpenLink,        OpenLinkInNewWindow,        OpenFrameInNewWindow,        DownloadLinkToDisk,        CopyLinkToClipboard,        OpenImageInNewWindow,        DownloadImageToDisk,        CopyImageToClipboard,        Back,        Forward,        Stop,        Reload,        Cut,        Copy,        Paste,        Undo,        Redo,        MoveToNextChar,        MoveToPreviousChar,        MoveToNextWord,        MoveToPreviousWord,        MoveToNextLine,        MoveToPreviousLine,        MoveToStartOfLine,        MoveToEndOfLine,        MoveToStartOfBlock,        MoveToEndOfBlock,        MoveToStartOfDocument,        MoveToEndOfDocument,        SelectNextChar,        SelectPreviousChar,        SelectNextWord,        SelectPreviousWord,        SelectNextLine,        SelectPreviousLine,        SelectStartOfLine,        SelectEndOfLine,        SelectStartOfBlock,        SelectEndOfBlock,        SelectStartOfDocument,        SelectEndOfDocument,        DeleteStartOfWord,        DeleteEndOfWord,        SetTextDirectionDefault,        SetTextDirectionLeftToRight,        SetTextDirectionRightToLeft,        ToggleBold,        ToggleItalic,        ToggleUnderline,        InspectElement,        InsertParagraphSeparator,        InsertLineSeparator,        SelectAll,        WebActionCount    };    enum FindFlag {        FindBackward = 1,        FindCaseSensitively = 2,        FindWrapsAroundDocument = 4    };    Q_DECLARE_FLAGS(FindFlags, FindFlag)    enum LinkDelegationPolicy {        DontDelegateLinks,        DelegateExternalLinks,        DelegateAllLinks    };    enum WebWindowType {        WebBrowserWindow,        WebModalDialog    };    explicit QWebPage(QObject *parent = 0);    ~QWebPage();    QWebFrame *mainFrame() const;    QWebFrame *currentFrame() const;    QWebHistory *history() const;    QWebSettings *settings() const;    void setView(QWidget *view);    QWidget *view() const;    bool isModified() const;#ifndef QT_NO_UNDOSTACK    QUndoStack *undoStack() const;#endif#if QT_VERSION < 0x040400 && !defined(qdoc)    void setNetworkInterface(QWebNetworkInterface *interface);    QWebNetworkInterface *networkInterface() const;    // #### why is this in the page itself?#ifndef QT_NO_NETWORKPROXY    void setNetworkProxy(const QNetworkProxy& proxy);    QNetworkProxy networkProxy() const;#endif#else    void setNetworkAccessManager(QNetworkAccessManager *manager);    QNetworkAccessManager *networkAccessManager() const;#endif    void setPluginFactory(QWebPluginFactory *factory);    QWebPluginFactory *pluginFactory() const;    quint64 totalBytes() const;    quint64 bytesReceived() const;    QString selectedText() const;    QAction *action(WebAction action) const;    virtual void triggerAction(WebAction action, bool checked = false);    QSize viewportSize() const;    void setViewportSize(const QSize &size) const;    QSize fixedLayoutSize() const;    void setFixedLayoutSize(const QSize &size) const;    bool useFixedLayout() const;    void setUseFixedLayout(bool useFixedLayout);    virtual bool event(QEvent*);    bool focusNextPrevChild(bool next);    QVariant inputMethodQuery(Qt::InputMethodQuery property) const;    bool findText(const QString &subString, FindFlags options = 0);    void setForwardUnsupportedContent(bool forward);    bool forwardUnsupportedContent() const;    void setLinkDelegationPolicy(LinkDelegationPolicy policy);    LinkDelegationPolicy linkDelegationPolicy() const;    void setPalette(const QPalette &palette);    QPalette palette() const;    void setContentEditable(bool editable);    bool isContentEditable() const;#ifndef QT_NO_CONTEXTMENU    bool swallowContextMenuEvent(QContextMenuEvent *event);#endif    void updatePositionDependentActions(const QPoint &pos);    QMenu *createStandardContextMenu();    enum Extension {        ChooseMultipleFilesExtension    };    class ExtensionOption    {};    class ExtensionReturn    {};    class ChooseMultipleFilesExtensionOption : public ExtensionOption {    public:        QWebFrame *parentFrame;        QStringList suggestedFileNames;    };    class ChooseMultipleFilesExtensionReturn : public ExtensionReturn {    public:        QStringList fileNames;    };    virtual bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0);    virtual bool supportsExtension(Extension extension) const;    inline QWebPagePrivate* handle() const { return d; }Q_SIGNALS:    void loadStarted();    void loadProgress(int progress);    void loadFinished(bool ok);    void linkHovered(const QString &link, const QString &title, const QString &textContent);    void statusBarMessage(const QString& text);    void selectionChanged();    void frameCreated(QWebFrame *frame);    void geometryChangeRequested(const QRect& geom);    void repaintRequested(const QRect& dirtyRect);    void scrollRequested(int dx, int dy, const QRect& scrollViewRect);    void windowCloseRequested();    void printRequested(QWebFrame *frame);    void linkClicked(const QUrl &url);    void toolBarVisibilityChangeRequested(bool visible);    void statusBarVisibilityChangeRequested(bool visible);    void menuBarVisibilityChangeRequested(bool visible);#if QT_VERSION >= 0x040400    void unsupportedContent(QNetworkReply *reply);    void downloadRequested(const QNetworkRequest &request);#endif    void microFocusChanged();    void contentsChanged();    void databaseQuotaExceeded(QWebFrame* frame, QString databaseName);    void saveFrameStateRequested(QWebFrame* frame, QWebHistoryItem* item);    void restoreFrameStateRequested(QWebFrame* frame);protected:    virtual QWebPage *createWindow(WebWindowType type);    virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);#if QT_VERSION >= 0x040400    virtual bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type);#else    virtual bool acceptNavigationRequest(QWebFrame *frame, const QWebNetworkRequest &request, NavigationType type);#endif    virtual QString chooseFile(QWebFrame *originatingFrame, const QString& oldFile);    virtual void javaScriptAlert(QWebFrame *originatingFrame, const QString& msg);    virtual bool javaScriptConfirm(QWebFrame *originatingFrame, const QString& msg);    virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString& msg, const QString& defaultValue, QString* result);    virtual void javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID);    virtual QString userAgentForUrl(const QUrl& url) const;private:    Q_PRIVATE_SLOT(d, void _q_onLoadProgressChanged(int))    Q_PRIVATE_SLOT(d, void _q_webActionTriggered(bool checked))#ifndef NDEBUG    Q_PRIVATE_SLOT(d, void _q_cleanupLeakMessages())#endif    QWebPagePrivate *d;    friend class QWebFrame;    friend class QWebPagePrivate;    friend class QWebView;    friend class WebCore::ChromeClientQt;    friend class WebCore::EditorClientQt;    friend class WebCore::FrameLoaderClientQt;    friend class WebCore::InspectorClientQt;    friend class WebCore::ResourceHandle;};Q_DECLARE_OPERATORS_FOR_FLAGS(QWebPage::FindFlags)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -