| 128 | } |
| 129 | |
| 130 | QVariant NetworkReplyModel::data(const QModelIndex &index, int role) const |
| 131 | { |
| 132 | if (!index.isValid()) { |
| 133 | return {}; |
| 134 | } |
| 135 | |
| 136 | // top-level |
| 137 | if (index.internalId() == TopIndex) { |
| 138 | const auto &nam = m_nodes[index.row()]; |
| 139 | if (index.column() == NetworkReplyModelColumn::ObjectColumn && role == Qt::DisplayRole) { |
| 140 | return nam.displayName; |
| 141 | } else if (role == NetworkReplyModelRole::ObjectIdRole && index.column() == NetworkReplyModelColumn::ObjectColumn) { |
| 142 | return QVariant::fromValue(ObjectId(nam.nam)); |
| 143 | } |
| 144 | return {}; |
| 145 | } |
| 146 | |
| 147 | // reply level |
| 148 | const auto &reply = m_nodes[index.internalId()].replies[index.row()]; |
| 149 | if (role == Qt::DisplayRole) { |
| 150 | switch (index.column()) { |
| 151 | case NetworkReplyModelColumn::ObjectColumn: |
| 152 | return reply.displayName; |
| 153 | case NetworkReplyModelColumn::OpColumn: |
| 154 | return reply.op; |
| 155 | case NetworkReplyModelColumn::SizeColumn: |
| 156 | if (reply.duration == 0 && reply.size == 0) { |
| 157 | return {}; // cached reply, we don't have proper data for that |
| 158 | } |
| 159 | return reply.size; |
| 160 | case NetworkReplyModelColumn::TimeColumn: |
| 161 | if (reply.state & NetworkReply::Finished) { |
| 162 | return reply.duration; |
| 163 | } |
| 164 | return {}; |
| 165 | case NetworkReplyModelColumn::UrlColumn: |
| 166 | return reply.url; |
| 167 | } |
| 168 | } else if (role == NetworkReplyModelRole::ReplyStateRole && index.column() == NetworkReplyModelColumn::ObjectColumn) { |
| 169 | return reply.state; |
| 170 | } else if (role == NetworkReplyModelRole::ReplyErrorRole && index.column() == NetworkReplyModelColumn::ObjectColumn) { |
| 171 | return reply.errorMsgs; |
| 172 | } else if (role == NetworkReplyModelRole::ObjectIdRole && index.column() == NetworkReplyModelColumn::ObjectColumn) { |
| 173 | return QVariant::fromValue(ObjectId(reply.reply)); |
| 174 | } else if (role == NetworkReplyModelRole::ReplyResponseRole && index.column() == NetworkReplyModelColumn::ObjectColumn) { |
| 175 | return reply.response; |
| 176 | } else if (role == NetworkReplyModelRole::ReplyContentType && index.column() == NetworkReplyModelColumn::ObjectColumn) { |
| 177 | return reply.contentType; |
| 178 | } |
| 179 | |
| 180 | return {}; |
| 181 | } |
| 182 | |
| 183 | QModelIndex NetworkReplyModel::index(int row, int column, const QModelIndex &parent) const |
| 184 | { |
no test coverage detected