Commit b30af2f64cfd7633316ad53bfe13fc033d351bd6

  • avatar
  • egaudet
  • Sun Sep 27 06:32:44 CEST 2009
  • Tree SHA1: 6e11f7d
  • Parent SHA1: e0a342d (Added smiley faces in symbol box popup patch from http://forums.precentral.net/web-os-development/195013-how-get-smilies-symbol-box.html)
  • raw diff | raw patch
Added some patches from wiki and precentral forums.
  
1diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js
2index b2c8848..08d56ac 100644
3--- a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js
4+++ b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js
5@@ -1101,10 +1101,13 @@ HistoryAssistant.prototype.setup = function() {
6 this.controller.setupWidget('historyList', {
7 itemTemplate:'history/history-entry',
8 listTemplate:'history/history-container',
9- itemsCallback:this._itemsCallback.bind(this)
10+ itemsCallback:this._itemsCallback.bind(this),
11+ swipeToDelete:true,
12+ autoconfirmDelete:true
13 });
14
15 this._onListSelectionHandler = this._onListSelection.bindAsEventListener(this);
16+ this._onListDeleteHandler = this._onListDelete.bindAsEventListener(this);
17 this._historyListWidget = this.controller.get('historyList');
18
19 var appMenuModel = {
20@@ -1130,6 +1133,7 @@ HistoryAssistant.prototype.cleanup = function() {
21 HistoryAssistant.prototype.activate = function() {
22
23 this._historyListWidget.addEventListener(Mojo.Event.listTap, this._onListSelectionHandler);
24+ this._historyListWidget.addEventListener(Mojo.Event.listDelete, this._onListDeleteHandler);
25
26 // On an activation for a re-render of the contents.
27 var len = this._historyListWidget.mojo.getLength();
28@@ -1139,6 +1143,7 @@ HistoryAssistant.prototype.activate = function() {
29 HistoryAssistant.prototype.deactivate = function() {
30
31 Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listTap, this._onListSelectionHandler);
32+ Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listDelete, this._onListDeleteHandler);
33 };
34
35 /**
36@@ -1218,6 +1223,10 @@ HistoryAssistant.prototype._onListSelection = function(event) {
37 });
38 };
39
40+HistoryAssistant.prototype._onListDelete = function(event) {
41+ this.historyStore.deleteHistoryEntry(event.item.url, function() {}, function() {});
42+};
43+
44 /**
45 * handle a menu command.
46 */
47@@ -7349,6 +7358,15 @@ function HistoryStore(options, onSuccess, onFailure) {
48 }
49 }
50
51+HistoryStore.prototype._deleteHistoryEntry = function(url, onSuccess, onFailure, transaction) {
52+ this._executeSql(transaction, onSuccess, onFailure,
53+ "DELETE FROM 'history' WHERE url = ?", [url] );
54+};
55+
56+HistoryStore.prototype.deleteHistoryEntry = function(url, onSuccess, onFailure) {
57+ this.database.transaction(this._deleteHistoryEntry.bind(this, url, onSuccess, onFailure));
58+};
59+
60 /** @private */
61 HistoryStore.prototype._addHistoryEntry = function(url, title, date, onSuccess, onFailure, transaction) {
62
  
1diff --git a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js
2index b2c8848..133bc7a 100644
3--- a/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js
4+++ b/usr/palm/applications/com.palm.app.browser/app/controllers/global_code.js
5@@ -1101,10 +1101,13 @@ HistoryAssistant.prototype.setup = function() {
6 this.controller.setupWidget('historyList', {
7 itemTemplate:'history/history-entry',
8 listTemplate:'history/history-container',
9- itemsCallback:this._itemsCallback.bind(this)
10+ itemsCallback:this._itemsCallback.bind(this),
11+ swipeToDelete:true,
12+ autoconfirmDelete:false
13 });
14
15 this._onListSelectionHandler = this._onListSelection.bindAsEventListener(this);
16+ this._onListDeleteHandler = this._onListDelete.bindAsEventListener(this);
17 this._historyListWidget = this.controller.get('historyList');
18
19 var appMenuModel = {
20@@ -1130,6 +1133,7 @@ HistoryAssistant.prototype.cleanup = function() {
21 HistoryAssistant.prototype.activate = function() {
22
23 this._historyListWidget.addEventListener(Mojo.Event.listTap, this._onListSelectionHandler);
24+ this._historyListWidget.addEventListener(Mojo.Event.listDelete, this._onListDeleteHandler);
25
26 // On an activation for a re-render of the contents.
27 var len = this._historyListWidget.mojo.getLength();
28@@ -1139,6 +1143,7 @@ HistoryAssistant.prototype.activate = function() {
29 HistoryAssistant.prototype.deactivate = function() {
30
31 Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listTap, this._onListSelectionHandler);
32+ Mojo.Event.stopListening(this._historyListWidget, Mojo.Event.listDelete, this._onListDeleteHandler);
33 };
34
35 /**
36@@ -1218,6 +1223,10 @@ HistoryAssistant.prototype._onListSelection = function(event) {
37 });
38 };
39
40+HistoryAssistant.prototype._onListDelete = function(event) {
41+ this.historyStore.deleteHistoryEntry(event.item.url, function() {}, function() {});
42+};
43+
44 /**
45 * handle a menu command.
46 */
47@@ -7349,6 +7358,15 @@ function HistoryStore(options, onSuccess, onFailure) {
48 }
49 }
50
51+HistoryStore.prototype._deleteHistoryEntry = function(url, onSuccess, onFailure, transaction) {
52+ this._executeSql(transaction, onSuccess, onFailure,
53+ "DELETE FROM 'history' WHERE url = ?", [url] );
54+};
55+
56+HistoryStore.prototype.deleteHistoryEntry = function(url, onSuccess, onFailure) {
57+ this.database.transaction(this._deleteHistoryEntry.bind(this, url, onSuccess, onFailure));
58+};
59+
60 /** @private */
61 HistoryStore.prototype._addHistoryEntry = function(url, title, date, onSuccess, onFailure, transaction) {
62
  
1Modifies the month controller to show allday events in the month scene by changing the background of the cell to a light blue.
2Index: /usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js
3===================================================================
4--- .orig/usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js
5+++ /usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js
6@@ -25,11 +25,25 @@ var MonthAssistant = Class.create({
7 this.scrollerModel = { scrollbars: false, mode: "vertical-snap", snapIndex: 0, snapElements: { y: [] } };
8 },
9
10+ fullEvts: null,
11+
12 setupMonth: function(startDate, endDate, callbackfn)
13 {
14+ getCalendarService().getEvents(getCurrentCal(),startDate.getTime(), endDate.getTime(),
15+ this.getEventsCallback.bind(this),
16+ this.controller,
17+ this.getEventsFailCallback,
18+ {useSlices: true}
19+ );
20 getCalendarService().getBusyDays(getCurrentCal(), startDate.getTime(), endDate.getTime(), callbackfn, this.controller);
21 },
22-
23+
24+ getEventsCallback: function(resp)
25+ {
26+Mojo.Log.info('month-assistant:getEventsCallback');
27+ this.fullEvts = resp.days;
28+ },
29+
30 buildViewHeader: function()
31 {
32 //Mojo.Log.info("month-assistant: buildViewHeader");
33@@ -342,6 +356,10 @@ var MonthAssistant = Class.create({
34 var daylen = days.length - 1; // We get back more days of info that we want - 1 more in fact, because its inclusive, rather than exclusive
35 for (var d = 0; d < daylen; d++)
36 {
37+ if (this.fullEvts[d].allDayEvents.length > 0)
38+ {
39+ dayCell.style.backgroundColor = '#99ccff';
40+ }
41 var day = this._token2state(days.charCodeAt(d));
42
43 var child = dayCell.firstChild;
  
1diff --git a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js
2index 118e532..bae4b1d 100644
3--- a/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js
4+++ b/usr/palm/applications/com.palm.app.camera/app/controllers/capture-assistant.js
5@@ -78,6 +78,10 @@ CaptureAssistant = Class.create({
6 this.controller.get('flashButtonState').observe(Mojo.Event.tap, function(){
7 this._handleFlashButton();
8 }.bind(this));
9+
10+ this.controller.get('shutterSoundButtonState').observe(Mojo.Event.tap, function(){
11+ this._handleShutterSoundButton();
12+ }.bind(this));
13
14 this.onKeyPressHandler = this.onKeyPress.bindAsEventListener(this);
15 Mojo.listen(this.controller.sceneElement, Mojo.Event.keypress, this.onKeyPressHandler);
16@@ -137,7 +141,12 @@ CaptureAssistant = Class.create({
17 if (undefined === this.flashState){
18 var prefFlashState = +this.cameraControl.prefs[CameraControl.PREFS.FLASH];
19 this.setFlashState(prefFlashState);
20- }
21+ }
22+
23+ if (undefined === this.shutterSoundState){
24+ var prefShutterSoundState = this.cameraControl.prefs[CameraControl.PREFS.SOUNDS];
25+ this.setShutterSoundState(prefShutterSoundState);
26+ }
27
28 try {
29 var initialOrientation = PalmSystem.screenOrientation;
30@@ -600,6 +609,45 @@ CaptureAssistant = Class.create({
31
32 llog("Set Flash Mode to "+camera.flash);
33 },
34+
35+ /**
36+ * Click handler for the shutter sound button.
37+ *
38+ * @param {Event} event The click event
39+ */
40+ _handleShutterSoundButton: function(event){
41+ if (this.shutterSoundState == 'enabled'){
42+ this.shutterSoundState = 'disabled';
43+ }
44+ else {
45+ this.shutterSoundState = 'enabled';
46+ }
47+
48+ this.setShutterSoundState(this.shutterSoundState);
49+ },
50+
51+ setShutterSoundState: function(state){
52+ if ((state != 'disabled') && (state != 'enabled')) {
53+ /*
54+ var elemC = this.controller.get('sagar_console');
55+ if (elemC) {
56+ elemC.innerHTML = state;
57+ }
58+ */
59+ llog("Requested shutter sound state is out of range ("+state+")");
60+ return;
61+ }
62+
63+ this.shutterSoundState = state;
64+ CameraPrefs.updatePref(this.cameraControl.prefs, CameraControl.PREFS.SOUNDS, state);
65+
66+ if (this.shutterSoundState == 'enabled') {
67+ this.controller.get('shutterSoundButtonState').className = "shutter-sound-button shutter-sound-on";
68+ }
69+ else if (this.shutterSoundState == 'disabled') {
70+ this.controller.get('shutterSoundButtonState').className = "shutter-sound-button shutter-sound-off";
71+ }
72+ },
73
74 /**
75 * Handler for click of photoroll button.
76diff --git a/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html b/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html
77index a586aba..e8243d2 100644
78--- a/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html
79+++ b/usr/palm/applications/com.palm.app.camera/app/views/capture/capture-scene.html
80@@ -14,6 +14,8 @@
81 <div id="captureSpinner" class="capture-spinner" x-mojo-element="Spinner"></div>
82 <div class="capture-button" id="captureButton">
83 </div>
84+ <div class="shutter-sound-button shutter-sound-off" id="shutterSoundButtonState">
85+ </div>
86 <div class="flash-button flash-off" id="flashButtonState">
87 </div>
88 </div>
89@@ -23,7 +25,7 @@
90
91 </div>
92 </div>
93- <!-- <div id="sagar_console" style="z-index: 100; position: fixed; top: 10px; left: 10px; width: 90px; height: 20px; background-color: #000000; color: #8080ff; font-family: sans-serif; font-size: 12px; display: none;" >Hello!</div> -->
94+ <!--<div id="sagar_console" style="z-index: 100; position: fixed; top: 10px; left: 10px; width: 90px; height: 20px; background-color: #000000; color: #8080ff; font-family: sans-serif; font-size: 12px; display: none;" >Hello!</div> -->
95 <div id="gpsMeter" style="z-index: 100; position: fixed; top: 10px; right: 10px; width: 90px; height: 20px; background-color: #a0a0a0; display: none" ></div> -->
96
97 <div id="palmScrim" class="palm-scrim" style="z-index: 1001; display: none;">
98diff --git a/usr/palm/applications/com.palm.app.camera/images/menu-shutter-sound.png b/usr/palm/applications/com.palm.app.camera/images/menu-shutter-sound.png
99new file mode 100644
100index 0000000000000000000000000000000000000000..8bdf2e94c31d9df827ca2f21bcdab4dca4958bbc
101GIT binary patch
102literal 5821
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
212
213literal 0
214HcmV?d00001
215
216diff --git a/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css b/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css
217index 6c7d077..ed63c68 100644
218--- a/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css
219+++ b/usr/palm/applications/com.palm.app.camera/stylesheets/camera.css
220@@ -119,6 +119,28 @@ body.palm-default {
221 z-index: 20;
222 }
223
224+.shutter-sound-button,
225+.shutter-sound-button.shutter-sound-off {
226+ width: 50px;
227+ height: 50px;
228+ background: url(../images/menu-shutter-sound.png) 0 0 no-repeat;
229+ position: absolute;
230+ left: 188px;
231+ top: 15px;
232+}
233+
234+.shutter-sound-button.shutter-sound-on:active {
235+ background-position: 0px -50px;
236+}
237+
238+.shutter-sound-button.shutter-sound-on {
239+ background-position: 0px -100px;
240+}
241+
242+.shutter-sound-button.shutter-sound-on:active {
243+ background-position: 0px -150px;
244+}
245+
246 /* Photo Roll */
247
248 .photo-roll {
  
1diff --git a/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js b/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js
2index 74a2327..a3a8f6b 100644
3--- a/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js
4+++ b/usr/palm/applications/com.palm.app.email/app/controllers/list-assistant.js
5@@ -53,7 +53,7 @@ var ListAssistant = Class.create(App.Scene, {
6 itemTemplate: 'list/email_entry',
7 itemsCallback: this.dataSource.updateOffsetAndLimit.bind(this.dataSource),
8 swipeToDelete: true,
9- autoconfirmDelete: true,
10+ autoconfirmDelete: false,
11 uniquenessProperty: 'id',
12 dividerTemplate: 'list/date_separator',
13 dividerFunction: function(email) { return email.dateCategory; }
  
1diff --git a/usr/palm/applications/com.palm.app.email/app/models/Email.js b/usr/palm/applications/com.palm.app.email/app/models/Email.js
2index a42803b..d7ba7e7 100644
3--- a/usr/palm/applications/com.palm.app.email/app/models/Email.js
4+++ b/usr/palm/applications/com.palm.app.email/app/models/Email.js
5@@ -438,7 +438,7 @@ Email.setReplied = function(messageId, value) {
6 }
7
8 Email.kSignaturePlaceholder = "<br><br><span id='signature'></span>";
9-Email.kReplyForwardSetupElems = "<span style='color:navy'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>";
10+Email.kReplyForwardSetupElems = "<span style='color:black'>" + Email.kSignaturePlaceholder + "<hr align='left' style='width:75%'/>";
11
12 Email.kSubjectPrefixRe = $L("Re: ");
13 Email.kSubjectPrefixFw = $L("Fw: ");
  
1diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
2index f343ce2..917dc52 100644
3--- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
4+++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
5@@ -2266,7 +2266,9 @@ updateClockEveryMinute: function() {
6 date.setHours(12);
7 }
8 }
9- $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format});
10+ var formedDate=Mojo.Format.formatDate(date, {date:'short'});
11+ formedDate=formedDate.substr(0,formedDate.lastIndexOf('/'));
12+ $('clock').innerHTML = formedDate+'&nbsp;&nbsp;&nbsp;'+Mojo.Format.formatDate(date, {time:format});
13 $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'});
14 },
15
  
1diff --git a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
2index f343ce2..e34708a 100644
3--- a/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
4+++ b/usr/lib/luna/system/luna-systemui/app/controllers/bar-assistant.js
5@@ -2266,7 +2266,7 @@ updateClockEveryMinute: function() {
6 date.setHours(12);
7 }
8 }
9- $('clock').innerHTML = Mojo.Format.formatDate(date, {time: format});
10+ $('clock').innerHTML = Mojo.Format.formatDate(date, {date:'short',time: format});
11 $('today').innerHTML = Mojo.Format.formatDate(date,{date:'short'});
12 },
13
  
1diff --git a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js
2index 64244b6..e68c9d2 100644
3--- a/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js
4+++ b/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js
5@@ -157,6 +157,10 @@ var LauncherAssistant = Class.create({
6
7 /* keep track of which page we are on */
8 onPageChange: function(event) {
9+ var scroller = this.getPageScroller(this.activePageIndex);
10+ if (scroller && scroller.mojo) {
11+ scroller.mojo.revealTop(0);
12+ }
13 this.activePageIndex = event.value;
14 this.updatePageIndicators();
15 },
  
1diff --git a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js
2index 0c816ba..39d4e6c 100644
3--- a/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js
4+++ b/usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js
5@@ -1750,6 +1750,32 @@ var ChatviewAssistant = Class.create({
6 },
7
8 handleTextAreaKeyUp: function(event) {
9+ if (event && event.ctrlKey && event.keyCode==Mojo.Char.f) {
10+ currentText=this.messageTextElement.value;
11+ oldPos = this.messageTextElement.selectionStart;
12+ newPos = currentText.lastIndexOf(' ',oldPos-1);
13+ if (newPos>-1) {
14+ this.messageTextElement.setSelectionRange(newPos,newPos);
15+ }
16+ else {
17+ this.messageTextElement.setSelectionRange(0,0);
18+ }
19+ Event.stop(event);
20+ }
21+
22+ if (event && event.ctrlKey && event.keyCode==Mojo.Char.g ) {
23+ currentText=this.messageTextElement.value;
24+ oldPos = this.messageTextElement.selectionStart;
25+ newPos = currentText.indexOf(' ',oldPos);
26+ if (newPos>-1) {
27+ this.messageTextElement.setSelectionRange(newPos+1,newPos+1);
28+ }
29+ else {
30+ this.messageTextElement.setSelectionRange(currentText.length,currentText.length);
31+ }
32+ Event.stop(event);
33+ }
34+
35 if (event && Mojo.Char.isEnterKey(event.keyCode)) {
36 this.considerForSend();
37 Event.stop(event);
38@@ -2115,4 +2141,4 @@ var ChatviewAssistant = Class.create({
39 this.controller.sceneScroller.mojo.revealBottom();
40 this.controller.sceneScroller.mojo.revealBottom();
41 }
42-});
43\ No newline at end of file
44+});