forked from mihaisucan/PaintWeb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
1120 lines (896 loc) · 45.8 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2010-06-26:
===========
- Implemented support for Microsoft Internet Explorer 9, technical preview 3.
- Made the code to not rely on the existence of the global Node object.
- Made the code to not rely on the expression evaluation:
if (window.getComputedStyle)
because MSIE 9 reports that as false (window.getComputedStyle is null), even
if it does actually implement support for the method. This is similar to how
document.all is hidden in Opera.
- Made the code to not rely on the successful execution of elem.focus(). MSIE 9
shows an error when code tries to focus an invisible element.
- MSIE 9 does not properly parse the user interface markup when it is loaded
using the XMLHttpRequest. This broke the PaintWeb initialization when it loaded
from the source code, without being packaged. I worked around the issue by using
the xhr.responseText, instead of the responseXML result.
- Fixed a bug in the pwlib.isSameHost() method which prevented it from working
properly in MSIE 9.
Known issues:
- MSIE 9 does not yet implement the globalCompositeOperation property, which
makes the Color mixer visualisation look weird.
- Changing elem.style.width/height causes the Canvas element to be cleared,
which is entirely wrong. This breaks:
- The PaintWeb.imageCrop() method that is used by the image resize handle (the
bottom right corner). I was able to fix this by reordering the code.
- The PaintWeb.updateCanvasScaling() method. This issue cannot be worked
around and it causes PaintWeb to display a transparent image on load.
- The PaintWeb.imageLoad() method. This issue cannot be worked around - at the
moment - and it causes for any image loaded by PaintWeb to disappear ... erm,
in the same method execution. Effectively, you cannot see the image you loaded
into PaintWeb.
- The PaintWeb.imageZoomTo() method. This issue cannot be worked around. Image
zoom relies on having the Canvas element scaled up with CSS.
- TinyMCE 3.2.5 does not work in MSIE 9.
All in all, thank you Microsoft!
2009-11-16:
===========
- New English strings for Moodle 1.9.
2009-11-10:
===========
- Another change for the Color Bucket tool. Now the getImageData() method is
invoked for each line. This is a compromise between lots of memory usage and
performance.
2009-11-09:
===========
- Changed a bit the way the new Color Bucket tool works. The getImageData()
method is very slow on Gecko. Now flood fill runs good enough on Gecko as
well.
2009-11-08:
===========
- Implemented the new Color Bucket tool. This fixes issue #2 :)
- Updated the default PaintWeb configuration to include the new color bucket
tool. Updated the Moodle configuration file as well.
- Updated the default Makefile configuration to include the new color bucket
tool.
- Fixed a bug in the interface script - it caused failure when registering tools
which were not in the interface layout.
- Using the new mozImageSmoothingEnabled added in Gecko 1.9.2 for the Canvas 2D
context. This disables the smooth scaling of the Canvas element on the OLPC XO.
- Updated the English localization file to include the new strings for the color
bucket tool.
2009-11-06:
===========
- Improvements to the imagesave19.php script used for saving images in Moodle
1.9.
2009-11-04:
===========
- Fixed a bug in the TinyMCE plugin. The overlay button did not always show in
the editor. This bug affected Moodle.
2009-10-29:
===========
- Work on Moodle 1.9 integration. Made improvements to the Moodle extension for
PaintWeb and fixed the imagesave19.php script.
2009-10-10:
===========
- Fixed issue #33 by adding a configuration file for the Makefile. Invoke make
config.
- Added config-default.mk. Invoking make config adds config-local.mk which
overwrites any variables from the default config.
- Updated the INSTALL file to include instructions on how to build PaintWeb.
- Made it easier to build PaintWeb by having only a single file to edit paths:
the config-local.mk file. Until now you had to edit files in the scripts/
folder.
- Removed the make moodle target.
- Added the make moodle19 and moodle20 targets, as requested by the Moodle
developers. The Moodle 2.0 package does not include 1.9-only scripts and
vice-versa.
- Updated the README.
2009-10-07:
===========
- Using $CFG->libdir in Moodle integration code, as suggested by Martin
Langhoff. Thanks!
- Fixed the PaintWeb icon in the TinyMCE plugin. Thanks to Mauno Korpelainen for
his suggestion!
2009-09-11:
===========
- Another fix for the overlay button in the TinyMCE plugin. This time, the fix
is for Webkit. Yesterday's change did include a regression in Webkit-based
browsers: the overlay button was not showing up at all.
2009-09-10:
===========
- Made some improvements to the TinyMCE plugin, with regards to the overlay
button.
- Worked around a problem which caused the overlay button to no longer show up
in Opera 10 final. The Opera bug is related to losing image selection, due to
the use of queryCommandState, DOM changes, and mouse events. See Opera bug
DSK-265135 and TC: http://www.robodesign.ro/coding/0064/
2009-08-27:
===========
- Fixed a Text tool drawing bug which affected Gecko-based browsers. See
https://bugzilla.mozilla.org/show_bug.cgi?id=478445
2009-08-26:
===========
- Fixed a performance regression on the OLPC XO. The new checkers background
used for making transparency obvious ... also causes a performance decrease. The
solution is to disable the background image on the OLPC XO.
- Added a new configuration option to allow enabling/disabling of the checkers
background image.
2009-08-24:
===========
- Fixed the simple demo to "work" in MSIE. That is: it should nicely tell the
user that PaintWeb does not work. Before this update, the scripts had JS
"errors".
- Improved the Bézier curve. When only two points were available, the line drawn
didn't use the correct color.
- Fixed an image save bug. At times it did "err", because the first argument of
the imageSave() method is a DOM event object instead of a string when invoked as
a command from the toolbar.
2009-08-23:
===========
- Fixed the config JSON files. Now PaintWeb loads in Safari 4, once again.
Thanks to Dan Poltawski for his bug report and his time for testing.
- The Moodle extension now displays a quickform validation error when the user
tries to submit a form while editing an image with unsaved changes, as suggested
by Martin Langhoff.
- The Moodle extension now hides the textarea[format] selection drop-down while
PaintWeb is visible.
2009-08-20:
===========
- Added a new option to the TinyMCE plugin: syncViewportSize. This allows you to
enable/disable the PaintWeb image viewport size synchronization between TinyMCE
and PaintWeb.
- Now the TinyMCE plugin properly handles form submission while the user is
editing an image. If the image has changes, then form submission is cancelled.
The user is informed that the form submission is cancelled because the image
changes are not saved.
Thanks to Dan Poltawski for this suggestion!
- Added a new option to the TinyMCE plugin: onSubmitUnsaved. This allows you to
provide an event handler function which is invoked *only* when the user attempts
to perform form submission while editing an image which has unsaved changes.
Using this option you can provide custom user feedback for when the form
submission "fails" due to the aforementioned reasons. Your event handler is
passed three paramaters: the DOM event object (form submit), a reference to the
TinyMCE editor instance, and a reference to the PaintWeb instance.
2009-08-19:
===========
- Switched to using a regular expression to parse the data URL, inside the
moodle/imagesave20.php script as suggested by Dan Poltawski. Thanks! It's
cleaner and nicer now.
- Some code adjustments in the TinyMCE plugin - using more of the TinyMCE API,
where appropriate.
2009-08-13:
===========
- Implemented support for dynamic PaintWeb GUI resize. Developers now have
a method for resizing the GUI: PaintWeb.gui.resizeTo(width, height).
- Added a new application event: viewportSizeChange.
- Users can easily resize the PaintWeb GUI with a new resize handle added in the
status bar.
- The TinyMCE plugin has been updated to synchronize the size of the editor
viewport with the image editor viewport of PaintWeb. So, now when you start
editing an image from TinyMCE, the PaintWeb instance will be of a similar size
(GUI differences account for the size differences). Nonetheless, strictly
speaking of the PaintWeb image viewport, it always has the same dimensions as
the TinyMCE editor iframe (where the article is displayed).
- Added a new application event: guiResizeMouseMove. This is used by the new
viewport resize handle.
- Updated English strings and configuration properties.
2009-08-12:
===========
- Modified the Makefile such that "make moodle" creates an archive which only
holds the important parts of PaintWeb - without the docs, tests and demos.
(Suggested by Martin Langhoff, my mentor.)
- Changed the styling of the "plugin bar" of the TinyMCE plugin - the one
displayed at the top of PaintWeb, when it runs inside TinyMCE. The background
color is now yellow, and the two Save/Cancel actions use inputs of type=button.
Thanks to Olli Savolainen.
- The overlay button which shows "Edit" on top of images inside TinyMCE is now
no longer a link. It is an input of type=button. This change also fixed the
problem affecting Firefox users: they couldn't easily click the link, for some
reason. Thanks Olli Savolainen, again!
- The TinyMCE plugin now sets up a reference to the current TinyMCE editor
instance in the current PaintWeb.config instance. This allows extensions from
inside PaintWeb to access the TinyMCE editor - using
PaintWeb.config.tinymceEditor. This is used by the updated Moodle extension.
- Updated the Moodle extension to support image saving inside Moodle 2.0.
- Created a new imagesave20.php script which implements the image save operation
for Moodle 2.0. This script saves images inside the user_draft file area.
2009-08-10:
===========
- Started work on Moodle 2.0 integration. Moodle 1.9 integration has been
postponed for a number of reasons. Further details in an upcoming blog post at
robodesign.ro/mihai.
- New script for localization integration specific to Moodle 2.0 - see
update_tinymcelang.pnp.
- Improved/fixed gen_moodlelang.php.
- Moved the TODO file to the Google Code wiki:
http://code.google.com/p/paintweb/wiki/TODO
The wiki page includes new items and some fixes.
2009-08-03:
===========
- Worked on coding style for the PHP scripts. Now the scripts follow the Moodle
coding guidelines more closely.
- Image save now requires users to be logged-in. Obviously.
- More usage of Moodle API inside the PHP scripts.
- Localization updates.
2009-07-30:
===========
- Completed work on the "Create image" functionality in the TinyMCE plugin.
- Worked around the security violation caused by rendering of images with data
URLs in Webkit/Gecko 1.9.0.
- A bit of improved browser detection in the PaintWeb lib.
- Fixed image saving as JPEG in Firefox.
2009-07-29:
===========
- Implemented better support for the background color configuration option. Now
PaintWeb makes it more obvious when an image has true transparency and when not.
- Fixed the eraser tool to properly erase the image pixels, irrespective of the
background color.
- New icon for the PaintWeb button from the TinyMCE plugin.
- Implemented support for creating new images from the TinyMCE plugin. New
images use data URLs. (still needs bug fixing / testing)
2009-07-28:
===========
- Continued work on image save into Moodle. This time worked on refining the
implementation of image save as a file.
- Fixes/improvements to the server-side script imagesave.php. Now the script
determines if an image comes from a course and updates it accordingly - if
permissions allow it. If the image cannot be found/updated, then a new image is
saved in the PaintWeb images folder inside the data dir.
- Implemented support for image file types in the PaintWeb.imageSave() method.
Currently only Firefox 3.5 and Opera 10 can save PNG and JPEG images. The rest
of the browsers only support PNG.
- When an image from a course is updated, PaintWeb tries to maintain the same
file format: PNG or JPEG. If the format cannot be maintained, then a new PNG
image is created in the PaintWeb images folder from the data dir.
- TinyMCE plugin improvements. Made it behave better with regards to image
updates/saves.
- New config option for image save quality (for JPEGs).
- New config option for "moodleSaveMethod". Now users/devs can easily switch the
PaintWeb Moodle extension to save images as data URLs or as files, depending on
their likings.
- Updated ext/moodle/imageview.php to better integrate into Moodle.
- Updates for English strings.
2009-07-26:
===========
- Fixed the TinyMCE plugin in Firefox 3.0. PaintWeb was failing image saves, GUI
show/hide, etc.
- Further work on image save in Moodle 1.9. This time on two fronts:
a) Save image as a data URL. I worked around the problem in TinyMCE which causes
data URLs to be mangled. Now saving the image as a data URL works fine. I can
also provide a patch to TinyMCE 3 which fixes the problem entirely.
Problems remaining:
* IE 6 / IE 7 data URL support;
* client-side security issues when trying to edit an image with a data URL in
Webkit and Gecko 1.9.0.
b) Save the image in the data directory of Moodle, with a unique hash (sha1).
This works well in all of the browsers (Firefox, Opera, Chrome, Safari).
Problems remaining:
* server-side security issues: who and when is allowed to save an image? How
about viewing an image?
* save location: I rather picked it arbitrarily, based on a chat I had with
Martin.
2009-07-24:
===========
- Attempted to implement image save using data URLs.
The attempt consisted of getting the TinyMCE plugin and the Moodle extension for
PaintWeb to update the target image src attribute to hold the data URL generated
by the browser. This is doable, but the attempt pretty much failed. Reasons:
* TinyMCE does not really allow a plugin to manually change the .src DOM
attribute for the image element, thus I must use their dom.setAttrib() method.
If I do, their attribute value processing functions break the date URL making it
invalid. If I manually set image.src to be what I want, it looks good in the
browser, but when you save the textarea content will still point to the old
image src attribute. Yay!
* For some reason, Webkit considers images with data URLs as "external
resources", thus when I draw them in Canvas, the Canvas is marked as dirty
(security violation). Therefore, In Chrome/Safari one cannot edit data URLs and
save them again.
* Firefox crashes/freezes sometimes when TinyMCE + data URLs are used. Uh-oh.
2009-07-21:
===========
- Renamed the configuration property "imagePreload" to "imageLoad".
- Fixes and improvements to the TinyMCE plugin. It now provides proper feedback
when an image is being saved, when errors occur, or if the save failed.
- Added new application events: imageSaveResult, guiShow, guiHide.
- Implemented a lang.json.php which provides proper Moodle localization
integration. This is used by PaintWeb when it loads the language JSON file.
- Changed %variables% in language files to {variables}.
- Worked on the Moodle extension for PaintWeb. Now, theoretically, image save
works fine.
- New script for handling image saving, on the server-side, in Moodle.
Currently, it's only a placeholder.
- Updated/new English strings.
2009-07-20:
===========
- PaintWeb instances can now be destroyed. Use PaintWeb.destroy().
- New application event: appDestroy.
- Renamed the "initApp" event to "appInit".
- The configuration can now tell the file name of a language.
- Fixes and improvements for the TinyMCE plugin.
2009-07-17:
===========
- Implemented a "plugin bar" which rendered at the top of the PaintWeb instance
by the TinyMCE plugin. This bar displays the current file name the user is
editing, and includes two buttons for image save / cancel edit.
- A bug fix regarding the choice of inserting the PaintWeb instance closer to
the TinyMCE editor (DOM-wise).
2009-07-16:
===========
- Started the implementation of a new extension for PaintWeb, intuitively named
"moodle". This will soon include glue-code for PaintWeb and Moodle.
- The Makefile includes a new "moodle" target. Invoke "make moodle" to make
a custom Moodle build of PaintWeb. Currently, Moodle builds only differ in their
choice of included extensions: the MouseKeys extension is replaced by the new
Moodle extension.
- The TinyMCE plugin now allows the user to start PaintWeb when the image
element is double clicked. So, now, you can simply double click the image to
edit it, yay!
- When PaintWeb starts to load, the TinyMCE plugin provides feedback: the
overlay button shows "PaintWeb is loading".
- Fixed a bug in the TinyMCE plugin: the overlay button was persisting across
page refreshes in Firefox.
- New PaintWeb configuration file tailored for Moodle. Currently, the difference
is that it loads the new Moodle extension instead of the MouseKeys extension.
- Bug fix in the PaintWeb.imageSave() method: when the image cannot be saved,
show the error to the user, don't throw an exception.
- Fixes across the board for keyboard accessibility: improved focusing of
elements, as needed.
- Now PaintWeb no longer listens for all the keyboard events on the global
Window object - this created a conflict with TinyMCE and more complex Web
applications (obviously). Keyboard events are now handled only within the
PaintWeb target element - the GUI placeholder.
- New English strings.
2009-07-15:
===========
- Added support for generating the tags file for the PaintWeb source, in the
Makefile. Just write "make tags".
- Improved the PaintWeb.tar.bz2 package generated by the Makefile: now all the
files are inside the "paintweb" folder.
- The language convert scripts for Moodle now use the PaintWeb build folder.
- Minor fix for the TinyMCE plugin.
2009-07-09:
===========
- Improved multi-language support by changing the language-related options in
the configuration file.
- Improved the TinyMCE plugin to properly determine the language of TinyMCE and
use the same language in PaintWeb.
- Removed the need to tell PaintWeb the baseFolder - where the script is
located. PaintWeb now determines its own location automatically.
- Hacked around the issue of failed PaintWeb loads - the 'load' event for script
elements is not always properly dispatched in all the supported browsers. Now
PaintWeb uses XHR to load and eval() the JS files. Uh-oh.
- Fixed a bug the English language file.
- Wrote a script which converts PaintWeb JSON language files to Moodle PHP
language files.
2009-07-06:
===========
- More work on the TinyMCE plugin. Now PaintWeb can be started from the context
menu, and from a new overlay button which shows on top of the editable image.
- New configuration options for the TinyMCE plugin.
- New API for showing/hiding the PaintWeb GUI.
- Changed the About/Help icon to be a "PaintWeb" icon. Olli suggested it's not
appropriate to show a Help icon when there's no context help. Thanks!
- Minor corrections and some more error checks in PaintWeb with regards to the
loading of external images.
- Added support for the TinyMCE plugin in the Makefile. Now the make process
also generates the editor_plugin.js - a minified version of the
editor_plugin_src.js file.
2009-07-04:
===========
- Implemented a new core function: PaintWeb.imageLoad().
- Initial implementation of the TinyMCE plugin which nicely integrates PaintWeb
into TinyMCE. It works well in Opera, Firefox and Chrome. Remaining work is to
make it less ... flimsy, less error prone. Note that image save also works!
2009-07-02:
===========
- Further work on packaging and jsdoc API reference. Everything should be
working fine now.
- jsdoc comment fixes across several files.
2009-07-01:
===========
- Fixed the "swap fill / stroke colors" command. It now works - you can press
X to swap the two colors.
- General fixes for undefined/unused variables across multiple JS files.
- Packaging scripts for generating the jsdoc API reference.
- Made demo1.html use the packaged PaintWeb script. I also added a timer, so
I can check how long it takes to load PaintWeb.
- Minor fixes for the CSS images inliner script: don't try to inline external
images, and include the "base64" string in the data URI.
- Fixed PaintWeb so that it loads successfully when running as a packaged build.
Mainly I made it properly read the interface markup, and I made sure the screen
resolution is detected even if the interface stylesheet is not yet loaded.
Typically PaintWeb completes initialization before the style loads and that
caused problems.
- Made minor code adjustments for jsdoc-toolkit.
2009-06-30:
===========
- Initial commit of the PaintWeb packager: a Makefile + some PHP scripts.
- Some cleanup (removed the old images).
- Now PaintWeb requires the configuration file to be set manually when
integrated into other Web applications.
- Renamed the config.json file to config-example.json.
- Updated demo1.html to point to the build and the configuration file.
2009-06-29:
===========
- The color picker tool is now fixed and working well.
- Updated the guiColorInput: some code adjustments for the color picker and
jsdoc comments.
- Updated the Color Mixer: some code adjustments for the color picker, and
I also fixed a bug. When closing the floating panel using the X, the Color Mixer
did not detect the change - it does now.
- New application event for the guiFloatingPanel: the
guiFloatingPanelStateChange event. Huh, long name.
- Fixed a bug in the main code: the user was able to change the shadow settings
and see all the updates to the shadow rendering, without actually enabling
shadows. Now all changes to the shadow properties while shadows are not
explicitly enabled, are only stored in the config object, not in the layer
context.
- Removed the Pantone, TruMatch, DIC, ANPA and Toyo color palettes due to
licensing issues. It has been reported these require special licensing. Thanks!
- Now the Text tool is displayed as disabled in Opera and other browsers which
lack support for the Canvas Text API.
- Fixed a minor glitch in the styling of the Selection tab.
- New English strings.
2009-06-27:
===========
- The color mixer is now complete. Fixed the bugs, completed the styling, and
added jsdoc comments.
- Fixed the CIE Lab color calculations.
- Fixed some Opera rendering issues: outlines + redraw problems with the color
mixer Canvas.
2009-06-26:
===========
- The color mixer is now fully functional, but it still has some bugs. For
example, the CIE Lab color values are wrong. Additional work on the panel
styling is still needed (the alpha and the hex inputs are not yet visible).
- Fixed the color palettes: now the files are real json - no evaluation is
needed.
- Made the Canvas element scale properly when different DPI is used - for the
OLPC XO.
2009-06-25:
===========
- Made the input fields update all configuration properties on each change.
Pressing Enter / unfocus is no longer needed.
- Enabled the Color Mixer extension from the configuration.
- Color Mixer initialization works now, without errors.
- The Color Mixer panel is now almost fully functional.
- New English strings related to the Color Mixer extension.
2009-06-24:
===========
- Fixed a selection tool bug: when the selection was too small the mouseup event
handler did not properly set the state to none.
- Further work on the Color Mixer panel styling.
- Made the Color Mixer resizable (and any other floating panel).
- Lots of work on the Color Mixer extension. Initialization of the extension
*almost* works now. The extension not enabled yet, due to the remaining errors
to be fixed.
2009-06-23:
===========
- Continued work on the color input GUI component.
- The Color Mixer shows up now when the user clicks the color inputs. Bad
styling, at the moment.
- New English strings.
- New line settings as defaults. (Martin's suggestion)
- Linking to the Moodle discussion about PaintWeb - asking for feedback in
demo1. (Helen's suggestion)
2009-06-22:
===========
- Fixed the "Insert image" tool.
- Disabled the Text tool in Opera, due to heavy redraw issues, memory leaks, and
security violations. Eh. Bugs reported to Opera.
- Modest beginnings of the new color input GUI component.
- New English strings.
2009-06-21:
===========
- Made improvements to the GUI floating panel component.
- Completed the "About PaintWeb" floating panel.
- Added a PaintWeb logo.
- Updated/new English strings.
2009-06-20:
===========
- Made the Text tool work with Opera 9+ and Firefox 3.0+.
For Opera I use SVG. Unfortunately, sometimes Opera has random SVG redraw
glitches which are visible when using the Text tool inside PaintWeb.
For Firefox 3.0 (Gecko 1.9.0) I use their proprietary mozPathText() method.
2009-06-19:
===========
- demo1 now shows "loading, please wait..." when PaintWeb is loading.
- Fix for the PaintWeb library: keypress is not fired by Gecko in input
elements, for the Up/Down arrows.
- Better shadows support detection - it determines properly that Firefox 3.0
does not implement shadows.
- Better error handling for the initialization. In case of file not found, or
such, the application will now display an error (failed to load ...), instead of
failing silently.
- Buffer context initialization, which reads the configuration file and updates
the context accordingly. This fixes previous inconsistencies.
- Users can press the Up/Down arrows in all inputs of type=number to
increase/decrease the numeric value.
- Completed the GUI work needed for the Text tool tab.
- Completed the work on the Text tool itself. Just need to try workarounds for
Opera and Firefox 3.0 compatibility.
- New configuration options for shadows and text.
- New English strings.
2009-06-18:
===========
- New "selectAll" command. Updated the selection tool accordingly.
- New keyboard shortcut: Control A, for "selectAll".
- Fixed multiple bugs related to the use of get/putImageData. I did some
"stress" testing with images in excess of 5000 x 5000 pixels in Opera, Firefox
and Safari on a Windows machine, Intel Core 2 Duo E6700, 8 GB RAM, 64 bits, etc.
The results were quite interesting: the fastest was Firefox, albeit it is very
slow when performing get/putImageData. It quickly throws "out of memory"
exceptions. The bug fixes I did are for the main code and for the selection
tool.
- Made numerous fixes for the selection tool - there were some cases which were
spitting out exceptions, yay.
- Fixed image cropping issues + canvas rescaling, using the resize handle.
- Started to update the text tool for the new GUI. The layout is almost ready.
The text tool code is almost done as well. The text tab CSS styling will come
tomorrow.
- New configuration options for the text tool.
- New English strings.
2009-06-17:
===========
- New commands within the selection tool.
- Several important fixes for the selection tool (marquee 'management' issues).
- The Selection tab is now done and properly styled, with proper interactivity.
- Worked around some Opera bug regarding the handling of the selection marquee.
- Fixed PaintWeb.imageCrop().
- New configuration options for the selection tool: keyboard shortcuts.
- New English strings.
2009-06-16:
===========
- Fixed the rendering for the tabs for most tools: rectangle, ellipse, polygon
and more.
- Selection tool works again. The selection tab needs further work (tomorrow).
- Selection tool now uses a dashed marquee rendered with an HTML DIV element.
- Fixed the mousekeys extension.
- New application events: selectionChange and clipboardUpdate.
- New configuration options for the selection tool.
- New English strings.
2009-06-15:
===========
- Shadows work again. The Shadows tab shows-up only when shadows can be
rendered.
- Adjustments to how the GUI shows/hides different inputs for each drawing tool.
Needs stylesheet updates (coming tomorrow).
- The eraser tool is now working.
- New application event: shadowAllow.
- New configuration options: shadows and colors.
- Icon fixes for line cap.
- New English strings.
2009-06-13:
===========
- Some bug fixes.
- Made the tabs for rectangle, ellipse, bcurve, polygon, selection, text, pencil
and eraser show up nicely. At the moment the selection, text and eraser tools
still need minor updates - activation fails.
- New English strings.
2009-06-12:
===========
- Several bug fixes.
- New application event for changes to configuration properties.
- Implemented support for inputs associated to configuration properties in the
layout and interface script.
- Implemented the Line options tab. Working fine.
- Did the user interface for Line options as well - might need some additional
adjustments.
- New configuration options.
- New English strings.
2009-06-11:
===========
- Made image zoom to work again and now it's better than it was before, with
complete GUI feedback.
- Added keyboard shortcuts for zoom. This makes the list of keyboard shortcuts
complete. Yay, no more "FIXME".
- Several fixes for the viewport display and interactivity. It's done.
- Several improvements and fixes for the status bar. It's pretty much done.
- Keyboard accessibility improvements. All icons and tabs can be tabbed to using
the keyboard Tab key. People can use the GUI with the keyboard entirely.
- Some initialization fixes. For example, now PaintWeb will load without
failures when there are no extensions configured. When no drawing tool is
configured the initialization fails nicely.
- Some new application events for image size change, canvas size change and zoom
level change.
- Added a new configuration option for setting-up the viewport height. The
viewport width is automatically 100% - the value is not used by the current GUI
implementation.
- More work on the interface stylesheet.
- Fixed and made lots of improvements to the Hand tool. Now it works much better
than the previous implementation.
- Fixes for the following tools: rectangle, Bézier curve, ellipse, line,
polygon, pencil, and for the eraser (which still needs some more fixes).
- English localization updates.
2009-06-10:
===========
- Added keyboard shortcut for Help.
- Added application events for image size changes, image cropping and history
updates.
- Updated the canvasResize function to be imageCrop - because that's what it
really did.
- Updated the GUI:
- made the tabs look as expected.
- fixes for the rendering of tools.
- now the status bar looks almost as expected (just need to add the zoom
icon).
- work on the viewport.
- English localization fixes.
2009-06-09:
===========
- The new interface is coming along together now: PaintWeb loads fine now. The
new toolbar shows the new icons.
- Further work on the interface markup. Almost complete.
- Further work on the interface script. Almost complete.
- Started work on the new interface stylesheet. Mainly the new toolbar and
icons.
- Renamed some tools for better consistency. Renamed some commands for better
consistency.
- Some fixes for the English localization.
- New keyboard shortcuts.
2009-06-08:
===========
- The new interface design and layout is all sketched-out and set pretty much in
stone. Ready to implement it.
- Included all the new icons from the design in the interface folder.
- Completed GUI code reorganization.
- Started updating the layout file to fit with to the new GUI.
- Started updating the interface script for the same purpose - implementation of
the desired user interface interaction.
- Added support for "commands" in the main PaintWeb code. This allows the
association of simple function with IDs. Any such command can be triggered by
keyboard shortcuts and/or by user interface elements.
- Implemented some of the current functionality as "commands" in PaintWeb.
- New keyboard shortcuts for said commands.
- New GUI component: tabbed panel.
- New application events for extension (un)register.
- New localization strings. The layout file was static - the GUI code is now
making sure all the strings in the layout are updated.
Remaining work: complete new GUI interaction code and the new layout file.
Obviously, the stylesheet needs its own additional work - it's pretty much
untouched at the moment.
Initialization fails, at the moment. Commit is for progress logging purposes.
2009-06-06:
===========
- Started work on the Color Mixer extension.
2009-06-03:
===========
- Continued work on the new GUI code.
- More work on the initialization code.
- The application is now able to properly initialize. Try demos/demo1.html
2009-05-29:
===========
- Started splitting the GUI out from the main code.
- Lots of work on the initialization code.
- New API for "application events", like "init", "toolActivate" and more will
come.
Currently the build is broken, it won't start. Stay tuned!
2009-05-26:
===========
- Performance work and bug fixing for the selection tool.
- Performance work and bug fixing for the "Insert image" tool.
- Performance work for the text tool.
- Minor bug fix in the MouseKeys extension. Found a rare case where 'mousemove'
in tool throws (see line 288).
... ready to start work on the new GUI.
2009-05-25:
===========
- Performance and usability work for the polygon tool.
- Bug fixes for curve, rectangle, line and ellipse tools.
- A small change to the way tools can cancel the activation.
- Updated the text tool to use the new activation cancellation. More work on the
text tool will come.
- Updated the tests/gsoc2009/0001-perf/README file and a small fix for perf
test12.
2009-05-23:
===========
- Fixed performance test12. Huh. Working again.
- Included all the work from test12 into PaintWeb. Now the application works
much better on the XO, by default. Yay! ;)
- Made sure that any DPI changes, or zoom level changes in Opera, are detected
automatically while PaintWeb runs.
- Made the MouseKeys extension aware of the current image zoom and the canvas
scaling going on.
2009-05-22:
===========
- Performance test12 is finally working very well in the default Gecko-based
browser on the XO. Yay!
Thanks go to Robert O'Callahan (roc) from Mozilla for his valuable information
on how Gecko renders pages. Also, thanks to my mentor, Martin Langhoff, for
finding the Gecko patches applied on the XO.
This work will be integrated into PaintWeb.
- Added zoom level detection for Opera in performance test12, which semi-works.
Detection of the zoom level is sufficiently accurate, yet, Opera doesn't always
cancel the scaling. For zoom 200% scaling is cancelled and performance is good.
2009-05-21:
===========
- Minor fixes for line, pencil, ellipse and eraser.
- Curve tool: performance work, bug fixes and usability improvements.
- Two new strings in lang/en.json for the curve tool.
2009-05-20:
===========
- Some minor bug fixes.
- New perf test12, for the XO. Thanks to the suggestions provided by roc from
Mozilla!
2009-05-17:
===========
- More code organization work.
- More performance work and bug fixes.
- Performance improvements for the following drawing tools: rectangle, ellipse
and line.
- Further adjustment to the pencil and eraser tools. For example, now you can
press Escape to cancel the drawing operation.
- Added new option to config: toolDrawDelay.
2009-05-13:
===========
- Performance testing on the OLPC XO-1 laptop. Check tests/gsoc2009/0001-perf.
- Improved the performance of the pencil and of the eraser drawing tools.
- Improved performance of ev_keyboard and ev_canvas.
- Improved performance of the MouseKeys extension.
2009-05-08:
===========
- The MouseKeys extension is now working.
- The extension now fires the 'click' event as well, and it allows a second way
of handling mouse button events. Instead of button toggling with a key press.
Now one can simulate holding down the mouse button by holding down a key. See
action 'ButtonClick'.
- The MouseKeys virtual pointer now provides a visual indicator if the mouse
button is down or not.
2009-05-07:
===========
- Made changes to the selection tool. Hopefully, now the code is much easier to
follow.
- Added support for holding the Control key down while performing a selection
operation (drag/resize). This allows the user to toggle the selection
transformation mode easier and quicker. Thanks to Martin Langhoff for the
suggestion.
- Did split the entire tools.js into multiple files. Each tool is in its own
file now. Made the main code load tools individually.
- Conditional loading of json2.js. It won't load in those browsers with native
JSON support.
2009-05-04:
===========
- Most functionality is working again. Notable exceptions: color editor, mouse
keys, shadows and color picker.
- Continued work on the drawing tools code and the main code.
- As stated, keyboard shortcuts work much better from a technical perspective
(no noticeable changes, for now). Only the MouseKeys extension benefits from the
important improvements.
2009-04-29:
===========
- Towards GSOC 2009: started complete code reorganization. PaintWeb does not
run, for the moment.
- Adding jsdoc comments, moving code out of the main index.js and renaming
objects, methods, properties and variables for naming consistency.
- Moved the drawing tools into tools.js.
- Moved language strings into lang/en.js.
- Added lib.js which provides some often-needed functions and methods. Among
these is the important DOM keyboard events compatibility layer for most major
browsers.
- Moved the color editor out from the main code. It will be an extension.
- Added the MouseKeys extension, which should almost work. This extension allows
users to draw using the keyboard, instead of the mouse.
- Keyboard shortcuts support should improve quite a lot once PaintWeb works
again, due to the use of the new lib.dom.KeyboardEventListener class (see lib.js).
- and more ...
2009-04-23:
===========
- PaintWeb will be integrated into Moodle (see Moodle.org) as part of the Google
Summer of Code 2009 program.
2008-11-06:
===========
- PaintWeb is now an open-source project. I picked the GPLv3 license.
- The project is now hosted at Google Code:
http://code.google.com/p/paintweb
- Updated www.robodesign.ro to include PaintWeb.
- Packaged PaintWeb version 0.5 alpha, build 20081106.
2008-10-24:
===========
- New: CMYK color space (without visualisation).
- New: color palettes in the color editor. The available palettes are imported from Photoshop.
- Updated color editor GUI which now includes the color palettes.
- Added the active and old color preview.
- Added close, cancel and save color. Saved colors are added to a custom colors palette. The changes made are not persistent (I should use HTML 5 Storage).
- Added the possibility to double-click on the color visualisation to toggle double-size mode. The same applies to the color palettes tab.
- Fixed the color picker tool.
- Some HTML code reorganization and associated CSS changes.
- Some code clean ups, and changes. More would be needed, given the fact the application grew beyond initial expectations.