void PlaylistWidget::SetPlayModeButton () { auto playButton = new QToolButton; playButton->setIcon (Core::Instance ().GetProxy ()-> GetIconThemeManager ()->GetIcon ("view-media-playlist")); playButton->setPopupMode (QToolButton::InstantPopup); QMenu *playMode = new QMenu (tr ("Play mode")); playButton->setMenu (playMode); const std::vector<std::pair<Player::PlayMode, QString>> modes = { { Player::PlayMode::Sequential, tr ("Sequential") }, { Player::PlayMode::Shuffle, tr ("Shuffle") }, { Player::PlayMode::ShuffleAlbums, tr ("Shuffle albums") }, { Player::PlayMode::ShuffleArtists, tr ("Shuffle artists") }, { Player::PlayMode::RepeatTrack, tr ("Repeat track") }, { Player::PlayMode::RepeatAlbum, tr ("Repeat album") }, { Player::PlayMode::RepeatWhole, tr ("Repeat whole") } }; PlayModesGroup_ = new QActionGroup (this); bool hadChecked = false; for (const auto& pair : modes) { QAction *action = new QAction (pair.second, this); action->setProperty ("PlayMode", static_cast<int> (pair.first)); action->setCheckable (true); action->setChecked (hadChecked ? false : hadChecked = true); action->setActionGroup (PlayModesGroup_); playMode->addAction (action); connect (action, SIGNAL (triggered ()), this, SLOT (handleChangePlayMode ())); } connect (Player_, SIGNAL (playModeChanged (Player::PlayMode)), this, SLOT (handlePlayModeChanged (Player::PlayMode))); const int resumeMode = XmlSettingsManager::Instance () .Property ("PlayMode", static_cast<int> (Player::PlayMode::Sequential)).toInt (); Player_->SetPlayMode (static_cast<Player::PlayMode> (resumeMode)); PlaylistToolbar_->addWidget (playButton); }
PlayerAdaptor::PlayerAdaptor (FDOPropsAdaptor *fdo, Player *player) : QDBusAbstractAdaptor (player) , Props_ (fdo) , Player_ (player) { setAutoRelaySignals (true); connect (Player_, SIGNAL (songChanged (MediaInfo)), this, SLOT (handleSongChanged ())); connect (Player_, SIGNAL (playModeChanged (Player::PlayMode)), this, SLOT (handlePlayModeChanged ())); connect (Player_->GetSourceObject (), SIGNAL (stateChanged (Phonon::State, Phonon::State)), this, SLOT (handleStateChanged ())); connect (Player_->GetAudioOutput (), SIGNAL (volumeChanged (qreal)), this, SLOT (handleVolumeChanged ())); }