[App][Gui]Add Filter for PropertyFile in PropertyEditor

This commit is contained in:
wandererfan
2019-09-18 20:02:31 -04:00
committed by WandererFan
parent 63fa1d2c42
commit 375fe1bd48
3 changed files with 24 additions and 2 deletions

View File

@@ -630,7 +630,7 @@ TYPESYSTEM_SOURCE(App::PropertyFile , App::PropertyString)
PropertyFile::PropertyFile()
{
m_filter = "";
}
PropertyFile::~PropertyFile()
@@ -638,3 +638,13 @@ PropertyFile::~PropertyFile()
}
void PropertyFile::setFilter(const std::string f)
{
m_filter = f;
}
std::string PropertyFile::getFilter(void) const
{
return m_filter;
}

View File

@@ -52,9 +52,15 @@ class AppExport PropertyFile : public PropertyString
public:
PropertyFile(void);
virtual ~PropertyFile();
virtual const char* getEditorName(void) const
{ return "Gui::PropertyEditor::PropertyFileItem"; }
virtual void setFilter(const std::string filter);
virtual std::string getFilter(void) const;
private:
std::string m_filter;
};
/** File include properties

View File

@@ -3369,7 +3369,13 @@ QWidget* PropertyFileItem::createEditor(QWidget* parent, const QObject* receiver
void PropertyFileItem::setEditorData(QWidget *editor, const QVariant& data) const
{
const App::Property* prop = getFirstProperty();
const App::PropertyFile* propFile = static_cast<const App::PropertyFile*>(prop);
std::string filter = propFile->getFilter();
Gui::FileChooser *fc = qobject_cast<Gui::FileChooser*>(editor);
if (!filter.empty()) {
fc->setFilter(Base::Tools::fromStdString(filter));
}
fc->setFileName(data.toString());
}