Add live scanning (#199)

This commit is contained in:
Jonas Kvinge
2019-06-30 21:06:07 +02:00
committed by GitHub
parent bcfd1d39bb
commit 9083c578cc
11 changed files with 216 additions and 44 deletions

View File

@@ -410,6 +410,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
connect(ui_->action_remove_unavailable, SIGNAL(triggered()), app_->playlist_manager(), SLOT(RemoveUnavailableCurrent()));
connect(ui_->action_remove_from_playlist, SIGNAL(triggered()), SLOT(PlaylistRemoveCurrent()));
connect(ui_->action_edit_track, SIGNAL(triggered()), SLOT(EditTracks()));
connect(ui_->action_rescan_songs, SIGNAL(triggered()), SLOT(RescanSongs()));
connect(ui_->action_renumber_tracks, SIGNAL(triggered()), SLOT(RenumberTracks()));
connect(ui_->action_selection_set_value, SIGNAL(triggered()), SLOT(SelectionSetValue()));
connect(ui_->action_edit_value, SIGNAL(triggered()), SLOT(EditValue()));
@@ -434,6 +435,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
connect(ui_->action_jump, SIGNAL(triggered()), ui_->playlist->view(), SLOT(JumpToCurrentlyPlayingTrack()));
connect(ui_->action_update_collection, SIGNAL(triggered()), app_->collection(), SLOT(IncrementalScan()));
connect(ui_->action_full_collection_scan, SIGNAL(triggered()), app_->collection(), SLOT(FullScan()));
connect(ui_->action_abort_collection_scan, SIGNAL(triggered()), app_->collection(), SLOT(AbortScan()));
#if defined(HAVE_GSTREAMER)
connect(ui_->action_add_files_to_transcoder, SIGNAL(triggered()), SLOT(AddFilesToTranscoder()));
#else
@@ -614,6 +616,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
playlist_menu_->addAction(ui_->action_renumber_tracks);
playlist_menu_->addAction(ui_->action_selection_set_value);
playlist_menu_->addAction(ui_->action_auto_complete_tags);
playlist_menu_->addAction(ui_->action_rescan_songs);
#ifdef HAVE_GSTREAMER
playlist_menu_->addAction(ui_->action_add_files_to_transcoder);
#endif
@@ -1512,6 +1515,10 @@ void MainWindow::PlaylistRightClick(const QPoint &global_pos, const QModelIndex
ui_->action_auto_complete_tags->setEnabled(false);
ui_->action_auto_complete_tags->setVisible(false);
#endif
ui_->action_rescan_songs->setEnabled(editable);
ui_->action_rescan_songs->setVisible(editable);
// the rest of the read / write actions work only when there are no CUEs involved
if (cue_selected) editable = 0;
@@ -1659,6 +1666,25 @@ void MainWindow::PlaylistStopAfter() {
app_->playlist_manager()->current()->StopAfter(playlist_menu_index_.row());
}
void MainWindow::RescanSongs() {
SongList songs;
PlaylistItemList items;
for (const QModelIndex& index : ui_->playlist->view()->selectionModel()->selection().indexes()) {
if (index.column() != 0) continue;
int row = app_->playlist_manager()->current()->proxy()->mapToSource(index).row();
PlaylistItemPtr item(app_->playlist_manager()->current()->item_at(row));
Song song = item->Metadata();
songs << song;
items << item;
}
app_->collection()->Rescan(songs);
}
void MainWindow::EditTracks() {
SongList songs;

View File

@@ -154,6 +154,7 @@ signals:
void PlaylistSkip();
void PlaylistRemoveCurrent();
void PlaylistEditFinished(const QModelIndex& index);
void RescanSongs();
void EditTracks();
void EditTagDialogAccepted();
void RenumberTracks();

View File

@@ -442,7 +442,7 @@
<x>0</x>
<y>0</y>
<width>1131</width>
<height>24</height>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menu_music">
@@ -501,6 +501,7 @@
<addaction name="separator"/>
<addaction name="action_update_collection"/>
<addaction name="action_full_collection_scan"/>
<addaction name="action_abort_collection_scan"/>
<addaction name="separator"/>
<addaction name="action_settings"/>
<addaction name="action_console"/>
@@ -512,7 +513,7 @@
</widget>
<action name="action_previous_track">
<property name="text">
<string>&amp;Previous track</string>
<string>Previous track</string>
</property>
<property name="shortcut">
<string>F5</string>
@@ -520,7 +521,7 @@
</action>
<action name="action_play_pause">
<property name="text">
<string>P&amp;lay</string>
<string>&amp;Play</string>
</property>
<property name="shortcut">
<string>F6</string>
@@ -775,6 +776,11 @@
<string>&amp;Do a full collection rescan</string>
</property>
</action>
<action name="action_abort_collection_scan">
<property name="text">
<string>Abort collection scan</string>
</property>
</action>
<action name="action_auto_complete_tags">
<property name="icon">
<iconset resource="../../data/data.qrc">
@@ -816,6 +822,11 @@
<string notr="true">Ctrl+Shift+T</string>
</property>
</action>
<action name="action_rescan_songs">
<property name="text">
<string>Rescan songs(s)</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>