Effects.qml 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. pragma Singleton
  2. import QtQuick 2.5
  3. Item {
  4. property var names: ["Emboss", "Billboard", "GaussianBlur"]
  5. property var components: []
  6. property string randomEffectText: "Random"
  7. function indexOf(name) {
  8. if (name === randomEffectText)
  9. return Math.floor(Math.random()*components.length)
  10. else
  11. return names.indexOf(name)
  12. }
  13. function validate(name) {
  14. var valid = (name === randomEffectText) || (indexOf(name) !== -1)
  15. if (!valid) console.log('Requested effect: ' + name + ' does not exist')
  16. return valid
  17. }
  18. function getComponent(name) {
  19. var i = indexOf(name)
  20. return components[i]
  21. }
  22. Component.onCompleted: {
  23. names.forEach(function(name) {
  24. var comp = Qt.createComponent(name + ".qml")
  25. if (comp.status !== Component.Ready) {
  26. console.log('Component failed with:' + comp.errorString())
  27. } else {
  28. components.push(comp)
  29. }
  30. })
  31. }
  32. }