[banshee] Refactor choosers, add ImportLabel to importers
- From: Gabriel Burt <gburt src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee] Refactor choosers, add ImportLabel to importers
- Date: Tue, 27 Oct 2009 19:27:35 +0000 (UTC)
commit 4a6638e4eef5112bc96f4e81ba87a57242038070
Author: Gabriel Burt <gabriel burt gmail com>
Date: Wed Sep 30 17:38:37 2009 -0700
Refactor choosers, add ImportLabel to importers
Add factory method to generate import file/folder choosers, and add
ImportLabel strings to all importers for use by the import dialog.
.../Banshee.Library/HomeDirectoryImportSource.cs | 2 +
.../Banshee.Library/IImportSource.cs | 1 +
.../Banshee.Library/ThreadPoolImportSource.cs | 2 +
.../Banshee.Gui.Dialogs/FileChooserDialog.cs | 25 +++++++++++++++++
.../Banshee.Gui/GlobalActions.cs | 19 +-----------
.../Banshee.Library.Gui/FileImportSource.cs | 29 ++++++-------------
.../Banshee.Library.Gui/FolderImportSource.cs | 15 +++-------
.../Banshee.Library.Gui/PhotoFolderImportSource.cs | 2 +
src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs | 4 +++
.../Banshee.AudioCd/AudioCdSource.cs | 4 +++
.../Banshee.Daap/Banshee.Daap/DaapSource.cs | 4 +++
11 files changed, 60 insertions(+), 47 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs b/src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs
index c0a89e0..1237be5 100644
--- a/src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs
@@ -47,6 +47,8 @@ namespace Banshee.Library
public string Name {
get { return Catalog.GetString ("Home Directory"); }
}
+
+ public string ImportLabel { get { return null; } }
public string [] IconNames {
get { return new string [] { "user-home", "gtk-home" }; }
diff --git a/src/Core/Banshee.Services/Banshee.Library/IImportSource.cs b/src/Core/Banshee.Services/Banshee.Library/IImportSource.cs
index bef7eaa..dfec9f4 100644
--- a/src/Core/Banshee.Services/Banshee.Library/IImportSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/IImportSource.cs
@@ -34,6 +34,7 @@ namespace Banshee.Library
{
void Import ();
string Name { get; }
+ string ImportLabel { get; }
string [] IconNames { get; }
bool CanImport { get; }
int SortOrder { get; }
diff --git a/src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs b/src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs
index bc085f1..68ed824 100644
--- a/src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs
@@ -129,6 +129,8 @@ namespace Banshee.Library
public abstract string Name { get; }
+ public virtual string ImportLabel { get { return null; } }
+
public abstract string[] IconNames { get; }
public abstract int SortOrder { get; }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/FileChooserDialog.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/FileChooserDialog.cs
index 4019d3c..043f781 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/FileChooserDialog.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/FileChooserDialog.cs
@@ -30,11 +30,35 @@ using System;
using Gtk;
using Banshee.Configuration;
+using Banshee.ServiceStack;
namespace Banshee.Gui.Dialogs
{
public class FileChooserDialog : Gtk.FileChooserDialog
{
+ public static FileChooserDialog CreateForImport (string title, bool files)
+ {
+ var chooser = new Banshee.Gui.Dialogs.FileChooserDialog (
+ title,
+ ServiceManager.Get<Banshee.Gui.GtkElementsService> ().PrimaryWindow,
+ files ? FileChooserAction.Open : FileChooserAction.SelectFolder
+ );
+
+ chooser.DefaultResponse = ResponseType.Ok;
+ chooser.SelectMultiple = true;
+
+ chooser.AddButton (Stock.Cancel, ResponseType.Cancel);
+ // Translators: verb
+ chooser.AddButton (Mono.Unix.Catalog.GetString("I_mport"), ResponseType.Ok);
+
+ Hyena.Gui.GtkUtilities.SetChooserShortcuts (chooser,
+ ServiceManager.SourceManager.MusicLibrary.BaseDirectory,
+ ServiceManager.SourceManager.VideoLibrary.BaseDirectory
+ );
+
+ return chooser;
+ }
+
public FileChooserDialog (string title, FileChooserAction action) : this (title, null, action)
{
}
@@ -43,6 +67,7 @@ namespace Banshee.Gui.Dialogs
base (title, parent, action)
{
SetCurrentFolderUri (LastFileChooserUri.Get (Environment.GetFolderPath (Environment.SpecialFolder.Personal)));
+ WindowPosition = WindowPosition.Center;
}
protected override void OnResponse (ResponseType response)
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs b/src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs
index e314690..734fd45 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs
@@ -159,24 +159,9 @@ namespace Banshee.Gui
private void OnImportPlaylist (object o, EventArgs args)
{
// Prompt user for location of the playlist.
- Banshee.Gui.Dialogs.FileChooserDialog chooser = new Banshee.Gui.Dialogs.FileChooserDialog (
- Catalog.GetString("Import Playlist"),
- PrimaryWindow,
- FileChooserAction.Open
- );
-
- chooser.DefaultResponse = ResponseType.Ok;
- chooser.SelectMultiple = true;
+ var chooser = Banshee.Gui.Dialogs.FileChooserDialog.CreateForImport (Catalog.GetString("Import Playlist"), true);
chooser.AddFilter (Hyena.Gui.GtkUtilities.GetFileFilter (Catalog.GetString ("Playlists"), PlaylistFileUtil.PlaylistExtensions));
- // TODO library-location add the BaseDirectory for the library being imported to (or all of them)
- /*try {
- chooser.AddShortcutFolder (Paths.LibraryLocation);
- } catch {}*/
-
- chooser.AddButton (Stock.Cancel, ResponseType.Cancel);
- // Translators: verb
- chooser.AddButton (Catalog.GetString("I_mport"), ResponseType.Ok);
-
+
int response = chooser.Run();
string [] uris = null;
diff --git a/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs b/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs
index 868968c..fdfa40a 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs
@@ -42,18 +42,11 @@ namespace Banshee.Library.Gui
public void Import()
{
- Banshee.Gui.Dialogs.FileChooserDialog chooser = new Banshee.Gui.Dialogs.FileChooserDialog (
- Catalog.GetString ("Import Files to Library"),
- FileChooserAction.Open
- );
-
- chooser.AddButton (Stock.Cancel, ResponseType.Cancel);
- chooser.AddButton (Stock.Open, ResponseType.Ok);
- chooser.AddFilter (Hyena.Gui.GtkUtilities.GetFileFilter (Catalog.GetString ("Media Files"), Banshee.Collection.Database.DatabaseImportManager.WhiteListFileExtensions.List));
- chooser.SelectMultiple = true;
- chooser.DefaultResponse = ResponseType.Ok;
-
- SetChooserShortcuts (chooser);
+ var chooser = Banshee.Gui.Dialogs.FileChooserDialog.CreateForImport (Catalog.GetString ("Import Files to Library"), true);
+
+ chooser.AddFilter (Hyena.Gui.GtkUtilities.GetFileFilter (
+ Catalog.GetString ("Media Files"),
+ Banshee.Collection.Database.DatabaseImportManager.WhiteListFileExtensions.List));
if (chooser.Run () == (int)ResponseType.Ok) {
Banshee.ServiceStack.ServiceManager.Get<LibraryImportManager> ().Enqueue (chooser.Uris);
@@ -65,6 +58,10 @@ namespace Banshee.Library.Gui
public string Name {
get { return Catalog.GetString ("Local Files"); }
}
+
+ public string ImportLabel {
+ get { return Catalog.GetString ("Choose Files"); }
+ }
public string [] IconNames {
get { return new string [] { "gtk-open" }; }
@@ -78,14 +75,6 @@ namespace Banshee.Library.Gui
get { return 5; }
}
- public static void SetChooserShortcuts (Gtk.FileChooserDialog chooser)
- {
- Hyena.Gui.GtkUtilities.SetChooserShortcuts (chooser,
- ServiceManager.SourceManager.MusicLibrary.BaseDirectory,
- ServiceManager.SourceManager.VideoLibrary.BaseDirectory
- );
- }
-
// Reserve strings in preparation for the forthcoming string freeze.
public void ReservedStrings ()
{
diff --git a/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs b/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs
index c734f2a..266e78f 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs
@@ -40,16 +40,7 @@ namespace Banshee.Library.Gui
public void Import()
{
- Banshee.Gui.Dialogs.FileChooserDialog chooser = new Banshee.Gui.Dialogs.FileChooserDialog (
- Catalog.GetString ("Import Folders to Library"),
- FileChooserAction.SelectFolder
- );
-
- chooser.AddButton (Stock.Cancel, ResponseType.Cancel);
- chooser.AddButton (Stock.Open, ResponseType.Ok);
- chooser.SelectMultiple = true;
- chooser.DefaultResponse = ResponseType.Ok;
- FileImportSource.SetChooserShortcuts (chooser);
+ var chooser = Banshee.Gui.Dialogs.FileChooserDialog.CreateForImport (Catalog.GetString ("Import Folders to Library"), false);
if (chooser.Run () == (int)ResponseType.Ok) {
Banshee.ServiceStack.ServiceManager.Get<LibraryImportManager> ().Enqueue (chooser.Uris);
@@ -61,6 +52,10 @@ namespace Banshee.Library.Gui
public string Name {
get { return Catalog.GetString ("Local Folders"); }
}
+
+ public string ImportLabel {
+ get { return Catalog.GetString ("Choose Folders"); }
+ }
public string [] IconNames {
get { return new string [] { "gtk-open" }; }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Library.Gui/PhotoFolderImportSource.cs b/src/Core/Banshee.ThickClient/Banshee.Library.Gui/PhotoFolderImportSource.cs
index 31249df..1f9e8b6 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Library.Gui/PhotoFolderImportSource.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Library.Gui/PhotoFolderImportSource.cs
@@ -66,6 +66,8 @@ namespace Banshee.Library.Gui
public string Name {
get { return Catalog.GetString ("Videos from Photos Folder"); }
}
+
+ public string ImportLabel { get { return null; } }
public string [] IconNames {
get { return new string [] { "gtk-open" }; }
diff --git a/src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs b/src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs
index 2cb1cb8..a6193ec 100644
--- a/src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs
+++ b/src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs
@@ -87,6 +87,10 @@ namespace Banshee.Dap
public virtual bool CanImport {
get { return true; }
}
+
+ string IImportSource.ImportLabel {
+ get { return null; }
+ }
int IImportSource.SortOrder {
get { return 20; }
diff --git a/src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs b/src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs
index fdbab2c..539c962 100644
--- a/src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs
+++ b/src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs
@@ -478,6 +478,10 @@ namespace Banshee.AudioCd
int IImportSource.SortOrder {
get { return -10; }
}
+
+ string IImportSource.ImportLabel {
+ get { return null; }
+ }
#endregion
diff --git a/src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs b/src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs
index 0830a23..62d6078 100644
--- a/src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs
+++ b/src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs
@@ -353,6 +353,10 @@ namespace Banshee.Daap
int IImportSource.SortOrder {
get { return 30; }
}
+
+ string IImportSource.ImportLabel {
+ get { return null; }
+ }
public string [] IconNames {
get { return Properties.GetStringList ("Icon.Name"); }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]