From 470fc8b61d95846d1d375194b53bc6cfff28f92a Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Sat, 18 Aug 2012 21:14:29 +0100 Subject: [PATCH] linux: Fix custom folder icon in Nautilus --- SparkleShare/Linux/Pixmaps/icons/Makefile.am | 24 +++++----- ...parkleshare-16.png => sparkleshare-16.png} | Bin ...parkleshare-22.png => sparkleshare-22.png} | Bin ...parkleshare-24.png => sparkleshare-24.png} | Bin ...rkleshare-256.png => sparkleshare-256.png} | Bin ...parkleshare-32.png => sparkleshare-32.png} | Bin ...parkleshare-48.png => sparkleshare-48.png} | Bin SparkleShare/Linux/SparkleController.cs | 43 ++++++++---------- SparkleShare/Linux/SparkleStatusIcon.cs | 2 +- SparkleShare/Linux/sparkleshare.desktop | 2 +- SparkleShare/SparkleBubblesController.cs | 1 + 11 files changed, 35 insertions(+), 37 deletions(-) rename SparkleShare/Linux/Pixmaps/icons/{folder-sparkleshare-16.png => sparkleshare-16.png} (100%) rename SparkleShare/Linux/Pixmaps/icons/{folder-sparkleshare-22.png => sparkleshare-22.png} (100%) rename SparkleShare/Linux/Pixmaps/icons/{folder-sparkleshare-24.png => sparkleshare-24.png} (100%) rename SparkleShare/Linux/Pixmaps/icons/{folder-sparkleshare-256.png => sparkleshare-256.png} (100%) rename SparkleShare/Linux/Pixmaps/icons/{folder-sparkleshare-32.png => sparkleshare-32.png} (100%) rename SparkleShare/Linux/Pixmaps/icons/{folder-sparkleshare-48.png => sparkleshare-48.png} (100%) diff --git a/SparkleShare/Linux/Pixmaps/icons/Makefile.am b/SparkleShare/Linux/Pixmaps/icons/Makefile.am index c949e4b5..bff02e9a 100755 --- a/SparkleShare/Linux/Pixmaps/icons/Makefile.am +++ b/SparkleShare/Linux/Pixmaps/icons/Makefile.am @@ -6,21 +6,21 @@ system_themedir = $(datadir)/icons/$(theme) app_themedir = $(pkgdatadir)/icons/$(theme) system_theme_icons = \ - apps,folder-sparkleshare-16.png \ - apps,folder-sparkleshare-22.png \ - apps,folder-sparkleshare-24.png \ - apps,folder-sparkleshare-256.png \ - apps,folder-sparkleshare-32.png \ - apps,folder-sparkleshare-48.png + apps,sparkleshare-16.png \ + apps,sparkleshare-22.png \ + apps,sparkleshare-24.png \ + apps,sparkleshare-256.png \ + apps,sparkleshare-32.png \ + apps,sparkleshare-48.png app_theme_icons = \ animations,process-working-22.png \ - places,folder-sparkleshare-16.png \ - places,folder-sparkleshare-22.png \ - places,folder-sparkleshare-24.png \ - places,folder-sparkleshare-256.png \ - places,folder-sparkleshare-32.png \ - places,folder-sparkleshare-48.png \ + places,sparkleshare-16.png \ + places,sparkleshare-22.png \ + places,sparkleshare-24.png \ + places,sparkleshare-256.png \ + places,sparkleshare-32.png \ + places,sparkleshare-48.png \ status,process-syncing-i-24.png \ status,process-syncing-ii-24.png \ status,process-syncing-iii-24.png \ diff --git a/SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-16.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-16.png similarity index 100% rename from SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-16.png rename to SparkleShare/Linux/Pixmaps/icons/sparkleshare-16.png diff --git a/SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-22.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-22.png similarity index 100% rename from SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-22.png rename to SparkleShare/Linux/Pixmaps/icons/sparkleshare-22.png diff --git a/SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-24.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-24.png similarity index 100% rename from SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-24.png rename to SparkleShare/Linux/Pixmaps/icons/sparkleshare-24.png diff --git a/SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-256.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-256.png similarity index 100% rename from SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-256.png rename to SparkleShare/Linux/Pixmaps/icons/sparkleshare-256.png diff --git a/SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-32.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-32.png similarity index 100% rename from SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-32.png rename to SparkleShare/Linux/Pixmaps/icons/sparkleshare-32.png diff --git a/SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-48.png b/SparkleShare/Linux/Pixmaps/icons/sparkleshare-48.png similarity index 100% rename from SparkleShare/Linux/Pixmaps/icons/folder-sparkleshare-48.png rename to SparkleShare/Linux/Pixmaps/icons/sparkleshare-48.png diff --git a/SparkleShare/Linux/SparkleController.cs b/SparkleShare/Linux/SparkleController.cs index cd63da07..2a85a4a8 100755 --- a/SparkleShare/Linux/SparkleController.cs +++ b/SparkleShare/Linux/SparkleController.cs @@ -120,38 +120,35 @@ namespace SparkleShare { // Creates the SparkleShare folder in the user's home folder public override bool CreateSparkleShareFolder () { + bool folder_created = false; + if (!Directory.Exists (SparkleConfig.DefaultConfig.FoldersPath)) { Directory.CreateDirectory (SparkleConfig.DefaultConfig.FoldersPath); SparkleLogger.LogInfo ("Controller", "Created '" + SparkleConfig.DefaultConfig.FoldersPath + "'"); + + folder_created = true; + } - string gvfs_command_path = new string [] { Path.VolumeSeparatorChar.ToString (), - "usr", "bin", "gvfs-set-attribute" }.Combine (); + string gvfs_command_path = new string [] { Path.VolumeSeparatorChar.ToString (), + "usr", "bin", "gvfs-set-attribute" }.Combine (); + + // Add a special icon to the SparkleShare folder + if (File.Exists (gvfs_command_path)) { + Process process = new Process (); + process.StartInfo.FileName = "gvfs-set-attribute"; - // Add a special icon to the SparkleShare folder - if (File.Exists (gvfs_command_path)) { - Process process = new Process (); - process.StartInfo.UseShellExecute = false; - process.StartInfo.FileName = "gvfs-set-attribute"; + process.Start (); + process.WaitForExit (); - // Clear the custom (legacy) icon path - process.StartInfo.Arguments = "-t unset " + - SparkleConfig.DefaultConfig.FoldersPath + " metadata::custom-icon"; + // Give the SparkleShare folder an icon name, so that it scales + process.StartInfo.Arguments = SparkleConfig.DefaultConfig.FoldersPath + + " metadata::custom-icon-name 'sparkleshare'"; - process.Start (); - process.WaitForExit (); - - // Give the SparkleShare folder an icon name, so that it scales - process.StartInfo.Arguments = SparkleConfig.DefaultConfig.FoldersPath + - " metadata::custom-icon-name 'folder-sparkleshare'"; - - process.Start (); - process.WaitForExit (); - } - - return true; + process.Start (); + process.WaitForExit (); } - return false; + return folder_created; } diff --git a/SparkleShare/Linux/SparkleStatusIcon.cs b/SparkleShare/Linux/SparkleStatusIcon.cs index b34cd9b1..e37896d1 100644 --- a/SparkleShare/Linux/SparkleStatusIcon.cs +++ b/SparkleShare/Linux/SparkleStatusIcon.cs @@ -135,7 +135,7 @@ namespace SparkleShare { this.menu.Add (new SeparatorMenuItem ()); ImageMenuItem folder_item = new SparkleMenuItem ("SparkleShare"){ - Image = new Image (SparkleUIHelpers.GetIcon ("folder-sparkleshare", 16)) + Image = new Image (SparkleUIHelpers.GetIcon ("sparkleshare", 16)) }; folder_item.Activated += delegate { diff --git a/SparkleShare/Linux/sparkleshare.desktop b/SparkleShare/Linux/sparkleshare.desktop index a83f45d4..24b492d7 100755 --- a/SparkleShare/Linux/sparkleshare.desktop +++ b/SparkleShare/Linux/sparkleshare.desktop @@ -2,7 +2,7 @@ Type=Application Name=SparkleShare Exec=sparkleshare start -Icon=folder-sparkleshare +Icon=sparkleshare Terminal=false X-GNOME-Autostart-enabled=true Categories=Network; diff --git a/SparkleShare/SparkleBubblesController.cs b/SparkleShare/SparkleBubblesController.cs index 4db2a3b6..d1ded853 100755 --- a/SparkleShare/SparkleBubblesController.cs +++ b/SparkleShare/SparkleBubblesController.cs @@ -65,6 +65,7 @@ namespace SparkleShare { return message = string.Format (message, change_set.Changes [0].Path); } else if (change_set.Changes.Count > 1) { + message = string.Format (message, change_set.Changes [0].Path); return string.Format (message + " and {0} more", change_set.Changes.Count - 1); } else {