/
webpage.h
147 lines (118 loc) · 3.94 KB
/
webpage.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
//=============================================================================
// MusE Score
// Linux Music Score Editor
// $Id:$
//
// Copyright (C) 2011 Werner Schweer and others
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//=============================================================================
#ifndef __WEBPAGE_H__
#define __WEBPAGE_H__
#include "musescore.h"
#include "scoreview.h"
class MuseScore;
// Derive from QWebPage, because a WebPage handles
// plugin creation
//---------------------------------------------------------
// MyWebPage
//---------------------------------------------------------
class MyWebPage: public QWebPage
{
Q_OBJECT
protected:
QObject *createPlugin(
const QString &classid,
const QUrl &url,
const QStringList ¶mNames,
const QStringList & paramValues);
QString userAgentForUrl(const QUrl &url) const;
public:
MyWebPage(QObject *parent = 0);
};
//---------------------------------------------------------
// MyWebView
// Derive a new class from QWebView for convenience.
// Otherwise you'd always have to create a QWebView
// and a MyWebPage and assign the MyWebPage object
// to the QWebView. This class does that for you
// automatically.
//---------------------------------------------------------
class MyWebView: public QWebView
{
Q_OBJECT
MyWebPage m_page;
QProgressBar* progressBar;
public slots:
void link(const QUrl& url);
void stopBusyAndClose(bool);
void stopBusyAndFirst(bool);
void stopBusyStatic(bool);
void setBusy();
private:
void stopBusy(bool val, bool close);
public:
MyWebView(QWidget *parent = 0);
~MyWebView();
MyWebPage* webPage() { return &m_page;}
virtual QSize sizeHint () const;
void load (const QNetworkRequest& request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray& body = QByteArray());
};
//---------------------------------------------------------
// WebPage
//---------------------------------------------------------
class WebPageDockWidget : public QDockWidget
{
Q_OBJECT
MyWebView* web;
public slots:
void addToJavascript();
#if QT_VERSION >= 0x040800
void saveOnlineFinished();
#endif
public:
WebPageDockWidget(MuseScore* mscore, QWidget* parent = 0);
Q_INVOKABLE void load();
#if QT_VERSION >= 0x040800
Q_INVOKABLE bool saveCurrentScoreOnline(QString action, QVariantMap parameters, QString fileFieldName);
#endif
Q_INVOKABLE bool setCurrentScoreSource(QString source);
QUrl webUrl();
};
class CookieJar : public QNetworkCookieJar
{
Q_OBJECT
public:
CookieJar(QString path, QObject *parent = 0); //load cookie
~CookieJar(); //save cookies
private:
QString file; // where to save cookies
};
#if 0
//---------------------------------------------------------
// WebScoreView
//---------------------------------------------------------
class WebScoreView : public ScoreView
{
Q_OBJECT
QNetworkAccessManager* networkManager;
private slots:
void networkFinished(QNetworkReply*);
public:
WebScoreView(QWidget* parent = 0);
WebScoreView(const WebScoreView&);
void setScore(const QString&);
};
Q_DECLARE_METATYPE(WebScoreView)
#endif
#endif