16,817
社区成员




void MainWindow::update_data(QStringList const &data)
{
int const size = data.size();
for(int i = 0; i != size; ++i)
{
QNetworkReply *reply = theme_get_->request_html(data[i]);
connect(reply, SIGNAL(finished()), this, SLOT(update_message_number()));
}
}
void MainWindow::update_message_number()
{
auto result = theme_get_->read_html(qobject_cast<QNetworkReply *>(sender()) );
if(!result.first) qDebug() << result.second;
int const number = parser_.get_anime_live_message_number(result.second);
anime_live_model_->set_current_message_number(/*index of the row*/, number);
}
void MainWindow::update_data(QStringList const &data)
{
int const size = data.size();
for(int i = 0; i != size; ++i)
{
QNetworkReply *reply = theme_get_->request_html(data[i]);
connect(reply, SIGNAL(finished()), this, SLOT(update_message_number()));
mapper.insert(std::make_pair(reply, i) );
}
}
void MainWindow::update_message_number()
{
auto result = theme_get_->read_html(qobject_cast<QNetworkReply *>(sender()) );
if(!result.first) qDebug() << result.second;
int const number = parser_.get_anime_live_message_number(result.second);
if(mapper.find(sender()) != mapper.end() )
anime_live_model_->set_current_message_number(mapper[sender()], number);
else
QTimer::single_shot(500, this, SLOT(update_message_number(number ) ) ); //如果map没有更新,会重复呼叫
}
for(int i = 0; i != size; ++i)
{
QNetworkReply *reply = theme_get_->request_html(data[i]);
mapper.insert(std::make_pair(reply, i) );
connect(reply, SIGNAL(finished()), this, SLOT(update_message_number()));
}
class newNetWorkReply : public QtNetworkReply
{
public :
newNetWorkReply() : QtNetworkReply(),index_(0)
{
connect(this, SIGNAL(finished()), this, SLOT(call_signal()));
}
void set_index(int index) { index_ = index; }
signals :
void finished(int);
private slots :
void call_signal() { emit finished(int); }
private :
int index_;
};
for(int i = 0; i != size; ++i)
{
QNetworkReply *reply = theme_get_->request_html(data[i]);
connect(reply, SIGNAL(finished()), this, SLOT(update_message_number()));
mapper.insert(std::make_pair(reply, i) );
}
//slot
auto result = theme_get_->read_html(qobject_cast<QNetworkReply *>(sender()) );
if(!result.first) qDebug() << result.second;
int const number = parser_.get_anime_live_message_number(result.second);
anime_live_model_->set_current_message_number(mapper[sender()], number);