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 + + + + + + +