Example #1
0
void MediaPlayer2Player::stateUpdated() const
{
    QVariantMap properties;
    properties["PlaybackStatus"] = PlaybackStatus();
    properties["CanPause"] = CanPause();
    Mpris2::signalPropertiesChange(this, properties);
}
Example #2
0
void Mpris::updateStatus()
{
    QVariantMap map;

    if (MPDStatus::self()->repeat()!=status.repeat) {
        map.insert("LoopStatus", LoopStatus());
    }
    if (MPDStatus::self()->random()!=status.random) {
        map.insert("Shuffle", Shuffle());
    }
    if (MPDStatus::self()->volume()!=status.volume) {
        map.insert("Volume", Volume());
    }
    if (MPDStatus::self()->playlistLength()!=status.playlistLength) {
        map.insert("CanGoNext", CanGoNext());
        map.insert("CanGoPrevious", CanGoPrevious());
    }
    if (MPDStatus::self()->state()!=status.state) {
        map.insert("PlaybackStatus", PlaybackStatus());
        map.insert("CanPlay", CanPlay());
        map.insert("CanPause", CanPause());
        map.insert("CanSeek", CanSeek());
    }
    if (MPDStatus::self()->timeElapsed()!=status.timeElapsed) {
        map.insert("Position", convertTime(MPDStatus::self()->timeElapsed()));
    }
    if (!map.isEmpty() || MPDStatus::self()->songId()!=status.songId) {
        if (!map.contains("Position")) {
            map.insert("Position", convertTime(MPDStatus::self()->timeElapsed()));
        }
        map.insert("Metadata", Metadata());
        signalUpdate(map);
    }
    status=MPDStatus::self()->getValues();
}
Example #3
0
/*!
 * Enables the buttons that are valid based on the current selection in the
 * list control. For example, if only done jobs are selected, it would leave
 * the "Pause" button greyed out, since pausing makes no sense for done jobs.
 */
void GamessQFrame::RefreshButtons()
{
	int *status = GetSelectedStatus();
	// everything should be grey if we can't connect
	mConnected = mQueueManager.IsConnected();

	// you can always add, refresh and clear
	jobsToolbar->EnableTool(wxID_ADD, mConnected);
	jobsMenu->Enable(wxID_ADD, mConnected);
	jobsToolbar->EnableTool(ID_REFRESH, mConnected);
	jobsMenu->Enable(ID_REFRESH, mConnected);
	jobsToolbar->EnableTool(wxID_CLEAR, mConnected);
	jobsMenu->Enable(wxID_CLEAR, mConnected);

	jobsToolbar->EnableTool(wxID_REMOVE, mConnected && CanRemove());
	jobsMenu->Enable(wxID_REMOVE, mConnected && CanRemove());

	jobsToolbar->EnableTool(ID_PAUSE, mConnected && mActive &&
			CanPause(status));
	jobsMenu->Enable(ID_PAUSE, mConnected && mActive && CanPause(status));

	jobsToolbar->EnableTool(ID_RESUME, mConnected && mActive &&
			CanResume(status));
	jobsMenu->Enable(ID_RESUME, mConnected && mActive && CanResume(status));

	jobsToolbar->EnableTool(wxID_CANCEL, mConnected && mActive &&
			CanCancel(status));
	jobsMenu->Enable(wxID_CANCEL, mConnected && mActive && CanCancel(status));

	jobsMenu->Enable(ID_VIEWLOGS, mConnected && CanViewLogs(status));

	jobsMenu->Enable(ID_SAVEFOLDER, mConnected && CanSaveFolder(status));

	jobsMenu->Enable(ID_SAVEAS, mConnected && CanSaveAs(status));

	jobsMenu->Enable(ID_MACMOLPLT, mConnected && CanSaveFolder(status));

	delete status;
}
Example #4
0
/*!
 * This function is called when the user clicks "Pause". It looks through the
 * selected items and tells the server to pause whichever ones can be paused.
 *
 * \sa CanPause(job *)
 */
void GamessQFrame::OnPauseClick( wxCommandEvent& event )
{
	GreyButtons();
	int index = jobListCtrl->GetNextItem(-1, wxLIST_NEXT_ALL,
			wxLIST_STATE_SELECTED);
	int status;
	while (index != -1) {
		Job *job = mJobList.Item(index)->GetData();
		if (CanPause(job)) {
			mQueueManager.Pause(job->GetId());
		}
		index = jobListCtrl->GetNextItem(index, wxLIST_NEXT_ALL,
				wxLIST_STATE_SELECTED);
	}
	RefreshList();
	RefreshButtons();
}