From ccab280b21f53505c1a9dccf183b651619f7065a Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Thu, 25 Nov 2010 12:54:58 +0100 Subject: [PATCH] QmlProject: Support arbitrary file suffixes Add new "Files {}" element that supports showing files with arbitrary endings in the project tree. This new element is only available in new "QmlProject 1.1" namespace. Task-number: QTCREATORBUG-3197 Reviewed-by: Thomas Hartmann --- .../qml-type-descriptions/qmlproject-types.xml | 11 +++++++++++ .../fileformat/filefilteritems.cpp | 11 +++++++++++ .../qmlprojectmanager/fileformat/filefilteritems.h | 14 ++++++++++++++ .../fileformat/qmlprojectfileformat.cpp | 6 ++++++ 4 files changed, 42 insertions(+) diff --git a/share/qtcreator/qml-type-descriptions/qmlproject-types.xml b/share/qtcreator/qml-type-descriptions/qmlproject-types.xml index f8ae4aa1bcc..0a7a68e0348 100644 --- a/share/qtcreator/qml-type-descriptions/qmlproject-types.xml +++ b/share/qtcreator/qml-type-descriptions/qmlproject-types.xml @@ -3,6 +3,7 @@ <type name="QmlProject.Project"> <exports> <export module="QmlProject" version="1.0" type="Project"/> + <export module="QmlProject" version="1.1" type="Project"/> </exports> <property name="sourceDirectory" type="string"/> <property name="importPaths" type="string" isList="true"/> @@ -19,24 +20,34 @@ <type name="QmlProject.QmlFiles" extends="FileFilterBaseItem"> <exports> <export module="QmlProject" version="1.0" type="QmlFiles"/> + <export module="QmlProject" version="1.1" type="QmlFiles"/> </exports> </type> <type name="QmlProject.JavaScriptFiles" extends="FileFilterBaseItem"> <exports> <export module="QmlProject" version="1.0" type="JavaScriptFiles"/> + <export module="QmlProject" version="1.1" type="JavaScriptFiles"/> </exports> <property name="filter" type="string"/> </type> <type name="QmlProject.ImageFiles" extends="FileFilterBaseItem"> <exports> <export module="QmlProject" version="1.0" type="ImageFiles"/> + <export module="QmlProject" version="1.1" type="ImageFiles"/> </exports> <property name="filter" type="string"/> </type> <type name="QmlProject.CssFiles" extends="FileFilterBaseItem"> <exports> <export module="QmlProject" version="1.0" type="CssFiles"/> + <export module="QmlProject" version="1.1" type="CssFiles"/> </exports> <property name="filter" type="string"/> </type> + <type name="QmlProject.Files" extends="FileFilterBaseItem"> + <exports> + <export module="QmlProject" version="1.1" type="Files"/> + </exports> + <property name="filter" type="string"/> + </type> </module> diff --git a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp index 3c2ab7c8d9c..f5e9c78afd4 100644 --- a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp @@ -296,5 +296,16 @@ void CssFileFilterItem::setFilter(const QString &filter) emit filterChanged(); } +OtherFileFilterItem::OtherFileFilterItem(QObject *parent) + : FileFilterBaseItem(parent) +{ +} + +void OtherFileFilterItem::setFilter(const QString &filter) +{ + FileFilterBaseItem::setFilter(filter); + emit filterChanged(); +} + } // namespace QmlProjectManager diff --git a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h index 9c69c31bc28..ac007d1f380 100644 --- a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h +++ b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h @@ -131,11 +131,25 @@ public: CssFileFilterItem(QObject *parent = 0); }; +class OtherFileFilterItem : public FileFilterBaseItem { + Q_OBJECT + Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged) + + void setFilter(const QString &filter); + +signals: + void filterChanged(); + +public: + OtherFileFilterItem(QObject *parent = 0); +}; + } // namespace QmlProjectManager QML_DECLARE_TYPE(QmlProjectManager::QmlFileFilterItem) QML_DECLARE_TYPE(QmlProjectManager::JsFileFilterItem) QML_DECLARE_TYPE(QmlProjectManager::ImageFileFilterItem) QML_DECLARE_TYPE(QmlProjectManager::CssFileFilterItem) +QML_DECLARE_TYPE(QmlProjectManager::OtherFileFilterItem) #endif // FILEFILTERITEMS_HPROJECTITEM_H diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp index 46b624fec48..220deb62c31 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp @@ -10,11 +10,17 @@ void QmlProjectFileFormat::registerDeclarativeTypes() { qmlRegisterType<QmlProjectManager::QmlProjectContentItem>(); qmlRegisterType<QmlProjectManager::QmlProjectItem>("QmlProject",1,0,"Project"); + qmlRegisterType<QmlProjectManager::QmlProjectItem>("QmlProject",1,1,"Project"); qmlRegisterType<QmlProjectManager::QmlFileFilterItem>("QmlProject",1,0,"QmlFiles"); + qmlRegisterType<QmlProjectManager::QmlFileFilterItem>("QmlProject",1,1,"QmlFiles"); qmlRegisterType<QmlProjectManager::JsFileFilterItem>("QmlProject",1,0,"JavaScriptFiles"); + qmlRegisterType<QmlProjectManager::JsFileFilterItem>("QmlProject",1,1,"JavaScriptFiles"); qmlRegisterType<QmlProjectManager::ImageFileFilterItem>("QmlProject",1,0,"ImageFiles"); + qmlRegisterType<QmlProjectManager::ImageFileFilterItem>("QmlProject",1,1,"ImageFiles"); qmlRegisterType<QmlProjectManager::CssFileFilterItem>("QmlProject",1,0,"CssFiles"); + qmlRegisterType<QmlProjectManager::CssFileFilterItem>("QmlProject",1,1,"CssFiles"); + qmlRegisterType<QmlProjectManager::OtherFileFilterItem>("QmlProject",1,1,"Files"); } } // namespace QmlProjectManager -- GitLab