Rewrite ::getObjects usage to use predicate version

This makes the code easier to read and shorter.

Change-Id: I6d582bd9861aa0208565301f61f098e9313b6c89
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
Daniel Teske
2014-05-08 11:58:23 +02:00
parent ce1a691abe
commit 3c413fc358
18 changed files with 120 additions and 179 deletions

View File

@@ -1380,11 +1380,10 @@ EditorManager::ExternalEditorList
template <class EditorFactoryLike> template <class EditorFactoryLike>
EditorFactoryLike *findById(const Core::Id &id) EditorFactoryLike *findById(const Core::Id &id)
{ {
const QList<EditorFactoryLike *> factories = ExtensionSystem::PluginManager::getObjects<EditorFactoryLike>(); return ExtensionSystem::PluginManager::getObject<EditorFactoryLike>(
foreach (EditorFactoryLike *efl, factories) [&id](EditorFactoryLike *efl) {
if (id == efl->id()) return id == efl->id();
return efl; });
return 0;
} }
IEditor *EditorManager::createEditor(const Id &editorId, const QString &fileName) IEditor *EditorManager::createEditor(const Id &editorId, const QString &fileName)

View File

@@ -795,14 +795,10 @@ void MainWindow::openFile()
static QList<IDocumentFactory*> getNonEditorDocumentFactories() static QList<IDocumentFactory*> getNonEditorDocumentFactories()
{ {
const QList<IDocumentFactory*> allFileFactories = return ExtensionSystem::PluginManager::getObjects<IDocumentFactory>(
ExtensionSystem::PluginManager::getObjects<IDocumentFactory>(); [](IDocumentFactory *factory) {
QList<IDocumentFactory*> nonEditorFileFactories; return !qobject_cast<IEditorFactory *>(factory);
foreach (IDocumentFactory *factory, allFileFactories) { });
if (!qobject_cast<IEditorFactory *>(factory))
nonEditorFileFactories.append(factory);
}
return nonEditorFileFactories;
} }
static IDocumentFactory *findDocumentFactory(const QList<IDocumentFactory*> &fileFactories, static IDocumentFactory *findDocumentFactory(const QList<IDocumentFactory*> &fileFactories,

View File

@@ -127,12 +127,10 @@ TextEditor::Indenter *CppCodeStylePreferencesFactory::createIndenter() const
TextEditor::ISnippetProvider *CppCodeStylePreferencesFactory::snippetProvider() const TextEditor::ISnippetProvider *CppCodeStylePreferencesFactory::snippetProvider() const
{ {
const QList<TextEditor::ISnippetProvider *> &providers = return ExtensionSystem::PluginManager::getObject<TextEditor::ISnippetProvider>(
ExtensionSystem::PluginManager::getObjects<TextEditor::ISnippetProvider>(); [](TextEditor::ISnippetProvider *provider) {
foreach (TextEditor::ISnippetProvider *provider, providers) return provider->groupId() == QLatin1String(CppEditor::Constants::CPP_SNIPPETS_GROUP_ID);
if (provider->groupId() == QLatin1String(CppEditor::Constants::CPP_SNIPPETS_GROUP_ID)) });
return provider;
return 0;
} }
QString CppCodeStylePreferencesFactory::previewText() const QString CppCodeStylePreferencesFactory::previewText() const

View File

@@ -486,15 +486,10 @@ void CppCodeStylePreferencesWidget::updatePreview()
void CppCodeStylePreferencesWidget::decorateEditors(const TextEditor::FontSettings &fontSettings) void CppCodeStylePreferencesWidget::decorateEditors(const TextEditor::FontSettings &fontSettings)
{ {
const ISnippetProvider *provider = 0; const ISnippetProvider *provider = ExtensionSystem::PluginManager::getObject<ISnippetProvider>(
const QList<ISnippetProvider *> &providers = [](ISnippetProvider *current) {
ExtensionSystem::PluginManager::getObjects<ISnippetProvider>(); return current->groupId() == QLatin1String(CppEditor::Constants::CPP_SNIPPETS_GROUP_ID);
foreach (const ISnippetProvider *current, providers) { });
if (current->groupId() == QLatin1String(CppEditor::Constants::CPP_SNIPPETS_GROUP_ID)) {
provider = current;
break;
}
}
foreach (TextEditor::SnippetEditorWidget *editor, m_previews) { foreach (TextEditor::SnippetEditorWidget *editor, m_previews) {
editor->baseTextDocument()->setFontSettings(fontSettings); editor->baseTextDocument()->setFontSettings(fontSettings);

View File

@@ -332,13 +332,10 @@ IBuildConfigurationFactory::~IBuildConfigurationFactory()
// restore // restore
IBuildConfigurationFactory *IBuildConfigurationFactory::find(Target *parent, const QVariantMap &map) IBuildConfigurationFactory *IBuildConfigurationFactory::find(Target *parent, const QVariantMap &map)
{ {
QList<IBuildConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<IBuildConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<IBuildConfigurationFactory>(); [&parent, map](IBuildConfigurationFactory *factory) {
foreach (IBuildConfigurationFactory *factory, factories) { return factory->canRestore(parent, map);
if (factory->canRestore(parent, map)) });
return factory;
}
return 0;
} }
// setup // setup
@@ -378,12 +375,9 @@ IBuildConfigurationFactory * IBuildConfigurationFactory::find(Target *parent)
// clone // clone
IBuildConfigurationFactory *IBuildConfigurationFactory::find(Target *parent, BuildConfiguration *bc) IBuildConfigurationFactory *IBuildConfigurationFactory::find(Target *parent, BuildConfiguration *bc)
{ {
QList<IBuildConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<IBuildConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<IBuildConfigurationFactory>(); [&parent, &bc](IBuildConfigurationFactory *factory) {
foreach (IBuildConfigurationFactory *factory, factories) { return factory->canClone(parent, bc);
if (factory->canClone(parent, bc)) });
return factory;
}
return 0;
} }
} // namespace ProjectExplorer } // namespace ProjectExplorer

View File

@@ -44,20 +44,18 @@ namespace {
IBuildStepFactory *findCloneFactory(BuildStepList *parent, BuildStep *source) IBuildStepFactory *findCloneFactory(BuildStepList *parent, BuildStep *source)
{ {
QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::getObjects<IBuildStepFactory>(); return ExtensionSystem::PluginManager::getObject<IBuildStepFactory>(
foreach (IBuildStepFactory *factory, factories) [&parent, &source](IBuildStepFactory *factory) {
if (factory->canClone(parent, source)) return factory->canClone(parent, source);
return factory; });
return 0;
} }
IBuildStepFactory *findRestoreFactory(BuildStepList *parent, const QVariantMap &map) IBuildStepFactory *findRestoreFactory(BuildStepList *parent, const QVariantMap &map)
{ {
QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::getObjects<IBuildStepFactory>(); return ExtensionSystem::PluginManager::getObject<IBuildStepFactory>(
foreach (IBuildStepFactory *factory, factories) [&parent, &map](IBuildStepFactory *factory) {
if (factory->canRestore(parent, map)) return factory->canRestore(parent, map);
return factory; });
return 0;
} }
const char STEPS_COUNT_KEY[] = "ProjectExplorer.BuildStepList.StepsCount"; const char STEPS_COUNT_KEY[] = "ProjectExplorer.BuildStepList.StepsCount";

View File

@@ -335,15 +335,16 @@ CustomWizard::CustomWizardContextPtr CustomWizard::context() const
CustomWizard *CustomWizard::createWizard(const CustomProjectWizard::CustomWizardParametersPtr &p, CustomWizard *CustomWizard::createWizard(const CustomProjectWizard::CustomWizardParametersPtr &p,
const Core::IWizard::Data &b) const Core::IWizard::Data &b)
{ {
ICustomWizardFactory * factory = ExtensionSystem::PluginManager::getObject<ICustomWizardFactory>(
[&p, &b](ICustomWizardFactory *factory) {
return ((p->klass.isEmpty() && b.kind == factory->kind())
|| (!p->klass.isEmpty() && p->klass == factory->klass()));
});
CustomWizard *rc = 0; CustomWizard *rc = 0;
QList<ICustomWizardFactory *> factories = ExtensionSystem::PluginManager::getObjects<ICustomWizardFactory>(); if (factory)
foreach (ICustomWizardFactory *tmp, factories) { rc = factory->create();
if ((p->klass.isEmpty() && b.kind == tmp->kind())
|| (!p->klass.isEmpty() && p->klass == tmp->klass())) {
rc = tmp->create();
break;
}
}
if (!rc) { if (!rc) {
qWarning("Unable to create custom wizard for class %s.", qPrintable(p->klass)); qWarning("Unable to create custom wizard for class %s.", qPrintable(p->klass));
return 0; return 0;

View File

@@ -227,36 +227,26 @@ DeployConfiguration *DeployConfigurationFactory::clone(Target *parent, DeployCon
DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map) DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, const QVariantMap &map)
{ {
QList<DeployConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<DeployConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<DeployConfigurationFactory>(); [&parent, &map](DeployConfigurationFactory *factory) {
foreach (DeployConfigurationFactory *factory, factories) { return factory->canRestore(parent, map);
if (factory->canRestore(parent, map)) });
return factory;
}
return 0;
} }
QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Target *parent) QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Target *parent)
{ {
QList<DeployConfigurationFactory *> result; return ExtensionSystem::PluginManager::getObjects<DeployConfigurationFactory>(
QList<DeployConfigurationFactory *> factories [&parent](DeployConfigurationFactory *factory) {
= ExtensionSystem::PluginManager::getObjects<DeployConfigurationFactory>(); return !factory->availableCreationIds(parent).isEmpty();
foreach (DeployConfigurationFactory *factory, factories) { });
if (!factory->availableCreationIds(parent).isEmpty())
result << factory;
}
return result;
} }
DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, DeployConfiguration *dc) DeployConfigurationFactory *DeployConfigurationFactory::find(Target *parent, DeployConfiguration *dc)
{ {
QList<DeployConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<DeployConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<DeployConfigurationFactory>(); [&parent, &dc](DeployConfigurationFactory *factory) {
foreach (DeployConfigurationFactory *factory, factories) { return factory->canClone(parent, dc);
if (factory->canClone(parent, dc)) });
return factory;
}
return 0;
} }
bool DeployConfigurationFactory::canHandle(Target *parent) const bool DeployConfigurationFactory::canHandle(Target *parent) const

View File

@@ -324,16 +324,16 @@ void DeviceManager::setDefaultDevice(Core::Id id)
const IDeviceFactory *DeviceManager::restoreFactory(const QVariantMap &map) const IDeviceFactory *DeviceManager::restoreFactory(const QVariantMap &map)
{ {
const QList<IDeviceFactory *> &factories IDeviceFactory *factory = ExtensionSystem::PluginManager::getObject<IDeviceFactory>(
= ExtensionSystem::PluginManager::getObjects<IDeviceFactory>(); [&map](IDeviceFactory *factory) {
foreach (const IDeviceFactory * const factory, factories) { return factory->canRestore(map);
if (factory->canRestore(map)) });
return factory;
} if (!factory)
qWarning("Warning: No factory found for device '%s' of type '%s'.", qWarning("Warning: No factory found for device '%s' of type '%s'.",
qPrintable(IDevice::idFromMap(map).toString()), qPrintable(IDevice::idFromMap(map).toString()),
qPrintable(IDevice::typeFromMap(map).toString())); qPrintable(IDevice::typeFromMap(map).toString()));
return 0; return factory;
} }
DeviceManager::DeviceManager(bool isInstance) : d(new DeviceManagerPrivate) DeviceManager::DeviceManager(bool isInstance) : d(new DeviceManagerPrivate)

View File

@@ -125,15 +125,12 @@ void DeviceSettingsWidget::initGui()
m_ui->configurationComboBox->setModel(m_deviceManagerModel); m_ui->configurationComboBox->setModel(m_deviceManagerModel);
m_ui->nameLineEdit->setValidator(m_nameValidator); m_ui->nameLineEdit->setValidator(m_nameValidator);
bool hasDeviceFactories = false;
const QList<IDeviceFactory *> &factories const QList<IDeviceFactory *> &factories
= ExtensionSystem::PluginManager::getObjects<IDeviceFactory>(); = ExtensionSystem::PluginManager::getObjects<IDeviceFactory>();
foreach (const IDeviceFactory *f, factories) {
if (f->canCreate()) { bool hasDeviceFactories = std::any_of(factories.constBegin(), factories.constEnd(),
hasDeviceFactories = true; [](IDeviceFactory *factory) { return factory->canCreate(); });
break;
}
}
m_ui->addConfigButton->setEnabled(hasDeviceFactories); m_ui->addConfigButton->setEnabled(hasDeviceFactories);
int lastIndex = Core::ICore::settings() int lastIndex = Core::ICore::settings()

View File

@@ -89,13 +89,10 @@ bool IDeviceFactory::canCreate() const
IDeviceFactory *IDeviceFactory::find(Core::Id type) IDeviceFactory *IDeviceFactory::find(Core::Id type)
{ {
QList<IDeviceFactory *> factories return ExtensionSystem::PluginManager::getObject<IDeviceFactory>(
= ExtensionSystem::PluginManager::getObjects<IDeviceFactory>(); [&type](IDeviceFactory *factory) {
foreach (IDeviceFactory *factory, factories) { return factory->availableCreationIds().contains(type);
if (factory->availableCreationIds().contains(type)) });
return factory;
}
return 0;
} }
IDeviceFactory::IDeviceFactory(QObject *parent) : QObject(parent) IDeviceFactory::IDeviceFactory(QObject *parent) : QObject(parent)

View File

@@ -293,14 +293,13 @@ KitInformation::ItemList DeviceTypeKitInformation::toUserOutput(const Kit *k) co
Core::Id type = deviceTypeId(k); Core::Id type = deviceTypeId(k);
QString typeDisplayName = tr("Unknown device type"); QString typeDisplayName = tr("Unknown device type");
if (type.isValid()) { if (type.isValid()) {
QList<IDeviceFactory *> factories IDeviceFactory *factory = ExtensionSystem::PluginManager::getObject<IDeviceFactory>(
= ExtensionSystem::PluginManager::getObjects<IDeviceFactory>(); [&type](IDeviceFactory *factory) {
foreach (IDeviceFactory *factory, factories) { return factory->availableCreationIds().contains(type);
if (factory->availableCreationIds().contains(type)) { });
typeDisplayName = factory->displayNameForId(type);
break; if (factory)
} typeDisplayName = factory->displayNameForId(type);
}
} }
return ItemList() << qMakePair(tr("Device type"), typeDisplayName); return ItemList() << qMakePair(tr("Device type"), typeDisplayName);
} }

View File

@@ -2445,11 +2445,10 @@ void ProjectExplorerPlugin::activeRunConfigurationChanged()
// NBS TODO implement more than one runner // NBS TODO implement more than one runner
IRunControlFactory *ProjectExplorerPlugin::findRunControlFactory(RunConfiguration *config, RunMode mode) IRunControlFactory *ProjectExplorerPlugin::findRunControlFactory(RunConfiguration *config, RunMode mode)
{ {
const QList<IRunControlFactory *> factories = ExtensionSystem::PluginManager::getObjects<IRunControlFactory>(); return ExtensionSystem::PluginManager::getObject<IRunControlFactory>(
foreach (IRunControlFactory *f, factories) [&config, &mode](IRunControlFactory *factory) {
if (f->canRun(config, mode)) return factory->canRun(config, mode);
return f; });
return 0;
} }
void ProjectExplorerPlugin::updateDeployActions() void ProjectExplorerPlugin::updateDeployActions()

View File

@@ -429,36 +429,26 @@ RunConfiguration *IRunConfigurationFactory::restore(Target *parent, const QVaria
IRunConfigurationFactory *IRunConfigurationFactory::find(Target *parent, const QVariantMap &map) IRunConfigurationFactory *IRunConfigurationFactory::find(Target *parent, const QVariantMap &map)
{ {
QList<IRunConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<IRunConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<IRunConfigurationFactory>(); [&parent, &map](IRunConfigurationFactory *factory) {
foreach (IRunConfigurationFactory *factory, factories) { return factory->canRestore(parent, map);
if (factory->canRestore(parent, map)) });
return factory;
}
return 0;
} }
IRunConfigurationFactory *IRunConfigurationFactory::find(Target *parent, RunConfiguration *rc) IRunConfigurationFactory *IRunConfigurationFactory::find(Target *parent, RunConfiguration *rc)
{ {
QList<IRunConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<IRunConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<IRunConfigurationFactory>(); [&parent, rc](IRunConfigurationFactory *factory) {
foreach (IRunConfigurationFactory *factory, factories) { return factory->canClone(parent, rc);
if (factory->canClone(parent, rc)) });
return factory;
}
return 0;
} }
QList<IRunConfigurationFactory *> IRunConfigurationFactory::find(Target *parent) QList<IRunConfigurationFactory *> IRunConfigurationFactory::find(Target *parent)
{ {
QList<IRunConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObjects<IRunConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<IRunConfigurationFactory>(); [&parent](IRunConfigurationFactory *factory) {
QList<IRunConfigurationFactory *> result; return !factory->availableCreationIds(parent).isEmpty();
foreach (IRunConfigurationFactory *factory, factories) { });
if (!factory->availableCreationIds(parent).isEmpty())
result << factory;
}
return result;
} }
/*! /*!

View File

@@ -501,7 +501,8 @@ QWidget *ToolChainOptionsPage::widget()
this, SLOT(toolChainSelectionChanged())); this, SLOT(toolChainSelectionChanged()));
// Get toolchainfactories: // Get toolchainfactories:
m_factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>(); m_factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>(
[](ToolChainFactory *factory) { return factory->canCreate();});
// Set up add menu: // Set up add menu:
QMenu *addMenu = new QMenu(m_addButton); QMenu *addMenu = new QMenu(m_addButton);
@@ -509,14 +510,12 @@ QWidget *ToolChainOptionsPage::widget()
connect(mapper, SIGNAL(mapped(QObject*)), this, SLOT(createToolChain(QObject*))); connect(mapper, SIGNAL(mapped(QObject*)), this, SLOT(createToolChain(QObject*)));
foreach (ToolChainFactory *factory, m_factories) { foreach (ToolChainFactory *factory, m_factories) {
if (factory->canCreate()) { QAction *action = new QAction(addMenu);
QAction *action = new QAction(addMenu); action->setText(factory->displayName());
action->setText(factory->displayName()); connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
connect(action, SIGNAL(triggered()), mapper, SLOT(map())); mapper->setMapping(action, static_cast<QObject *>(factory));
mapper->setMapping(action, static_cast<QObject *>(factory));
addMenu->addAction(action); addMenu->addAction(action);
}
} }
connect(m_cloneButton, SIGNAL(clicked()), mapper, SLOT(map())); connect(m_cloneButton, SIGNAL(clicked()), mapper, SLOT(map()));
mapper->setMapping(m_cloneButton, static_cast<QObject *>(0)); mapper->setMapping(m_cloneButton, static_cast<QObject *>(0));

View File

@@ -42,13 +42,10 @@ QmakeRunConfigurationFactory *QmakeRunConfigurationFactory::find(ProjectExplorer
if (!t) if (!t)
return 0; return 0;
QList<QmakeRunConfigurationFactory *> factories return ExtensionSystem::PluginManager::getObject<QmakeRunConfigurationFactory>(
= ExtensionSystem::PluginManager::getObjects<QmakeRunConfigurationFactory>(); [&t](QmakeRunConfigurationFactory *factory) {
foreach (QmakeRunConfigurationFactory *factory, factories) { return factory->canHandle(t);
if (factory->canHandle(t)) });
return factory;
}
return 0;
} }
} // namespace QmakeProjectManager } // namespace QmakeProjectManager

View File

@@ -92,12 +92,10 @@ TextEditor::Indenter *QmlJSCodeStylePreferencesFactory::createIndenter() const
TextEditor::ISnippetProvider *QmlJSCodeStylePreferencesFactory::snippetProvider() const TextEditor::ISnippetProvider *QmlJSCodeStylePreferencesFactory::snippetProvider() const
{ {
const QList<TextEditor::ISnippetProvider *> &providers = return ExtensionSystem::PluginManager::getObject<TextEditor::ISnippetProvider>(
ExtensionSystem::PluginManager::getObjects<TextEditor::ISnippetProvider>(); [](TextEditor::ISnippetProvider *provider) {
foreach (TextEditor::ISnippetProvider *provider, providers) return provider->groupId() == QLatin1String(QmlJSEditor::Constants::QML_SNIPPETS_GROUP_ID);
if (provider->groupId() == QLatin1String(QmlJSEditor::Constants::QML_SNIPPETS_GROUP_ID)) });
return provider;
return 0;
} }
QString QmlJSCodeStylePreferencesFactory::previewText() const QString QmlJSCodeStylePreferencesFactory::previewText() const

View File

@@ -61,14 +61,13 @@ QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget(QWidget *parent
{ {
m_ui->setupUi(this); m_ui->setupUi(this);
const QList<ISnippetProvider *> &providers = ISnippetProvider *provider = ExtensionSystem::PluginManager::getObject<ISnippetProvider>(
ExtensionSystem::PluginManager::getObjects<ISnippetProvider>(); [](ISnippetProvider *provider) {
foreach (ISnippetProvider *provider, providers) { return provider->groupId() == QLatin1String(QmlJSEditor::Constants::QML_SNIPPETS_GROUP_ID);
if (provider->groupId() == QLatin1String(QmlJSEditor::Constants::QML_SNIPPETS_GROUP_ID)) { });
provider->decorateEditor(m_ui->previewTextEdit);
break; if (provider)
} provider->decorateEditor(m_ui->previewTextEdit);
}
decorateEditor(TextEditorSettings::fontSettings()); decorateEditor(TextEditorSettings::fontSettings());
connect(TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), connect(TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
@@ -97,15 +96,10 @@ void QmlJSCodeStylePreferencesWidget::setPreferences(TextEditor::ICodeStylePrefe
void QmlJSCodeStylePreferencesWidget::decorateEditor(const TextEditor::FontSettings &fontSettings) void QmlJSCodeStylePreferencesWidget::decorateEditor(const TextEditor::FontSettings &fontSettings)
{ {
const ISnippetProvider *provider = 0; const ISnippetProvider *provider = ExtensionSystem::PluginManager::getObject<ISnippetProvider>(
const QList<ISnippetProvider *> &providers = [](ISnippetProvider *current) {
ExtensionSystem::PluginManager::getObjects<ISnippetProvider>(); return current->groupId() == QLatin1String(QmlJSEditor::Constants::QML_SNIPPETS_GROUP_ID);
foreach (const ISnippetProvider *current, providers) { });
if (current->groupId() == QLatin1String(QmlJSEditor::Constants::QML_SNIPPETS_GROUP_ID)) {
provider = current;
break;
}
}
m_ui->previewTextEdit->baseTextDocument()->setFontSettings(fontSettings); m_ui->previewTextEdit->baseTextDocument()->setFontSettings(fontSettings);
if (provider) if (provider)