forked from qt-creator/qt-creator
EffectComposer: Check if effect name is duplicate before saving
Task-number: QDS-12280 Change-Id: I42532ef8330ae518073a559edf7a41de834d98c9 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
@@ -50,11 +50,13 @@ StudioControls.Dialog {
|
||||
if (/[^A-Za-z0-9_]+/.test(text))
|
||||
errMsg = qsTr("Name contains invalid characters.")
|
||||
else if (!/^[A-Z]/.test(text))
|
||||
errMsg = qsTr("Name must start with a capital letter")
|
||||
errMsg = qsTr("Name must start with a capital letter.")
|
||||
else if (text.length < 3)
|
||||
errMsg = qsTr("Name must have at least 3 characters")
|
||||
errMsg = qsTr("Name must have at least 3 characters.")
|
||||
else if (/\s/.test(text))
|
||||
errMsg = qsTr("Name cannot contain white space")
|
||||
errMsg = qsTr("Name cannot contain white space.")
|
||||
else if (EffectComposerBackend.effectComposerModel.nameExists(text))
|
||||
errMsg = qsTr("Name is already taken.")
|
||||
|
||||
emptyText.text = errMsg
|
||||
btnSave.enabled = errMsg.length === 0
|
||||
|
||||
@@ -224,6 +224,14 @@ QString EffectComposerModel::getUniqueEffectName() const
|
||||
return QString("Effect%1").arg(num, 2, 10, QChar('0'));
|
||||
}
|
||||
|
||||
bool EffectComposerModel::nameExists(const QString &name) const
|
||||
{
|
||||
const QString effectsDir = QmlDesigner::ModelNodeOperations::getEffectsDefaultDirectory();
|
||||
const QString path = effectsDir + QDir::separator() + "%1" + ".qep";
|
||||
|
||||
return QFile::exists(path.arg(name));
|
||||
}
|
||||
|
||||
QString EffectComposerModel::fragmentShader() const
|
||||
{
|
||||
return m_fragmentShader;
|
||||
|
||||
@@ -71,6 +71,7 @@ public:
|
||||
Q_INVOKABLE void clear(bool clearName = false);
|
||||
Q_INVOKABLE void assignToSelected();
|
||||
Q_INVOKABLE QString getUniqueEffectName() const;
|
||||
Q_INVOKABLE bool nameExists(const QString &name) const;
|
||||
|
||||
bool shadersUpToDate() const;
|
||||
void setShadersUpToDate(bool newShadersUpToDate);
|
||||
|
||||
Reference in New Issue
Block a user