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);
	}
Exemple #2
0
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 ()));
}