MimeAppsListFile appsList = new MimeAppsListFile(); appsList.addAssociation("text/plain", "geany.desktop"); assert(appsList.addedAssociations() !is null); assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop"])); appsList.addAssociation("image/png", null); assert(!appsList.addedAssociations().contains("image/png")); string contents = `[Added Associations] text/plain=kde4-kate.desktop;emacs.desktop [Removed Associations] text/plain=kde4-okular.desktop;geany.desktop;`; appsList = new MimeAppsListFile(iniLikeStringReader(contents)); appsList.addAssociation("text/plain", "geany.desktop"); assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["kde4-kate.desktop", "emacs.desktop", "geany.desktop"])); assert(appsList.removedAssociations().appsForMimeType("text/plain").equal(["kde4-okular.desktop"])); contents = `[Removed Associations] text/plain=geany.desktop;`; appsList = new MimeAppsListFile(iniLikeStringReader(contents)); appsList.addAssociation("text/plain", "geany.desktop"); assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop"])); assert(!appsList.removedAssociations().contains("text/plain"));
Add desktopId as association for mimeType. Delete it from removed associations if listed. Note: This only changes the object, but not file itself.