Мне нужно создать файл с несколькими общими функциями для нескольких файлов QML.
Я пытался создать файл .js, но кажется, что перечисления C ++ здесь не работают. FileSystemModel.TYPE_DIR
здесь не определено, тогда как в QML он прекрасно работает после import FileSystemModel 1.0
.pragma library
.import FileSystemModel 1.0 as FileSystemModel
function fsItemTypeToImage(type) {
console.log(FileSystemModel.TYPE_DIR)
switch (type) {
case FileSystemModel.TYPE_DIR:
return "/img/dir.png"
case FileSystemModel.TYPE_FILE:
return "/img/file.png"
}
return null
}
FileSystemModel.h:
class FileSystemModel : public QAbstractListModel {
Q_OBJECT
public:
enum Roles { NameRole = Qt::UserRole + 1, SizeRole, DateRole, TypeRole };
enum ItemType {
TYPE_UNKNOWN = 0,
TYPE_FILE,
TYPE_DIR,
};
Q_ENUM(ItemType)
регистрация в main.cpp:
qmlRegisterType<FileSystemModel>("FileSystemModel", 1, 0, "FileSystemModel");