1
From: Didier Roche <didrocks@ubuntu.com>
2
Date: Mon, 5 Jul 2010 13:15:27 +0200
3
Subject: Enable switching between the 2 interfaces
5
This enables switching between the 2 interfaces, even when the classic interface
8
.../Resources/core-ui-actions-layout.xml | 1 +
9
.../Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs | 9 ++++
10
.../Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs | 42 ++++++++++++++++++-
11
3 files changed, 49 insertions(+), 3 deletions(-)
13
diff --git a/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml b/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
14
index 7908e13..0b8edb0 100644
15
--- a/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
16
+++ b/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
18
<placeholder name="NextArrowButton"/>
19
<placeholder name="SeekSlider"/>
20
<placeholder name="TrackInfoDisplay"/>
21
+ <placeholder name="ExtensionToolBarPlaceHolder"/>
22
<placeholder name="SourceActions">
23
<toolitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
25
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs
26
index 6fad319..9f16ba7 100644
27
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs
28
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs
29
@@ -105,9 +105,18 @@ namespace Banshee.MeeGo
33
+ window_panel.Hide ();
34
if (embedded_panel != null) {
35
embedded_panel.Hide ();
41
+ window_panel.Show ();
42
+ if (embedded_panel != null) {
43
+ embedded_panel.Show ();
48
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs
49
index 5aae94e..d615b4e 100644
50
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs
51
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs
53
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
60
@@ -38,6 +39,7 @@ using Banshee.Sources;
61
using Banshee.ServiceStack;
62
using Banshee.MediaEngine;
64
+using Banshee.Gui.Widgets;
66
namespace Banshee.MeeGo
68
@@ -84,6 +86,7 @@ namespace Banshee.MeeGo
72
+ AddSwitchToPrimaryInterface ();
74
ServiceManager.ServiceStarted -= OnServiceStarted;
76
@@ -100,12 +103,12 @@ namespace Banshee.MeeGo
77
panel = MeeGoPanel.Instance;
80
- Log.Warning ("Netbook extension initialized without a panel");
81
+ Log.Information ("Netbook extension initialized with hidden panel");
82
+ //AddSwitchToPrimaryInterface ();
85
- elements_service.PrimaryWindow.Hide ();
88
+ elements_service.PrimaryWindow.Hide ();
89
panel.BuildContents ();
91
elements_service.PrimaryWindowClose = () => {
92
@@ -115,8 +118,30 @@ namespace Banshee.MeeGo
96
+ private void AddSwitchToPrimaryInterface ()
98
+ // Add switcher to primary interface:
99
+ var app_button = new Button (new Image () {
100
+ IconSize = (int)IconSize.LargeToolbar,
101
+ IconName = "media-player-banshee"
103
+ TooltipText = Catalog.GetString ("Show the Netbook interface")
105
+ app_button.Clicked += (o, e) => {
106
+ //ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
107
+ ServiceManager.Get<MeeGoService> ().PresentNetbookInterface ();
109
+ Toolbar header_toolbar;
110
+ InterfaceActionService action_service;
111
+ action_service = ServiceManager.Get<InterfaceActionService> ();
112
+ header_toolbar = (Toolbar)action_service.UIManager.GetWidget ("/HeaderToolbar");
113
+ app_button.ShowAll ();
114
+ action_service.PopulateToolbarPlaceholder (header_toolbar, "/HeaderToolbar/ExtensionToolBarPlaceHolder", app_button);
117
public void PresentPrimaryInterface ()
119
+ Log.Information ("Switch to traditional interface");
120
elements_service.PrimaryWindow.Maximize ();
121
elements_service.PrimaryWindow.Present ();
123
@@ -124,6 +149,17 @@ namespace Banshee.MeeGo
127
+ public void PresentNetbookInterface ()
129
+ Log.Information ("Switch to Netbook interface");
130
+ if (panel == null) {
131
+ panel = new MeeGoPanel ();
135
+ elements_service.PrimaryWindow.Hide ();
138
public void Dispose ()