forked from qt-creator/qt-creator
QmlDesigner.itemlibrary: do not show non-visual content items
Task-number: QTCREATORBUG-4770
This commit is contained in:
@@ -327,7 +327,7 @@ QList<RewriterView::Error> DesignDocumentController::loadMaster(QPlainTextEdit *
|
|||||||
m_d->masterModel->attachView(m_d->rewriterView.data());
|
m_d->masterModel->attachView(m_d->rewriterView.data());
|
||||||
m_d->model = m_d->masterModel;
|
m_d->model = m_d->masterModel;
|
||||||
|
|
||||||
m_d->subComponentManager = new SubComponentManager(m_d->masterModel->metaInfo(), this);
|
m_d->subComponentManager = new SubComponentManager(m_d->masterModel.data(), this);
|
||||||
m_d->subComponentManager->update(m_d->searchPath, m_d->model->imports());
|
m_d->subComponentManager->update(m_d->searchPath, m_d->model->imports());
|
||||||
|
|
||||||
loadCurrentModel();
|
loadCurrentModel();
|
||||||
|
@@ -35,8 +35,6 @@
|
|||||||
|
|
||||||
#include "corelib_global.h"
|
#include "corelib_global.h"
|
||||||
|
|
||||||
#include <metainfo.h>
|
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
@@ -44,12 +42,17 @@
|
|||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
class Import;
|
class Import;
|
||||||
|
class Model;
|
||||||
|
|
||||||
|
namespace Internal {
|
||||||
|
class SubComponentManagerPrivate;
|
||||||
|
}
|
||||||
|
|
||||||
class CORESHARED_EXPORT SubComponentManager : public QObject
|
class CORESHARED_EXPORT SubComponentManager : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit SubComponentManager(MetaInfo metaInfo, QObject *parent = 0);
|
explicit SubComponentManager(Model *model, QObject *parent = 0);
|
||||||
~SubComponentManager();
|
~SubComponentManager();
|
||||||
|
|
||||||
void update(const QUrl &fileUrl, const QList<Import> &imports);
|
void update(const QUrl &fileUrl, const QList<Import> &imports);
|
||||||
@@ -60,7 +63,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
friend class Internal::SubComponentManagerPrivate;
|
friend class Internal::SubComponentManagerPrivate;
|
||||||
class Internal::SubComponentManagerPrivate *m_d;
|
Internal::SubComponentManagerPrivate *m_d;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -31,6 +31,7 @@
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#include "subcomponentmanager.h"
|
#include "subcomponentmanager.h"
|
||||||
|
#include "model.h"
|
||||||
#include "metainfo.h"
|
#include "metainfo.h"
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
@@ -81,7 +82,7 @@ static const QString QMLFILEPATTERN = QString(QLatin1String("*.qml"));
|
|||||||
class SubComponentManagerPrivate : QObject {
|
class SubComponentManagerPrivate : QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
SubComponentManagerPrivate(MetaInfo metaInfo, SubComponentManager *q);
|
SubComponentManagerPrivate(Model *model, SubComponentManager *q);
|
||||||
|
|
||||||
void addImport(int pos, const Import &import);
|
void addImport(int pos, const Import &import);
|
||||||
void removeImport(int pos);
|
void removeImport(int pos);
|
||||||
@@ -96,10 +97,11 @@ public:
|
|||||||
QList<QFileInfo> watchedFiles(const QString &canonicalDirPath);
|
QList<QFileInfo> watchedFiles(const QString &canonicalDirPath);
|
||||||
void unregisterQmlFile(const QFileInfo &fileInfo, const QString &qualifier);
|
void unregisterQmlFile(const QFileInfo &fileInfo, const QString &qualifier);
|
||||||
void registerQmlFile(const QFileInfo &fileInfo, const QString &qualifier, bool addToLibrary);
|
void registerQmlFile(const QFileInfo &fileInfo, const QString &qualifier, bool addToLibrary);
|
||||||
|
Model *model() const;
|
||||||
|
|
||||||
SubComponentManager *m_q;
|
SubComponentManager *m_q;
|
||||||
|
|
||||||
MetaInfo m_metaInfo;
|
QWeakPointer<Model> m_model;
|
||||||
|
|
||||||
QFileSystemWatcher m_watcher;
|
QFileSystemWatcher m_watcher;
|
||||||
|
|
||||||
@@ -111,9 +113,9 @@ public:
|
|||||||
QList<Import> m_imports;
|
QList<Import> m_imports;
|
||||||
};
|
};
|
||||||
|
|
||||||
SubComponentManagerPrivate::SubComponentManagerPrivate(MetaInfo metaInfo, SubComponentManager *q) :
|
SubComponentManagerPrivate::SubComponentManagerPrivate(Model *model, SubComponentManager *q) :
|
||||||
m_q(q),
|
m_q(q),
|
||||||
m_metaInfo(metaInfo)
|
m_model(model)
|
||||||
{
|
{
|
||||||
connect(&m_watcher, SIGNAL(directoryChanged(QString)), this, SLOT(parseDirectory(QString)));
|
connect(&m_watcher, SIGNAL(directoryChanged(QString)), this, SLOT(parseDirectory(QString)));
|
||||||
}
|
}
|
||||||
@@ -323,6 +325,9 @@ static inline bool isDepricatedQtType(const QString &typeName)
|
|||||||
void SubComponentManagerPrivate::registerQmlFile(const QFileInfo &fileInfo, const QString &qualifier,
|
void SubComponentManagerPrivate::registerQmlFile(const QFileInfo &fileInfo, const QString &qualifier,
|
||||||
bool addToLibrary)
|
bool addToLibrary)
|
||||||
{
|
{
|
||||||
|
if (!model())
|
||||||
|
return;
|
||||||
|
|
||||||
QString componentName = fileInfo.baseName();
|
QString componentName = fileInfo.baseName();
|
||||||
|
|
||||||
if (!qualifier.isEmpty()) {
|
if (!qualifier.isEmpty()) {
|
||||||
@@ -342,11 +347,20 @@ void SubComponentManagerPrivate::registerQmlFile(const QFileInfo &fileInfo, cons
|
|||||||
itemLibraryEntry.setName(componentName);
|
itemLibraryEntry.setName(componentName);
|
||||||
itemLibraryEntry.setCategory("QML Components");
|
itemLibraryEntry.setCategory("QML Components");
|
||||||
|
|
||||||
if (!m_metaInfo.itemLibraryInfo()->containsEntry(itemLibraryEntry))
|
|
||||||
m_metaInfo.itemLibraryInfo()->addEntry(itemLibraryEntry);
|
if (model()->metaInfo(componentName).isValid() && model()->metaInfo(componentName).isSubclassOf("QtQuick.Item", -1, -1) &&
|
||||||
|
!model()->metaInfo().itemLibraryInfo()->containsEntry(itemLibraryEntry)) {
|
||||||
|
|
||||||
|
model()->metaInfo().itemLibraryInfo()->addEntry(itemLibraryEntry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Model *SubComponentManagerPrivate::model() const
|
||||||
|
{
|
||||||
|
return m_model.data();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -356,9 +370,9 @@ void SubComponentManagerPrivate::registerQmlFile(const QFileInfo &fileInfo, cons
|
|||||||
these in the metatype system.
|
these in the metatype system.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SubComponentManager::SubComponentManager(MetaInfo metaInfo, QObject *parent) :
|
SubComponentManager::SubComponentManager(Model *model, QObject *parent) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
m_d(new Internal::SubComponentManagerPrivate(metaInfo, this))
|
m_d(new Internal::SubComponentManagerPrivate(model, this))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user