Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
269506c9
Commit
269506c9
authored
Jan 28, 2010
by
Kai Koehne
Browse files
Add new JavaScriptFiles & ImageFiles element to .qmlproject file format
parent
f3cf0c36
Changes
8
Hide whitespace changes
Inline
Side-by-side
src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp
View file @
269506c9
#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
)
src/plugins/qmlprojectmanager/fileformat/filefilteritems.h
View file @
269506c9
...
...
@@ -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
src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp
View file @
269506c9
...
...
@@ -79,22 +79,22 @@ void QmlProjectItem::setSourceDirectory(const QString &directoryPath)
}
/* Returns list of absolute paths */
QStringList
QmlProjectItem
::
qmlF
iles
()
const
QStringList
QmlProjectItem
::
f
iles
()
const
{
const
Q_D
(
QmlProjectItem
);
QStringList
qmlF
iles
;
QStringList
f
iles
;
for
(
int
i
=
0
;
i
<
d
->
content
.
size
();
++
i
)
{
QmlProjectContentItem
*
contentElement
=
d
->
content
.
at
(
i
);
Qml
FileFilterItem
*
qmlF
ileFilter
=
qobject_cast
<
Qml
FileFilterItem
*>
(
contentElement
);
if
(
qmlF
ileFilter
)
{
foreach
(
const
QString
&
file
,
qmlF
ileFilter
->
files
())
{
if
(
!
qmlF
iles
.
contains
(
file
))
qmlF
iles
<<
file
;
FileFilter
Base
Item
*
f
ileFilter
=
qobject_cast
<
FileFilter
Base
Item
*>
(
contentElement
);
if
(
f
ileFilter
)
{
foreach
(
const
QString
&
file
,
f
ileFilter
->
files
())
{
if
(
!
f
iles
.
contains
(
file
))
f
iles
<<
file
;
}
}
}
return
qmlF
iles
;
return
f
iles
;
}
}
// namespace QmlProjectManager
...
...
src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h
View file @
269506c9
...
...
@@ -35,7 +35,7 @@ public:
QString
sourceDirectory
()
const
;
void
setSourceDirectory
(
const
QString
&
directoryPath
);
QStringList
qmlF
iles
()
const
;
QStringList
f
iles
()
const
;
signals:
void
qmlFilesChanged
();
...
...
src/plugins/qmlprojectmanager/qmlproject.cpp
View file @
269506c9
...
...
@@ -155,7 +155,7 @@ void QmlProject::parseProject(RefreshOptions options)
}
if
(
m_projectItem
)
{
m_projectItem
.
data
()
->
setSourceDirectory
(
projectDir
().
path
());
m_modelManager
->
updateSourceFiles
(
m_projectItem
.
data
()
->
qmlF
iles
());
m_modelManager
->
updateSourceFiles
(
m_projectItem
.
data
()
->
f
iles
());
}
m_rootNode
->
refresh
();
}
...
...
@@ -196,7 +196,7 @@ QStringList QmlProject::files() const
{
QStringList
files
;
if
(
m_projectItem
)
{
files
=
m_projectItem
.
data
()
->
qmlF
iles
();
files
=
m_projectItem
.
data
()
->
f
iles
();
}
else
{
files
=
m_files
;
}
...
...
tests/auto/qml/qmlprojectmanager/fileformat/data/image.gif
0 → 100644
View file @
269506c9
tests/auto/qml/qmlprojectmanager/fileformat/data/script.js
0 → 100644
View file @
269506c9
tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat.cpp
View file @
269506c9
...
...
@@ -51,7 +51,7 @@ void TestProject::testQmlFileFilter()
QStringList
expectedFiles
(
QStringList
()
<<
testDataDir
+
"/file1.qml"
<<
testDataDir
+
"/file2.qml"
);
QCOMPARE
(
project
->
qmlF
iles
().
toSet
(),
expectedFiles
.
toSet
());
QCOMPARE
(
project
->
f
iles
().
toSet
(),
expectedFiles
.
toSet
());
}
//
...
...
@@ -81,7 +81,7 @@ void TestProject::testQmlFileFilter()
QStringList
expectedFiles
(
QStringList
()
<<
testDataDir
+
"/file1.qml"
<<
testDataDir
+
"/file2.qml"
<<
testDataDir
+
"/subdir/file3.qml"
);
QCOMPARE
(
project
->
qmlF
iles
().
toSet
(),
expectedFiles
.
toSet
());
QCOMPARE
(
project
->
f
iles
().
toSet
(),
expectedFiles
.
toSet
());
}
//
...
...
@@ -107,7 +107,7 @@ void TestProject::testQmlFileFilter()
project
->
setSourceDirectory
(
testDataDir
);
QStringList
expectedFiles
(
QStringList
()
<<
testDataDir
+
"/subdir/file3.qml"
);
QCOMPARE
(
project
->
qmlF
iles
().
toSet
(),
expectedFiles
.
toSet
());
QCOMPARE
(
project
->
f
iles
().
toSet
(),
expectedFiles
.
toSet
());
}
//
...
...
@@ -140,8 +140,8 @@ void TestProject::testQmlFileFilter()
QStringList
expectedFiles
(
QStringList
()
<<
testDataDir
+
"/file1.qml"
<<
testDataDir
+
"/file2.qml"
<<
testDataDir
+
"/subdir/file3.qml"
);
QCOMPARE
(
project
->
qmlF
iles
().
size
(),
3
);
QCOMPARE
(
project
->
qmlF
iles
().
toSet
(),
expectedFiles
.
toSet
());
QCOMPARE
(
project
->
f
iles
().
size
(),
3
);
QCOMPARE
(
project
->
f
iles
().
toSet
(),
expectedFiles
.
toSet
());
}
//
...
...
@@ -171,9 +171,37 @@ void TestProject::testQmlFileFilter()
QStringList
expectedFiles
(
QStringList
()
<<
testDataDir
+
"/file1.qml"
<<
testDataDir
+
"/file2.qml"
);
QCOMPARE
(
project
->
qmlF
iles
().
toSet
(),
expectedFiles
.
toSet
());
QCOMPARE
(
project
->
f
iles
().
toSet
(),
expectedFiles
.
toSet
());
}
//
// include specific list
//
projectFile
=
QLatin1String
(
"import QmlProject 1.0
\n
"
"Project {
\n
"
" ImageFiles {
\n
"
" directory:
\"
.
\"\n
"
" }
\n
"
"}
\n
"
);
{
QmlEngine
engine
;
QmlComponent
component
(
&
engine
);
component
.
setData
(
projectFile
.
toUtf8
(),
QUrl
());
if
(
!
component
.
isReady
())
qDebug
()
<<
component
.
errorsString
();
QVERIFY
(
component
.
isReady
());
QmlProjectItem
*
project
=
qobject_cast
<
QmlProjectItem
*>
(
component
.
create
());
QVERIFY
(
project
);
project
->
setSourceDirectory
(
testDataDir
);
QStringList
expectedFiles
(
QStringList
()
<<
testDataDir
+
"/image.gif"
);
qDebug
()
<<
project
->
files
().
toSet
()
<<
expectedFiles
.
toSet
();
QCOMPARE
(
project
->
files
().
toSet
(),
expectedFiles
.
toSet
());
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment