forked from qt-creator/qt-creator
Add new JavaScriptFiles & ImageFiles element to .qmlproject file format
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "filefilteritems.h"
|
||||
#include <qdebug.h>
|
||||
#include <QtGui/QImageReader>
|
||||
|
||||
namespace QmlProjectManager {
|
||||
|
||||
@@ -167,6 +168,27 @@ QmlFileFilterItem::QmlFileFilterItem(QObject *parent)
|
||||
setFilter(QLatin1String("*.qml"));
|
||||
}
|
||||
|
||||
|
||||
JsFileFilterItem::JsFileFilterItem(QObject *parent)
|
||||
: FileFilterBaseItem(parent)
|
||||
{
|
||||
setFilter(QLatin1String("*.js"));
|
||||
}
|
||||
|
||||
ImageFileFilterItem::ImageFileFilterItem(QObject *parent)
|
||||
: FileFilterBaseItem(parent)
|
||||
{
|
||||
QString filter;
|
||||
// supported image formats according to
|
||||
QList<QByteArray> extensions = QImageReader::supportedImageFormats();
|
||||
foreach (const QByteArray &extension, extensions) {
|
||||
filter.append(QString("*.%1;").arg(QString::fromAscii(extension)));
|
||||
}
|
||||
setFilter(filter);
|
||||
}
|
||||
|
||||
} // namespace QmlProjectManager
|
||||
|
||||
QML_DEFINE_TYPE(QmlProject,1,0,QmlFiles,QmlProjectManager::QmlFileFilterItem)
|
||||
QML_DEFINE_TYPE(QmlProject,1,0,JavaScriptFiles,QmlProjectManager::JsFileFilterItem)
|
||||
QML_DEFINE_TYPE(QmlProject,1,0,ImageFiles,QmlProjectManager::ImageFileFilterItem)
|
||||
|
||||
@@ -76,8 +76,26 @@ public:
|
||||
QmlFileFilterItem(QObject *parent = 0);
|
||||
};
|
||||
|
||||
class JsFileFilterItem : public FileFilterBaseItem {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged())
|
||||
|
||||
public:
|
||||
JsFileFilterItem(QObject *parent = 0);
|
||||
};
|
||||
|
||||
class ImageFileFilterItem : public FileFilterBaseItem {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged())
|
||||
|
||||
public:
|
||||
ImageFileFilterItem(QObject *parent = 0);
|
||||
};
|
||||
|
||||
} // namespace QmlProjectManager
|
||||
|
||||
QML_DECLARE_TYPE(QmlProjectManager::QmlFileFilterItem)
|
||||
QML_DECLARE_TYPE(QmlProjectManager::JsFileFilterItem)
|
||||
QML_DECLARE_TYPE(QmlProjectManager::ImageFileFilterItem)
|
||||
|
||||
#endif // FILEFILTERITEMS_HPROJECTITEM_H
|
||||
|
||||
@@ -79,22 +79,22 @@ void QmlProjectItem::setSourceDirectory(const QString &directoryPath)
|
||||
}
|
||||
|
||||
/* Returns list of absolute paths */
|
||||
QStringList QmlProjectItem::qmlFiles() const
|
||||
QStringList QmlProjectItem::files() const
|
||||
{
|
||||
const Q_D(QmlProjectItem);
|
||||
QStringList qmlFiles;
|
||||
QStringList files;
|
||||
|
||||
for (int i = 0; i < d->content.size(); ++i) {
|
||||
QmlProjectContentItem *contentElement = d->content.at(i);
|
||||
QmlFileFilterItem *qmlFileFilter = qobject_cast<QmlFileFilterItem*>(contentElement);
|
||||
if (qmlFileFilter) {
|
||||
foreach (const QString &file, qmlFileFilter->files()) {
|
||||
if (!qmlFiles.contains(file))
|
||||
qmlFiles << file;
|
||||
FileFilterBaseItem *fileFilter = qobject_cast<FileFilterBaseItem*>(contentElement);
|
||||
if (fileFilter) {
|
||||
foreach (const QString &file, fileFilter->files()) {
|
||||
if (!files.contains(file))
|
||||
files << file;
|
||||
}
|
||||
}
|
||||
}
|
||||
return qmlFiles;
|
||||
return files;
|
||||
}
|
||||
|
||||
} // namespace QmlProjectManager
|
||||
|
||||
@@ -35,7 +35,7 @@ public:
|
||||
QString sourceDirectory() const;
|
||||
void setSourceDirectory(const QString &directoryPath);
|
||||
|
||||
QStringList qmlFiles() const;
|
||||
QStringList files() const;
|
||||
|
||||
signals:
|
||||
void qmlFilesChanged();
|
||||
|
||||
@@ -155,7 +155,7 @@ void QmlProject::parseProject(RefreshOptions options)
|
||||
}
|
||||
if (m_projectItem) {
|
||||
m_projectItem.data()->setSourceDirectory(projectDir().path());
|
||||
m_modelManager->updateSourceFiles(m_projectItem.data()->qmlFiles());
|
||||
m_modelManager->updateSourceFiles(m_projectItem.data()->files());
|
||||
}
|
||||
m_rootNode->refresh();
|
||||
}
|
||||
@@ -196,7 +196,7 @@ QStringList QmlProject::files() const
|
||||
{
|
||||
QStringList files;
|
||||
if (m_projectItem) {
|
||||
files = m_projectItem.data()->qmlFiles();
|
||||
files = m_projectItem.data()->files();
|
||||
} else {
|
||||
files = m_files;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user