descriptionLabel->setForegroundRole(QPalette::Text);
descriptionLabel->setWordWrap(true);
descriptionLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
+ descriptionLabel->setTextFormat(Qt::RichText);
+ descriptionLabel->setOpenExternalLinks(true);
layout->addWidget(descriptionLabel);
progressBar = new QProgressBar(this);
QFont titleFont;
#ifdef APP_MAC
titleFont.setFamily("Helvetica Neue");
-#endif
-#ifdef APP_WIN
+ titleFont.setStyleName("Thin");
+#elif APP_WIN
titleFont.setFamily("Segoe UI Light");
-#endif
titleFont.setStyleName("Light");
+#else
+ titleFont.setStyleName("Light");
+#endif
int smallerDimension = qMin(height(), width());
titleFont.setPixelSize(smallerDimension / 12);
- titleFont.setHintingPreference(QFont::PreferNoHinting);
QFontMetrics fm(titleFont);
int textHeightInPixels = fm.height();
int spacing = textHeightInPixels / 2;
QString title = video->title();
// enhance legibility by splitting the title
- title = title.replace(" - ", "<p>");
- title = title.replace("] ", "]<p>");
- title = title.replace(" [", "<p>[");
+ title.replace(QLatin1String(" - "), QLatin1String("<p>"));
+ title.replace(QLatin1String(" | "), QLatin1String("<p>"));
+ title.replace(QLatin1String(" — "), QLatin1String("<p>"));
+ title.replace(QLatin1String("] "), QLatin1String("]<p>"));
+ title.replace(QLatin1String(" ["), QLatin1String("<p>["));
+ title.replace(QLatin1String(" ("), QLatin1String("<p>("));
+ title.replace(QLatin1String(") "), QLatin1String(")<p>"));
titleLabel->setText(title);
titleLabel->setVisible(window()->height() > 100);
titleLabel->setFont(titleFont);
QString videoDesc = video->description();
if (videoDesc.length() > maxDescLength) {
videoDesc.truncate(maxDescLength-1);
- videoDesc.append("...");
+ videoDesc = videoDesc.trimmed();
+ videoDesc.append("…");
+ } else if (videoDesc.endsWith(QLatin1String(" ..."))) {
+ videoDesc = videoDesc.left(videoDesc.length() - 4);
+ videoDesc.append("…");
}
+ videoDesc.replace(QRegExp("(https?://\\S+)"), "<a style='color:white' href=\"\\1\">\\1</a>");
QFont descFont(titleFont);
descFont.setPixelSize(descFont.pixelSize() / 2);
- descFont.setHintingPreference(QFont::PreferNoHinting);
descriptionLabel->setFont(descFont);
descriptionLabel->setText(videoDesc);
bool hiddenDesc = height() < 400;