Mpris2DBusHandler::Mpris2DBusHandler() : QObject( kapp ) { new Mpris2RootAdaptor( this ); new Mpris2PlayerAdaptor( this ); // amarok extensions: new Mpris2AmarokAppAdaptor( this ); new Mpris2AmarokPlayerAdaptor( this ); QDBusConnection::sessionBus().registerObject( MPRIS2_OBJECT_PATH, this ); connect( The::playlistActions(), SIGNAL( navigatorChanged() ), SLOT( updateTrackProgressionProperties() ) ); // changing the navigator may also affect whether there is a // next or previous track connect( The::playlistActions(), SIGNAL( navigatorChanged() ), SLOT( updatePlaylistProperties() ) ); connect( The::playlist()->qaim(), SIGNAL( rowsInserted(QModelIndex,int,int) ), SLOT( updatePlaylistProperties() ) ); connect( The::playlist()->qaim(), SIGNAL( rowsMoved(QModelIndex,int,int,QModelIndex,int) ), SLOT( updatePlaylistProperties() ) ); connect( The::playlist()->qaim(), SIGNAL( rowsRemoved(QModelIndex,int,int) ), SLOT( updatePlaylistProperties() ) ); connect( qobject_cast<Playlist::ProxyBase*>(The::playlist()->qaim()), SIGNAL( activeTrackChanged(const quint64) ), this, SLOT( playlistActiveTrackChanged(quint64) ) ); EngineController *engine = The::engineController(); connect( engine, SIGNAL( playbackStateChanged() ), this, SLOT( updatePlaybackStatusProperty() ) ); connect( engine, SIGNAL( trackChanged( Meta::TrackPtr ) ), this, SLOT( updatePlaylistProperties() ) ); connect( engine, SIGNAL( trackChanged( Meta::TrackPtr ) ), this, SLOT( updateTrackProperties() ) ); connect( engine, SIGNAL( trackPositionChanged( qint64, bool ) ), this, SLOT( trackPositionChanged( qint64, bool ) ) ); connect( engine, SIGNAL( seekableChanged( bool ) ), this, SLOT( seekableChanged( bool ) ) ); connect( engine, SIGNAL( volumeChanged( int ) ), this, SLOT( volumeChanged( int ) ) ); updateTrackProgressionProperties(); updatePlaybackStatusProperty(); updatePlaylistProperties(); updateTrackProperties(); setPropertyInternal( "Volume", static_cast<double>(The::engineController()->volume()) / 100.0 ); setPropertyInternal( "CanSeek", The::engineController()->phononMediaObject()->isSeekable() ); }
void GPXLab::pointEdited(int trackNumber, int trackSegmentNumber, int pointNumber, GPX_wrapper::TrackPointProperty properties) { Q_UNUSED(trackNumber); Q_UNUSED(trackSegmentNumber); Q_UNUSED(pointNumber); const GPX_wptType *trkpt = gpxmw->getSelectedPoint(); // file properties updateFileProperties(false); // track properties updateTrackProperties(false); // map if (properties & GPX_wrapper::latitude || properties & GPX_wrapper::longitude) { ui->mapWidget->editPoint(trackNumber, pointNumber); if (trkpt) ui->mapWidget->selectedPointSetVisible(true, trkpt->latitude, trkpt->longitude); } // diagram if (properties & ui->diagramWidget->getCurveMain() || properties & ui->diagramWidget->getCurveSecondary()) { ui->diagramWidget->build(); if (trkpt) ui->diagramWidget->select(trkpt->timestamp); } // point list ui->tableWidgetPoints->update(); }
void GPXLab::trackSelectionChanged(int trackNumber, int trackSegmentNumber, int pointNumber, const GPX_wptType *trkpt) { // track properties updateTrackProperties(false); // track tree ui->treeTracks->select(trackNumber, trackSegmentNumber); // map ui->mapWidget->selectTrack(trackNumber); if (trkpt) ui->mapWidget->selectedPointSetVisible(true, trkpt->latitude, trkpt->longitude); else ui->mapWidget->selectedPointSetVisible(false); // calendar ui->calendarWidget->select(trackNumber); // diagram ui->diagramWidget->build(); if (trkpt) ui->diagramWidget->select(trkpt->timestamp); // point list ui->tableWidgetPoints->build(pointNumber); }
void GPXLab::modelPropertiesChanged() { QApplication::setOverrideCursor(Qt::WaitCursor); QApplication::processEvents(); // file properties lblStatus->setText(tr("Updating file properties...")); updateFileProperties(false); // track properties lblStatus->setText(tr("Updating track properties...")); updateTrackProperties(false); // track tree lblStatus->setText(tr("Generating track tree...")); ui->treeTracks->build(gpxmw); ui->treeTracks->select(gpxmw->getSelectedTrackNumber(), gpxmw->getSelectedTrackSegmentNumber()); // calendar lblStatus->setText(tr("Generating track calendar...")); ui->calendarWidget->build(); ui->calendarWidget->select(gpxmw->getSelectedTrackNumber()); // diagram lblStatus->setText(tr("Generating diagram...")); ui->diagramWidget->build(); // point list lblStatus->setText(tr("Generating point list...")); ui->tableWidgetPoints->build(0); lblStatus->setText(""); QApplication::restoreOverrideCursor(); }
void GPXLab::trackMetadataChanged(int trackNumber) { // track properties updateTrackProperties(false); // track tree ui->treeTracks->setItemName(gpxmw->getItemName(trackNumber), trackNumber); }
void GPXLab::trackTimeShifted(int trackNumber, long seconds) { Q_UNUSED(trackNumber); Q_UNUSED(seconds); // track properties updateTrackProperties(false); // track tree ui->treeTracks->build(gpxmw); // calendar ui->calendarWidget->build(); // diagram ui->diagramWidget->build(); // point list ui->tableWidgetPoints->build(gpxmw->getSelectedPointNumber()); }
void GPXLab::modelCleared() { // file properties updateFileProperties(true); // track properties updateTrackProperties(true); // track tree ui->treeTracks->clear(); // map ui->mapWidget->clear(); // calendar ui->calendarWidget->clear(); // diagram ui->diagramWidget->clear(); // point list ui->tableWidgetPoints->clear(); }