// RequestCreatingAppGroup creates app group according to the files, and emits AppGroupCreated signal when it's done. func (app *Application) RequestCreatingAppGroup(files []string) error { C.g_reload_user_special_dirs_cache() desktopDir := GetDesktopDir() availableFiles := filterDesktop(files) // get group name groupName := getGroupName(availableFiles) dirName := AppGroupPrefix + groupName // create app group. createJob := operations.NewCreateDirectoryJob(desktopDir, dirName, nil) createJob.Execute() if err := createJob.GetError(); err != nil { Log.Error("create appgroup failed:", err) return err } appGroupURI := createJob.Result().(string) // move files into app group. moveJob := operations.NewMoveJob(availableFiles, appGroupURI, "", 0, nil) moveJob.Execute() if err := moveJob.GetError(); err != nil { Log.Error("move apps to appgroup failed:", err) return err } return app.emitAppGroupCreated(appGroupURI, availableFiles) }
// NewGetTemplateJob creates a new get template job for dbus. func (backend *OperationBackend) NewGetTemplateJob() (string, dbus.ObjectPath, string, error) { Log.Debug("NewGetTemplateJob") C.g_reload_user_special_dirs_cache() templateDirPath := glib.GetUserSpecialDir(glib.UserDirectoryDirectoryTemplates) return newOperationJob([]string{templateDirPath}, func(uris []string, args ...interface{}) dbus.DBusObject { templateDirURI := uris[0] return d.NewGetTemplateJob(templateDirURI) }) }
func ReloadUserSpecialDirsCache() { C.g_reload_user_special_dirs_cache() }
func getDesktopPath(name string) string { C.g_reload_user_special_dirs_cache() return p.Join(glib.GetUserSpecialDir(glib.UserDirectoryDirectoryDesktop), p.Base(name)) }