Author: damoxc

Revision: 5309

Log:
        add a new class for managing a options throughout the ui

Diff:
Added: trunk/deluge/ui/web/js/Deluge.OptionsManager.js
===================================================================
--- trunk/deluge/ui/web/js/Deluge.OptionsManager.js                             
(rev 0)
+++ trunk/deluge/ui/web/js/Deluge.OptionsManager.js     2009-05-27 11:35:52 UTC 
(rev 5309)
@@ -0,0 +1,85 @@
+/*
+Script:
+       Deluge.OptionsManager.js
+
+Copyright:
+       (C) Damien Churchill 2009 <[email protected]>
+       This program is free software; you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation; either version 3, or (at your option)
+       any later version.
+
+       This program is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with this program.  If not, write to:
+               The Free Software Foundation, Inc.,
+               51 Franklin Street, Fifth Floor
+               Boston, MA  02110-1301, USA.
+
+    In addition, as a special exception, the copyright holders give
+    permission to link the code of portions of this program with the OpenSSL
+    library.
+    You must obey the GNU General Public License in all respects for all of
+    the code used other than OpenSSL. If you modify file(s) with this
+    exception, you may extend this exception to your version of the file(s),
+    but you are not obligated to do so. If you do not wish to do so, delete
+    this exception statement from your version. If you delete this exception
+    statement from all source files in the program, then also delete it here.
+*/
+
+/**
+ * @description A class that can be used to manage options throughout the ui.
+ * @namespace Deluge
+ * @class Deluge.OptionsManager
+ */
+Deluge.OptionsManager = Ext.extend(Ext.util.Observable, {
+       
+       initComponent: function() {
+               Deluge.OptionsManager.superclass.initComponent.call(this);
+               this.changed = {};
+               this.options = {};
+       },
+
+       /**
+        * Add a set of options and values for an id to the options manager
+        * @param {String} id
+        * @param {Object} options The default options for the id.
+        */
+       addOptions: function(id, options) {
+               this.options[id] = options;
+       },
+
+       /**
+        * Reset the options back to the default values for the specified id.
+        * @param {String} id
+        */
+       resetOptions: function(id) {
+               if (!this.changed[id]) return;
+               delete this.changed[id];
+       },
+       
+       /**
+        * Set the specified option for the passed in id.
+        * @param {String} id
+        * @param {String} option
+        * @param {Object...} value The new value for the option
+        */
+       setOption: function(id, option, value) {
+               if (!this.changed[id]) this.changed[id] = {};
+               this.changed[id][option] = value;
+       },
+       
+       /**
+        * Set the specified options for the passed in id.
+        * @param {String} id
+        * @param {object} options The option values to change.
+        */
+       setOptions: function(id, options) {
+               if (!this.changed[id]) this.changed[id] = {};
+               this.changed[id] = Ext.extend(this.changed[id], options);
+       }
+});
\ No newline at end of file

Modified: trunk/deluge/ui/web/js/build.sh
===================================================================
--- trunk/deluge/ui/web/js/build.sh     2009-05-27 02:59:44 UTC (rev 5308)
+++ trunk/deluge/ui/web/js/build.sh     2009-05-27 11:35:52 UTC (rev 5309)
@@ -1,4 +1,4 @@
-DELUGE_FILES="Deluge.js Deluge.Formatters.js Deluge.Menus.js Deluge.Events.js 
Deluge.Add.js Deluge.Add.File.js Deluge.Add.Url.js Deluge.Client.js 
Deluge.ConnectionManager.js Deluge.Details.js Deluge.Details.Status.js 
Deluge.Details.Details.js Deluge.Details.Files.js Deluge.Details.Peers.js 
Deluge.Details.Options.js Deluge.EditTrackers.js Deluge.Keys.js Deluge.Login.js 
Deluge.Preferences.js Deluge.Preferences.Downloads.js 
Deluge.Preferences.Network.js Deluge.Preferences.Bandwidth.js 
Deluge.Preferences.Interface.js Deluge.Preferences.Other.js 
Deluge.Preferences.Daemon.js Deluge.Preferences.Queue.js 
Deluge.Preferences.Proxy.js Deluge.Preferences.Notification.js 
Deluge.Preferences.Plugins.js Deluge.Sidebar.js Deluge.Statusbar.js 
Deluge.Toolbar.js Deluge.Torrents.js Deluge.UI.js"
+DELUGE_FILES="Deluge.js Deluge.Formatters.js Deluge.Menus.js Deluge.Events.js 
Deluge.OptionsManager.js Deluge.Add.js Deluge.Add.File.js Deluge.Add.Url.js 
Deluge.Client.js Deluge.ConnectionManager.js Deluge.Details.js 
Deluge.Details.Status.js Deluge.Details.Details.js Deluge.Details.Files.js 
Deluge.Details.Peers.js Deluge.Details.Options.js Deluge.EditTrackers.js 
Deluge.Keys.js Deluge.Login.js Deluge.Preferences.js 
Deluge.Preferences.Downloads.js Deluge.Preferences.Network.js 
Deluge.Preferences.Bandwidth.js Deluge.Preferences.Interface.js 
Deluge.Preferences.Other.js Deluge.Preferences.Daemon.js 
Deluge.Preferences.Queue.js Deluge.Preferences.Proxy.js 
Deluge.Preferences.Notification.js Deluge.Preferences.Plugins.js 
Deluge.Sidebar.js Deluge.Statusbar.js Deluge.Toolbar.js Deluge.Torrents.js 
Deluge.UI.js"
 ALL_FILES="ext-extensions-debug.js $DELUGE_FILES"
 
 scan() {

Modified: trunk/deluge/ui/web/server.py
===================================================================
--- trunk/deluge/ui/web/server.py       2009-05-27 02:59:44 UTC (rev 5308)
+++ trunk/deluge/ui/web/server.py       2009-05-27 11:35:52 UTC (rev 5309)
@@ -275,6 +275,7 @@
         "/js/Deluge.Formatters.js",
         "/js/Deluge.Menus.js",
         "/js/Deluge.Events.js",
+        "/js/Deluge.OptionsManager.js",
         "/js/Deluge.Add.js",
         "/js/Deluge.Add.File.js",
         "/js/Deluge.Add.Url.js",



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to