void MainWindow::deleteAlbum() { QModelIndexList selection = albumView->selectionModel()->selectedRows(0); if (!selection.empty()) { QModelIndex idIndex = selection.at(0); int id = idIndex.data().toInt(); QString title = idIndex.sibling(idIndex.row(), 1).data().toString(); QString artist = idIndex.sibling(idIndex.row(), 2).data().toString(); QMessageBox::StandardButton button; button = QMessageBox::question(this, tr("Delete Album"), tr("Are you sure you want to " "delete '%1' by '%2'?") .arg(title, artist), QMessageBox::Yes | QMessageBox::No); if (button == QMessageBox::Yes) { removeAlbumFromFile(id); removeAlbumFromDatabase(idIndex); decreaseAlbumCount(indexOfArtist(artist)); showImageLabel(); } } else { QMessageBox::information(this, tr("Delete Album"), tr("Select the album you want to delete.")); } }
void Dialog::submit() { QString artist = artistEditor->text(); QString title = titleEditor->text(); if (artist.isEmpty() || title.isEmpty()) { QString message(tr("Please provide both the name of the artist " "and the title of the album.")); QMessageBox::information(this, tr("Add Album"), message); } else { int artistId = findArtistId(artist); int albumId = addNewAlbum(title, artistId); QStringList tracks; tracks = tracksEditor->text().split(',', QString::SkipEmptyParts); addTracks(albumId, tracks); increaseAlbumCount(indexOfArtist(artist)); accept(); } }
void MainWindow::showAlbumDetails(QModelIndex index) { QSqlRecord record = model->record(index.row()); QString artist = record.value("artist").toString(); QString title = record.value("title").toString(); QString year = record.value("year").toString(); QString albumId = record.value("albumid").toString(); showArtistProfile(indexOfArtist(artist)); titleLabel->setText(tr("Title: %1 (%2)").arg(title).arg(year)); titleLabel->show(); QDomNodeList albums = albumData.elementsByTagName("album"); for (int i = 0; i < albums.count(); i++) { QDomNode album = albums.item(i); if (album.toElement().attribute("id") == albumId) { getTrackList(album.toElement()); break; } } if (trackList->count() != 0) trackList->show(); }