~ubuntu-branches/ubuntu/raring/speeddial/raring

« back to all changes in this revision

Viewing changes to content/settings/prefs.js

  • Committer: Bazaar Package Importer
  • Author(s): Andrea Veri, Andrea Veri, Vikram Dhillon
  • Date: 2009-10-11 12:10:35 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20091011121035-0ysv7mrfd2by5yot
Tags: 0.9.1.1-0ubuntu1

[ Andrea Veri ]

* New upstream release. FFe granted. (LP: #430155)
* debian/control:
  - added missing xpi:enhances, xpi:provides, xpi:recommends
    fields.
  - set depends on misc:depends
  - removed ant B-D, no more needed
  - added Vcs-Browser field.
  - added homepage field.
* debian/rules:
  - cleaned a bit removing useless comments
  - removed MOZ_EXTENSION_PKG field, it's deprecated atm.
  - MOZ_XPI_BUILD_COMMAND is not set to $(null), nothing needs
    to be built manually. 

[ Vikram Dhillon ]

* Updated Standards-Version to 3.8.3
* Updated mozilla-devscripts to 0.16~

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
var speeddial_gPrefBranch = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.speeddial.");
2
 
 
3
 
function speeddial_initPrefs() {
4
 
  if(document.documentElement.getButton && document.documentElement.getButton('extra2')) {
5
 
    var extra2 = document.documentElement.getButton('extra2');
6
 
    extra2.setAttribute('type', 'menu');
7
 
    extra2.setAttribute('popup', 'speeddial-settings-popup');
8
 
  }
9
 
}
10
 
 
11
 
function speeddial_defaultSettings() {
12
 
  var strings = document.getElementById("prefsStrings");
13
 
  if (!confirm(strings.getString('prefs.confirm'))) return false;
14
 
 
15
 
  var count = { value : 0 };
16
 
  var childList = speeddial_gPrefBranch.getChildList("", count);
17
 
 
18
 
  for (var i = 0; i < count.value; i++) {
19
 
    if(speeddial_gPrefBranch.prefHasUserValue(childList[i]) && childList[i] != "changelog") {
20
 
      speeddial_gPrefBranch.clearUserPref(childList[i]);
21
 
    }
22
 
  }
23
 
 
24
 
  window.alert(strings.getString('prefs.defaultsuccess'));
25
 
  return true;
26
 
}
27
 
 
28
 
function speeddial_extendInt(aInput) {
29
 
  if (aInput < 10) return "0" + aInput.toString();
30
 
  else return aInput;
31
 
}
32
 
 
33
 
function speeddial_exportSettings(onlyDials) {
34
 
  var now = new Date();
35
 
  var sDate = speeddial_extendInt(now.getMonth() + 1) + "/" + speeddial_extendInt(now.getDate()) + "/" + now.getFullYear();
36
 
  var sTtime = speeddial_extendInt(now.getHours()) + ":" + speeddial_extendInt(now.getMinutes()) + ":" + speeddial_extendInt(now.getSeconds());
37
 
  var sGMT = now.toGMTString();
38
 
 
39
 
  var speeddialExport = new Array;
40
 
  speeddialExport[0] = "-----------------------------------------------------------------------\n";
41
 
  speeddialExport[0] += "                       Speed Dial - ";
42
 
  if (onlyDials) {
43
 
    speeddialExport[0] += "Dials";
44
 
  } else {
45
 
    speeddialExport[0] += "Settings";
46
 
  }
47
 
  speeddialExport[0] += "\n";
48
 
  speeddialExport[0] += "          " + sDate + ", " + sTtime + " (" + sGMT + ")\n";
49
 
  speeddialExport[0] += "-----------------------------------------------------------------------\n";
50
 
  speeddialExport[0] += "                         DO NOT EDIT THIS FILE\n";
51
 
  speeddialExport[0] += "-----------------------------------------------------------------------";
52
 
 
53
 
  var count = { value : 0 };
54
 
  var childList = speeddial_gPrefBranch.getChildList("", count);
55
 
  var currentIndex = 1;
56
 
  for(var i = 0; i < count.value; i++) {
57
 
    try {
58
 
      if (!onlyDials || (childList[i].match("^thumbnail-") == "thumbnail-")) {
59
 
        if (childList[i].match("-lastsaved$") != "-lastsaved") {
60
 
          switch(speeddial_gPrefBranch.getPrefType(childList[i])) {
61
 
            case Components.interfaces.nsIPrefBranch.PREF_BOOL:
62
 
              speeddialExport[currentIndex] = childList[i] + '=' + speeddial_gPrefBranch.getBoolPref(childList[i]);
63
 
              break;
64
 
 
65
 
            case Components.interfaces.nsIPrefBranch.PREF_INT:
66
 
              speeddialExport[currentIndex] = childList[i] + '=' + speeddial_gPrefBranch.getIntPref(childList[i]);
67
 
              break;
68
 
 
69
 
            case Components.interfaces.nsIPrefBranch.PREF_STRING:
70
 
              speeddialExport[currentIndex] = childList[i] + '=' + speeddial_gPrefBranch.getCharPref(childList[i]);
71
 
              break;
72
 
          }
73
 
          currentIndex++;
74
 
        }
75
 
      }
76
 
    } catch(e) { }
77
 
  }
78
 
 
79
 
  speeddialExport.sort();
80
 
  speeddial_saveToFile(speeddialExport);
81
 
}
82
 
 
83
 
 
84
 
function speeddial_importSettings() {
85
 
  var strings = document.getElementById("prefsStrings");
86
 
 
87
 
  var pattern = speeddial_loadFromFile();
88
 
  if(!pattern) return false;
89
 
 
90
 
  var i;
91
 
  var speeddialImport = new Array;
92
 
  var appendFilters = null;
93
 
 
94
 
  if ((pattern[1].indexOf("Speed Dial - Settings") < 0) && (pattern[1].indexOf("Speed Dial - Dials") < 0)) {
95
 
    alert(strings.getString('prefs.invalid'));
96
 
    return false;
97
 
  }
98
 
 
99
 
  if (!confirm(strings.getString('prefs.import'))) return false;
100
 
 
101
 
  for (i = 6; i < pattern.length; i++) {
102
 
    var index = pattern[i].indexOf("=");
103
 
 
104
 
    if (index > 0) {
105
 
      speeddialImport[i] = [];
106
 
      speeddialImport[i].push(pattern[i].substring(0, index));
107
 
      speeddialImport[i].push(pattern[i].substring(index + 1, pattern[i].length));
108
 
    }
109
 
  }
110
 
  
111
 
  var processedThumbnails = new Array();
112
 
 
113
 
  for(i = 6; i < speeddialImport.length; i++) {
114
 
    try {
115
 
      var addCharAsComplex = false;
116
 
      var prefType;
117
 
      
118
 
      if (speeddialImport[i][0].indexOf("thumbnail-") == 0) {
119
 
        // Determine preference type
120
 
        if (speeddialImport[i][0].indexOf("-label") > -1) {
121
 
          addCharAsComplex = true;
122
 
          prefType = Components.interfaces.nsIPrefBranch.PREF_STRING;
123
 
        } else if (speeddialImport[i][0].indexOf("-refreshinterval") > -1) {
124
 
          prefType = Components.interfaces.nsIPrefBranch.PREF_INT;
125
 
        } else if (speeddialImport[i][0].indexOf("-dynamictitle") > -1) {
126
 
          prefType = Components.interfaces.nsIPrefBranch.PREF_BOOL;
127
 
        } else {
128
 
          // Char by default
129
 
          prefType = Components.interfaces.nsIPrefBranch.PREF_STRING;
130
 
        }
131
 
        var number = (speeddialImport[i][0].split("-", 2))[1];
132
 
        if (!processedThumbnails[number]) {
133
 
          // Refresh thumbnail
134
 
          processedThumbnails[number] = true;
135
 
        }
136
 
      } else {
137
 
        prefType = speeddial_gPrefBranch.getPrefType(speeddialImport[i][0]);
138
 
      }
139
 
      switch (prefType) {
140
 
        case Components.interfaces.nsIPrefBranch.PREF_BOOL:
141
 
          speeddial_gPrefBranch.setBoolPref(speeddialImport[i][0],/true/i.test(speeddialImport[i][1]));
142
 
          break;
143
 
 
144
 
        case Components.interfaces.nsIPrefBranch.PREF_INT:
145
 
          speeddial_gPrefBranch.setIntPref(speeddialImport[i][0], speeddialImport[i][1]);
146
 
          break;
147
 
 
148
 
        case Components.interfaces.nsIPrefBranch.PREF_STRING:
149
 
          var pref = speeddialImport[i][1];
150
 
          if (pref.indexOf('"') == 0) // in prev version we use " " for string
151
 
            pref = pref.substring(1,pref.length - 1);
152
 
          if (addCharAsComplex) {
153
 
            var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
154
 
            str.data = pref;
155
 
            speeddial_gPrefBranch.setComplexValue(speeddialImport[i][0], Components.interfaces.nsISupportsString, str);
156
 
          } else {
157
 
            speeddial_gPrefBranch.setCharPref(speeddialImport[i][0], pref);
158
 
          }
159
 
          break;
160
 
      }
161
 
    } catch(e) { alert(e); }
162
 
  }
163
 
  
164
 
  // Refresh updated thumbnails
165
 
  for (i=1; i<processedThumbnails.length; i++) {
166
 
    if (processedThumbnails[i]) {
167
 
      speeddial_gPrefBranch.setBoolPref("thumbnail-" + i + "-manualrefresh", true);
168
 
    }
169
 
  }
170
 
 
171
 
  window.alert(strings.getString('prefs.importsuccess'));
172
 
  return true;
173
 
/*
174
 
  alert(strings.getString('prefs.importfailed'));
175
 
  return false;
176
 
*/
177
 
}
178
 
 
179
 
 
180
 
function speeddial_saveToFile(patterns) {
181
 
  var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
182
 
  var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
183
 
 
184
 
  var strings = document.getElementById("prefsStrings");
185
 
 
186
 
  fp.init(window, strings.getString('prefs.save'), fp.modeSave);
187
 
  fp.defaultExtension = 'speeddial';
188
 
  fp.defaultString = strings.getString('prefs.defaultFileName') + '.' + fp.defaultExtension;
189
 
  fp.appendFilter(strings.getString('prefs.filter'), "*.speeddial");
190
 
  fp.appendFilters(fp.filterAll);
191
 
 
192
 
  if(fp.show() != fp.returnCancel) {
193
 
 
194
 
    if(fp.file.exists()) fp.file.remove(true);
195
 
    fp.file.create(fp.file.NORMAL_FILE_TYPE, 0666);
196
 
    stream.init(fp.file, 0x02, 0x200, null);
197
 
 
198
 
    for(var i = 0; i < patterns.length; i++) {
199
 
      patterns[i] = patterns[i] + "\n";
200
 
      stream.write(patterns[i], patterns[i].length);
201
 
    }
202
 
 
203
 
    stream.close();
204
 
  } else {
205
 
  }
206
 
}
207
 
 
208
 
 
209
 
function speeddial_loadFromFile() {
210
 
  var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
211
 
  var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
212
 
 
213
 
  var strings = document.getElementById("prefsStrings");
214
 
 
215
 
  fp.init(window, strings.getString('prefs.open'), fp.modeOpen);
216
 
  fp.defaultExtension = 'speeddial';
217
 
  fp.appendFilter(strings.getString('prefs.filter'), "*.speeddial");
218
 
  fp.appendFilters(fp.filterAll);
219
 
 
220
 
  if(fp.show() != fp.returnCancel) {
221
 
    var result = new Array();
222
 
    var charset = "UTF-8";
223
 
    var is = Components.classes["@mozilla.org/intl/converter-input-stream;1"].createInstance(Components.interfaces.nsIConverterInputStream);
224
 
 
225
 
    stream.init(fp.file, 0x01, 0444, null);
226
 
    is.init(stream, charset, 1024, 0xFFFD);
227
 
    
228
 
    if (is instanceof Components.interfaces.nsIUnicharLineInputStream) {
229
 
      var line = {};
230
 
      do {
231
 
        cont = is.readLine(line);
232
 
        result[result.length] = line.value;
233
 
      } while (cont);
234
 
    }
235
 
    
236
 
    is.close();
237
 
    stream.close();
238
 
 
239
 
    return result;
240
 
  }
241
 
 
242
 
  return null;
243
 
}
244
 
 
245
 
function showFirstTimeConfig() {
246
 
  openDialog("chrome://speeddial/content/firstTimeConfig.xul", "",
247
 
             "centerscreen,chrome,dialog,resizable,modal");
248
 
}