Skip to content

Commit

Permalink
Add Now Playing widget option: No Song Details
Browse files Browse the repository at this point in the history
  • Loading branch information
FletcherD committed Jan 26, 2015
1 parent 9dbd582 commit 5fc4be8
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
30 changes: 29 additions & 1 deletion src/widgets/nowplayingwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ NowPlayingWidget::NowPlayingWidget(QWidget* parent)
CreateModeAction(LargeSongDetailsBelow,
tr("Large album cover (details below)"), mode_group,
mode_mapper);
CreateModeAction(LargeNoSongDetails, tr("Large album cover (no details)"), mode_group,
mode_mapper);

menu_->addActions(mode_group->actions());

Expand Down Expand Up @@ -210,6 +212,7 @@ void NowPlayingWidget::UpdateHeight() {
break;

case LargeSongDetails:
case LargeNoSongDetails:
if (fit_width_) {
cover_loader_options_.desired_height_ = width();
} else {
Expand Down Expand Up @@ -251,6 +254,7 @@ void NowPlayingWidget::UpdateDetailsText() {

switch (mode_) {
case SmallSongDetails:
case LargeNoSongDetails:
details_->setTextWidth(-1);
details_->setDefaultStyleSheet("");
html += "<p>";
Expand Down Expand Up @@ -436,6 +440,30 @@ void NowPlayingWidget::DrawContents(QPainter* p) {
break;
}

case LargeNoSongDetails: {
const int total_size =
fit_width_ ? width() : qMin(kMaxCoverSize, width());
const int x_offset =
(width() - cover_loader_options_.desired_height_) / 2;

// Draw the black background
p->fillRect(QRect(0, kTopBorder, width(), height() - kTopBorder),
Qt::black);

// Draw the cover
if (hypnotoad_) {
p->drawPixmap(x_offset, kTopBorder, total_size, total_size,
hypnotoad_->currentPixmap());
} else {
p->drawPixmap(x_offset, kTopBorder, total_size, total_size, cover_);
if (downloading_covers_) {
p->drawPixmap(x_offset + 45, 35, 16, 16,
spinner_animation_->currentPixmap());
}
}
break;
}

case LargeSongDetailsBelow:
// Work out how high the text is going to be
const int text_height = details_->size().height();
Expand Down Expand Up @@ -500,7 +528,7 @@ void NowPlayingWidget::SetMode(int mode) {

void NowPlayingWidget::resizeEvent(QResizeEvent* e) {
if (visible_ && e->oldSize() != e->size()) {
if (mode_ == LargeSongDetails || mode_ == LargeSongDetailsBelow) {
if (mode_ == LargeSongDetails || mode_ == LargeNoSongDetails || mode_ == LargeSongDetailsBelow) {
UpdateHeight();
UpdateDetailsText();
}
Expand Down
1 change: 1 addition & 0 deletions src/widgets/nowplayingwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ class NowPlayingWidget : public QWidget {
SmallSongDetails = 0,
LargeSongDetails = 1,
LargeSongDetailsBelow = 2,
LargeNoSongDetails = 3,
};

void SetApplication(Application* app);
Expand Down

0 comments on commit 5fc4be8

Please sign in to comment.