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