Ejemplo n.º 1
0
        public NoteController()
        {
            SparkleShare.Controller.ShowNoteWindowEvent += OnNoteWindowEvent;

            if (SparkleShare.Controller.AvatarsEnabled && !SparkleShare.Controller.FirstRun)
            {
                AvatarFilePath = Avatars.GetAvatar(SparkleShare.Controller.CurrentUser.Email, 48, SparkleShare.Controller.Config.DirectoryPath, SparkleShare.Controller.AvatarsProvider);
            }
        }
Ejemplo n.º 2
0
        private string GetAvatarFilePath(User user)
        {
            if (!SparkleShare.Controller.AvatarsEnabled)
            {
                return("<!-- $pixmaps-path -->/user-icon-default.png");
            }

            string fetched_avatar = Avatars.GetAvatar(user.Email, 48, SparkleShare.Controller.Config.DirectoryPath);

            if (!string.IsNullOrEmpty(fetched_avatar))
            {
                return("file://" + fetched_avatar.Replace("\\", "/"));
            }
            else
            {
                return("<!-- $pixmaps-path -->/user-icon-default.png");
            }
        }
Ejemplo n.º 3
0
        void AddRepository(string folder_path)
        {
            BaseRepository repo        = null;
            string         folder_name = Path.GetFileName(folder_path);
            string         backend     = Config.BackendByName(folder_name);

            try {
                repo = (BaseRepository)Activator.CreateInstance(
                    Type.GetType("Sparkles." + backend + "." + backend + "Repository, Sparkles." + backend),
                    new object [] { folder_path, Config, SSHAuthenticationInfo.DefaultAuthenticationInfo });
            } catch (Exception e) {
                Logger.LogInfo("Controller", "Failed to load backend '" + backend + "' for '" + folder_name + "': ", e);
                return;
            }

            repo.ChangesDetected += delegate {
                UpdateState();
            };

            repo.SyncStatusChanged += delegate(SyncStatus status) {
                if (status == SyncStatus.Idle)
                {
                    ProgressPercentage  = 0.0;
                    ProgressSpeedUp     = 0.0;
                    ProgressSpeedDown   = 0.0;
                    ProgressInformation = "";
                }

                UpdateState();
            };

            repo.ProgressChanged += delegate {
                ProgressPercentage  = 0.0;
                ProgressSpeedUp     = 0.0;
                ProgressSpeedDown   = 0.0;
                ProgressInformation = "";

                double percentage = 0.0;
                int    repo_count = 0;

                foreach (BaseRepository rep in Repositories)
                {
                    if (rep.ProgressPercentage > 0)
                    {
                        percentage += rep.ProgressPercentage;
                        repo_count++;
                    }

                    if (rep.Status == SyncStatus.SyncUp)
                    {
                        ProgressSpeedUp += rep.ProgressSpeed;
                    }

                    if (rep.Status == SyncStatus.SyncDown)
                    {
                        ProgressSpeedDown += rep.ProgressSpeed;
                    }
                }

                if (repo_count == 1)
                {
                    ProgressInformation = repo.ProgressInformation;
                }

                if (repo_count > 0)
                {
                    ProgressPercentage = percentage / repo_count;
                }

                UpdateState();
            };

            repo.NewChangeSet += delegate(ChangeSet change_set) {
                if (AvatarsEnabled)
                {
                    string provider = "gravatar";

                    if (AvatarsProvider == "libravatar")
                    {
                        provider = AvatarsProvider;
                    }


                    change_set.User.AvatarFilePath = Avatars.GetAvatar(change_set.User.Email, 48, Config.DirectoryPath, provider);
                }

                NotificationRaised(change_set);
            };

            repo.ConflictResolved += delegate {
                AlertNotificationRaised("Resolved a file collision", "Local and server versions were kept.");
            };

            AddRepository(repo);
            repo.Initialize();
        }