// 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)
	})
}
Example #3
0
func ReloadUserSpecialDirsCache() {
	C.g_reload_user_special_dirs_cache()
}
Example #4
0
func getDesktopPath(name string) string {
	C.g_reload_user_special_dirs_cache()
	return p.Join(glib.GetUserSpecialDir(glib.UserDirectoryDirectoryDesktop), p.Base(name))
}