void InfoWidget::refreshChannelLink() { TextWithEntities channelLinkText; TextWithEntities channelLinkTextShort; if (auto channel = peer()->asChannel()) { if (!channel->username.isEmpty()) { channelLinkText.text = CreateInternalLinkHttps(channel->username); channelLinkText.entities.push_back(EntityInText(EntityInTextUrl, 0, channelLinkText.text.size())); channelLinkTextShort.text = CreateInternalLink(channel->username); channelLinkTextShort.entities.push_back(EntityInText(EntityInTextCustomUrl, 0, channelLinkTextShort.text.size(), CreateInternalLinkHttps(channel->username))); } } setLabeledText(nullptr, lang(lng_profile_link), &_channelLink, channelLinkText, QString()); setLabeledText(&_channelLinkLabel, lang(lng_profile_link), &_channelLinkShort, channelLinkTextShort, QString()); if (_channelLinkShort) { _channelLinkShort->setExpandLinksMode(ExpandLinksUrlOnly); } }
std::shared_ptr<std::vector<std::shared_ptr<MuPDFDocLink>>> MuPDFDoc::GetLinks() { PageCache *pageCache = &m_pages[m_currentPage]; std::shared_ptr<std::vector<std::shared_ptr<MuPDFDocLink>>> links(new std::vector<std::shared_ptr<MuPDFDocLink>>()); fz_matrix ctm = CalcConvertMatrix(); fz_link* list = fz_load_links(m_document, pageCache->page); for(fz_link* link = list; link; link = link->next) { fz_rect rect = fz_transform_rect(ctm, link->rect); std::shared_ptr<MuPDFDocLink> docLink; switch (link->dest.kind) { case FZ_LINK_GOTO: { docLink = CreateInternalLink(link, rect); break; } case FZ_LINK_GOTOR: { docLink = CreateRemoteLink(link, rect); break; } case FZ_LINK_URI: { docLink = CreateURILink(link, rect); break; } default: continue; } links->push_back(docLink); } fz_drop_link(m_context, list); return links; }