/
webpage.h
163 lines (129 loc) · 4.24 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
//=============================================================================
// 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.
//=============================================================================
#if 0
#ifndef __WEBPAGE_H__
#define __WEBPAGE_H__
#include "musescore.h"
#include "scoreview.h"
namespace Ms {
class MuseScore;
//---------------------------------------------------------
// MyNetworkAccessManager
//---------------------------------------------------------
class MyNetworkAccessManager: public QNetworkAccessManager
{
//Q_OBJECT
public:
MyNetworkAccessManager(QObject *parent) : QNetworkAccessManager(parent) {}
protected:
QNetworkReply * createRequest(Operation op,
const QNetworkRequest & req,
QIODevice * outgoingData = 0);
};
// 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);
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 setBusy();
void stopBusy(bool val);
#ifndef QT_NO_OPENSSL
void ignoreSSLErrors(QNetworkReply *reply, QList<QSslError> sslErrors);
#endif
public:
MyWebView(QWidget *parent = 0);
~MyWebView();
MyWebPage* webPage() { return &m_page;}
virtual QSize sizeHint () const;
};
//---------------------------------------------------------
// WebPage
//---------------------------------------------------------
class WebPageDockWidget : public QDockWidget
{
//Q_OBJECT
MyWebView* web;
public slots:
void addToJavascript();
void saveOnlineFinished();
public:
WebPageDockWidget(MuseScore* mscore, QWidget* parent = 0);
Q_INVOKABLE void load();
Q_INVOKABLE bool saveCurrentScoreOnline(QString action, QVariantMap parameters, QString fileFieldName);
Q_INVOKABLE bool setCurrentScoreSource(QString source);
Q_INVOKABLE QObject* currentScore();
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
#endif