bool HelpDialog::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: showTopic((int)static_QUType_int.get(_o+1),(QListBoxItem*)static_QUType_ptr.get(_o+2),(const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+3))); break; case 1: showTopic((int)static_QUType_int.get(_o+1),(QListViewItem*)static_QUType_ptr.get(_o+2),(const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+3))); break; case 2: showTopic((QListViewItem*)static_QUType_ptr.get(_o+1)); break; case 3: loadIndexFile(); break; case 4: insertContents(); break; case 5: setupFullTextIndex(); break; case 6: currentTabChanged((const QString&)static_QUType_QString.get(_o+1)); break; case 7: currentIndexChanged((QListBoxItem*)static_QUType_ptr.get(_o+1)); break; case 8: showTopic(); break; case 9: searchInIndex((const QString&)static_QUType_QString.get(_o+1)); break; case 10: addBookmark(); break; case 11: removeBookmark(); break; case 12: currentBookmarkChanged((QListViewItem*)static_QUType_ptr.get(_o+1)); break; case 13: currentContentsChanged((QListViewItem*)static_QUType_ptr.get(_o+1)); break; case 14: startSearch(); break; case 15: showSearchHelp(); break; case 16: initialize(); break; case 17: toggleContents(); break; case 18: toggleIndex(); break; case 19: toggleBookmarks(); break; case 20: toggleSearch(); break; case 21: lastWinClosed(); break; case 22: showResultPage((int)static_QUType_int.get(_o+1),(QListBoxItem*)static_QUType_ptr.get(_o+2),(const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+3))); break; case 23: showResultPage((QListBoxItem*)static_QUType_ptr.get(_o+1)); break; case 24: setIndexingProgress((int)static_QUType_int.get(_o+1)); break; case 25: showItemMenu((QListBoxItem*)static_QUType_ptr.get(_o+1),(const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+2))); break; case 26: showItemMenu((QListViewItem*)static_QUType_ptr.get(_o+1),(const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+2))); break; case 27: insertBookmarks(); break; case 28: processEvents(); break; default: return HelpDialogBase::qt_invoke( _id, _o ); } return TRUE; }
/*! Takes the \a helpData and generates a new documentation set from it. The Qt compressed help file is written to \a outputFileName. Returns true on success, otherwise false. */ bool QHelpGenerator::generate(QHelpDataInterface *helpData, const QString &outputFileName) { emit progressChanged(0); d->error.clear(); if (!helpData || helpData->namespaceName().isEmpty()) { d->error = tr("Invalid help data!"); return false; } QString outFileName = outputFileName; if (outFileName.isEmpty()) { d->error = tr("No output file name specified!"); return false; } QFileInfo fi(outFileName); if (fi.exists()) { if (!fi.dir().remove(fi.fileName())) { d->error = tr("The file %1 cannot be overwritten!").arg(outFileName); return false; } } setupProgress(helpData); emit statusChanged(tr("Building up file structure...")); bool openingOk = true; { QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), QLatin1String("builder")); db.setDatabaseName(outFileName); openingOk = db.open(); if (openingOk) d->query = new QSqlQuery(db); } if (!openingOk) { d->error = tr("Cannot open data base file %1!").arg(outFileName); cleanupDB(); return false; } d->query->exec(QLatin1String("PRAGMA synchronous=OFF")); d->query->exec(QLatin1String("PRAGMA cache_size=3000")); addProgress(1.0); createTables(); insertFileNotFoundFile(); insertMetaData(helpData->metaData()); if (!registerVirtualFolder(helpData->virtualFolder(), helpData->namespaceName())) { d->error = tr("Cannot register namespace %1!").arg(helpData->namespaceName()); cleanupDB(); return false; } addProgress(1.0); emit statusChanged(tr("Insert custom filters...")); foreach (const QHelpDataCustomFilter &f, helpData->customFilters()) { if (!registerCustomFilter(f.name, f.filterAttributes, true)) { cleanupDB(); return false; } } addProgress(1.0); int i = 1; QList<QHelpDataFilterSection>::const_iterator it = helpData->filterSections().constBegin(); while (it != helpData->filterSections().constEnd()) { emit statusChanged(tr("Insert help data for filter section (%1 of %2)...") .arg(i++).arg(helpData->filterSections().count())); insertFilterAttributes((*it).filterAttributes()); QByteArray ba; QDataStream s(&ba, QIODevice::WriteOnly); foreach (QHelpDataContentItem *itm, (*it).contents()) writeTree(s, itm, 0); if (!insertFiles((*it).files(), helpData->rootPath(), (*it).filterAttributes()) || !insertContents(ba, (*it).filterAttributes()) || !insertKeywords((*it).indices(), (*it).filterAttributes())) { cleanupDB(); return false; } ++it; } cleanupDB(); emit progressChanged(100); emit statusChanged(tr("Documentation successfully generated.")); return true; }