mirror of
https://github.com/strawberrymusicplayer/strawberry
synced 2024-12-12 16:46:53 +01:00
Context: Use custom textedits instead of labels
Also improve album cover scaling Fixes #965
This commit is contained in:
parent
683991b1c9
commit
d133addbaa
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Strawberry Music Player
|
* Strawberry Music Player
|
||||||
* Copyright 2020-2021, Jonas Kvinge <jonas@jkvinge.net>
|
* Copyright 2020-2022, Jonas Kvinge <jonas@jkvinge.net>
|
||||||
*
|
*
|
||||||
* Strawberry is free software: you can redistribute it and/or modify
|
* Strawberry is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -58,14 +58,15 @@ ContextAlbum::ContextAlbum(QWidget *parent)
|
|||||||
prev_width_(width()) {
|
prev_width_(width()) {
|
||||||
|
|
||||||
setObjectName("context-widget-album");
|
setObjectName("context-widget-album");
|
||||||
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
||||||
|
|
||||||
cover_loader_options_.desired_height_ = 600;
|
cover_loader_options_.desired_height_ = width();
|
||||||
cover_loader_options_.pad_output_image_ = true;
|
cover_loader_options_.pad_output_image_ = true;
|
||||||
cover_loader_options_.scale_output_image_ = true;
|
cover_loader_options_.scale_output_image_ = true;
|
||||||
QImage image = ImageUtils::ScaleAndPad(image_strawberry_, cover_loader_options_.scale_output_image_, cover_loader_options_.pad_output_image_, cover_loader_options_.desired_height_);
|
QImage image = ImageUtils::ScaleAndPad(image_strawberry_, cover_loader_options_.scale_output_image_, cover_loader_options_.pad_output_image_, cover_loader_options_.desired_height_);
|
||||||
if (!image.isNull()) pixmap_current_ = QPixmap::fromImage(image);
|
if (!image.isNull()) pixmap_current_ = QPixmap::fromImage(image);
|
||||||
|
|
||||||
|
setFixedHeight(image.height());
|
||||||
|
|
||||||
QObject::connect(timeline_fade_, &QTimeLine::valueChanged, this, &ContextAlbum::FadePreviousTrack);
|
QObject::connect(timeline_fade_, &QTimeLine::valueChanged, this, &ContextAlbum::FadePreviousTrack);
|
||||||
timeline_fade_->setDirection(QTimeLine::Backward); // 1.0 -> 0.0
|
timeline_fade_->setDirection(QTimeLine::Backward); // 1.0 -> 0.0
|
||||||
|
|
||||||
@ -86,8 +87,21 @@ void ContextAlbum::Init(ContextView *context_view, AlbumCoverChoiceController *a
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSize ContextAlbum::sizeHint() const {
|
||||||
|
|
||||||
|
return QSize(parentWidget()->width() - kWidgetSpacing, QWidget::sizeHint().height());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void ContextAlbum::contextMenuEvent(QContextMenuEvent *e) {
|
void ContextAlbum::contextMenuEvent(QContextMenuEvent *e) {
|
||||||
if (menu_ && image_original_ != image_strawberry_) menu_->popup(mapToGlobal(e->pos()));
|
|
||||||
|
if (menu_ && image_original_ != image_strawberry_) {
|
||||||
|
menu_->popup(mapToGlobal(e->pos()));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
QWidget::contextMenuEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContextAlbum::mouseDoubleClickEvent(QMouseEvent *e) {
|
void ContextAlbum::mouseDoubleClickEvent(QMouseEvent *e) {
|
||||||
@ -117,15 +131,18 @@ void ContextAlbum::DrawImage(QPainter *p) {
|
|||||||
|
|
||||||
p->setRenderHint(QPainter::SmoothPixmapTransform);
|
p->setRenderHint(QPainter::SmoothPixmapTransform);
|
||||||
|
|
||||||
if (width() != prev_width_) {
|
int current_width = width();
|
||||||
cover_loader_options_.desired_height_ = width() - kWidgetSpacing;
|
|
||||||
|
if (current_width != prev_width_) {
|
||||||
|
cover_loader_options_.desired_height_ = width();
|
||||||
QImage image = ImageUtils::ScaleAndPad(image_original_, cover_loader_options_.scale_output_image_, cover_loader_options_.pad_output_image_, cover_loader_options_.desired_height_);
|
QImage image = ImageUtils::ScaleAndPad(image_original_, cover_loader_options_.scale_output_image_, cover_loader_options_.pad_output_image_, cover_loader_options_.desired_height_);
|
||||||
if (image.isNull()) pixmap_current_ = QPixmap();
|
if (image.isNull()) pixmap_current_ = QPixmap();
|
||||||
else pixmap_current_ = QPixmap::fromImage(image);
|
else pixmap_current_ = QPixmap::fromImage(image);
|
||||||
prev_width_ = width();
|
prev_width_ = width();
|
||||||
|
setFixedHeight(image.height());
|
||||||
}
|
}
|
||||||
|
|
||||||
p->drawPixmap(0, 0, width() - kWidgetSpacing, width() - kWidgetSpacing, pixmap_current_);
|
p->drawPixmap(0, 0, pixmap_current_.width(), pixmap_current_.height(), pixmap_current_);
|
||||||
if (downloading_covers_ && spinner_animation_) {
|
if (downloading_covers_ && spinner_animation_) {
|
||||||
p->drawPixmap(50, 50, 16, 16, spinner_animation_->currentPixmap());
|
p->drawPixmap(50, 50, 16, 16, spinner_animation_->currentPixmap());
|
||||||
}
|
}
|
||||||
@ -149,7 +166,7 @@ void ContextAlbum::FadePreviousTrack(const qreal value) {
|
|||||||
|
|
||||||
void ContextAlbum::ScaleCover() {
|
void ContextAlbum::ScaleCover() {
|
||||||
|
|
||||||
cover_loader_options_.desired_height_ = width() - kWidgetSpacing;
|
cover_loader_options_.desired_height_ = width();
|
||||||
QImage image = ImageUtils::ScaleAndPad(image_original_, cover_loader_options_.scale_output_image_, cover_loader_options_.pad_output_image_, cover_loader_options_.desired_height_);
|
QImage image = ImageUtils::ScaleAndPad(image_original_, cover_loader_options_.scale_output_image_, cover_loader_options_.pad_output_image_, cover_loader_options_.desired_height_);
|
||||||
if (image.isNull()) pixmap_current_ = QPixmap();
|
if (image.isNull()) pixmap_current_ = QPixmap();
|
||||||
else pixmap_current_ = QPixmap::fromImage(image);
|
else pixmap_current_ = QPixmap::fromImage(image);
|
||||||
@ -168,7 +185,7 @@ void ContextAlbum::SetImage(QImage image) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Cache the current pixmap so we can fade between them
|
// Cache the current pixmap so we can fade between them
|
||||||
pixmap_previous_ = QPixmap(width() - kWidgetSpacing, width() - kWidgetSpacing);
|
pixmap_previous_ = QPixmap(width(), width());
|
||||||
pixmap_previous_.fill(palette().window().color());
|
pixmap_previous_.fill(palette().window().color());
|
||||||
pixmap_previous_opacity_ = 1.0;
|
pixmap_previous_opacity_ = 1.0;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Strawberry Music Player
|
* Strawberry Music Player
|
||||||
* Copyright 2020-2021, Jonas Kvinge <jonas@jkvinge.net>
|
* Copyright 2020-2022, Jonas Kvinge <jonas@jkvinge.net>
|
||||||
*
|
*
|
||||||
* Strawberry is free software: you can redistribute it and/or modify
|
* Strawberry is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -52,6 +52,7 @@ class ContextAlbum : public QWidget {
|
|||||||
void SetImage(QImage image = QImage());
|
void SetImage(QImage image = QImage());
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
QSize sizeHint() const override;
|
||||||
void paintEvent(QPaintEvent*) override;
|
void paintEvent(QPaintEvent*) override;
|
||||||
void contextMenuEvent(QContextMenuEvent *e) override;
|
void contextMenuEvent(QContextMenuEvent *e) override;
|
||||||
void mouseDoubleClickEvent(QMouseEvent *e) override;
|
void mouseDoubleClickEvent(QMouseEvent *e) override;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Strawberry Music Player
|
* Strawberry Music Player
|
||||||
* Copyright 2013-2021, Jonas Kvinge <jonas@jkvinge.net>
|
* Copyright 2013-2022, Jonas Kvinge <jonas@jkvinge.net>
|
||||||
*
|
*
|
||||||
* Strawberry is free software: you can redistribute it and/or modify
|
* Strawberry is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -41,6 +41,7 @@
|
|||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QSpacerItem>
|
#include <QSpacerItem>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QTextEdit>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QResizeEvent>
|
#include <QResizeEvent>
|
||||||
#include <QContextMenuEvent>
|
#include <QContextMenuEvent>
|
||||||
@ -52,6 +53,7 @@
|
|||||||
#include "core/song.h"
|
#include "core/song.h"
|
||||||
#include "core/utilities.h"
|
#include "core/utilities.h"
|
||||||
#include "core/iconloader.h"
|
#include "core/iconloader.h"
|
||||||
|
#include "widgets/resizabletextedit.h"
|
||||||
#include "engine/engine_fwd.h"
|
#include "engine/engine_fwd.h"
|
||||||
#include "engine/enginebase.h"
|
#include "engine/enginebase.h"
|
||||||
#include "engine/enginetype.h"
|
#include "engine/enginetype.h"
|
||||||
@ -75,7 +77,7 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
collectionview_(nullptr),
|
collectionview_(nullptr),
|
||||||
album_cover_choice_controller_(nullptr),
|
album_cover_choice_controller_(nullptr),
|
||||||
lyrics_fetcher_(nullptr),
|
lyrics_fetcher_(nullptr),
|
||||||
menu_(new QMenu(this)),
|
menu_options_(new QMenu(this)),
|
||||||
action_show_album_(nullptr),
|
action_show_album_(nullptr),
|
||||||
action_show_data_(nullptr),
|
action_show_data_(nullptr),
|
||||||
action_show_output_(nullptr),
|
action_show_output_(nullptr),
|
||||||
@ -86,7 +88,7 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
widget_scrollarea_(new QWidget(this)),
|
widget_scrollarea_(new QWidget(this)),
|
||||||
layout_scrollarea_(new QVBoxLayout()),
|
layout_scrollarea_(new QVBoxLayout()),
|
||||||
scrollarea_(new QScrollArea(this)),
|
scrollarea_(new QScrollArea(this)),
|
||||||
label_top_(new QLabel(this)),
|
textedit_top_(new ResizableTextEdit(this)),
|
||||||
widget_album_(new ContextAlbum(this)),
|
widget_album_(new ContextAlbum(this)),
|
||||||
widget_stacked_(new QStackedWidget(this)),
|
widget_stacked_(new QStackedWidget(this)),
|
||||||
widget_stop_(new QWidget(this)),
|
widget_stop_(new QWidget(this)),
|
||||||
@ -100,13 +102,12 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
layout_play_data_(new QGridLayout()),
|
layout_play_data_(new QGridLayout()),
|
||||||
layout_play_output_(new QGridLayout()),
|
layout_play_output_(new QGridLayout()),
|
||||||
label_play_albums_(new QLabel(this)),
|
label_play_albums_(new QLabel(this)),
|
||||||
label_play_lyrics_(new QLabel(this)),
|
textedit_play_lyrics_(new ResizableTextEdit(this)),
|
||||||
widget_albums_(new ContextAlbumsView(this)),
|
widget_albums_(new ContextAlbumsView(this)),
|
||||||
//spacer_play_album_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
|
||||||
spacer_play_output_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
spacer_play_output_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
||||||
spacer_play_data_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
spacer_play_data_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
||||||
spacer_play_albums_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
spacer_play_albums_(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed)),
|
||||||
spacer_play_bottom_(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding)),
|
spacer_play_bottom_(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum)),
|
||||||
label_filetype_title_(new QLabel(this)),
|
label_filetype_title_(new QLabel(this)),
|
||||||
label_length_title_(new QLabel(this)),
|
label_length_title_(new QLabel(this)),
|
||||||
label_samplerate_title_(new QLabel(this)),
|
label_samplerate_title_(new QLabel(this)),
|
||||||
@ -125,7 +126,7 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
label_engine_(new QLabel(this)),
|
label_engine_(new QLabel(this)),
|
||||||
label_device_icon_(new QLabel(this)),
|
label_device_icon_(new QLabel(this)),
|
||||||
label_engine_icon_(new QLabel(this)),
|
label_engine_icon_(new QLabel(this)),
|
||||||
spacer_bottom_(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding)),
|
spacer_bottom_(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum)),
|
||||||
lyrics_tried_(false),
|
lyrics_tried_(false),
|
||||||
lyrics_id_(-1),
|
lyrics_id_(-1),
|
||||||
font_size_headline_(0),
|
font_size_headline_(0),
|
||||||
@ -148,15 +149,12 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
widget_scrollarea_->setLayout(layout_scrollarea_);
|
widget_scrollarea_->setLayout(layout_scrollarea_);
|
||||||
widget_scrollarea_->setContentsMargins(0, 0, 0, 0);
|
widget_scrollarea_->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
label_top_->setAlignment(Qt::AlignTop | Qt::AlignLeft);
|
textedit_top_->setReadOnly(true);
|
||||||
label_top_->setWordWrap(true);
|
textedit_top_->setFrameShape(QFrame::NoFrame);
|
||||||
label_top_->setMinimumHeight(50);
|
|
||||||
label_top_->setContentsMargins(0, 0, 32, 0);
|
|
||||||
label_top_->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
|
||||||
|
|
||||||
layout_scrollarea_->setObjectName("context-layout-scrollarea");
|
layout_scrollarea_->setObjectName("context-layout-scrollarea");
|
||||||
layout_scrollarea_->setContentsMargins(15, 15, 15, 15);
|
layout_scrollarea_->setContentsMargins(15, 15, 15, 15);
|
||||||
layout_scrollarea_->addWidget(label_top_);
|
layout_scrollarea_->addWidget(textedit_top_);
|
||||||
layout_scrollarea_->addWidget(widget_album_);
|
layout_scrollarea_->addWidget(widget_album_);
|
||||||
layout_scrollarea_->addWidget(widget_stacked_);
|
layout_scrollarea_->addWidget(widget_stacked_);
|
||||||
layout_scrollarea_->addSpacerItem(spacer_bottom_);
|
layout_scrollarea_->addSpacerItem(spacer_bottom_);
|
||||||
@ -176,7 +174,7 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
|
|
||||||
// Stopped
|
// Stopped
|
||||||
|
|
||||||
layout_stop_->setContentsMargins(5, 0, 40, 0);
|
layout_stop_->setContentsMargins(0, 0, 0, 0);
|
||||||
layout_stop_->addWidget(label_stop_summary_);
|
layout_stop_->addWidget(label_stop_summary_);
|
||||||
layout_stop_->addSpacerItem(spacer_stop_bottom_);
|
layout_stop_->addSpacerItem(spacer_stop_bottom_);
|
||||||
|
|
||||||
@ -244,14 +242,15 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
|
|
||||||
widget_play_data_->setLayout(layout_play_data_);
|
widget_play_data_->setLayout(layout_play_data_);
|
||||||
|
|
||||||
label_play_lyrics_->setWordWrap(true);
|
textedit_play_lyrics_->setReadOnly(true);
|
||||||
label_play_lyrics_->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
textedit_play_lyrics_->setFrameShape(QFrame::NoFrame);
|
||||||
|
textedit_play_lyrics_->hide();
|
||||||
|
|
||||||
widget_albums_->hide();
|
widget_albums_->hide();
|
||||||
label_play_albums_->setWordWrap(true);
|
label_play_albums_->setWordWrap(true);
|
||||||
label_play_albums_->hide();
|
label_play_albums_->hide();
|
||||||
|
|
||||||
layout_play_->setContentsMargins(5, 0, 40, 0);
|
layout_play_->setContentsMargins(0, 0, 0, 0);
|
||||||
layout_play_->addWidget(widget_play_output_);
|
layout_play_->addWidget(widget_play_output_);
|
||||||
layout_play_->addSpacerItem(spacer_play_output_);
|
layout_play_->addSpacerItem(spacer_play_output_);
|
||||||
layout_play_->addWidget(widget_play_data_);
|
layout_play_->addWidget(widget_play_data_);
|
||||||
@ -259,7 +258,7 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
layout_play_->addWidget(label_play_albums_);
|
layout_play_->addWidget(label_play_albums_);
|
||||||
layout_play_->addWidget(widget_albums_);
|
layout_play_->addWidget(widget_albums_);
|
||||||
layout_play_->addSpacerItem(spacer_play_albums_);
|
layout_play_->addSpacerItem(spacer_play_albums_);
|
||||||
layout_play_->addWidget(label_play_lyrics_);
|
layout_play_->addWidget(textedit_play_lyrics_);
|
||||||
layout_play_->addSpacerItem(spacer_play_bottom_);
|
layout_play_->addSpacerItem(spacer_play_bottom_);
|
||||||
|
|
||||||
labels_play_ << label_engine_title_
|
labels_play_ << label_engine_title_
|
||||||
@ -269,8 +268,7 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
<< label_samplerate_title_
|
<< label_samplerate_title_
|
||||||
<< label_bitdepth_title_
|
<< label_bitdepth_title_
|
||||||
<< label_bitrate_title_
|
<< label_bitrate_title_
|
||||||
<< label_play_albums_
|
<< label_play_albums_;
|
||||||
<< label_play_lyrics_;
|
|
||||||
|
|
||||||
labels_play_data_ << label_engine_icon_
|
labels_play_data_ << label_engine_icon_
|
||||||
<< label_engine_
|
<< label_engine_
|
||||||
@ -281,24 +279,16 @@ ContextView::ContextView(QWidget *parent)
|
|||||||
<< label_samplerate_
|
<< label_samplerate_
|
||||||
<< label_bitdepth_
|
<< label_bitdepth_
|
||||||
<< label_bitrate_
|
<< label_bitrate_
|
||||||
<< label_play_albums_
|
<< label_play_albums_;
|
||||||
<< label_play_lyrics_;
|
|
||||||
|
|
||||||
labels_play_all_ = labels_play_ << labels_play_data_;
|
labels_play_all_ = labels_play_ << labels_play_data_;
|
||||||
|
|
||||||
|
textedit_play_ << textedit_top_ << textedit_play_lyrics_;
|
||||||
|
|
||||||
QObject::connect(widget_album_, &ContextAlbum::FadeStopFinished, this, &ContextView::FadeStopFinished);
|
QObject::connect(widget_album_, &ContextAlbum::FadeStopFinished, this, &ContextView::FadeStopFinished);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContextView::resizeEvent(QResizeEvent*) {
|
|
||||||
|
|
||||||
if (width() != prev_width_) {
|
|
||||||
widget_album_->setFixedSize(width() - 15, width());
|
|
||||||
prev_width_ = width();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void ContextView::Init(Application *app, CollectionView *collectionview, AlbumCoverChoiceController *album_cover_choice_controller) {
|
void ContextView::Init(Application *app, CollectionView *collectionview, AlbumCoverChoiceController *album_cover_choice_controller) {
|
||||||
|
|
||||||
app_ = app;
|
app_ = app;
|
||||||
@ -344,13 +334,13 @@ void ContextView::AddActions() {
|
|||||||
action_search_lyrics_->setCheckable(true);
|
action_search_lyrics_->setCheckable(true);
|
||||||
action_search_lyrics_->setChecked(true);
|
action_search_lyrics_->setChecked(true);
|
||||||
|
|
||||||
menu_->addAction(action_show_album_);
|
menu_options_->addAction(action_show_album_);
|
||||||
menu_->addAction(action_show_data_);
|
menu_options_->addAction(action_show_data_);
|
||||||
menu_->addAction(action_show_output_);
|
menu_options_->addAction(action_show_output_);
|
||||||
menu_->addAction(action_show_albums_);
|
menu_options_->addAction(action_show_albums_);
|
||||||
menu_->addAction(action_show_lyrics_);
|
menu_options_->addAction(action_show_lyrics_);
|
||||||
menu_->addAction(action_search_lyrics_);
|
menu_options_->addAction(action_search_lyrics_);
|
||||||
menu_->addSeparator();
|
menu_options_->addSeparator();
|
||||||
|
|
||||||
ReloadSettings();
|
ReloadSettings();
|
||||||
|
|
||||||
@ -456,9 +446,8 @@ void ContextView::NoSong() {
|
|||||||
widget_album_->show();
|
widget_album_->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
label_top_->setStyleSheet("font: 20pt 'Open Sans', 'FreeSans', 'FreeSerif', 'Liberation Serif'; font-weight: Regular;");
|
textedit_top_->setStyleSheet("font: 20pt 'Open Sans', 'FreeSans', 'FreeSerif', 'Liberation Serif'; font-weight: Regular;");
|
||||||
|
textedit_top_->setText(tr("No song playing"));
|
||||||
label_top_->setText(tr("No song playing"));
|
|
||||||
|
|
||||||
QString html;
|
QString html;
|
||||||
if (collectionview_->TotalSongs() == 1) html += tr("%1 song").arg(collectionview_->TotalSongs());
|
if (collectionview_->TotalSongs() == 1) html += tr("%1 song").arg(collectionview_->TotalSongs());
|
||||||
@ -480,8 +469,12 @@ void ContextView::NoSong() {
|
|||||||
|
|
||||||
void ContextView::UpdateFonts() {
|
void ContextView::UpdateFonts() {
|
||||||
|
|
||||||
|
QString font_style = QString("font: %2pt \"%1\"; font-weight: regular;").arg(font_normal_).arg(font_size_normal_);
|
||||||
for (QLabel *l : labels_play_all_) {
|
for (QLabel *l : labels_play_all_) {
|
||||||
l->setStyleSheet(QString("font: %2pt \"%1\"; font-weight: regular;").arg(font_normal_).arg(font_size_normal_));
|
l->setStyleSheet(font_style);
|
||||||
|
}
|
||||||
|
for (QTextEdit *e : textedit_play_) {
|
||||||
|
e->setStyleSheet(font_style);
|
||||||
}
|
}
|
||||||
label_play_albums_->setStyleSheet(QString("background-color: #3DADE8; color: rgb(255, 255, 255); font: %1pt \"%2\"; font-weight: regular;").arg(font_size_normal_).arg(font_normal_));
|
label_play_albums_->setStyleSheet(QString("background-color: #3DADE8; color: rgb(255, 255, 255); font: %1pt \"%2\"; font-weight: regular;").arg(font_size_normal_).arg(font_normal_));
|
||||||
|
|
||||||
@ -489,8 +482,8 @@ void ContextView::UpdateFonts() {
|
|||||||
|
|
||||||
void ContextView::SetSong() {
|
void ContextView::SetSong() {
|
||||||
|
|
||||||
label_top_->setStyleSheet(QString("font: %2pt \"%1\"; font-weight: regular;").arg(font_headline_).arg(font_size_headline_));
|
textedit_top_->setStyleSheet(QString("font: %2pt \"%1\"; font-weight: regular;").arg(font_headline_).arg(font_size_headline_));
|
||||||
label_top_->setText(QString("<b>%1</b><br />%2").arg(Utilities::ReplaceMessage(title_fmt_, song_playing_, "<br />", true), Utilities::ReplaceMessage(summary_fmt_, song_playing_, "<br />", true)));
|
textedit_top_->setText(QString("<b>%1</b><br />%2").arg(Utilities::ReplaceMessage(title_fmt_, song_playing_, "<br />", true), Utilities::ReplaceMessage(summary_fmt_, song_playing_, "<br />", true)));
|
||||||
|
|
||||||
label_stop_summary_->clear();
|
label_stop_summary_->clear();
|
||||||
|
|
||||||
@ -632,13 +625,13 @@ void ContextView::SetSong() {
|
|||||||
spacer_play_albums_->changeSize(0, 0, QSizePolicy::Fixed);
|
spacer_play_albums_->changeSize(0, 0, QSizePolicy::Fixed);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (action_show_lyrics_->isChecked()) {
|
if (action_show_lyrics_->isChecked() && !lyrics_.isEmpty()) {
|
||||||
label_play_lyrics_->show();
|
textedit_play_lyrics_->setText(lyrics_);
|
||||||
label_play_lyrics_->setText(lyrics_);
|
textedit_play_lyrics_->show();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
label_play_lyrics_->hide();
|
textedit_play_lyrics_->clear();
|
||||||
label_play_lyrics_->clear();
|
textedit_play_lyrics_->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
widget_stacked_->setCurrentWidget(widget_play_);
|
widget_stacked_->setCurrentWidget(widget_play_);
|
||||||
@ -647,7 +640,7 @@ void ContextView::SetSong() {
|
|||||||
|
|
||||||
void ContextView::UpdateSong(const Song &song) {
|
void ContextView::UpdateSong(const Song &song) {
|
||||||
|
|
||||||
label_top_->setText(QString("<b>%1</b><br />%2").arg(Utilities::ReplaceMessage(title_fmt_, song, "<br />", true), Utilities::ReplaceMessage(summary_fmt_, song, "<br />", true)));
|
textedit_top_->setText(QString("<b>%1</b><br />%2").arg(Utilities::ReplaceMessage(title_fmt_, song, "<br />", true), Utilities::ReplaceMessage(summary_fmt_, song, "<br />", true)));
|
||||||
|
|
||||||
if (action_show_data_->isChecked()) {
|
if (action_show_data_->isChecked()) {
|
||||||
if (song.filetype() != song_playing_.filetype()) label_filetype_->setText(song.TextForFiletype());
|
if (song.filetype() != song_playing_.filetype()) label_filetype_->setText(song.TextForFiletype());
|
||||||
@ -716,17 +709,30 @@ void ContextView::ResetSong() {
|
|||||||
void ContextView::UpdateLyrics(const quint64 id, const QString &provider, const QString &lyrics) {
|
void ContextView::UpdateLyrics(const quint64 id, const QString &provider, const QString &lyrics) {
|
||||||
|
|
||||||
if (static_cast<qint64>(id) != lyrics_id_) return;
|
if (static_cast<qint64>(id) != lyrics_id_) return;
|
||||||
|
|
||||||
lyrics_ = lyrics + "\n\n(Lyrics from " + provider + ")\n";
|
lyrics_ = lyrics + "\n\n(Lyrics from " + provider + ")\n";
|
||||||
lyrics_id_ = -1;
|
lyrics_id_ = -1;
|
||||||
if (action_show_lyrics_->isChecked()) {
|
|
||||||
label_play_lyrics_->setText(lyrics_);
|
if (action_show_lyrics_->isChecked() && !lyrics_.isEmpty()) {
|
||||||
|
textedit_play_lyrics_->setText(lyrics_);
|
||||||
|
textedit_play_lyrics_->show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
textedit_play_lyrics_->clear();
|
||||||
|
textedit_play_lyrics_->hide();
|
||||||
}
|
}
|
||||||
else label_play_lyrics_->clear();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContextView::contextMenuEvent(QContextMenuEvent *e) {
|
void ContextView::contextMenuEvent(QContextMenuEvent *e) {
|
||||||
if (menu_) menu_->popup(mapToGlobal(e->pos()));
|
|
||||||
|
if (menu_options_ && !song_playing_.is_valid()) {
|
||||||
|
menu_options_->popup(mapToGlobal(e->pos()));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
QWidget::contextMenuEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContextView::dragEnterEvent(QDragEnterEvent *e) {
|
void ContextView::dragEnterEvent(QDragEnterEvent *e) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Strawberry Music Player
|
* Strawberry Music Player
|
||||||
* Copyright 2013-2021, Jonas Kvinge <jonas@jkvinge.net>
|
* Copyright 2013-2022, Jonas Kvinge <jonas@jkvinge.net>
|
||||||
*
|
*
|
||||||
* Strawberry is free software: you can redistribute it and/or modify
|
* Strawberry is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -45,6 +45,7 @@ class QContextMenuEvent;
|
|||||||
class QDragEnterEvent;
|
class QDragEnterEvent;
|
||||||
class QDropEvent;
|
class QDropEvent;
|
||||||
|
|
||||||
|
class ResizableTextEdit;
|
||||||
class Application;
|
class Application;
|
||||||
class CollectionView;
|
class CollectionView;
|
||||||
class AlbumCoverChoiceController;
|
class AlbumCoverChoiceController;
|
||||||
@ -65,7 +66,6 @@ class ContextView : public QWidget {
|
|||||||
Song song_playing() const { return song_playing_; }
|
Song song_playing() const { return song_playing_; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void resizeEvent(QResizeEvent*) override;
|
|
||||||
void contextMenuEvent(QContextMenuEvent*) override;
|
void contextMenuEvent(QContextMenuEvent*) override;
|
||||||
void dragEnterEvent(QDragEnterEvent*) override;
|
void dragEnterEvent(QDragEnterEvent*) override;
|
||||||
void dropEvent(QDropEvent*) override;
|
void dropEvent(QDropEvent*) override;
|
||||||
@ -109,7 +109,7 @@ class ContextView : public QWidget {
|
|||||||
AlbumCoverChoiceController *album_cover_choice_controller_;
|
AlbumCoverChoiceController *album_cover_choice_controller_;
|
||||||
LyricsFetcher *lyrics_fetcher_;
|
LyricsFetcher *lyrics_fetcher_;
|
||||||
|
|
||||||
QMenu *menu_;
|
QMenu *menu_options_;
|
||||||
QAction *action_show_album_;
|
QAction *action_show_album_;
|
||||||
QAction *action_show_data_;
|
QAction *action_show_data_;
|
||||||
QAction *action_show_output_;
|
QAction *action_show_output_;
|
||||||
@ -121,7 +121,7 @@ class ContextView : public QWidget {
|
|||||||
QWidget *widget_scrollarea_;
|
QWidget *widget_scrollarea_;
|
||||||
QVBoxLayout *layout_scrollarea_;
|
QVBoxLayout *layout_scrollarea_;
|
||||||
QScrollArea *scrollarea_;
|
QScrollArea *scrollarea_;
|
||||||
QLabel *label_top_;
|
ResizableTextEdit *textedit_top_;
|
||||||
ContextAlbum *widget_album_;
|
ContextAlbum *widget_album_;
|
||||||
QStackedWidget *widget_stacked_;
|
QStackedWidget *widget_stacked_;
|
||||||
QWidget *widget_stop_;
|
QWidget *widget_stop_;
|
||||||
@ -135,10 +135,9 @@ class ContextView : public QWidget {
|
|||||||
QGridLayout *layout_play_data_;
|
QGridLayout *layout_play_data_;
|
||||||
QGridLayout *layout_play_output_;
|
QGridLayout *layout_play_output_;
|
||||||
QLabel *label_play_albums_;
|
QLabel *label_play_albums_;
|
||||||
QLabel *label_play_lyrics_;
|
ResizableTextEdit *textedit_play_lyrics_;
|
||||||
ContextAlbumsView *widget_albums_;
|
ContextAlbumsView *widget_albums_;
|
||||||
|
|
||||||
//QSpacerItem *spacer_play_album_;
|
|
||||||
QSpacerItem *spacer_play_output_;
|
QSpacerItem *spacer_play_output_;
|
||||||
QSpacerItem *spacer_play_data_;
|
QSpacerItem *spacer_play_data_;
|
||||||
QSpacerItem *spacer_play_albums_;
|
QSpacerItem *spacer_play_albums_;
|
||||||
@ -181,6 +180,7 @@ class ContextView : public QWidget {
|
|||||||
qreal font_size_normal_;
|
qreal font_size_normal_;
|
||||||
|
|
||||||
QList<QLabel*> labels_play_;
|
QList<QLabel*> labels_play_;
|
||||||
|
QList<ResizableTextEdit*> textedit_play_;
|
||||||
QList<QLabel*> labels_play_data_;
|
QList<QLabel*> labels_play_data_;
|
||||||
QList<QLabel*> labels_play_all_;
|
QList<QLabel*> labels_play_all_;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user