+
+void ManageLibraryForm::refresh() {
+ QList<QString> directories = _library->getDirectories();
+ qSort(directories);
+ int artists_count = _library->getArtistsCount();
+ int albums_count = _library->getAlbumsCount();
+ int tracks_count = _library->getTracksCount();
+
+ ui->artistsLabel->setText(QString("%1 artists").arg(artists_count));
+ ui->albumsLabel->setText(QString("%1 albums").arg(albums_count));
+ ui->tracksView->setText(QString("%1 tracks").arg(tracks_count));
+
+ int dcount = directories.count();
+ _model->setRowCount(dcount);
+ for (int i = 0; i < dcount; i++) {
+ _model->setItem(i, 0, new QStandardItem(QIcon(":/icons/"+_icons_theme+"/deselect_all.png"), ""));
+ QString dir = directories.at(i);
+ dir.replace(DEFAULT_PATH_PREFIX, "");
+ _model->setItem(i, 1, new QStandardItem(dir));
+ }
+ ui->dirView->setColumnWidth(0, 70);
+}
+
+void ManageLibraryForm::updateIcons() {
+ Config config;
+ _icons_theme = config.getValue("ui/iconstheme").toString();
+ ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ ui->deleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png"));
+ ui->updateButton->setIcon(QIcon(":/icons/"+_icons_theme+"/update.png"));
+ ui->updateAllButton->setIcon(QIcon(":/icons/"+_icons_theme+"/update.png"));
+ ui->updatePlsButton->setIcon(QIcon(":/icons/"+_icons_theme+"/update.png"));
+ refresh();
+}
+
+void ManageLibraryForm::_process_selection(QItemSelection selected, QItemSelection deselected) {
+ foreach (QModelIndex id, selected.indexes()) {
+ if (id.column() == 0) {
+ _model->item(id.row())->setIcon(QIcon(":/icons/"+_icons_theme+"/select_all.png"));
+ }
+ ui->dirView->selectionModel()->select(id, QItemSelectionModel::Select);
+ }
+ foreach (QModelIndex id, deselected.indexes()) {
+ if (id.column() == 0) {
+ _model->item(id.row())->setIcon(QIcon(":/icons/"+_icons_theme+"/deselect_all.png"));
+ }
+ ui->dirView->selectionModel()->select(id, QItemSelectionModel::Deselect);
+ }
+}
+
+void ManageLibraryForm::_delete_selected() {
+ QList<QString> directories;
+ QModelIndexList idx = ui->dirView->selectionModel()->selectedIndexes();
+ foreach (QModelIndex id, idx) {
+ if (id.column() == 1) {
+ QString path = id.data().toString();
+ if (!path.startsWith("/")) {
+ path = DEFAULT_PATH_PREFIX+path;
+ }
+ directories.append(path);
+ }
+ }
+ if (!directories.isEmpty()) {
+ _library->deleteDirectories(directories);
+ }
+ ui->dirView->selectionModel()->clearSelection();
+ refresh();
+ emit refreshLibrary();
+}
+
+void ManageLibraryForm::_update_selected() {
+ QList<QString> directories;
+ QModelIndexList idx = ui->dirView->selectionModel()->selectedIndexes();
+ foreach (QModelIndex id, idx) {
+ if (id.column() == 1) {
+ QString path = id.data().toString();
+ if (!path.startsWith("/")) {
+ path = DEFAULT_PATH_PREFIX+path;
+ }
+ directories.append(path);
+ }
+ }
+ if (!directories.isEmpty()) {
+ _library->updateDirectories(directories);
+ }
+ refresh();
+ emit refreshLibrary();
+}
+
+void ManageLibraryForm::_update_all() {
+ _library->updateAll();
+ refresh();
+ emit refreshLibrary();
+}