アクティブな QWebPage と非アクティブな QWebPage をそれぞれ保持する 2 つの配列があります。つまり、実行中の QWebPage の最大数を制限したいので、これを行いました。
2 つの QList オブジェクトを使用します。
QList<QWebPage*> pages; // holds remaining pages
QList<QWebPage*> active; // holds active ones
リクエストを送信する必要がある場合は、次のようにします。
void XXX::addRequest (QUrl url)
{
if (pages.size() > 0)
{
QWebPage *page = pages.front();
pages.pop_front();
active.push_back (page);
page->mainFrame().load (url);
}
}
ご要望に応じて仕上げ、
void XXX::finished (bool ok)
{
QWebPage *page = qobject_cast<QWebPage*> (sender());
// blabla
// now I need to move this "page" to the "pages" list
}
オブジェクトは複数のリストに属することができるので (これは単なるポインターです)、active
QList からオブジェクトを削除してpages
リストに追加する必要があります。
しかし、QList はインデックス番号による削除のみをサポートしています。今は直接行うことはできません。
何か案は?リストを繰り返し処理しないことを願っています。