QmlDesigner: Hide current open component from item library

Fixes: QDS-14800
Change-Id: I11bb292c1db167dc5ae862073f0b90637dfa63cc
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Miikka Heikkinen
2025-02-27 14:54:56 +02:00
parent 14b1b5b633
commit c8f31558f7

View File

@@ -20,6 +20,7 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QFileInfo>
#include <QIODevice> #include <QIODevice>
#include <QLoggingCategory> #include <QLoggingCategory>
#include <QMetaProperty> #include <QMetaProperty>
@@ -362,6 +363,9 @@ void ItemLibraryModel::update(Model *model)
DesignDocument *document = QmlDesignerPlugin::instance()->currentDesignDocument(); DesignDocument *document = QmlDesignerPlugin::instance()->currentDesignDocument();
const bool blockNewImports = document->inFileComponentModelActive(); const bool blockNewImports = document->inFileComponentModelActive();
#endif #endif
TypeName currentFileType = QFileInfo(model->fileUrl().toLocalFile()).baseName().toUtf8();
const QList<ItemLibraryEntry> itemLibEntries = model->itemLibraryEntries(); const QList<ItemLibraryEntry> itemLibEntries = model->itemLibraryEntries();
for (const ItemLibraryEntry &entry : itemLibEntries) { for (const ItemLibraryEntry &entry : itemLibEntries) {
NodeMetaInfo metaInfo; NodeMetaInfo metaInfo;
@@ -421,6 +425,8 @@ void ItemLibraryModel::update(Model *model)
if (isUsable) { if (isUsable) {
if (catName == ItemLibraryImport::userComponentsTitle()) { if (catName == ItemLibraryImport::userComponentsTitle()) {
if (entry.requiredImport().isEmpty()) { // user components if (entry.requiredImport().isEmpty()) { // user components
if (currentFileType == entry.typeName())
continue;
importSection = importHash[ItemLibraryImport::userComponentsTitle()]; importSection = importHash[ItemLibraryImport::userComponentsTitle()];
if (!importSection) { if (!importSection) {
importSection = new ItemLibraryImport( importSection = new ItemLibraryImport(