forked from qt-creator/qt-creator
Add an option to style merge from string data
Task-number: QDS-8601 Change-Id: Icb56e5bc26c6cc3711c304641cce3cbbd6d7c8b2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -1525,8 +1525,11 @@ void mergeWithTemplate(const SelectionContext &selectionContext, ExternalDepende
|
||||
|
||||
const QString templateFile = getTemplateDialog(projectPath);
|
||||
|
||||
if (QFileInfo::exists(templateFile))
|
||||
StylesheetMerger::styleMerge(selectionContext.view()->model(), templateFile, externalDependencies);
|
||||
if (QFileInfo::exists(templateFile)) {
|
||||
StylesheetMerger::styleMerge(Utils::FilePath::fromString(templateFile),
|
||||
selectionContext.view()->model(),
|
||||
externalDependencies);
|
||||
}
|
||||
}
|
||||
|
||||
void removeGroup(const SelectionContext &selectionContext)
|
||||
|
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "qmldesignercorelib_global.h"
|
||||
|
||||
#include "utils/filepath.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QHash>
|
||||
#include <modelnode.h>
|
||||
@@ -26,7 +28,12 @@ class QMLDESIGNERCORE_EXPORT StylesheetMerger
|
||||
public:
|
||||
StylesheetMerger(AbstractView*, AbstractView*);
|
||||
void merge();
|
||||
static void styleMerge(Model *model, const QString &templateFile, class ExternalDependenciesInterface &externalDependencies);
|
||||
static void styleMerge(const Utils::FilePath &templateFile,
|
||||
Model *model,
|
||||
class ExternalDependenciesInterface &ed);
|
||||
static void styleMerge(const QString &qmlTemplateString,
|
||||
Model *model,
|
||||
class ExternalDependenciesInterface &externalDependencies);
|
||||
|
||||
private:
|
||||
void preprocessStyleSheet();
|
||||
|
@@ -515,7 +515,20 @@ void StylesheetMerger::merge()
|
||||
}
|
||||
}
|
||||
|
||||
void StylesheetMerger::styleMerge(Model *model, const QString &templateFile, ExternalDependenciesInterface &externalDependencies)
|
||||
void StylesheetMerger::styleMerge(const Utils::FilePath &templateFile,
|
||||
Model *model,
|
||||
ExternalDependenciesInterface &externalDependencies)
|
||||
{
|
||||
Utils::FileReader reader;
|
||||
|
||||
QTC_ASSERT(reader.fetch(templateFile), return );
|
||||
const QString qmlTemplateString = QString::fromUtf8(reader.data());
|
||||
StylesheetMerger::styleMerge(qmlTemplateString, model, externalDependencies);
|
||||
}
|
||||
|
||||
void StylesheetMerger::styleMerge(const QString &qmlTemplateString,
|
||||
Model *model,
|
||||
ExternalDependenciesInterface &externalDependencies)
|
||||
{
|
||||
Model *parentModel = model;
|
||||
|
||||
@@ -527,10 +540,6 @@ void StylesheetMerger::styleMerge(Model *model, const QString &templateFile, Ext
|
||||
templateModel->setFileUrl(parentModel->fileUrl());
|
||||
|
||||
QPlainTextEdit textEditTemplate;
|
||||
Utils::FileReader reader;
|
||||
|
||||
QTC_ASSERT(reader.fetch(Utils::FilePath::fromString(templateFile)), return);
|
||||
QString qmlTemplateString = QString::fromUtf8(reader.data());
|
||||
QString imports;
|
||||
|
||||
for (const Import &import : parentModel->imports()) {
|
||||
@@ -541,7 +550,8 @@ void StylesheetMerger::styleMerge(Model *model, const QString &templateFile, Ext
|
||||
textEditTemplate.setPlainText(imports + qmlTemplateString);
|
||||
NotIndentingTextEditModifier textModifierTemplate(&textEditTemplate);
|
||||
|
||||
QScopedPointer<RewriterView> templateRewriterView(new RewriterView(externalDependencies, RewriterView::Amend));
|
||||
QScopedPointer<RewriterView> templateRewriterView(
|
||||
new RewriterView(externalDependencies, RewriterView::Amend));
|
||||
templateRewriterView->setTextModifier(&textModifierTemplate);
|
||||
templateModel->attachView(templateRewriterView.data());
|
||||
templateRewriterView->setCheckSemanticErrors(false);
|
||||
@@ -560,7 +570,8 @@ void StylesheetMerger::styleMerge(Model *model, const QString &templateFile, Ext
|
||||
textEditStyle.setPlainText(parentRewriterView->textModifierContent());
|
||||
NotIndentingTextEditModifier textModifierStyle(&textEditStyle);
|
||||
|
||||
QScopedPointer<RewriterView> styleRewriterView(new RewriterView(externalDependencies, RewriterView::Amend));
|
||||
QScopedPointer<RewriterView> styleRewriterView(
|
||||
new RewriterView(externalDependencies, RewriterView::Amend));
|
||||
styleRewriterView->setTextModifier(&textModifierStyle);
|
||||
styleModel->attachView(styleRewriterView.data());
|
||||
|
||||
|
Reference in New Issue
Block a user