2011-03-31 8 views
0

ウェブに表示されているようにcookie jarを実装しました。すべてのcookie値を受け取ることができます。
どのように私は理解していないすべてのクッキーを削除できますか?私のコードはどこにありますか?Qt QwebKit起動時にすべてのクッキーを削除するにはどうしたらいいですか?

#include <QNetworkCookieJar> 
class QNetworkCookieJarEx : public QNetworkCookieJar 
{ 
public: 
    QNetworkCookieJarEx() 
     : mEnabled(true){ } 

    bool enabled() const 
    { 
      return mEnabled; 
    } 

    void setEnabled(bool enabled) 
    { 
     if(mEnabled != enabled) 
     { 
      mEnabled = enabled; 
     // Possibly clear cookies, if we could get access to the parent class container. However, currently it is private. 
     // so how can i delete all the cookies ? 


     } 
    } 

    QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const 
    { 
     if(mEnabled) 
      return QNetworkCookieJar::cookiesForUrl(url); 
     else 
      return QList<QNetworkCookie>(); 
    } 
    bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) 

    { 
     if(mEnabled) 
     { 
      QUrl u = url; 
      // here i can see the cookies values 
      QList<QNetworkCookie> cookies = allCookies(); 
      foreach(QNetworkCookie cookie, cookieList) { 
       QString cookieName(cookie.name()); 
       QString cookieValue(cookie.value()); 
       QString cookiePath(cookie.path()); 
       //simple logger 
       UT::getInstance()->MyLogToFile("cookieName:"+cookieName+ 
           " cookieValue:"+cookieValue+ 
           " cookiePath:"+cookiePath); 
       cookies += cookie; 
      } 


      return QNetworkCookieJar::setCookiesFromUrl(cookieList, url); 
     } 
     else 
      return false; 
    } 

    QList<QNetworkCookie> allCookies() const 
    { 
     if(mEnabled) 
      return QNetworkCookieJar::allCookies(); 
     else 
      return QList<QNetworkCookie>(); 
    } 

    void setAllCookies(const QList<QNetworkCookie>& cookieList) 
    { 
     if(mEnabled) 
      return QNetworkCookieJar::setAllCookies(cookieList); 
    } 

protected: 
    bool mEnabled; 
}; 

答えて

2

私は自分のアプリケーションからこのメソッドをトリガーすることができますどのようにQNetworkCookieJar::setAllCookies()

+0

に空のリストを渡しますか? ウェブページがロードされたときに、すべてのメソッドが起動されます。私はコントロールを持っていません。 – user63898

+1

'setEnabled'から呼び出すように見えます。それがあなたの意図ではないが、明示的な 'clear'メソッドが必要な場合は、空のリストで' setAllCookies'を呼び出すパブリックメソッドを作成するか、より多くのコントロールが必要な場合は 'setAllCookies'を直接パブリックメソッド。 –

関連する問題