_fscreen_button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
_fscreen_button->hide();
- ui->progressLayout->removeItem(ui->seekSpacer);
_tools_widget = new ToolsWidget(this);
ui->toolsLayout->insertWidget(0, _tools_widget);
_tools_widget->hide();
ui->playlistView->setItemDelegateForColumn(0, _track_renderer);
_tag_resolver = new TagResolver(this);
+ _coverfinder = new CoverFinder(this);
+
+ _cover = new ClickableLabel(this);
+ _cover->setMinimumSize(300, 300);
+ _cover->setMaximumSize(300, 300);
+ _cover->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ _cover->setScaledContents(true);
+ _cover->setPixmap(QPixmap::fromImage(_coverfinder->defaultCover()));
connect(ui->libraryButton, SIGNAL(clicked()), this, SLOT(_library()));
connect(ui->viewButton, SIGNAL(clicked()), this, SLOT(_toggle_view()));
connect(_tools_widget, SIGNAL(toggleFullscreen(bool)), _fscreen_button, SLOT(setChecked(bool)));
connect(_fscreen_button, SIGNAL(clicked(bool)), this, SIGNAL(fullscreen(bool)));
connect(_fscreen_button, SIGNAL(clicked(bool)), _tools_widget, SLOT(setFullscreenState(bool)));
+ connect(_coverfinder, SIGNAL(found(QImage)), this, SLOT(_display_cover(QImage)));
+ connect(ui->caddButton, SIGNAL(clicked()), this, SLOT(_c_add_to_playlists()));
+ connect(ui->cdeleteButton, SIGNAL(clicked()), this, SLOT(_c_delete_track()));
+ connect(ui->cfavButton, SIGNAL(clicked()), this, SLOT(_c_add_to_favorites()));
+ connect(ui->ctagButton, SIGNAL(clicked()), this, SLOT(_c_edit_tags()));
+ connect(_cover, SIGNAL(clicked()), this, SLOT(_toggle_extra_buttons()));
ui->viewButton->setIcon(QIcon(":/icons/"+_icons_theme+"/playback.png"));
_top_gradient = ui->topWidget->styleSheet();
_bottom_gradient = ui->bottomWidget->styleSheet();
ui->countdownWidget->hide();
+ // constructing cover layout
+ ui->coverLayout->removeItem(ui->clverticalLayout_0);
+ ui->coverLayout->removeItem(ui->clverticalLayout_1);
+ ui->coverLayout->removeItem(ui->cbverticalSpacer);
+ ui->coverLayout->removeItem(ui->ctverticalSpacer);
+ ((QGridLayout *)ui->coverLayout)->addItem(ui->ctverticalSpacer, 0, 1);
+ ((QGridLayout *)ui->coverLayout)->addItem(ui->cbverticalSpacer, 2, 1);
+ ((QGridLayout *)ui->coverLayout)->addItem(ui->clverticalLayout_0, 1, 0);
+ ((QGridLayout *)ui->coverLayout)->addItem(ui->clverticalLayout_1, 1, 2);
+ ((QGridLayout *)ui->coverLayout)->addWidget(_cover, 1, 1);
+ //
+
// dbus
_dbusadaptor = new DBusAdaptop(_player);
QDBusConnection connection = QDBusConnection::sessionBus();
bool ret = connection.registerService(_SERVICE_NAME_);
ret = connection.registerObject("/", _player);
+ _show_extra_buttons = false;
}
PlayerForm::~PlayerForm()
ui->seekSlider->setMinimum(0);
ui->seekSlider->setMaximum(track.metadata().length());
_tick(0, track.metadata().length());
+ _coverfinder->find(QFileInfo(track.source()).absolutePath());
}
void PlayerForm::_tick(int done, int all) {
}
void PlayerForm::landscapeMode() {
- ui->progressLayout->removeItem(ui->seekSpacer);
- ui->progressLayout->insertWidget(1, ui->seekSlider);
- ui->progressWidget->setVisible(false);
-
landscape = true;
+ ui->widget->layout()->removeItem(ui->coverLayout);
+ ui->widget->layout()->removeItem(ui->controlLayout);
+ ui->controlLayout->removeItem(ui->countHLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_0);
+ ui->controlLayout->removeItem(ui->titleLayout);
+ ui->controlLayout->removeItem(ui->coverLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_1);
+ ui->controlLayout->removeItem(ui->seekLayout);
+ ui->controlLayout->removeItem(ui->progressLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_2);
+ ui->controlLayout->removeItem(ui->artistAlbumLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_3);
+ ui->controlLayout->addItem(ui->countHLayout);
+ ui->controlLayout->addItem(ui->cverticalSpacer_0);
+ ui->controlLayout->addItem(ui->titleLayout);
+ ui->controlLayout->addItem(ui->cverticalSpacer_1);
+ ui->controlLayout->addItem(ui->progressLayout);
+ ui->controlLayout->addItem(ui->seekLayout);
+ ui->controlLayout->addItem(ui->cverticalSpacer_2);
+ ui->controlLayout->addItem(ui->artistAlbumLayout);
+ ui->controlLayout->addItem(ui->cverticalSpacer_3);
+
+ ((QGridLayout *)ui->widget->layout())->addItem(ui->coverLayout, 0, 0);
+ ((QGridLayout *)ui->widget->layout())->addItem(ui->controlLayout, 0, 1);
+
ui->topWidget->hide();
ui->bottomWidget->hide();
}
void PlayerForm::portraitMode() {
- ui->progressLayout->insertSpacerItem(1, ui->seekSpacer);
- ui->progressWidget->layout()->addWidget(ui->seekSlider);
- ui->progressWidget->setVisible(true);
-
ui->topWidget->show();
ui->bottomWidget->show();
landscape = false;
+ ui->widget->layout()->removeItem(ui->coverLayout);
+ ui->widget->layout()->removeItem(ui->controlLayout);
+
+ ui->controlLayout->removeItem(ui->countHLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_0);
+ ui->controlLayout->removeItem(ui->titleLayout);
+ ui->controlLayout->removeItem(ui->coverLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_1);
+ ui->controlLayout->removeItem(ui->seekLayout);
+ ui->controlLayout->removeItem(ui->progressLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_2);
+ ui->controlLayout->removeItem(ui->artistAlbumLayout);
+ ui->controlLayout->removeItem(ui->cverticalSpacer_3);
+
+ ui->controlLayout->addItem(ui->countHLayout);
+ ui->controlLayout->addItem(ui->progressLayout);
+ ui->controlLayout->addItem(ui->seekLayout);
+ ui->controlLayout->addItem(ui->cverticalSpacer_0);
+ ui->controlLayout->addItem(ui->titleLayout);
+ ui->controlLayout->addItem(ui->coverLayout);
+ ui->controlLayout->addItem(ui->artistAlbumLayout);
+ ui->controlLayout->addItem(ui->cverticalSpacer_1);
+ ui->controlLayout->invalidate();
+
+ ui->widget->layout()->addItem(ui->controlLayout);
+
ui->topWidget->layout()->removeItem(ui->thorizontalSpacer_0);
ui->topWidget->layout()->removeItem(ui->thorizontalSpacer_1);
ui->topWidget->layout()->removeItem(ui->thorizontalSpacer_2);
_icons_theme = config.getValue("ui/iconstheme").toString();
_tools_widget->updateIcons();
_track_renderer->updateIcons();
+ if (_show_extra_buttons) {
+ ui->caddButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ ui->cdeleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png"));
+ ui->cfavButton->setIcon(QIcon(":/icons/"+_icons_theme+"/fav.png"));
+ ui->ctagButton->setIcon(QIcon(":/icons/"+_icons_theme+"/tags.png"));
+ } else {
+ ui->caddButton->setIcon(QIcon());
+ ui->cdeleteButton->setIcon(QIcon());
+ ui->cfavButton->setIcon(QIcon());
+ ui->ctagButton->setIcon(QIcon());
+ ui->caddButton->setEnabled(false);
+ ui->cdeleteButton->setEnabled(false);
+ ui->cfavButton->setEnabled(false);
+ ui->ctagButton->setEnabled(false);
+ }
ui->libraryButton->setIcon(QIcon(":/icons/"+_icons_theme+"/library.png"));
if (_tools_widget->isVisible()) {
ui->moreButton->setIcon(QIcon(landscape ? ":/icons/" + _icons_theme + "/unmore.png" : ":/icons/" + _icons_theme + "/more.png"));
ui->stopButton->setIcon(QIcon(":/icons/"+_icons_theme+"/stop.png"));
ui->prevButton->setIcon(QIcon(":/icons/"+_icons_theme+"/prev.png"));
ui->dirButton->setIcon(QIcon(":/icons/"+_icons_theme+"/directory.png"));
+
if (_player->state() == PLAYER_PLAYING) {
ui->playpauseButton->setIcon(QIcon(":/icons/"+_icons_theme+"/pause.png"));
} else {
void PlayerForm::hideCountdown() {
ui->countdownWidget->hide();
}
+
+void PlayerForm::_display_cover(QImage image) {
+ _cover->setPixmap(QPixmap::fromImage(image));
+}
+
+void PlayerForm::_c_add_to_favorites() {
+ int id = _track_renderer->activeRow();
+ if (id >= 0 && id < _current_playlist.tracks().count()) {
+ ui->playlistView->selectRow(id);
+ _add_to_favorites();
+ }
+}
+
+void PlayerForm::_c_delete_track() {
+ int id = _track_renderer->activeRow();
+ if (id >= 0 && id < _current_playlist.tracks().count()) {
+ ui->playlistView->selectRow(id);
+ _delete_track();
+ }
+}
+
+void PlayerForm::_c_add_to_playlists() {
+ int id = _track_renderer->activeRow();
+ if (id >= 0 && id < _current_playlist.tracks().count()) {
+ ui->playlistView->selectRow(id);
+ _add_to_playlists();
+ }
+}
+
+void PlayerForm::_c_edit_tags() {
+ int id = _track_renderer->activeRow();
+ if (id >= 0 && id < _current_playlist.tracks().count()) {
+ ui->playlistView->selectRow(id);
+ _edit_tags();
+ }
+}
+
+void PlayerForm::_toggle_extra_buttons() {
+ _show_extra_buttons = !_show_extra_buttons;
+ if (_show_extra_buttons) {
+ ui->caddButton->setEnabled(true);
+ ui->cdeleteButton->setEnabled(true);
+ ui->cfavButton->setEnabled(true);
+ ui->ctagButton->setEnabled(true);
+ ui->caddButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ ui->cdeleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png"));
+ ui->cfavButton->setIcon(QIcon(":/icons/"+_icons_theme+"/fav.png"));
+ ui->ctagButton->setIcon(QIcon(":/icons/"+_icons_theme+"/tags.png"));
+ } else {
+ ui->caddButton->setEnabled(false);
+ ui->cdeleteButton->setEnabled(false);
+ ui->cfavButton->setEnabled(false);
+ ui->ctagButton->setEnabled(false);
+ ui->caddButton->setIcon(QIcon());
+ ui->cdeleteButton->setIcon(QIcon());
+ ui->cfavButton->setIcon(QIcon());
+ ui->ctagButton->setIcon(QIcon());
+ }
+}