| 22 | namespace Star { |
| 23 | |
| 24 | QuestLogInterface::QuestLogInterface(QuestManagerPtr manager, PlayerPtr player, CinematicPtr cinematic, UniverseClientPtr client) { |
| 25 | m_manager = manager; |
| 26 | m_player = player; |
| 27 | m_cinematic = cinematic; |
| 28 | m_client = client; |
| 29 | |
| 30 | auto assets = Root::singleton().assets(); |
| 31 | auto config = assets->json("/interface/windowconfig/questlog.config"); |
| 32 | |
| 33 | m_trackLabel = config.getString("trackLabel"); |
| 34 | m_untrackLabel = config.getString("untrackLabel"); |
| 35 | |
| 36 | GuiReader reader; |
| 37 | |
| 38 | reader.registerCallback("close", [=](Widget*) { dismiss(); }); |
| 39 | reader.registerCallback("btnToggleTracking", |
| 40 | [=](Widget*) { |
| 41 | toggleTracking(); |
| 42 | }); |
| 43 | reader.registerCallback("btnAbandon", |
| 44 | [=](Widget*) { |
| 45 | abandon(); |
| 46 | }); |
| 47 | reader.registerCallback("filter", |
| 48 | [=](Widget*) { |
| 49 | fetchData(); |
| 50 | }); |
| 51 | |
| 52 | reader.construct(config.get("paneLayout"), this); |
| 53 | |
| 54 | auto mainQuestList = fetchChild<ListWidget>("scrollArea.verticalLayout.mainQuestList"); |
| 55 | auto sideQuestList = fetchChild<ListWidget>("scrollArea.verticalLayout.sideQuestList"); |
| 56 | mainQuestList->setCallback([sideQuestList](Widget* widget) { |
| 57 | auto listWidget = as<ListWidget>(widget); |
| 58 | if (listWidget->selectedItem() != NPos) |
| 59 | sideQuestList->clearSelected(); |
| 60 | }); |
| 61 | sideQuestList->setCallback([mainQuestList](Widget* widget) { |
| 62 | auto listWidget = as<ListWidget>(widget); |
| 63 | if (listWidget->selectedItem() != NPos) |
| 64 | mainQuestList->clearSelected(); |
| 65 | }); |
| 66 | mainQuestList->disableScissoring(); |
| 67 | sideQuestList->disableScissoring(); |
| 68 | |
| 69 | m_rewardItems = make_shared<ItemBag>(5); |
| 70 | fetchChild<ItemGridWidget>("rewardItems")->setItemBag(m_rewardItems); |
| 71 | |
| 72 | m_refreshRate = 30; |
| 73 | m_refreshTimer = 0; |
| 74 | } |
| 75 | |
| 76 | void QuestLogInterface::pollDialog(PaneManager* paneManager) { |
| 77 | if (paneManager->topPane({PaneLayer::ModalWindow})) |
nothing calls this directly
no test coverage detected