void ITunesFeature::onRightClick(const QPoint& globalPos) { BaseExternalLibraryFeature::onRightClick(globalPos); QMenu menu; QAction useDefault(tr("Use Default Library"), &menu); QAction chooseNew(tr("Choose Library..."), &menu); menu.addAction(&useDefault); menu.addAction(&chooseNew); QAction *chosen(menu.exec(globalPos)); if (chosen == &useDefault) { SettingsDAO settings(m_database); settings.setValue(ITDB_PATH_KEY, QString()); activate(true); // clears tables before parsing } else if (chosen == &chooseNew) { SettingsDAO settings(m_database); QString dbfile = QFileDialog::getOpenFileName( NULL, tr("Select your iTunes library"), QDir::homePath(), "*.xml"); QFileInfo dbFileInfo(dbfile); if (dbfile.isEmpty() || !dbFileInfo.exists()) { return; } // The user has picked a new directory via a file dialog. This means the // system sandboxer (if we are sandboxed) has granted us permission to // this folder. Create a security bookmark while we have permission so // that we can access the folder on future runs. We need to canonicalize // the path so we first wrap the directory string with a QDir. Sandbox::createSecurityToken(dbFileInfo); settings.setValue(ITDB_PATH_KEY, dbfile); activate(true); // clears tables before parsing } }
void ITunesFeature::onRightClick(const QPoint& globalPos) { BaseExternalLibraryFeature::onRightClick(globalPos); QMenu menu; QAction useDefault(tr("Use Default Library"), &menu); QAction chooseNew(tr("Choose Library..."), &menu); menu.addAction(&useDefault); menu.addAction(&chooseNew); QAction *chosen(menu.exec(globalPos)); if (chosen == &useDefault) { SettingsDAO settings(m_database); settings.setValue(ITDB_PATH_KEY, QString()); activate(true); // clears tables before parsing } else if (chosen == &chooseNew) { SettingsDAO settings(m_database); QString dbfile = QFileDialog::getOpenFileName( NULL, tr("Select your iTunes library"), QDir::homePath(), "*.xml"); if (dbfile.isEmpty() || !QFile::exists(dbfile)) { return; } settings.setValue(ITDB_PATH_KEY, dbfile); activate(true); // clears tables before parsing } }