30 this->composition = composition;
31 this->isUserComposition =
true;
34 this->textLabel =
new QLabel(
"",
this);
36 textLabel->setTextInteractionFlags(textLabel->textInteractionFlags() | Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse);
37 textLabel->setOpenExternalLinks(
false);
39 connect(textLabel, &QLabel::linkActivated,
this, &VuoCompositionMetadataPanel::handleMetadataLinkClick);
42 layout =
new QVBoxLayout(
this);
43 layout->setContentsMargins(margin, margin, margin, margin);
44 layout->addWidget(textLabel, 0, Qt::AlignTop);
45 layout->setStretch(0, 0);
91 QPainter painter(
this);
92 QRect popoverRect(0, 0, width(), height());
93 QColor popoverColor = isDark ? QColor(
"#282828") : QColor(
"#f9f9f9");
95 painter.setBrush(popoverColor);
96 painter.setRenderHint(QPainter::Antialiasing,
true);
97 painter.fillRect(popoverRect, popoverColor);
111 QString compositionVersion = QString::fromStdString(metadata->
getVersion());
119 QString formattedName = QString(
"<h2>%1</h2>").arg(name);
123 QString formattedCompositionVersion = isUserComposition && !compositionVersion.isEmpty()
124 ?
"<span>" + tr(
"Version %1").arg(compositionVersion) +
"</span><br>\n"
129 QString formattedCreatedInVuoVersion = isUserComposition && !createdInVuoVersion.isEmpty()
130 ?
"<span>" + tr(
"Created in Vuo %1").arg(createdInVuoVersion) +
"</span><br>\n"
135 QString formattedLastSavedInVuoVersion = isUserComposition && !lastSavedInVuoVersion.isEmpty()
136 ?
"<span>" + tr(
"Last saved in Vuo %1").arg(lastSavedInVuoVersion) +
"</span><br>\n"
139 QString formattedVersionInfo = formattedCompositionVersion
140 .append(formattedCreatedInVuoVersion)
141 .append(formattedLastSavedInVuoVersion);
142 if (!formattedVersionInfo.isEmpty())
143 formattedVersionInfo.append(
"<br>\n");
145 QString formattedDescription =
"";
149 QString formattedCopyright=
"";
152 if (!copyright.empty() && copyright.find(
"Kosada Incorporated") == string::npos)
155 QString formattedLinks =
"";
156 if (!homepageURL.empty() || !documentationURL.empty())
158 formattedLinks =
"<p>";
159 if (!homepageURL.empty())
160 formattedLinks.append(QString(
"<a href=\""))
161 .append(homepageURL.c_str())
162 .append(
"\">Homepage</a>\n");
164 if (!homepageURL.empty() && !documentationURL.empty())
165 formattedLinks.append(QString(
"<br>\n"));
167 if (!documentationURL.empty())
168 formattedLinks.append(QString(
"<a href=\""))
169 .append(documentationURL.c_str())
170 .append(
"\">Documentation</a>\n");
172 formattedLinks.append(
"</p>");
175 QString editMetadataLink = (isUserComposition?
176 QString(
"<p><a href=\"")
177 .append(VuoCompositionMetadataPanel::editLink)
178 .append(
"\">Edit Composition Information…</a></p>") :
"");
182 .append(formattedDescription)
183 .append(formattedCopyright)
184 .append(formattedLinks)
185 .append(formattedVersionInfo)
186 .append(editMetadataLink);