private void SetCoverArt(TrackInfo track, string path) { if (track == null) { return; } var from_uri = new SafeUri(new System.Uri(path)); var to_uri = new SafeUri(CoverArtSpec.GetPathForNewFile(track.ArtworkId, from_uri.AbsoluteUri)); if (to_uri != null) { // Make sure it's not the same file we already have if (from_uri.Equals(to_uri)) { return; } // Make sure the incoming file exists if (!Banshee.IO.File.Exists(from_uri)) { Hyena.Log.WarningFormat("New cover art file not found: {0}", path); return; } DeleteCoverArt(track); Banshee.IO.File.Copy(from_uri, to_uri, true); NotifyUpdated(track); Hyena.Log.DebugFormat("Got new cover art file for {0}: {1}", track.DisplayAlbumTitle, path); } }
private bool RenameFile(DatabaseTrackInfo track) { if (track.PathPattern == null) { return(false); } SafeUri old_uri = track.Uri; bool in_library = old_uri.AbsolutePath.StartsWith(musicLibrarySource.BaseDirectoryWithSeparator); if (!in_library) { return(false); } string new_filename = track.PathPattern.BuildFull(musicLibrarySource.BaseDirectory, track, System.IO.Path.GetExtension(old_uri.ToString())); SafeUri new_uri = new SafeUri(new_filename); if (!new_uri.Equals(old_uri) && !Banshee.IO.File.Exists(new_uri)) { Banshee.IO.File.Move(old_uri, new_uri); Banshee.IO.Utilities.TrimEmptyDirectories(old_uri); track.Uri = new_uri; return(true); } return(false); }
#pragma warning restore 649 #region public API (ctor) public PreferenceDialog(Window parent) : base("PreferenceDialog.ui", "preference_dialog") { TransientFor = parent; //Photos Folder photosdir_chooser.SetCurrentFolderUri(FSpot.Settings.Global.PhotoUri); SafeUri storage_path = new SafeUri(Preferences.Get <string> (Preferences.STORAGE_PATH)); //If the user has set a photo directory on the commandline then don't let it be changed in Preferences if (storage_path.Equals(FSpot.Settings.Global.PhotoUri)) { photosdir_chooser.CurrentFolderChanged += HandlePhotosdirChanged; } else { photosdir_chooser.Sensitive = false; } //Write Metadata LoadPreference(Preferences.METADATA_EMBED_IN_IMAGE); LoadPreference(Preferences.METADATA_ALWAYS_USE_SIDECAR); //Screen profile ListStore sprofiles = new ListStore(typeof(string), typeof(int)); sprofiles.AppendValues(Catalog.GetString("None"), 0); if (FSpot.ColorManagement.XProfile != null) { sprofiles.AppendValues(Catalog.GetString("System profile"), -1); } sprofiles.AppendValues(null, 0); //Pick the display profiles from the full list, avoid _x_profile_ var dprofs = from profile in FSpot.ColorManagement.Profiles where (profile.Value.DeviceClass == Cms.IccProfileClass.Display && profile.Key != "_x_profile_") select profile; foreach (var p in dprofs) { sprofiles.AppendValues(p.Key, 1); } CellRendererText profilecellrenderer = new CellRendererText(); profilecellrenderer.Ellipsize = Pango.EllipsizeMode.End; screenprofile_combo.Model = sprofiles; screenprofile_combo.PackStart(profilecellrenderer, true); screenprofile_combo.RowSeparatorFunc = ProfileSeparatorFunc; screenprofile_combo.SetCellDataFunc(profilecellrenderer, ProfileCellFunc); LoadPreference(Preferences.COLOR_MANAGEMENT_DISPLAY_PROFILE); //Print profile ListStore pprofiles = new ListStore(typeof(string), typeof(int)); pprofiles.AppendValues(Catalog.GetString("None"), 0); pprofiles.AppendValues(null, 0); var pprofs = from profile in FSpot.ColorManagement.Profiles where (profile.Value.DeviceClass == Cms.IccProfileClass.Output && profile.Key != "_x_profile_") select profile; foreach (var p in pprofs) { pprofiles.AppendValues(p.Key, 1); } printprofile_combo.Model = pprofiles; printprofile_combo.PackStart(profilecellrenderer, true); printprofile_combo.RowSeparatorFunc = ProfileSeparatorFunc; printprofile_combo.SetCellDataFunc(profilecellrenderer, ProfileCellFunc); LoadPreference(Preferences.COLOR_MANAGEMENT_OUTPUT_PROFILE); //Theme chooser ListStore themes = new ListStore(typeof(string), typeof(string)); themes.AppendValues(Catalog.GetString("Standard theme"), null); themes.AppendValues(null, null); //Separator string gtkrc = System.IO.Path.Combine("gtk-2.0", "gtkrc"); string [] search = { System.IO.Path.Combine(FSpot.Settings.Global.HomeDirectory, ".themes"), "/usr/share/themes" }; foreach (string path in search) { if (Directory.Exists(path)) { foreach (string dir in Directory.GetDirectories(path)) { if (File.Exists(System.IO.Path.Combine(dir, gtkrc))) { themes.AppendValues(System.IO.Path.GetFileName(dir), System.IO.Path.Combine(dir, gtkrc)); } } } } CellRenderer themecellrenderer = new CellRendererText(); theme_combo.Model = themes; theme_combo.PackStart(themecellrenderer, true); theme_combo.RowSeparatorFunc = ThemeSeparatorFunc; theme_combo.SetCellDataFunc(themecellrenderer, ThemeCellFunc); LoadPreference(Preferences.GTK_RC); ConnectEvents(); }