void MergeDataTable::init(){ ui->comboBoxKeyCurrent->addItems(vv->getAllVariableNames()); setButtonMenu(); }
TagEditor::TagEditor(QWidget *parent, const QList<Song> &songs, const QSet<QString> &existingArtists, const QSet<QString> &existingAlbumArtists, const QSet<QString> &existingComposers, const QSet<QString> &existingAlbums, const QSet<QString> &existingGenres, const QString &udi) : Dialog(parent, "TagEditor", QSize(500, 200)) #ifdef ENABLE_DEVICES_SUPPORT , deviceUdi(udi) #endif , currentSongIndex(-1) , updating(false) , haveArtists(false) , haveAlbumArtists(false) , haveComposers(false) , haveAlbums(false) , haveGenres(false) , saving(false) { iCount++; foreach (const Song &s, songs) { if (CueFile::isCue(s.file)) { continue; } if (s.guessed) { Song song(s); song.revertGuessedTags(); original.append(song); } else { original.append(s); } } if (original.isEmpty()) { deleteLater(); return; } #ifdef ENABLE_DEVICES_SUPPORT if (deviceUdi.isEmpty()) { baseDir=MPDConnection::self()->getDetails().dir; } else { Device *dev=getDevice(udi, parentWidget()); if (!dev) { deleteLater(); return; } baseDir=dev->path(); } #else Q_UNUSED(udi) baseDir=MPDConnection::self()->getDetails().dir; #endif qSort(original); QWidget *mainWidet = new QWidget(this); setupUi(mainWidet); track->setAllowEmpty(); disc->setAllowEmpty(); year->setAllowEmpty(); setMainWidget(mainWidet); ButtonCodes buttons=Ok|Cancel|Reset|User3; if (songs.count()>1) { buttons|=User2|User1; } setButtons(buttons); setCaption(i18n("Tags")); progress->setVisible(false); if (songs.count()>1) { setButtonGuiItem(User2, StdGuiItem::back(true)); setButtonGuiItem(User1,StdGuiItem::forward(true)); enableButton(User1, false); enableButton(User2, false); } setButtonGuiItem(Ok, StdGuiItem::save()); setButtonGuiItem(User3, GuiItem(i18n("Tools"), "tools-wizard")); QMenu *toolsMenu=new QMenu(this); toolsMenu->addAction(i18n("Apply \"Various Artists\" Workaround"), this, SLOT(applyVa())); toolsMenu->addAction(i18n("Revert \"Various Artists\" Workaround"), this, SLOT(revertVa())); toolsMenu->addAction(i18n("Set 'Album Artist' from 'Artist'"), this, SLOT(setAlbumArtistFromArtist())); toolsMenu->addAction(i18n("Capitalize"), this, SLOT(capitalise())); toolsMenu->addAction(i18n("Adjust Track Numbers"), this, SLOT(adjustTrackNumbers())); setButtonMenu(User3, toolsMenu, InstantPopup); enableButton(Ok, false); enableButton(Reset, false); setAttribute(Qt::WA_DeleteOnClose); QStringList strings=existingArtists.toList(); strings.sort(); artist->clear(); artist->insertItems(0, strings); strings=existingAlbumArtists.toList(); strings.sort(); albumArtist->clear(); albumArtist->insertItems(0, strings); strings=existingComposers.toList(); strings.sort(); composer->clear(); composer->insertItems(0, strings); strings=existingAlbums.toList(); strings.sort(); album->clear(); album->insertItems(0, strings); strings=existingGenres.toList(); strings.sort(); genre->clear(); genre->insertItems(0, strings); trackName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); trackName->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); trackName->view()->setTextElideMode(Qt::ElideLeft); if (original.count()>1) { QSet<QString> songArtists; QSet<QString> songAlbumArtists; QSet<QString> songAlbums; QSet<QString> songGenres; QSet<QString> songComposers; QSet<int> songYears; QSet<int> songDiscs; foreach (const Song &s, original) { if (!s.artist.isEmpty()) { songArtists.insert(s.artist); } if (!s.albumartist.isEmpty()) { songAlbumArtists.insert(s.albumartist); } if (!s.album.isEmpty()) { songAlbums.insert(s.album); } if (!s.genre.isEmpty()) { songGenres.insert(s.genre); } if (!s.composer.isEmpty()) { songComposers.insert(s.composer); } songYears.insert(s.year); songDiscs.insert(s.disc); if (songArtists.count()>1 && songAlbumArtists.count()>1 && songAlbums.count()>1 && songGenres.count()>1 && songYears.count()>1 && songDiscs.count()>1 && songComposers.count()>=1) { break; } } Song all; all.file.clear(); all.title.clear(); all.track=0; all.artist=1==songArtists.count() ? *(songArtists.begin()) : QString(); all.composer=1==songComposers.count() ? *(songComposers.begin()) : QString(); all.albumartist=1==songAlbumArtists.count() ? *(songAlbumArtists.begin()) : QString(); all.album=1==songAlbums.count() ? *(songAlbums.begin()) : QString(); all.genre=1==songGenres.count() ? *(songGenres.begin()) : QString(); all.year=1==songYears.count() ? *(songYears.begin()) : 0; all.disc=1==songDiscs.count() ? *(songDiscs.begin()) : 0; original.prepend(all); artist->setFocus(); haveArtists=!songArtists.isEmpty(); haveAlbumArtists=!songAlbumArtists.isEmpty(); haveAlbums=!songAlbums.isEmpty(); haveGenres=!songGenres.isEmpty(); haveComposers=!songComposers.isEmpty(); } else {