static bool output_matching_key_name(wchar_t wc) {
    char *name = sequence_name(wc);
    if (name) {
        std::fwprintf(stdout, L"bind -k %s 'do something'\n", name);
        free(name);
        return true;
    }
    return false;
}
Example #2
0
void MainWindow::ParseBigZipFunc(QFileInfo fi, MainWindow*/* Parent*/)
{
    QFile infile(fi.absoluteFilePath());
    infile.open(QIODevice::ReadOnly);

    QuaZip BigZip(&infile);
    BigZip.open(QuaZip::mdUnzip);


    QList<QuaZipFileInfo> ZipFI = BigZip.getFileInfoList();

    QElapsedTimer* timer_parse = new QElapsedTimer();
    QElapsedTimer* timer_author = new QElapsedTimer();
    QElapsedTimer* timer_book = new QElapsedTimer();
    int books_processed = 0;

    SmpLibDatabase* db = new SmpLibDatabase(m_sDBFile, m_sDbEngine);

    foreach(QuaZipFileInfo fi2, ZipFI)
    {
        if(!fi2.name.endsWith("fb2", Qt::CaseInsensitive)) continue;
        timer_parse->start();

        BigZip.setCurrentFile(fi2.name);
        QuaZipFile file(&BigZip);

        file.open(QIODevice::ReadOnly);
        QByteArray BookData = file.readAll();
        file.close();

        QXmlStreamReader reader(BookData);

        QList<QString> first_name;
        QList<QString> last_name;
        QString book_title("");
        QString genre("");
        QString sequence_name("");
        QString sequence_number = "";

        bool bAuthorBlock = false;

        while (!reader.atEnd())
        {
            QXmlStreamReader::TokenType token = reader.readNext();
           /* If token is just StartDocument, we'll go to next.*/
           if(token == QXmlStreamReader::StartDocument)
           {
               continue;
           }

            if (reader.isStartElement() && reader.name() == "author") bAuthorBlock = true;
            if (reader.isEndElement() && reader.name() == "author") bAuthorBlock = false;

            if (reader.isStartElement() && reader.name() == "first-name" && bAuthorBlock)
            {
                first_name.append(reader.readElementText().trimmed());
            }
            else if (reader.isStartElement() && reader.name() == "last-name" && bAuthorBlock)
            {
                last_name.append(reader.readElementText().trimmed());
            }
            else if (reader.isStartElement() && reader.name() == "book-title" && book_title.isEmpty())
            {
                book_title = reader.readElementText();
            }
            else if (reader.isStartElement() && reader.name() == "genre")
            {
                genre = reader.readElementText();
            }
            else if (reader.isStartElement() && reader.name() == "sequence")
            {
                foreach(const QXmlStreamAttribute &attr, reader.attributes())
                {
                    if (attr.name().toString() == QLatin1String("name")) {
                        sequence_name = attr.value().toString();
                    }
                    else if (attr.name().toString() == QLatin1String("number")) {
                        sequence_number = attr.value().toString();
                    }
                }
            }
            else if(reader.isEndElement() && reader.name() == "title-info")
                break;
            else
                continue;
            if (reader.hasError()) {
            }
        }