Beispiel #1
0
void MainWindow::openDefaultiTunes()
{
    QString fileName;
    QFile nameFile("libraryName.mln");
    if(nameFile.open(QFile::ReadOnly | QFile::Text))
    {
        fileName = nameFile.readLine();
        nameFile.close();
    }
    else
    {
        nameFile.close();
        return;
    }

    QFile file(fileName);
    if (!file.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this, tr("Music Collection"),
                             tr("Cannot read file %1:\n%2.")
                             .arg(fileName)
                             .arg(file.errorString()));
        return;
    }

    statusBar()->showMessage(tr("Parsing iTunes Library......"));

    _library->empty();
    if ( Parser::parse( file, _library ) ) {
        statusBar()->showMessage(tr("File loaded"), 2000);
        qDebug() << "Library updated";
        emit libraryUpdated();
    }

}
Beispiel #2
0
/*
 * ---------------------------------------------------------
 * Slots
 * ---------------------------------------------------------
 */
void MainWindow::openiTunesLibrary() {


    QString fileName =
        QFileDialog::getOpenFileName(this, tr("Open iTunes Library File"),
                                     QDir::currentPath(),
                                     tr("iTunes XML Library File(*.xml)"));
    if (fileName.isEmpty())
        return;


    QFile file(fileName);
    if (!file.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this, tr("Music Collection"),
                             tr("Cannot read file %1:\n%2.")
                             .arg(fileName)
                             .arg(file.errorString()));
        return;
    }

    statusBar()->showMessage(tr("Parsing iTunes Library......"));

    _library->empty();
    if ( Parser::parse( file, _library ) ) {
        statusBar()->showMessage(tr("File loaded"), 2000);
        qDebug() << "Library updated";

        //output the iTunes library location for easy loading later
        QFile nameFile("libraryName.mln");
        nameFile.open(QFile::ReadWrite | QFile::Truncate);
        nameFile.write(fileName.toStdString().c_str());

        emit libraryUpdated();
    }
}
Beispiel #3
0
/*
 * ---------------------------------------------------------
 * Setups
 * ---------------------------------------------------------
 */
void MainWindow::createWindow() {


    QWidget *w = new QWidget;
    setCentralWidget(w);

    _playBox = new PlayBox(this);

    _tracklist = new Tracklist(this);
    _playlist = new Playlist(_tracklist, this);
    _colourMapDisplay = new ColourMapDisplay(this);


    _display = new GridDisplay(600, _tracklist, _dataGrid, this);

    QGridLayout *gridLayout = new QGridLayout;
    //fromRow, fromCol, rowSpan, colSpan
    gridLayout->addWidget(	_display,			0, 0, 4, 1);

    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(new QLabel(tr("Playlists")));
    vbox->addWidget(_playlist);
    vbox->addWidget(new QLabel(tr("Track list")));
    vbox->addWidget(_tracklist);
    vbox->addWidget(_colourMapDisplay);
    gridLayout->addLayout(vbox,1,1,1,1);

    connect(_display, SIGNAL(playingTrack(MusicTrack*)),
            this, SLOT(updateCurrentlyPlaying(MusicTrack*)));

    connect(this, SIGNAL(libraryUpdated()), _playlist, SLOT(updatePlaylist()));
    connect(this, SIGNAL(libraryUpdated()), _display, SLOT(reload()));
    connect(this, SIGNAL(openPredictGridFile(QString)), _display, SLOT(openPredictionGrid(QString)));
    connect(this, SIGNAL(savePredictGridFile(QString)), _display, SLOT(savePredictionGrid(QString)));
    connect(this, SIGNAL(playModeChanged()), _display, SLOT(playModeChanged()));
    connect(this, SIGNAL(cancelButtonSignal()), _display, SLOT(cancelButton()));
    connect(_display, SIGNAL(fullScreenMode(bool)), this, SLOT(fullScreenMode(bool)));
    connect(this, SIGNAL(fullScreenModeOff()), _display, SLOT(fullScreenMouse()));
    connect(_playlist, SIGNAL(SelectedPlaylist(QString)), _display, SLOT(playlistSelected(QString)));
    connect(_display, SIGNAL(updateColourMap(int *, int)), _colourMapDisplay, SLOT(updateSquare(int *, int)));
    connect(this, SIGNAL(resetGrid()), _display, SLOT(resetGrid()));

    w->setLayout(gridLayout);
    statusBar()->showMessage(tr("Ready"));
}
Beispiel #4
0
void MpdLibraryDb::connectionChanged(const MPDConnectionDetails &details)
{
    QString dbFile=databaseName(details);
    DBUG << dbFileName << dbFile;
    if (dbFile!=dbFileName) {
        init(dbFile);
    } else {
        emit libraryUpdated();
    }
}
Beispiel #5
0
void MusicScanner::scan(const QString &folder, const QString &cacheFile, bool readCache, const QSet<FileOnlySong> &existingSongs)
{
    lastCacheProg=-1;
    if (!cacheFile.isEmpty() && readCache) {
        MusicLibraryItemRoot *lib=new MusicLibraryItemRoot;
        MusicLibraryModel::convertCache(cacheFile);
        readProgress(0.0);
        if (lib->fromXML(cacheFile, QDateTime(), folder)) {
            lib->applyGrouping();
            if (!stopRequested) {
                emit libraryUpdated(lib);
            } else {
                delete lib;
            }
            return;
        } else {
            delete lib;
        }
    }

    if (stopRequested) {
        return;
    }
    count=0;
    lastUpdate=0;
    MusicLibraryItemRoot *library = new MusicLibraryItemRoot;
    QString topLevel=Utils::fixPath(QDir(folder).absolutePath());
    QSet<FileOnlySong> existing=existingSongs;
    scanFolder(library, topLevel, topLevel, existing, 0);

    if (!stopRequested) {
        library->applyGrouping();
        if (!cacheFile.isEmpty()) {
            writeProgress(0.0);
            library->toXML(cacheFile, QDateTime(), this);
        }
        emit libraryUpdated(library);
    } else {
        delete library;
    }
}
Beispiel #6
0
void MusicScanner::scan(const QString &folder, const QString &cacheFile, bool readCache, const QSet<FileOnlySong> &existingSongs)
{
    if (!cacheFile.isEmpty() && readCache) {
        MusicLibraryItemRoot *lib=new MusicLibraryItemRoot;
        readProgress(0.0);
        if (lib->fromXML(cacheFile, 0, 0, folder)) {
            if (!stopRequested) {
                emit libraryUpdated(lib);
            } else {
                delete lib;
            }
            return;
        } else {
            delete lib;
        }
    }

    if (stopRequested) {
        return;
    }
    count=0;
    MusicLibraryItemRoot *library = new MusicLibraryItemRoot;
    QString topLevel=Utils::fixPath(QDir(folder).absolutePath());
    QSet<FileOnlySong> existing=existingSongs;
    timer.start();
    scanFolder(library, topLevel, topLevel, existing, 0);

    if (!stopRequested) {
        if (!cacheFile.isEmpty()) {
            writeProgress(0.0);
            library->toXML(cacheFile, 0, false, this);
        }
        emit libraryUpdated(library);
    } else {
        delete library;
    }
}