X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fresources%2FMetaInfo.java;h=917c21001c14482bc9292be0eaede3cd1c707bd5;hb=505be508ae7d3fb48122be548b310a238cfb91eb;hp=8ec98f9935168b9f0dbe231b1af917e5ce21a316;hpb=0f7de31e53a20527cdbe3887ea55916800fd3d5d;p=fanfix.git diff --git a/src/be/nikiroo/utils/resources/MetaInfo.java b/src/be/nikiroo/utils/resources/MetaInfo.java index 8ec98f9..917c210 100644 --- a/src/be/nikiroo/utils/resources/MetaInfo.java +++ b/src/be/nikiroo/utils/resources/MetaInfo.java @@ -477,12 +477,7 @@ public class MetaInfo> implements Iterable> { */ public void setString(String value, int item) { if (isArray() && item >= 0) { - List values = BundleHelper.parseList(this.value, -1); - for (int i = values.size(); i <= item; i++) { - values.add(null); - } - values.set(item, value); - this.value = BundleHelper.fromList(values); + this.value = BundleHelper.fromList(this.value, value, item); } else { this.value = value; } @@ -575,7 +570,8 @@ public class MetaInfo> implements Iterable> { value = null; } - for (Runnable listener : reloadedListeners) { + // Copy the list so we can create new listener in a listener + for (Runnable listener : new ArrayList(reloadedListeners)) { try { listener.run(); } catch (Exception e) { @@ -607,7 +603,8 @@ public class MetaInfo> implements Iterable> { * dirty flag) */ public void save(boolean onlyIfDirty) { - for (Runnable listener : saveListeners) { + // Copy the list so we can create new listener in a listener + for (Runnable listener : new ArrayList(saveListeners)) { try { listener.run(); } catch (Exception e) { @@ -652,6 +649,15 @@ public class MetaInfo> implements Iterable> { return children; } + /** + * The number of sub-items, if any. + * + * @return the number or 0 + */ + public int size() { + return children.size(); + } + @Override public Iterator> iterator() { return children.iterator();