MimeAppsListFile.setDefaultApplication

Set desktopId as default application for mimeType. Set it as first element in the list of added associations. Delete it from removed associations if listed. Note: This only changes the object, but not file itself.

class MimeAppsListFile
@trusted
void
setDefaultApplication
(
string mimeType
,
string desktopId
)

Examples

1         MimeAppsListFile appsList = new MimeAppsListFile();
2         appsList.setDefaultApplication("text/plain", "geany.desktop");
3         assert(appsList.defaultApplications() !is null);
4         assert(appsList.addedAssociations() !is null);
5         assert(appsList.defaultApplications().appsForMimeType("text/plain").equal(["geany.desktop"]));
6         assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop"]));
7 
8         appsList.setDefaultApplication("image/png", null);
9         assert(!appsList.defaultApplications().contains("image/png"));
10 
11         string contents =
12 `[Default Applications]
13 text/plain=kde4-kate.desktop`;
14 
15         appsList = new MimeAppsListFile(iniLikeStringReader(contents));
16         appsList.setDefaultApplication("text/plain", "geany.desktop");
17         assert(appsList.defaultApplications().appsForMimeType("text/plain").equal(["geany.desktop"]));
18         assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop"]));
19 
20         contents =
21 `[Default Applications]
22 text/plain=kde4-kate.desktop
23 [Added Associations]
24 text/plain=kde4-kate.desktop;emacs.desktop;`;
25 
26         appsList = new MimeAppsListFile(iniLikeStringReader(contents));
27         appsList.setDefaultApplication("text/plain", "geany.desktop");
28         assert(appsList.defaultApplications().appsForMimeType("text/plain").equal(["geany.desktop"]));
29         assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop", "kde4-kate.desktop", "emacs.desktop"]));
30 
31         contents =
32 `[Default Applications]
33 text/plain=emacs.desktop
34 [Added Associations]
35 text/plain=emacs.desktop;kde4-kate.desktop;geany.desktop;`;
36 
37         appsList = new MimeAppsListFile(iniLikeStringReader(contents));
38         appsList.setDefaultApplication("text/plain", "geany.desktop");
39         assert(appsList.defaultApplications().appsForMimeType("text/plain").equal(["geany.desktop"]));
40         assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop", "emacs.desktop", "kde4-kate.desktop"]));
41 
42         contents =
43 `[Default Applications]
44 text/plain=emacs.desktop
45 [Added Associations]
46 text/plain=emacs.desktop;kde4-kate.desktop;
47 [Removed Associations]
48 text/plain=kde4-okular.desktop;geany.desktop`;
49 
50         appsList = new MimeAppsListFile(iniLikeStringReader(contents));
51         appsList.setDefaultApplication("text/plain", "geany.desktop");
52         assert(appsList.removedAssociations() !is null);
53         assert(appsList.defaultApplications().appsForMimeType("text/plain").equal(["geany.desktop"]));
54         assert(appsList.addedAssociations().appsForMimeType("text/plain").equal(["geany.desktop", "emacs.desktop", "kde4-kate.desktop"]));
55         assert(appsList.removedAssociations().appsForMimeType("text/plain").equal(["kde4-okular.desktop"]));
56 

Meta