/// @brief compute space enought for export buffer size_t PhraseIndexerImpl::size() const { prepareExport(); return m_w2id_index.size() + m_words2phrases.size() + m_phrase_offsets.size() + sizeof(uint32_t) + m_phrases_size + m_regWriter.size() + m_origPhrases.size() + m_udataWriter.size(); }
void QCScatteredStringsWriter::save(MemWriter &mwr) { prepareExport(); m_id2offset.save(mwr); mwr << (uint32_t)m_acclen; std::map<uint32_t, std::string>::const_iterator it; for (it = m_stings.begin(); it != m_stings.end(); it++) mwr << it->second; }
HTMLExporter::HTMLExporter(Basket *basket) { QDir dir; // Compute a default file name & path: KConfigGroup config = Global::config()->group("Export to HTML"); QString folder = config.readEntry("lastFolder", QDir::homePath()) + "/"; QString url = folder + QString(basket->basketName()).replace("/", "_") + ".html"; // Ask a file name & path to the user: QString filter = "*.html *.htm|" + i18n("HTML Documents") + "\n*|" + i18n("All Files"); QString destination = url; for (bool askAgain = true; askAgain; ) { // Ask: destination = KFileDialog::getSaveFileName(destination, filter, 0, i18n("Export to HTML")); // User canceled? if (destination.isEmpty()) return; // File already existing? Ask for overriding: if (dir.exists(destination)) { int result = KMessageBox::questionYesNoCancel( 0, "<qt>" + i18n("The file <b>%1</b> already exists. Do you really want to override it?", KUrl(destination).fileName()), i18n("Override File?"), KGuiItem(i18n("&Override"), "document-save") ); if (result == KMessageBox::Cancel) return; else if (result == KMessageBox::Yes) askAgain = false; } else askAgain = false; } // Create the progress dialog that will always be shown during the export: KProgressDialog dialog(0, i18n("Export to HTML"), i18n("Exporting to HTML. Please wait..."), /*Not modal, for password dialogs!*/false); dialog.showCancelButton(false); dialog.setAutoClose(true); dialog.show(); progress = dialog.progressBar(); // Remember the last folder used for HTML exporation: config.writeEntry("lastFolder", KUrl(destination).directory()); config.sync(); prepareExport(basket, destination); exportBasket(basket, /*isSubBasket*/false); progress->setValue(progress->value()+1); // Finishing finished }
/// @brief export phrase storage // export format: [WORD-HASH_TO_PHRASEID][PHRASES_OFFSETS][PHRASES] void PhraseIndexerImpl::save(MemWriter &mwr) { prepareExport(); m_w2id_index.save(mwr); m_words2phrases.save(mwr); m_phrase_offsets.save(mwr); mwr << (uint32_t)m_phrases_size; for (vector<Phrase>::iterator it = m_phrases.begin(); it != m_phrases.end(); it++) it->save(mwr); m_regWriter.save(mwr); m_origPhrases.save(mwr); m_udataWriter.save(mwr); }
// format: [OFFSET_MAP][STR_SIZE:4][STRINGS:m_acclen] size_t QCScatteredStringsWriter::size() const { prepareExport(); return m_id2offset.size() + sizeof(uint32_t) + m_acclen; }