bool synchronizeDocs(QHelpEngineCore &collection, QHelpEngineCore &cachedCollection, CmdLineParser &cmd) { TRACE_OBJ const QDateTime &lastCollectionRegisterTime = CollectionConfiguration::lastRegisterTime(collection); if (!lastCollectionRegisterTime.isValid() || lastCollectionRegisterTime < CollectionConfiguration::lastRegisterTime(cachedCollection)) return true; const QStringList &docs = collection.registeredDocumentations(); const QStringList &cachedDocs = cachedCollection.registeredDocumentations(); /* * Ensure that the cached collection contains all docs that * the collection contains. */ foreach (const QString &doc, docs) { if (!cachedDocs.contains(doc)) { const QString &docFile = collection.documentationFileName(doc); if (!cachedCollection.registerDocumentation(docFile)) { cmd.showMessage(QCoreApplication::translate("Assistant", "Error registering documentation file '%1': %2"). arg(docFile).arg(cachedCollection.error()), true); return false; } } } CollectionConfiguration::updateLastRegisterTime(cachedCollection); return true; }
void CollectionConfiguration::setCacheDir(QHelpEngineCore &helpEngine, const QString &cacheDir, bool relativeToCollection) { helpEngine.setCustomValue(CacheDirKey, cacheDir); helpEngine.setCustomValue(CacheDirRelativeToCollectionKey, relativeToCollection); }
void GeneralSettingsPage::apply() { QFont newFont; const QString &family = m_ui.familyComboBox->currentFont().family(); newFont.setFamily(family); int fontSize = 14; int currentIndex = m_ui.sizeComboBox->currentIndex(); if (currentIndex != -1) fontSize = m_ui.sizeComboBox->itemData(currentIndex).toInt(); newFont.setPointSize(fontSize); QString fontStyle = QLatin1String("Normal"); currentIndex = m_ui.styleComboBox->currentIndex(); if (currentIndex != -1) fontStyle = m_ui.styleComboBox->itemText(currentIndex); newFont.setBold(m_fontDatabase.bold(family, fontStyle)); if (fontStyle.contains(QLatin1String("Italic"))) newFont.setStyle(QFont::StyleItalic); else if (fontStyle.contains(QLatin1String("Oblique"))) newFont.setStyle(QFont::StyleOblique); else newFont.setStyle(QFont::StyleNormal); const int weight = m_fontDatabase.weight(family, fontStyle); if (weight >= 0) // Weight < 0 asserts... newFont.setWeight(weight); QHelpEngineCore *engine = &LocalHelpManager::helpEngine(); engine->setCustomValue(QLatin1String("font"), newFont); if (newFont != m_font) emit fontChanged(); QString homePage = m_ui.homePageLineEdit->text(); if (homePage.isEmpty()) homePage = Help::Constants::AboutBlank; engine->setCustomValue(QLatin1String("HomePage"), homePage); const int startOption = m_ui.helpStartComboBox->currentIndex(); engine->setCustomValue(QLatin1String("StartOption"), startOption); const int helpOption = m_ui.contextHelpComboBox->currentIndex(); engine->setCustomValue(QLatin1String("ContextHelpOption"), helpOption); // no need to call setup on the gui engine since we use only core engine }
void CollectionConfiguration::copyConfiguration(const QHelpEngineCore &source, QHelpEngineCore &target) { setCreationTime(target, creationTime(source)); setWindowTitle(target, windowTitle(source)); target.setCurrentFilter(source.currentFilter()); setCacheDir(target, cacheDir(source), cacheDirIsRelativeToCollection(source)); setFilterFunctionalityEnabled(target, filterFunctionalityEnabled(source)); setFilterToolbarVisible(target, filterToolbarVisible(source)); setAddressBarEnabled(target, addressBarEnabled(source)); setAddressBarVisible(target, addressBarVisible(source)); setDocumentationManagerEnabled(target, documentationManagerEnabled(source)); setApplicationIcon(target, applicationIcon(source)); setAboutMenuTexts(target, aboutMenuTexts(source)); setAboutIcon(target, aboutIcon(source)); setAboutTexts(target, aboutTexts(source)); setAboutImages(target, aboutImages(source)); setDefaultHomePage(target, defaultHomePage(source)); }
CentralWidget::~CentralWidget() { // TODO: this shouldn't be done here QString zoomFactors; QString currentPages; for (int i = 0; i < viewerCount(); ++i) { const HelpViewer * const viewer = viewerAt(i); const QUrl &source = viewer->source(); if (source.isValid()) { currentPages += source.toString() + QLatin1Char('|'); zoomFactors += QString::number(viewer->scale()) + QLatin1Char('|'); } } QHelpEngineCore *engine = &LocalHelpManager::helpEngine(); engine->setCustomValue(QLatin1String("LastShownPages"), currentPages); engine->setCustomValue(QLatin1String("LastShownPagesZoom"), zoomFactors); engine->setCustomValue(QLatin1String("LastTabPage"), currentIndex()); }
void FilterSettingsPage::apply() { bool changed = m_filterMap.count() != m_filterMapBackup.count(); if (!changed) { FilterMap::const_iterator it = m_filterMapBackup.constBegin(); for (; it != m_filterMapBackup.constEnd() && !changed; ++it) { if (m_filterMap.contains(it.key())) { const QStringList &a = it.value(); const QStringList &b = m_filterMap.value(it.key()); if (a.count() == b.count()) { QStringList::const_iterator i = a.constBegin(); for (; i != a.constEnd() && !changed; ++i) { if (b.contains(*i)) continue; changed = true; } } else { changed = true; } } else { changed = true; } } } if (changed) { QHelpEngineCore *engine = &LocalHelpManager::helpEngine(); foreach (const QString &filter, m_removedFilters) engine->removeCustomFilter(filter); FilterMap::const_iterator it; for (it = m_filterMap.constBegin(); it != m_filterMap.constEnd(); ++it) engine->addCustomFilter(it.key(), it.value()); // emit this signal to the help plugin, since we don't want // to force gui help engine setup if we are not in help mode emit filtersChanged(); } }
/* * Returns the expected absolute file path of the cached collection file * correspondinging to the given collection's file. * It may or may not exist yet. */ QString constructCachedCollectionFilePath(const QHelpEngineCore &collection) { TRACE_OBJ const QString &filePath = collection.collectionFile(); const QString &fileName = QFileInfo(filePath).fileName(); const QString &cacheDir = CollectionConfiguration::cacheDir(collection); const QString &dir = !cacheDir.isEmpty() && CollectionConfiguration::cacheDirIsRelativeToCollection(collection) ? QFileInfo(filePath).dir().absolutePath() + QDir::separator() + cacheDir : MainWindow::collectionFileDirectory(false, cacheDir); return dir + QDir::separator() + fileName; }
CentralWidget::~CentralWidget() { #ifndef QT_NO_PRINTER delete printer; #endif QString zoomFactors; QString currentPages; for (int i = 0; i < m_stackedWidget->count(); ++i) { const HelpViewer * const viewer = viewerAt(i); const QUrl &source = viewer->source(); if (source.isValid()) { currentPages += source.toString() + QLatin1Char('|'); zoomFactors += QString::number(viewer->scale()) + QLatin1Char('|'); } } QHelpEngineCore *engine = &LocalHelpManager::helpEngine(); engine->setCustomValue(QLatin1String("LastShownPages"), currentPages); engine->setCustomValue(QLatin1String("LastShownPagesZoom"), zoomFactors); engine->setCustomValue(QLatin1String("LastTabPage"), currentIndex()); }
void QtDocInstaller::run() { QHelpEngineCore *helpEngine = new QHelpEngineCore(m_collectionFile); helpEngine->setupData(); bool changes = false; QStringList docs; docs << QLatin1String("assistant") << QLatin1String("designer") << QLatin1String("linguist") << QLatin1String("qmake") << QLatin1String("qt"); foreach (const QString &doc, docs) { changes |= installDoc(doc, helpEngine); m_mutex.lock(); if (m_abort) { delete helpEngine; m_mutex.unlock(); return; } m_mutex.unlock(); }
const QString CollectionConfiguration::windowTitle(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(WindowTitleKey).toString(); }
uint CollectionConfiguration::creationTime(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(CreationTimeKey, 0).toUInt(); }
bool CollectionConfiguration:: fullTextSearchFallbackEnabled( const QHelpEngineCore &helpEngine) { return helpEngine.customValue(FullTextSearchFallbackKey, false).toBool(); }
const QDateTime CollectionConfiguration::lastRegisterTime(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(LastRegisterTime, QDateTime()).toDateTime(); }
int CollectionConfiguration::lastTabPage(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(LastPageKey, 1).toInt(); }
const QStringList CollectionConfiguration::lastZoomFactors(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(LastZoomFactorsKey).toString(). split(ListSeparator, QString::SkipEmptyParts); }
const QString CollectionConfiguration::defaultHomePage(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(DefaultHomePageKey, QLatin1String("help")). toString(); }
void CollectionConfiguration::setDefaultHomePage(QHelpEngineCore &helpEngine, const QString &page) { helpEngine.setCustomValue(DefaultHomePageKey, page); }
bool CollectionConfiguration::documentationManagerEnabled(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(EnableDocManagerKey, true).toBool(); }
void CollectionConfiguration::setLastZoomFactors(QHelpEngineCore &helpEngine, const QStringList &lastZoomFactors) { helpEngine.setCustomValue(LastZoomFactorsKey, lastZoomFactors.join(ListSeparator)); }
void CollectionConfiguration::setDocumentationManagerEnabled(QHelpEngineCore &helpEngine, bool enabled) { helpEngine.setCustomValue(EnableDocManagerKey, enabled); }
void CollectionConfiguration::setLastTabPage(QHelpEngineCore &helpEngine, int lastPage) { helpEngine.setCustomValue(LastPageKey, lastPage); }
const QByteArray CollectionConfiguration::applicationIcon(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(ApplicationIconKey).toByteArray(); }
void CollectionConfiguration::updateLastRegisterTime(QHelpEngineCore &helpEngine) { helpEngine.setCustomValue(LastRegisterTime, QDateTime::currentDateTime()); }
void CollectionConfiguration::setAboutIcon(QHelpEngineCore &helpEngine, const QByteArray &icon) { helpEngine.setCustomValue(AboutIconKey, icon); }
void CollectionConfiguration::setFullTextSearchFallbackEnabled( QHelpEngineCore &helpEngine, bool on) { helpEngine.setCustomValue(FullTextSearchFallbackKey, on); }
void CollectionConfiguration::setAboutTexts(QHelpEngineCore &helpEngine, const QByteArray &texts) { helpEngine.setCustomValue(AboutTextsKey, texts); }
void CollectionConfiguration::setCreationTime(QHelpEngineCore &helpEngine, uint time) { helpEngine.setCustomValue(CreationTimeKey, time); }
const QByteArray CollectionConfiguration::aboutImages(const QHelpEngineCore &helpEngine) { return helpEngine.customValue(AboutImagesKey).toByteArray(); }
void CollectionConfiguration::setWindowTitle(QHelpEngineCore &helpEngine, const QString &windowTitle) { helpEngine.setCustomValue(WindowTitleKey, windowTitle); }
void CollectionConfiguration::setAboutImages(QHelpEngineCore &helpEngine, const QByteArray &images) { helpEngine.setCustomValue(AboutImagesKey, images); }