diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index 26cb96422ec..98148b7bd3f 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -65,6 +65,7 @@ #include #include #include +#include "projectexplorer/session.h" #include #include @@ -949,9 +950,25 @@ void addTabBarToStackedContainer(const SelectionContext &selectionContext) } +Utils::FilePath projectFilePath() +{ + if (auto *doc = QmlDesignerPlugin::instance()->documentManager().currentDesignDocument()) { + if (auto *proj = ProjectExplorer::SessionManager::projectForFile(doc->fileName())) + return proj->projectDirectory(); + } + return Utils::FilePath(); +} + bool addFontToProject(const QStringList &fileNames, const QString &defaultDirectory) { - QString directory = AddImagesDialog::getDirectory(fileNames, defaultDirectory); + + QString adjustedDefaultDirectory = defaultDirectory; + Utils::FilePath fonts = projectFilePath().pathAppended("fonts"); + + if (fonts.exists()) + adjustedDefaultDirectory = fonts.toString(); + + QString directory = AddImagesDialog::getDirectory(fileNames, adjustedDefaultDirectory); if (directory.isEmpty()) return true;