Как реализовать qHash для QNetworkCookie - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь собрать QNetworkCookies в QSet.Я создаю QSet QSet<QNetworkCookie> cookies и затем вставляю куки с cookies.insert(cookie);. Затем компилятор сообщает мне, что для QNetworkCookie нет qHash, поэтому я добавил встроенный метод, который вы можете увидеть в листинге кода ниже.Компилятор теперь доволен, но метод никогда не вызывается, и набор содержит один и тот же файл cookie несколько раз.Может ли кто-нибудь указать мне правильное направление?

#ifndef BROWSER_H
#define BROWSER_H

#include <QDebug>
#include <QMainWindow>
#include <QNetworkCookie>
#include <QObject>
#include <QWebEngineView>


class Browser : public QMainWindow
{
    Q_OBJECT
private:
    QWebEngineView *webEngine;
    QSet<QNetworkCookie> cookies;

public:
    explicit Browser(const QUrl &url);

protected slots:
    void finishLoading(bool);
    void handleCookieAdded(const QNetworkCookie &cookie);
};

inline uint qHash(const QNetworkCookie &key, uint seed)
{
    uint hash = qHash(key.domain(), seed) ^ qHash(key.name(), seed);
    qDebug() << "qHash " << key.domain() << " " << key.name() << " " << hash;
    return hash;
}

#endif // BROWSER_H
...