QWidget *VariantFactory::createEditor(QtVariantPropertyManager *manager, QtProperty *property, QWidget *parent) { if (manager->propertyType(property) == VariantManager::filePathTypeId()) { FileEdit *editor = new FileEdit(parent); QString path = manager->value(property).value<QtEntityUtils::FilePath>(); editor->setFilePath(path); editor->setFilter(manager->attributeValue(property, QLatin1String("filter")).toString()); _createdFileEditors[property].append(editor); _fileEditorToProperty[editor] = property; connect(editor, &FileEdit::filePathChanged, this, &VariantFactory::slotSetFilePathValue); connect(editor, &FileEdit::destroyed, this, &VariantFactory::slotEditorDestroyed); return editor; } if (manager->propertyType(property) == VariantManager::listId()) { ListEdit *editor = new ListEdit(parent); _createdListEditors[property].append(editor); _listEditorToProperty[editor] = property; connect(editor, &ListEdit::listChanged, this, &VariantFactory::slotSetListValue); connect(editor, &ListEdit::destroyed, this, &VariantFactory::slotEditorDestroyed); return editor; } return QtVariantEditorFactory::createEditor(manager, property, parent); }
QWidget *FileEditFactory::createEditor(FilePathManager *manager, QtProperty *property, QWidget *parent) { FileEdit *editor = new FileEdit(parent); editor->setFilePath(manager->value(property)); editor->setFilter(manager->filter(property)); theCreatedEditors[property].append(editor); theEditorToProperty[editor] = property; connect(editor, SIGNAL(filePathChanged(const QString &)), this, SLOT(slotSetValue(const QString &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; }
QWidget *SnVariantFactory::createEditor(QtVariantPropertyManager *manager, QtProperty *property, QWidget *parent) { if (manager->propertyType(property) == SnVariantManager::filePathTypeId()) { FileEdit *editor = new FileEdit(parent); editor->setFilePath(manager->value(property).toString()); editor->setFilter(manager->attributeValue(property, QLatin1String("filter")).toString()); theCreatedEditors[property].append(editor); theEditorToProperty[editor] = property; connect(editor, SIGNAL(filePathChanged(const QString &)), this, SLOT(slotSetValue(const QString &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; }
QWidget *VariantEditorFactory::createEditor(QtVariantPropertyManager *manager, QtProperty *property, QWidget *parent) { const int type = manager->propertyType(property); if (type == filePathTypeId()) { FileEdit *editor = new FileEdit(parent); FilePath filePath = manager->value(property).value<FilePath>(); editor->setFilePath(filePath.absolutePath); editor->setFilter(manager->attributeValue(property, QLatin1String("filter")).toString()); mCreatedFileEdits[property].append(editor); mFileEditToProperty[editor] = property; connect(editor, &FileEdit::filePathChanged, this, &VariantEditorFactory::fileEditFilePathChanged); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; }