]> git.sur5r.net Git - minitube/blobdiff - src/loadingwidget.cpp
Imported Upstream version 2.5.1
[minitube] / src / loadingwidget.cpp
index 79efe0d3d0431477d1d84527781f54536dad9d1b..0f030d983e467f0ac100cd90f29e08632f20207d 100644 (file)
@@ -45,6 +45,8 @@ LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
     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);
@@ -63,14 +65,16 @@ void LoadingWidget::setVideo(Video *video) {
 
     QFont titleFont;
 #ifdef APP_MAC
-    titleFont.setFamily("Helvetica");
-#endif
-#ifdef APP_WIN
+    titleFont.setFamily("Helvetica Neue");
+    titleFont.setStyleName("Thin");
+#elif APP_WIN
     titleFont.setFamily("Segoe UI Light");
+    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;
@@ -79,9 +83,13 @@ void LoadingWidget::setVideo(Video *video) {
 
     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);
@@ -90,11 +98,15 @@ void LoadingWidget::setVideo(Video *video) {
     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;
@@ -109,7 +121,7 @@ void LoadingWidget::setVideo(Video *video) {
     startTime.start();
 }
 
-void LoadingWidget::setError(QString message) {
+void LoadingWidget::setError(const QString &message) {
     titleLabel->setText(tr("Error"));
     descriptionLabel->setText(message);
     // progressBar->hide();