// // Updates a results group. // void ResultsTree::updateGroup(TreeModel::iterator &groupIter) { TreeModel::Row groupRow = (*groupIter); // Check the iterator doesn't point to a result if (groupRow[m_resultsColumns.m_type] == ResultsModelColumns::RESULT_TITLE) { return; } // Modify the "score" column to indicate the number of results in that group TreeModel::Children groupChildren = groupIter->children(); char scoreStr[64]; snprintf(scoreStr, 64, "%u", groupChildren.size()); groupRow[m_resultsColumns.m_score] = scoreStr; #ifdef DEBUG cout << "ResultsTree::updateGroup: group " << groupRow[m_resultsColumns.m_text] << " has " << groupChildren.size() << " children" << endl; #endif // Expand this group TreeModel::Path groupPath = m_refStore->get_path(groupIter); expand_row(groupPath, true); }
// // Updates a results group. // void ResultsTree::updateGroup(TreeModel::iterator &groupIter) { TreeModel::Row groupRow = (*groupIter); int averageScore = 0; // Check the iterator doesn't point to a result if (groupRow[m_resultsColumns.m_type] == ResultsModelColumns::RESULT_TITLE) { return; } // Modify the "score" column to indicate the number of results in that group TreeModel::Children groupChildren = groupIter->children(); if (groupChildren.empty() == false) { for (TreeModel::Children::iterator childIter = groupChildren.begin(); childIter != groupChildren.end(); ++childIter) { TreeModel::Row row = *childIter; averageScore += row[m_resultsColumns.m_score]; } averageScore = (int)(averageScore / groupChildren.size()); } groupRow[m_resultsColumns.m_score] = averageScore; #ifdef DEBUG cout << "ResultsTree::updateGroup: group " << groupRow[m_resultsColumns.m_text] << " has score " << averageScore << endl; #endif // Expand this group TreeModel::Path groupPath = m_refStore->get_path(groupIter); expand_row(groupPath, true); }