Guest User

Untitled

a guest
Jan 5th, 2018
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class NetworkAccessManager : public QNetworkAccessManager
  2. {
  3.     Q_OBJECT
  4. public:
  5.     NetworkAccessManager(QObject *parent) : QNetworkAccessManager(parent) {}
  6.  
  7. private:
  8.     QHash <QString,QNetworkReply> handlers;
  9.  
  10. protected:
  11.     QNetworkReply *createRequest(
  12.         Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
  13.     {
  14.         QNetworkReply *reply;
  15.         QString scheme = request.url().scheme();
  16.  
  17.         if (handlers.contains(scheme)) {
  18.             // get reply...
  19.         } else {
  20.             reply = QNetworkAccessManager::createRequest(op, request, outgoingData);
  21.         }
  22.  
  23.         return reply;
  24.     }
  25.  
  26.     void addSchemeHandler(QString scheme, QNetworkReply *class) {
  27.         handlers[scheme] = class;
  28.     }
  29. }
  30.  
  31. class MainWindow : public QMainWindow
  32. {
  33.     Q_OBJECT
  34. public:
  35.     MainWindow(QObject *parent) : QMainWindow(parent) {
  36.         n_nam.addSchemeHandler("home", DirSchemeHandler("/home/speakman"));
  37.         n_nam.addSchemeHandler("temp", DirSchemeHandler("/tmp"));
  38.         n_nam.addSchemeHandler("config", ConfigSchemeHandler());
  39.  
  40.         QWebView *m_webview = new QWebView(this);
  41.         m_webview->setNetworkAccessManager(m_nam);
  42.         n_nam.addSchemeHandler("config", ConfigSchemeHandler());
  43.  
  44.         QWebView *m_webview = new QWebView(this);
  45.         m_webview->setNetworkAccessManager(m_nam);
  46.     }
  47. }
Add Comment
Please, Sign In to add comment