34 var
Cc = Components.classes;
35 var
Ci = Components.interfaces;
36 var
Cr = Components.results;
37 var
Cu = Components.utils;
39 Cu.import(
"resource://app/jsmodules/PlatformUtils.jsm");
42 var
file =
Cc[
"@mozilla.org/file/local;1"].
45 file.initWithPath(
path);
55 return folder && folder.isDirectory();
66 _defaultMusicFolder:
null,
67 _defaultVideoFolder:
null,
78 _musicFolderPref:
null,
79 _musicFolderAskPref:
null,
80 _videoFolderPref:
null,
81 _videoFolderAskPref:
null,
92 return this._musicPrefBox.folder;
94 set musicFolder(
val) {
95 this._musicPrefBox.folder =
val;
96 return this.musicFolder;
103 return this._videoPrefBox.folder;
106 set videoFolder(
val) {
107 this._videoPrefBox.folder =
val;
108 return this.videoFolder;
114 get musicFolderAsk() {
115 return this._musicPrefBox.ask;
117 set musicFolderAsk(
val) {
118 this._musicPrefBox.ask =
val;
119 return this.musicFolderAsk;
125 get videoFolderAsk() {
126 return this._videoPrefBox.ask;
128 set videoFolderAsk(
val) {
129 this._videoPrefBox.ask =
val;
130 return this.videoFolderAsk;
136 _createMusicUIElements:
function() {
138 const preferencesElement = document.getElementById(
"mainPreferences");
140 this._musicFolderAskPref = document.createElement(
"preference");
142 this._musicFolderAskPref.setAttribute(
"name",
144 this._musicFolderAskPref.setAttribute(
"type",
"bool");
145 this._musicFolderAskPref.setAttribute(
147 "SongbirdMainPaneOverlay.onMusicAskPrefChanged();");
148 preferencesElement.appendChild(this._musicFolderAskPref);
150 this._musicFolderPref = document.createElement(
"preference");
153 this._musicFolderPref.setAttribute(
"type",
"unichar");
154 this._musicFolderPref.setAttribute(
156 "SongbirdMainPaneOverlay.onMusicFolderPrefChanged();");
157 preferencesElement.appendChild(this._musicFolderPref);
160 this._musicPrefBox = document.createElement(
"sb-savefolder-box");
161 this._musicPrefBox.setAttribute(
"id",
"musicDownloadsGroup");
162 this._musicPrefBox.setAttribute(
164 "SongbirdMainPaneOverlay.onUserChangedMusicBox()");
168 const mainPrefPane = document.getElementById(
"paneMain");
169 const downloadsGroup = document.getElementById(
"downloadsGroup");
170 mainPrefPane.insertBefore(this._musicPrefBox, downloadsGroup);
175 this._musicPrefBox.title =
176 this._strings.getString(
"prefs.main.downloads.audio.label");
177 this._musicPrefBox.folderLabel =
178 document.getElementById(
"saveTo").getAttribute(
"label"),
179 this._musicPrefBox.browseLabel =
180 document.getElementById(
"chooseFolder").getAttribute(
"label"),
181 this._musicPrefBox.askLabel =
182 document.getElementById(
"alwaysAsk").getAttribute(
"label");
183 this._musicPrefBox.browseWindowTitle =
184 this._strings.getString(
"prefs.main.downloads.audio.chooseTitle");
187 _createVideoUIElements:
function() {
189 const preferencesElement = document.getElementById(
"mainPreferences");
191 this._videoFolderAskPref = document.createElement(
"preference");
193 this._videoFolderAskPref.setAttribute(
"name",
195 this._videoFolderAskPref.setAttribute(
"type",
"bool");
196 this._videoFolderAskPref.setAttribute(
198 "SongbirdMainPaneOverlay.onVideoAskPrefChanged();");
199 preferencesElement.appendChild(this._videoFolderAskPref);
201 this._videoFolderPref = document.createElement(
"preference");
204 this._videoFolderPref.setAttribute(
"type",
"unichar");
205 this._videoFolderPref.setAttribute(
207 "SongbirdMainPaneOverlay.onVideoFolderPrefChanged();");
208 preferencesElement.appendChild(this._videoFolderPref);
211 this._videoPrefBox = document.createElement(
"sb-savefolder-box");
212 this._videoPrefBox.setAttribute(
"id",
"videoDownloadsGroup");
213 this._videoPrefBox.setAttribute(
215 "SongbirdMainPaneOverlay.onUserChangedVideoBox()");
219 const mainPrefPane = document.getElementById(
"paneMain");
220 const downloadsGroup = document.getElementById(
"downloadsGroup");
221 mainPrefPane.insertBefore(this._videoPrefBox, downloadsGroup);
226 this._videoPrefBox.title =
227 this._strings.getString(
"prefs.main.downloads.video.label");
228 this._videoPrefBox.folderLabel =
229 document.getElementById(
"saveTo").getAttribute(
"label"),
230 this._videoPrefBox.browseLabel =
231 document.getElementById(
"chooseFolder").getAttribute(
"label"),
232 this._videoPrefBox.askLabel =
233 document.getElementById(
"alwaysAsk").getAttribute(
"label");
234 this._videoPrefBox.browseWindowTitle =
235 this._strings.getString(
"prefs.main.downloads.video.chooseTitle");
238 _createUIElements:
function() {
242 const downloadsCaptions = document.getElementById(
"downloadsGroup")
243 .getElementsByTagName(
"caption");
244 if (downloadsCaptions.length) {
245 tempString = this._strings.getString(
"prefs.main.browserdownloads.label");
246 downloadsCaptions.item(0).setAttribute(
"label", tempString);
252 var addonsGroup = document.getElementById(
"addonsMgrGroup");
253 addonsGroup.parentNode.parentNode.removeChild(addonsGroup.parentNode);
255 this._createMusicUIElements();
256 this._createVideoUIElements();
262 onPaneLoad:
function(
event) {
265 if (
event.target.getAttribute(
"id") !=
"paneMain") {
270 window.removeEventListener(
'paneload',
self.onPaneLoad,
false);
274 Cc[
"@songbirdnest.com/Songbird/DownloadDeviceHelper;1"].
276 self._defaultMusicFolder =
277 downloadHelper.getDefaultDownloadFolder(
"audio");
278 self._defaultVideoFolder =
279 downloadHelper.getDefaultDownloadFolder(
"video");
281 self._strings = document.getElementById(
"bundleSongbirdPreferences");
284 self._createUIElements();
287 var musicFolder =
makeFile(
self._musicFolderPref.value);
290 musicFolder =
self._defaultMusicFolder;
291 self._musicFolderPref.value = (musicFolder ? musicFolder.path :
"");
293 self.musicFolder = musicFolder;
295 self.musicFolderAsk =
self._musicFolderAskPref.value;
297 var videoFolder =
makeFile(
self._videoFolderPref.value);
300 videoFolder =
self._defaultVideoFolder;
301 self._videoFolderPref.value = (videoFolder ? videoFolder.path :
"");
303 self.videoFolder = videoFolder;
305 self.videoFolderAsk =
self._videoFolderAskPref.value;
311 onUserChangedMusicBox:
function() {
315 var
path = (
self.musicFolder ?
self.musicFolder.path :
"");
316 self._musicFolderPref.value =
path;
317 self._musicFolderAskPref.value =
self.musicFolderAsk;
323 onUserChangedVideoBox:
function() {
327 var
path = (
self.videoFolder ?
self.videoFolder.path :
"");
328 self._videoFolderPref.value =
path;
329 self._videoFolderAskPref.value =
self.videoFolderAsk;
335 onMusicFolderPrefChanged:
function() {
339 var newFolder =
makeFile(
self._musicFolderPref.value);
344 newFolder =
self._defaultMusicFolder;
345 self._musicFolderPref.value = (newFolder ? newFolder.path :
"");
349 self.musicFolder = newFolder;
355 onVideoFolderPrefChanged:
function() {
359 var newFolder =
makeFile(
self._videoFolderPref.value);
364 newFolder =
self._defaultVideoFolder;
365 self._videoFolderPref.value = (newFolder ? newFolder.path :
"");
369 self.videoFolder = newFolder;
375 onMusicAskPrefChanged:
function() {
379 self.musicFolderAsk =
self._musicFolderAskPref.value;
385 onVideoAskPrefChanged:
function() {
389 self.videoFolderAsk =
self._videoFolderAskPref.value;
397 window.addEventListener(
'paneload', SongbirdMainPaneOverlay.onPaneLoad,
false);
const PREF_DOWNLOAD_MUSIC_FOLDER
const PREF_DOWNLOAD_VIDEO_ALWAYS_ASK
getService(Ci.sbIFaceplateManager)
function folderIsValid(folder)
const PREF_DOWNLOAD_VIDEO_FOLDER
this _dialogInput val(dateText)
var SongbirdMainPaneOverlay
const PREF_DOWNLOAD_MUSIC_ALWAYS_ASK