diff --git a/data/data.qrc b/data/data.qrc
index d04679997..da717803a 100644
--- a/data/data.qrc
+++ b/data/data.qrc
@@ -332,5 +332,6 @@
allthethings.png
globalsearch.css
clementine-spotify-public.pem
+ icons/22x22/user-away.png
diff --git a/data/icons/22x22/user-away.png b/data/icons/22x22/user-away.png
new file mode 100644
index 000000000..f16d92b0c
Binary files /dev/null and b/data/icons/22x22/user-away.png differ
diff --git a/src/internet/digitallyimportedsettingspage.cpp b/src/internet/digitallyimportedsettingspage.cpp
index 03ba358ed..7a4470f57 100644
--- a/src/internet/digitallyimportedsettingspage.cpp
+++ b/src/internet/digitallyimportedsettingspage.cpp
@@ -88,11 +88,11 @@ void DigitallyImportedSettingsPage::UpdateLoginState(
const QString& listen_hash, const QString& name, const QDateTime& expires) {
if (listen_hash.isEmpty()) {
ui_->login_state->SetLoggedIn(LoginStateWidget::LoggedOut);
+ ui_->login_state->SetExpires(QDate());
ui_->login_state->SetAccountTypeVisible(true);
} else {
- ui_->login_state->SetLoggedIn(
- LoginStateWidget::LoggedIn,
- name + " (" + tr("Expires on %1").arg(expires.date().toString(Qt::SystemLocaleLongDate)) + ")");
+ ui_->login_state->SetLoggedIn(LoginStateWidget::LoggedIn, name);
+ ui_->login_state->SetExpires(expires.date());
ui_->login_state->SetAccountTypeVisible(false);
}
diff --git a/src/translations/translations.pot b/src/translations/translations.pot
index 410a3791f..58cdf257a 100644
--- a/src/translations/translations.pot
+++ b/src/translations/translations.pot
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Except between tracks on the same album or in the same CUE sheet"
msgstr ""
-#: internet/digitallyimportedsettingspage.cpp:95
+#: widgets/loginstatewidget.cpp:112
#, qt-format
msgid "Expires on %1"
msgstr ""
@@ -1811,7 +1811,7 @@ msgstr ""
#: ../bin/src/ui_transcoderoptionsspeex.h:216
#: ../bin/src/ui_transcoderoptionsvorbis.h:201
#: ../bin/src/ui_transcoderoptionswma.h:78 ../bin/src/ui_equalizerslider.h:82
-#: ../bin/src/ui_fileview.h:106 ../bin/src/ui_loginstatewidget.h:145
+#: ../bin/src/ui_fileview.h:106 ../bin/src/ui_loginstatewidget.h:171
#: ../bin/src/ui_trackslider.h:69 ../bin/src/ui_visualisationoverlay.h:178
msgid "Form"
msgstr ""
@@ -3597,11 +3597,11 @@ msgstr ""
msgid "Shuffle playlist"
msgstr ""
-#: ../bin/src/ui_remotesettingspage.h:202 ../bin/src/ui_loginstatewidget.h:147
+#: ../bin/src/ui_remotesettingspage.h:202 ../bin/src/ui_loginstatewidget.h:173
msgid "Sign out"
msgstr ""
-#: ../bin/src/ui_loginstatewidget.h:149
+#: ../bin/src/ui_loginstatewidget.h:175
msgid "Signing in..."
msgstr ""
@@ -4352,16 +4352,16 @@ msgstr ""
msgid "You are about to download the following albums"
msgstr ""
-#: ../bin/src/ui_loginstatewidget.h:146
+#: ../bin/src/ui_loginstatewidget.h:172
msgid "You are not signed in."
msgstr ""
-#: widgets/loginstatewidget.cpp:67
+#: widgets/loginstatewidget.cpp:69
#, qt-format
msgid "You are signed in as %1."
msgstr ""
-#: widgets/loginstatewidget.cpp:65
+#: widgets/loginstatewidget.cpp:67
msgid "You are signed in."
msgstr ""
diff --git a/src/widgets/loginstatewidget.cpp b/src/widgets/loginstatewidget.cpp
index 93ee5ee0a..e4e23ceae 100644
--- a/src/widgets/loginstatewidget.cpp
+++ b/src/widgets/loginstatewidget.cpp
@@ -19,6 +19,7 @@
#include "ui_loginstatewidget.h"
#include "ui/iconloader.h"
+#include
#include
LoginStateWidget::LoginStateWidget(QWidget* parent)
@@ -27,6 +28,7 @@ LoginStateWidget::LoginStateWidget(QWidget* parent)
{
ui_->setupUi(this);
ui_->signed_in->hide();
+ ui_->expires->hide();
ui_->account_type->hide();
ui_->busy->hide();
@@ -102,3 +104,12 @@ bool LoginStateWidget::eventFilter(QObject* object, QEvent* event) {
return QWidget::eventFilter(object, event);
}
+void LoginStateWidget::SetExpires(const QDate& expires) {
+ ui_->expires->setVisible(expires.isValid());
+
+ if (expires.isValid()) {
+ const QString expires_text = expires.toString(Qt::SystemLocaleLongDate);
+ ui_->expires_label->setText(tr("Expires on %1").arg("" + expires_text + ""));
+ }
+}
+
diff --git a/src/widgets/loginstatewidget.h b/src/widgets/loginstatewidget.h
index afcbaa484..1651b1a69 100644
--- a/src/widgets/loginstatewidget.h
+++ b/src/widgets/loginstatewidget.h
@@ -18,6 +18,7 @@
#ifndef LOGINSTATEWIDGET_H
#define LOGINSTATEWIDGET_H
+#include
#include
class Ui_LoginStateWidget;
@@ -57,6 +58,8 @@ public slots:
void SetAccountTypeText(const QString& text);
void SetAccountTypeVisible(bool visible);
+ void SetExpires(const QDate& expires);
+
signals:
void LogoutClicked();
void LoginClicked();
diff --git a/src/widgets/loginstatewidget.ui b/src/widgets/loginstatewidget.ui
index af62cbc65..cb0bf3ef4 100644
--- a/src/widgets/loginstatewidget.ui
+++ b/src/widgets/loginstatewidget.ui
@@ -97,6 +97,38 @@
+ -
+
+
+
+ 0
+
+
-
+
+
+
+ 22
+ 22
+
+
+
+ :/icons/22x22/user-away.png
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
-