| 240 | } |
| 241 | |
| 242 | void QuestLogInterface::showQuests(List<QuestPtr> quests) { |
| 243 | auto mainQuestList = fetchChild<ListWidget>("scrollArea.verticalLayout.mainQuestList"); |
| 244 | auto sideQuestList = fetchChild<ListWidget>("scrollArea.verticalLayout.sideQuestList"); |
| 245 | |
| 246 | auto mainQuestHeader = fetchChild<Widget>("scrollArea.verticalLayout.mainQuestHeader"); |
| 247 | auto sideQuestHeader = fetchChild<Widget>("scrollArea.verticalLayout.sideQuestHeader"); |
| 248 | |
| 249 | String selectedQuest; |
| 250 | if (auto selected = getSelected()) |
| 251 | selectedQuest = selected->data().toString(); |
| 252 | else if (m_manager->currentQuest()) |
| 253 | selectedQuest = (*m_manager->currentQuest())->questId(); |
| 254 | |
| 255 | mainQuestList->clear(); |
| 256 | mainQuestHeader->hide(); |
| 257 | sideQuestList->clear(); |
| 258 | sideQuestHeader->hide(); |
| 259 | for (auto const& quest : quests) { |
| 260 | WidgetPtr entry; |
| 261 | if (quest->mainQuest()) { |
| 262 | entry = mainQuestList->addItem(); |
| 263 | mainQuestHeader->show(); |
| 264 | } else { |
| 265 | entry = sideQuestList->addItem(); |
| 266 | sideQuestHeader->show(); |
| 267 | } |
| 268 | |
| 269 | entry->setData(quest->questId()); |
| 270 | entry->fetchChild<LabelWidget>("lblQuestEntry")->setText(quest->title()); |
| 271 | entry->fetchChild<ImageWidget>("imgNew")->setVisibility(quest->unread()); |
| 272 | entry->fetchChild<ImageWidget>("imgTracked")->setVisibility(m_manager->isCurrent(quest->questId())); |
| 273 | |
| 274 | bool currentWorld = false; |
| 275 | if (auto questWorld = quest->worldId()) { |
| 276 | currentWorld = m_client->playerWorld() == *questWorld; |
| 277 | } |
| 278 | entry->fetchChild<ImageWidget>("imgCurrent")->setVisibility(currentWorld); |
| 279 | |
| 280 | entry->fetchChild<ImageWidget>("imgPortrait")->setDrawables(quest->portrait("QuestStarted").value({})); |
| 281 | entry->show(); |
| 282 | if (quest->questId() == selectedQuest) |
| 283 | setSelected(entry); |
| 284 | } |
| 285 | |
| 286 | auto verticalLayout = fetchChild<VerticalLayout>("scrollArea.verticalLayout"); |
| 287 | verticalLayout->update(0); |
| 288 | } |
| 289 | |
| 290 | QuestPane::QuestPane(QuestPtr const& quest, PlayerPtr player) : Pane(), m_quest(quest), m_player(std::move(player)) {} |
| 291 |
nothing calls this directly
no test coverage detected