diff --git a/SparkleLib/SparkleRepo.cs b/SparkleLib/SparkleRepo.cs index 15302761..a8734677 100644 --- a/SparkleLib/SparkleRepo.cs +++ b/SparkleLib/SparkleRepo.cs @@ -35,6 +35,7 @@ namespace SparkleLib { public string Name; public string Domain; + public string Description; public string LocalPath; public string RemoteOriginUrl; public string CurrentHash; @@ -83,6 +84,7 @@ namespace SparkleLib { RemoteOriginUrl = GetRemoteOriginUrl (); CurrentHash = GetCurrentHash (); Domain = GetDomain (RemoteOriginUrl); + Description = GetDescription (); if (CurrentHash == null) CreateInitialCommit (); @@ -487,6 +489,27 @@ namespace SparkleLib { } + // Gets the repository's description + public string GetDescription () + { + + string description_file_path = SparkleHelpers.CombineMore (LocalPath, ".git", "description"); + + if (!File.Exists (description_file_path)) + return null; + + StreamReader reader = new StreamReader (description_file_path); + string description = reader.ReadToEnd (); + reader.Close (); + + if (description.StartsWith ("Unnamed")) + description = null; + + return description; + + } + + // Gets hash of the current commit public string GetCurrentHash () { diff --git a/SparkleShare/SparkleStatusIcon.cs b/SparkleShare/SparkleStatusIcon.cs index 032a97ee..8c356519 100644 --- a/SparkleShare/SparkleStatusIcon.cs +++ b/SparkleShare/SparkleStatusIcon.cs @@ -215,16 +215,23 @@ namespace SparkleShare { if (SparkleUI.Repositories.Count > 0) { - foreach (SparkleRepo SparkleRepo in SparkleUI.Repositories) { + foreach (SparkleRepo repo in SparkleUI.Repositories) { - FolderAction = new Gtk.Action ("", SparkleRepo.Name) { + FolderAction = new Gtk.Action ("", repo.Name) { IconName = "folder", IsImportant = true }; - FolderAction.Activated += CreateWindowDelegate (SparkleRepo); + FolderAction.Activated += CreateWindowDelegate (repo); - Menu.Add (FolderAction.CreateMenuItem ()); + MenuItem menu_item = (MenuItem) FolderAction.CreateMenuItem (); + + if (repo.Description != null) + menu_item.TooltipText = repo.Description; + else + menu_item.TooltipText = "No description"; + + Menu.Add (menu_item); }