158 |
259 |
159 #testCompareWithCurrentVersion |
260 #testCompareWithCurrentVersion |
160 'Opens a info dialog showing the difference between the changes code and the method current code.' |
261 'Opens a info dialog showing the difference between the changes code and the method current code.' |
161 |
262 |
162 #testFindLastSnapshot |
263 #testFindLastSnapshot |
163 'Searches backward for the latest snapshot entry.' |
264 'Searches backward for the previous snapshot entry.' |
164 |
265 |
165 #testFindNextSnapshot |
266 #testFindNextSnapshot |
166 'Searches forward for the next snapshot entry.' |
267 'Searches forward for the next snapshot entry.' |
167 |
268 |
168 ) |
269 ) |
169 |
|
170 "Modified: / 19.5.1998 / 17:59:39 / cg" |
|
171 ! ! |
270 ! ! |
172 |
271 |
173 !NewChangesBrowser class methodsFor:'image specs'! |
272 !NewChangesBrowser class methodsFor:'image specs'! |
174 |
273 |
175 applyFromLastSnapshotIcon |
274 applyFromLastSnapshotIcon |
|
275 ^ self applyFromLastSnapshotIcon2 |
|
276 ! |
|
277 |
|
278 applyFromLastSnapshotIcon1 |
176 "This resource specification was automatically generated |
279 "This resource specification was automatically generated |
177 by the ImageEditor of ST/X." |
280 by the ImageEditor of ST/X." |
178 |
281 |
179 "Do not manually edit this!! If it is corrupted, |
282 "Do not manually edit this!! If it is corrupted, |
180 the ImageEditor may not be able to read the specification." |
283 the ImageEditor may not be able to read the specification." |
181 |
284 |
182 " |
285 " |
|
286 self applyFromLastSnapshotIcon inspect |
183 ImageEditor openOnClass:self andSelector:#applyFromLastSnapshotIcon |
287 ImageEditor openOnClass:self andSelector:#applyFromLastSnapshotIcon |
|
288 Icon flushCachedIcons |
184 " |
289 " |
185 |
290 |
186 <resource: #image> |
291 <resource: #image> |
187 |
292 |
188 ^Icon |
293 ^Icon |
189 constantNamed:#'NewChangesBrowser applyFromLastSnapshotIcon' |
294 constantNamed:#'NewChangesBrowser class applyFromLastSnapshotIcon' |
190 ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@QDQ<@@@@@@@@@@AH"H@@@@@@@@@@@D"H @@@@@@@@@@@RH"@@@@@@@@@@@AH"H@@@@@@@@@@@@@@@@@@@@@@@@@<@@@@@@@@@@@@@@@@@@@@@@@;.;.; @@@@@@@@C.;.;.@@@@@@@@@@@@@@8@@N@@@@C?????C @@@N@@@O????<@@@8@@@@@@@@@C0@@@@8@@O????<O@@C @@@@?????0@@@@C @@@@@@@O@@@N@@@@DQDQDP<@C @@@@@_??DQ@@@@@@@@@A????D@@@@@@@@@DQDQDP@@@@C @@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255 255 0 0 0 255 0 0 0 255 0 255 255 255 255 0 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@C<@@C<@@C<@@C<@@C<@@A<@@D@@?<@@?<@@?<LC?<\C?<\C?<8O?08O?10O?10??C ??[@??_@?<^@?<_@?<_@') ; yourself); yourself] |
295 ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
191 ! |
296 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"H@@@@@@@@@H"H"H @@@@@@@@@@@@@B@@@@@@ |
192 |
297 @@;.;.; H@@@@@@@C.;.;.@@@@@@@@@@@@@@8@@N@@@@C?????C @@@N@@@O????<@@@8@@@@@@@@@C0@@@@8@@O????<O@@C @@@@?????0@@@@C @@@@@@ |
193 applyIcon |
298 @O@@@N@@@@DQDQDP<@C @@@@@_??DQ@@@@@@@@@A????D@@@@@@@@@DQDQDP@@@@C @@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255 255 0 0 0 255 0 0 0 255 0 255 255 255 255 0 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@C?0@B@P@B@P@O?P@O?P@O?0@??@@??@@??LC?<\C?<\C?<8O?08O?10O?10??C ??[@??_@?<^@?<_@?<_@') ; yourself); yourself] |
|
299 ! |
|
300 |
|
301 applyFromLastSnapshotIcon2 |
194 "This resource specification was automatically generated |
302 "This resource specification was automatically generated |
195 by the ImageEditor of ST/X." |
303 by the ImageEditor of ST/X." |
196 |
304 |
197 "Do not manually edit this!! If it is corrupted, |
305 "Do not manually edit this!! If it is corrupted, |
198 the ImageEditor may not be able to read the specification." |
306 the ImageEditor may not be able to read the specification." |
199 |
307 |
200 " |
308 " |
|
309 self applyFromLastSnapshotIcon1 inspect |
|
310 ImageEditor openOnClass:self andSelector:#applyFromLastSnapshotIcon1 |
|
311 Icon flushCachedIcons |
|
312 " |
|
313 |
|
314 <resource: #image> |
|
315 |
|
316 ^Icon |
|
317 constantNamed:#'NewChangesBrowser class applyFromLastSnapshotIcon1' |
|
318 ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
319 @@@BH@@@@@@QDQ<@@BH @@@@@AH"H@@@H"@@@@@@D"H H H"@@@@@@@RH"@"H"@@@@@@@AH"H@H"H@@@@@@@<@@@@BH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
320 @@;.;.; @@@@@@@@C.;.;.@@@@@@@@@@@@@@8@@N@@@@C?????C @@@N@@@O????<@@@8@@@@@@@@@C0@@@@8@@O????<O@@C @@@@?????0@@@@C @@@@@@ |
|
321 @O@@@N@@@@DQDQDP<@C @@@@@_??DQ@@@@@@@@@A????D@@@@@@@@@DQDQDP@@@@C @@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255 255 0 0 0 255 0 0 0 255 0 255 255 255 255 0 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A@C<C@C<C@C<&@C<<@C<\@C<H@@@@?<@@?<@@?<LC?<\C?<\C?<8O?08O?10O?10??C ??[@??_@?<^@?<_@?<_@') ; yourself); yourself] |
|
322 ! |
|
323 |
|
324 applyIcon |
|
325 ^ self applyIcon2 |
|
326 ! |
|
327 |
|
328 applyIcon1 |
|
329 "This resource specification was automatically generated |
|
330 by the ImageEditor of ST/X." |
|
331 |
|
332 "Do not manually edit this!! If it is corrupted, |
|
333 the ImageEditor may not be able to read the specification." |
|
334 |
|
335 " |
|
336 self applyIcon inspect |
201 ImageEditor openOnClass:self andSelector:#applyIcon |
337 ImageEditor openOnClass:self andSelector:#applyIcon |
|
338 Icon flushCachedIcons |
202 " |
339 " |
203 |
340 |
204 <resource: #image> |
341 <resource: #image> |
205 |
342 |
206 ^Icon |
343 ^Icon |
207 constantNamed:#'NewChangesBrowser applyIcon' |
344 constantNamed:#'NewChangesBrowser class applyIcon' |
208 ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'UUUUUUUPUUUUUUUPUUUUUUU[UUUUUUUPP@@@@@@QQUUUUUTPQUUUUUTVQ**UUUTPQUUUUUTPQUUUUUTXQ***UUTPQ**UUUTPQ*****TPQ***%UTPQ****)TPQUUUUUTPQUUUUUTUP@@@@@@PUUUUUUUPUUUUUUUPUUUUUUUPUUUUUUUP') ; colorMapFromArray:#[0 0 0 255 255 255 170 170 170 255 0 0]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself] |
345 ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
346 UUUUUUUPUUUUUU?PUUUUUU?[UUUUUW=PP@@@@C<QQUUU=_4PQUUU?_4VQ**U_?TPQUUUW?TPQUUUW=TXQ***U=TPQ**UUUTPQ*****TPQ***%UTPQ****)TP |
|
347 QUUUUUTPQUUUUUTUP@@@@@@PUUUUUUUPUUUUUUUPUUUUUUUPUUUUUUUP') ; colorMapFromArray:#[0 0 0 255 255 255 170 170 170 255 0 0]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
348 @@@@@@@8@@@8@@A0_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
349 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
350 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
351 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
352 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
353 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself] |
|
354 ! |
|
355 |
|
356 applyIcon2 |
|
357 "This resource specification was automatically generated |
|
358 by the ImageEditor of ST/X." |
|
359 |
|
360 "Do not manually edit this!! If it is corrupted, |
|
361 the ImageEditor may not be able to read the specification." |
|
362 |
|
363 " |
|
364 self applyIcon2 inspect |
|
365 ImageEditor openOnClass:self andSelector:#applyIcon2 |
|
366 Icon flushCachedIcons |
|
367 " |
|
368 |
|
369 <resource: #image> |
|
370 |
|
371 ^Icon |
|
372 constantNamed:#'NewChangesBrowser class applyIcon2' |
|
373 ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[4]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
374 DQDQDQDQDQDQP3PQDQDQDQDQDQECMADQDQDQDQDQECMADQDQDQEDPQDTL4DP@@@@@DL4@DL4@Q@QDQDQP3MAP3PADADQDQDTL3P3PPDPD"H"HQECL3MA@Q@Q |
|
375 DQDQDQP3MADADADQDQDQDTL4DPDPD"H"H"HQEDDQ@Q@RH"H!!DQDQDQDADAH"H"H"H"H"DPDPD"H"H"H!!DQDQ@Q@RH"H"H"H"HQDADADQDQDQDQDQDPDPDQDQ |
|
376 DQDQDQDQ@Q@@@@@@@@@@@@@ADQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDb') ; colorMapFromArray:#[0 0 0 255 255 255 170 170 170 255 0 0 85 85 85]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
377 @@@<@@@<@@A8@C!!8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8_??8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
378 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
379 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
380 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
381 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
382 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself] |
209 ! |
383 ! |
210 |
384 |
211 applyToEndIcon |
385 applyToEndIcon |
212 "This resource specification was automatically generated |
386 "This resource specification was automatically generated |
213 by the ImageEditor of ST/X." |
387 by the ImageEditor of ST/X." |
214 |
388 |
215 "Do not manually edit this!! If it is corrupted, |
389 "Do not manually edit this!! If it is corrupted, |
216 the ImageEditor may not be able to read the specification." |
390 the ImageEditor may not be able to read the specification." |
217 |
391 |
218 " |
392 " |
|
393 self applyToEndIcon inspect |
219 ImageEditor openOnClass:self andSelector:#applyToEndIcon |
394 ImageEditor openOnClass:self andSelector:#applyToEndIcon |
|
395 Icon flushCachedIcons |
220 " |
396 " |
221 |
397 |
222 <resource: #image> |
398 <resource: #image> |
223 |
399 |
224 ^Icon |
400 ^Icon |
225 constantNamed:#'NewChangesBrowser applyToEndIcon' |
401 constantNamed:#'NewChangesBrowser class applyToEndIcon' |
226 ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@B** H@@@B** H@@@@@@ @@@@**( @@@@**(@J@@@@@H@@@@O??H@@@@O??@@@@@@@C@H@@C??3@@ @C??0@ @@@@@0@B@@UUT0B@K@UUT@@H@@@@D@H@CEUUDB@@JG?U@@@@MG?=@@@@@EUU@@B@@@@@@@@@H') ; colorMapFromArray:#[0 0 0 255 255 255 127 127 127 170 170 170]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@C?0@C?0@C?0@O?0@O?0@O?0@??@@??@@??LC?<\C?<\C?<8O?08O?10O?10??C ??[@??_@?<^@?<_@?<_@') ; yourself); yourself] |
402 ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[4]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
403 @@@DP@@@@@@@@@@@@DQ@@@@@@@@@@@@@QD@@@"H"H"@@Q@QD@@@BH"H"H@ADQD@@@@@@@@@ @@QDP@@BH"H"HB@@@DP@@@H"H"H @@@@@@@@@@@@@B@@@@@@ |
|
404 @@L3L3L0H@@@@@@@@3L3L3@@@@@@@@@@@@@@L@@B@@@@@3L3L3@0@@@B@@@CL3L3L@@@H@@@@@@@@@@0@@@@H@@ADQDQDC@@@ @@@@DQDQDP@@@@@ @@@@@@ |
|
405 @A@@@B@@@@DQDQDPD@@ @@@@@SL3DQ@@@@@@@@@AL3L3D@@@@@@@@@DQDQDP@@@@@ @@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255 127 127 127 170 170 170 255 0 0]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A@@@CC?0CC?0&C?0<O?0\O?0HO?0@??@@??@@??LC?<\C?<\C?<8O?08O?10O?10??C ??[@??_@?<^@?<_@?<_@') ; yourself); yourself] |
227 ! |
406 ! |
228 |
407 |
229 compressIcon |
408 compressIcon |
230 "This resource specification was automatically generated |
409 "This resource specification was automatically generated |
231 by the ImageEditor of ST/X." |
410 by the ImageEditor of ST/X." |
625 (Menu new fromLiteralArrayEncoding:(NewChangesBrowser menu)) startUp |
867 (Menu new fromLiteralArrayEncoding:(NewChangesBrowser menu)) startUp |
626 " |
868 " |
627 |
869 |
628 <resource: #menu> |
870 <resource: #menu> |
629 |
871 |
630 ^ |
872 ^ |
631 |
873 #(Menu |
632 #(#Menu |
874 ( |
633 |
875 (MenuItem |
634 #( |
876 activeHelpKey: file |
635 #(#MenuItem |
877 label: 'File' |
636 #label: 'About' |
878 translateLabel: true |
637 #translateLabel: true |
879 submenu: |
638 #activeHelpKey: #about |
880 (Menu |
639 #labelImage: #(#ResourceRetriever nil #menuIcon) |
881 ( |
640 #submenuChannel: #menuAbout |
882 (MenuItem |
641 ) |
883 activeHelpKey: fileReload |
642 #(#MenuItem |
884 enabled: valueOfNotReading |
643 #label: 'File' |
885 label: 'Reload' |
644 #translateLabel: true |
886 itemValue: doReload |
645 #activeHelpKey: #file |
887 translateLabel: true |
646 #submenu: |
888 ) |
647 #(#Menu |
889 (MenuItem |
648 |
890 label: '-' |
649 #( |
891 ) |
650 #(#MenuItem |
892 (MenuItem |
651 #label: 'Reload' |
893 activeHelpKey: fileLoad |
652 #translateLabel: true |
894 enabled: valueOfNotSaving |
653 #value: #doReload |
895 label: 'Load...' |
654 #activeHelpKey: #fileReload |
896 itemValue: doLoad |
655 #enabled: #valueOfNotReading |
897 translateLabel: true |
656 ) |
898 ) |
657 #(#MenuItem |
899 (MenuItem |
658 #label: '-' |
900 label: '-' |
659 ) |
901 ) |
660 #(#MenuItem |
902 (MenuItem |
661 #label: 'Load...' |
903 activeHelpKey: fileSave |
662 #translateLabel: true |
904 enabled: valueOfNotReading |
663 #value: #doLoad |
905 label: 'Save' |
664 #activeHelpKey: #fileLoad |
906 itemValue: doSave |
665 #enabled: #valueOfNotSaving |
907 translateLabel: true |
666 ) |
908 ) |
667 #(#MenuItem |
909 (MenuItem |
668 #label: '-' |
910 label: '-' |
669 ) |
911 ) |
670 #(#MenuItem |
912 (MenuItem |
671 #label: 'Save' |
913 activeHelpKey: fileBrowseClass |
672 #translateLabel: true |
914 enabled: valueOfHavingChangeSelection |
673 #value: #doSave |
915 label: 'Browse Class' |
674 #activeHelpKey: #fileSave |
916 itemValue: doBrowseClass |
675 #enabled: #valueOfNotReading |
917 translateLabel: true |
676 ) |
918 ) |
677 #(#MenuItem |
919 (MenuItem |
678 #label: '-' |
920 label: '-' |
679 ) |
921 ) |
680 #(#MenuItem |
922 (MenuItem |
681 #label: 'Browse Class' |
923 activeHelpKey: fileExit |
682 #translateLabel: true |
924 enabled: valueOfNotSaving |
683 #value: #doBrowseClass |
925 label: 'Exit' |
684 #activeHelpKey: #fileBrowseClass |
926 itemValue: closeRequest |
685 #enabled: #valueOfHavingChangeSelection |
927 translateLabel: true |
686 ) |
928 ) |
687 #(#MenuItem |
929 ) |
688 #label: '-' |
930 nil |
689 ) |
931 nil |
690 #(#MenuItem |
932 ) |
691 #label: 'Exit' |
933 ) |
692 #translateLabel: true |
934 (MenuItem |
693 #value: #closeRequest |
935 label: 'Apply' |
694 #activeHelpKey: #fileExit |
936 translateLabel: true |
695 #enabled: #valueOfNotSaving |
937 submenu: |
696 ) |
938 (Menu |
697 ) nil |
939 ( |
698 nil |
940 (MenuItem |
699 ) |
941 activeHelpKey: applyLine |
700 ) |
942 enabled: valueOfHavingChangeSelection |
701 #(#MenuItem |
943 label: 'Change' |
702 #label: 'Apply' |
944 itemValue: doApply |
703 #translateLabel: true |
945 translateLabel: true |
704 #submenu: |
946 ) |
705 #(#Menu |
947 (MenuItem |
706 |
948 label: '-' |
707 #( |
949 ) |
708 #(#MenuItem |
950 (MenuItem |
709 #label: 'Change' |
951 activeHelpKey: applyAll |
710 #translateLabel: true |
952 enabled: valueOfNotReading |
711 #value: #doApply |
953 label: 'All' |
712 #activeHelpKey: #applyLine |
954 itemValue: doApplyAll |
713 #enabled: #valueOfHavingChangeSelection |
955 translateLabel: true |
714 ) |
956 ) |
715 #(#MenuItem |
957 (MenuItem |
716 #label: '-' |
958 activeHelpKey: applyToEnd |
717 ) |
959 enabled: valueOfHavingSelection |
718 #(#MenuItem |
960 label: 'To End' |
719 #label: 'All' |
961 itemValue: doApplyToEnd |
720 #translateLabel: true |
962 translateLabel: true |
721 #value: #doApplyAll |
963 ) |
722 #activeHelpKey: #applyAll |
964 (MenuItem |
723 #enabled: #valueOfNotReading |
965 activeHelpKey: applyForClassToEnd |
724 ) |
966 enabled: valueOfHavingChangeSelection |
725 #(#MenuItem |
967 label: 'All for Class' |
726 #label: 'To End' |
968 itemValue: doApplyAllForClass |
727 #translateLabel: true |
969 translateLabel: true |
728 #value: #doApplyToEnd |
970 ) |
729 #activeHelpKey: #applyToEnd |
971 (MenuItem |
730 #enabled: #valueOfHavingSelection |
972 activeHelpKey: applyForClassToEnd |
731 ) |
973 enabled: valueOfHavingChangeSelection |
732 #(#MenuItem |
974 label: 'For Class to End' |
733 #label: 'All for Class' |
975 itemValue: doApplyForClassToEnd |
734 #translateLabel: true |
976 translateLabel: true |
735 #value: #doApplyAllForClass |
977 ) |
736 #activeHelpKey: #applyForClassToEnd |
978 (MenuItem |
737 #enabled: #valueOfHavingChangeSelection |
979 label: '-' |
738 ) |
980 ) |
739 #(#MenuItem |
981 (MenuItem |
740 #label: 'For Class to End' |
982 activeHelpKey: applyFromLastSnapshot |
741 #translateLabel: true |
983 enabled: valueOfNotReading |
742 #value: #doApplyForClassToEnd |
984 label: 'From Last Snapshot' |
743 #activeHelpKey: #applyForClassToEnd |
985 itemValue: doApplyFromLastSnapshot |
744 #enabled: #valueOfHavingChangeSelection |
986 translateLabel: true |
745 ) |
987 ) |
746 #(#MenuItem |
988 ) |
747 #label: '-' |
989 nil |
748 ) |
990 nil |
749 #(#MenuItem |
991 ) |
750 #label: 'From last Snapshot' |
992 ) |
751 #translateLabel: true |
993 (MenuItem |
752 #value: #doApplyFromLastSnapshot |
994 activeHelpKey: edit |
753 #activeHelpKey: #applyFromLastSnapshot |
995 label: 'Delete' |
754 #enabled: #valueOfNotReading |
996 translateLabel: true |
755 ) |
997 submenu: |
756 ) nil |
998 (Menu |
757 nil |
999 ( |
758 ) |
1000 (MenuItem |
759 ) |
1001 activeHelpKey: deleteLine |
760 #(#MenuItem |
1002 enabled: valueOfHavingSelection |
761 #label: 'Delete' |
1003 label: 'Change' |
762 #translateLabel: true |
1004 itemValue: doDelete |
763 #activeHelpKey: #edit |
1005 translateLabel: true |
764 #submenu: |
1006 ) |
765 #(#Menu |
1007 (MenuItem |
766 |
1008 label: '-' |
767 #( |
1009 ) |
768 #(#MenuItem |
1010 (MenuItem |
769 #label: 'Change' |
1011 activeHelpKey: deleteAll |
770 #translateLabel: true |
1012 enabled: valueOfNotReading |
771 #value: #doDelete |
1013 label: 'All' |
772 #activeHelpKey: #deleteLine |
1014 itemValue: doDeleteAll |
773 #enabled: #valueOfHavingSelection |
1015 translateLabel: true |
774 ) |
1016 ) |
775 #(#MenuItem |
1017 (MenuItem |
776 #label: '-' |
1018 activeHelpKey: deleteToEnd |
777 ) |
1019 enabled: valueOfHavingSelection |
778 #(#MenuItem |
1020 label: 'To End' |
779 #label: 'All' |
1021 itemValue: doDeleteToEnd |
780 #translateLabel: true |
1022 translateLabel: true |
781 #value: #doDeleteAll |
1023 ) |
782 #activeHelpKey: #deleteAll |
1024 (MenuItem |
783 #enabled: #valueOfNotReading |
1025 activeHelpKey: applyForClassToEnd |
784 ) |
1026 enabled: valueOfHavingChangeSelection |
785 #(#MenuItem |
1027 label: 'All for Class' |
786 #label: 'To End' |
1028 itemValue: doDeleteAllForClass |
787 #translateLabel: true |
1029 translateLabel: true |
788 #value: #doDeleteToEnd |
1030 ) |
789 #activeHelpKey: #deleteToEnd |
1031 (MenuItem |
790 #enabled: #valueOfHavingSelection |
1032 activeHelpKey: deleteForClassToEnd |
791 ) |
1033 enabled: valueOfHavingChangeSelection |
792 #(#MenuItem |
1034 label: 'For Class to End' |
793 #label: 'All for Class' |
1035 itemValue: doDeleteForClassToEnd |
794 #translateLabel: true |
1036 translateLabel: true |
795 #value: #doDeleteAllForClass |
1037 ) |
796 #activeHelpKey: #applyForClassToEnd |
1038 (MenuItem |
797 #enabled: #valueOfHavingChangeSelection |
1039 label: '-' |
798 ) |
1040 ) |
799 #(#MenuItem |
1041 (MenuItem |
800 #label: 'For Class to End' |
1042 activeHelpKey: deleteCompress |
801 #translateLabel: true |
1043 enabled: valueOfNotReading |
802 #value: #doDeleteForClassToEnd |
1044 label: 'Compress' |
803 #activeHelpKey: #deleteForClassToEnd |
1045 itemValue: doCompress |
804 #enabled: #valueOfHavingChangeSelection |
1046 translateLabel: true |
805 ) |
1047 ) |
806 #(#MenuItem |
1048 (MenuItem |
807 #label: '-' |
1049 activeHelpKey: deleteCompressForClass |
808 ) |
1050 enabled: valueOfHavingChangeSelection |
809 #(#MenuItem |
1051 label: 'Compress for Class' |
810 #label: 'Compress' |
1052 itemValue: doCompressForClass |
811 #translateLabel: true |
1053 translateLabel: true |
812 #value: #doCompress |
1054 ) |
813 #activeHelpKey: #deleteCompress |
1055 ) |
814 #enabled: #valueOfNotReading |
1056 nil |
815 ) |
1057 nil |
816 #(#MenuItem |
1058 ) |
817 #label: 'Compress for Class' |
1059 ) |
818 #translateLabel: true |
1060 (MenuItem |
819 #value: #doCompressForClass |
1061 activeHelpKey: test |
820 #activeHelpKey: #deleteCompressForClass |
1062 label: 'Search' |
821 #enabled: #valueOfHavingChangeSelection |
1063 translateLabel: true |
822 ) |
1064 submenu: |
823 ) nil |
1065 (Menu |
824 nil |
1066 ( |
825 ) |
1067 (MenuItem |
826 ) |
1068 activeHelpKey: testFindPreviousSnapshot |
827 #(#MenuItem |
1069 enabled: valueOfHavingSelection |
828 #label: 'Test' |
1070 label: 'Find Previous Snapshot' |
829 #translateLabel: true |
1071 itemValue: doFindSnapshot: |
830 #activeHelpKey: #test |
1072 translateLabel: true |
831 #submenu: |
1073 argument: 'previous' |
832 #(#Menu |
1074 ) |
833 |
1075 (MenuItem |
834 #( |
1076 activeHelpKey: testFindNextSnapshot |
835 #(#MenuItem |
1077 enabled: valueOfHavingSelection |
836 #label: 'Find last Snapshot' |
1078 label: 'Find Next Snapshot' |
837 #translateLabel: true |
1079 itemValue: doFindSnapshot: |
838 #value: #doFindSnapshot: |
1080 translateLabel: true |
839 #activeHelpKey: #testFindLastSnapshot |
1081 argument: 'next' |
840 #enabled: #valueOfHavingSelection |
1082 ) |
841 #argument: 'last' |
1083 (MenuItem |
842 ) |
1084 activeHelpKey: testFindLastSnapshot |
843 #(#MenuItem |
1085 enabled: valueOfHavingSelection |
844 #label: 'Find next Snapshot' |
1086 label: 'Find Last Snapshot' |
845 #translateLabel: true |
1087 itemValue: doFindSnapshot: |
846 #value: #doFindSnapshot: |
1088 translateLabel: true |
847 #activeHelpKey: #testFindNextSnapshot |
1089 argument: 'last' |
848 #enabled: #valueOfHavingSelection |
1090 ) |
849 #argument: 'next' |
1091 ) |
850 ) |
1092 nil |
851 #(#MenuItem |
1093 nil |
852 #label: '-' |
1094 ) |
853 ) |
1095 ) |
854 #(#MenuItem |
1096 (MenuItem |
855 #label: 'Compare with Current Version' |
1097 activeHelpKey: test |
856 #translateLabel: true |
1098 label: 'Test' |
857 #value: #doCompare |
1099 translateLabel: true |
858 #activeHelpKey: #testCompareWithCurrentVersion |
1100 submenu: |
859 #enabled: #valueOfHavingChangeSelection |
1101 (Menu |
860 ) |
1102 ( |
861 ) nil |
1103 (MenuItem |
862 nil |
1104 activeHelpKey: testCompareWithCurrentVersion |
863 ) |
1105 enabled: valueOfHavingChangeSelection |
864 ) |
1106 label: 'Compare with Current Version' |
865 #(#MenuItem |
1107 itemValue: doCompare |
866 #label: 'Settings' |
1108 translateLabel: true |
867 #translateLabel: true |
1109 ) |
868 #activeHelpKey: #settings |
1110 ) |
869 #submenu: |
1111 nil |
870 #(#Menu |
1112 nil |
871 |
1113 ) |
872 #( |
1114 ) |
873 #(#MenuItem |
1115 (MenuItem |
874 #label: 'Auto Update' |
1116 activeHelpKey: settings |
875 #translateLabel: true |
1117 label: 'Settings' |
876 #activeHelpKey: #settingsAutoUpdate |
1118 translateLabel: true |
877 #enabled: #valueOfNotReading |
1119 submenu: |
878 #indication: #autoUpdateMode: |
1120 (Menu |
879 ) |
1121 ( |
880 #(#MenuItem |
1122 (MenuItem |
881 #label: '-' |
1123 activeHelpKey: settingsAutoUpdate |
882 ) |
1124 enabled: valueOfNotReading |
883 #(#MenuItem |
1125 label: 'Auto Update' |
884 #label: 'Private Classes as Separate' |
1126 translateLabel: true |
885 #translateLabel: true |
1127 indication: autoUpdateMode: |
886 #activeHelpKey: #settingsPrivateAsSeparate |
1128 ) |
887 #enabled: #valueOfNotReading |
1129 (MenuItem |
888 #indication: #privateAsSeparate: |
1130 label: '-' |
889 ) |
1131 ) |
890 #(#MenuItem |
1132 (MenuItem |
891 #label: '-' |
1133 activeHelpKey: settingsPrivateAsSeparate |
892 ) |
1134 enabled: valueOfNotReading |
893 #(#MenuItem |
1135 label: 'Private Classes as Separate' |
894 #label: 'Columns' |
1136 translateLabel: true |
895 #translateLabel: true |
1137 indication: privateAsSeparate: |
896 #activeHelpKey: #settingsColumns |
1138 ) |
897 #submenu: |
1139 (MenuItem |
898 #(#Menu |
1140 label: '-' |
899 |
1141 ) |
900 #( |
1142 (MenuItem |
901 #(#MenuItem |
1143 activeHelpKey: settingsColumns |
902 #label: 'Category' |
1144 label: 'Columns' |
903 #activeHelpKey: #settingsColumnsCategory |
1145 translateLabel: true |
904 #indication: #categoryColumn: |
1146 submenu: |
905 ) |
1147 (Menu |
906 #(#MenuItem |
1148 ( |
907 #label: 'Delta Info' |
1149 (MenuItem |
908 #activeHelpKey: #settingsColumnsDeltaInfo |
1150 activeHelpKey: settingsColumnsClassName |
909 #indication: #deltaInfoColumn: |
1151 label: 'Class' |
910 ) |
1152 translateLabel: true |
911 #(#MenuItem |
1153 isVisible: false |
912 #label: 'Type' |
1154 hideMenuOnActivated: false |
913 #activeHelpKey: #settingsColumnsType |
1155 indication: classNameColumn: |
914 #indication: #typeColumn: |
1156 ) |
915 ) |
1157 (MenuItem |
916 #(#MenuItem |
1158 activeHelpKey: settingsColumnsCategory |
917 #label: 'Time Stamp' |
1159 label: 'Selector' |
918 #activeHelpKey: #settingsColumnsTimeStamp |
1160 translateLabel: true |
919 #indication: #timeStampColumn: |
1161 isVisible: false |
920 ) |
1162 hideMenuOnActivated: false |
921 #(#MenuItem |
1163 indication: selectorColumn: |
922 #label: 'Positions' |
1164 ) |
923 #activeHelpKey: #settingsColumnsPosition |
1165 (MenuItem |
924 #indication: #positionsColumn: |
1166 activeHelpKey: settingsColumnsCategory |
925 ) |
1167 label: 'Category' |
926 ) nil |
1168 translateLabel: true |
927 nil |
1169 hideMenuOnActivated: false |
928 ) |
1170 indication: categoryColumn: |
929 ) |
1171 ) |
930 #(#MenuItem |
1172 (MenuItem |
931 #label: '-' |
1173 activeHelpKey: settingsColumnsDeltaInfo |
932 ) |
1174 label: 'Delta Info' |
933 #(#MenuItem |
1175 translateLabel: true |
934 #label: 'Fonts' |
1176 hideMenuOnActivated: false |
935 #translateLabel: true |
1177 indication: deltaInfoColumn: |
936 #enabled: #valueOfNotReading |
1178 ) |
937 #submenuChannel: #menuFont |
1179 (MenuItem |
938 ) |
1180 activeHelpKey: settingsColumnsType |
939 ) nil |
1181 label: 'Type' |
940 nil |
1182 translateLabel: true |
941 ) |
1183 hideMenuOnActivated: false |
942 ) |
1184 indication: typeColumn: |
943 #(#MenuItem |
1185 ) |
944 #label: 'History' |
1186 (MenuItem |
945 #translateLabel: true |
1187 activeHelpKey: settingsColumnsTimeStamp |
946 #submenuChannel: #menuHistory |
1188 label: 'Time Stamp' |
947 ) |
1189 translateLabel: true |
948 #(#MenuItem |
1190 hideMenuOnActivated: false |
949 #label: 'Help' |
1191 indication: timeStampColumn: |
950 #translateLabel: true |
1192 ) |
951 #startGroup: #right |
1193 (MenuItem |
952 #activeHelpKey: #help |
1194 activeHelpKey: settingsColumnsPosition |
953 #submenuChannel: #menuHelp |
1195 label: 'Positions' |
954 ) |
1196 translateLabel: true |
955 ) nil |
1197 hideMenuOnActivated: false |
956 nil |
1198 indication: positionsColumn: |
|
1199 ) |
|
1200 ) |
|
1201 nil |
|
1202 nil |
|
1203 ) |
|
1204 ) |
|
1205 (MenuItem |
|
1206 label: '-' |
|
1207 ) |
|
1208 (MenuItem |
|
1209 enabled: valueOfNotReading |
|
1210 label: 'Fonts' |
|
1211 translateLabel: true |
|
1212 submenuChannel: menuFont |
|
1213 ) |
|
1214 ) |
|
1215 nil |
|
1216 nil |
|
1217 ) |
|
1218 ) |
|
1219 (MenuItem |
|
1220 activeHelpKey: help |
|
1221 label: 'MENU_Help' |
|
1222 translateLabel: true |
|
1223 startGroup: conditionalRight |
|
1224 submenuChannel: menuHelp |
|
1225 ) |
|
1226 ) |
|
1227 nil |
|
1228 nil |
957 ) |
1229 ) |
958 |
|
959 "Modified: / 19.5.1998 / 18:17:27 / cg" |
|
960 ! |
1230 ! |
961 |
1231 |
962 menuTable |
1232 menuTable |
963 "This resource specification was automatically generated |
1233 "This resource specification was automatically generated |
964 by the MenuEditor of ST/X." |
1234 by the MenuEditor of ST/X." |
1076 (Menu new fromLiteralArrayEncoding:(NewChangesBrowser menuToolbar)) startUp |
1346 (Menu new fromLiteralArrayEncoding:(NewChangesBrowser menuToolbar)) startUp |
1077 " |
1347 " |
1078 |
1348 |
1079 <resource: #menu> |
1349 <resource: #menu> |
1080 |
1350 |
1081 ^ |
1351 ^ |
1082 |
1352 #(Menu |
1083 #(#Menu |
1353 ( |
1084 |
1354 (MenuItem |
1085 #( |
1355 activeHelpKey: fileLoad |
1086 #(#MenuItem |
1356 enabled: valueOfNotReading |
1087 #label: 'Load' |
1357 label: 'Load' |
1088 #isButton: true |
1358 itemValue: doLoad |
1089 #value: #doLoad |
1359 translateLabel: true |
1090 #activeHelpKey: #fileLoad |
1360 isButton: true |
1091 #enabled: #valueOfNotReading |
1361 labelImage: (ResourceRetriever XPToolbarIconLibrary loadFromFileIcon) |
1092 #labelImage: #(#ResourceRetriever #Icon #loadIcon) |
1362 ) |
1093 ) |
1363 (MenuItem |
1094 #(#MenuItem |
1364 activeHelpKey: fileSave |
1095 #label: 'Save' |
1365 enabled: valueOfNotSaving |
1096 #isButton: true |
1366 label: 'Save' |
1097 #value: #doSave |
1367 itemValue: doSave |
1098 #activeHelpKey: #fileSave |
1368 translateLabel: true |
1099 #enabled: #valueOfNotSaving |
1369 isButton: true |
1100 #labelImage: #(#ResourceRetriever #Icon #saveIcon) |
1370 labelImage: (ResourceRetriever XPToolbarIconLibrary saveToFileIcon) |
1101 ) |
1371 ) |
1102 #(#MenuItem |
1372 (MenuItem |
1103 #label: '' |
1373 label: '-' |
1104 ) |
1374 ) |
1105 #(#MenuItem |
1375 (MenuItem |
1106 #label: 'Compress' |
1376 activeHelpKey: applyLine |
1107 #isButton: true |
1377 enabled: valueOfHavingChangeSelection |
1108 #value: #doCompress |
1378 label: 'Apply' |
1109 #activeHelpKey: #deleteCompress |
1379 itemValue: doApply |
1110 #enabled: #valueOfNotReading |
1380 translateLabel: true |
1111 #labelImage: #(#ResourceRetriever nil #compressIcon) |
1381 isButton: true |
1112 ) |
1382 labelImage: (ResourceRetriever nil applyIcon) |
1113 #(#MenuItem |
1383 ) |
1114 #label: '' |
1384 (MenuItem |
1115 ) |
1385 activeHelpKey: applyToEnd |
1116 #(#MenuItem |
1386 enabled: valueOfHavingSelection |
1117 #label: 'Apply' |
1387 label: 'Apply To End' |
1118 #isButton: true |
1388 itemValue: doApplyToEnd |
1119 #value: #doApply |
1389 translateLabel: true |
1120 #activeHelpKey: #applyLine |
1390 isButton: true |
1121 #enabled: #valueOfHavingChangeSelection |
1391 labelImage: (ResourceRetriever nil applyToEndIcon) |
1122 #labelImage: #(#ResourceRetriever nil #applyIcon) |
1392 ) |
1123 ) |
1393 (MenuItem |
1124 #(#MenuItem |
1394 activeHelpKey: applyFromLastSnapshot |
1125 #label: 'Apply To End' |
1395 enabled: valueOfNotReading |
1126 #isButton: true |
1396 label: 'Apply From Last Snapshot' |
1127 #value: #doApplyToEnd |
1397 itemValue: doApplyFromLastSnapshot |
1128 #activeHelpKey: #applyToEnd |
1398 translateLabel: true |
1129 #enabled: #valueOfHavingSelection |
1399 isButton: true |
1130 #labelImage: #(#ResourceRetriever nil #applyToEndIcon) |
1400 labelImage: (ResourceRetriever nil applyFromLastSnapshotIcon) |
1131 ) |
1401 ) |
1132 #(#MenuItem |
1402 (MenuItem |
1133 #label: 'Apply From Last Snapshot' |
1403 label: '-' |
1134 #isButton: true |
1404 ) |
1135 #value: #doApplyFromLastSnapshot |
1405 (MenuItem |
1136 #activeHelpKey: #applyFromLastSnapshot |
1406 activeHelpKey: deleteLine |
1137 #enabled: #valueOfNotReading |
1407 enabled: valueOfHavingSelection |
1138 #labelImage: #(#ResourceRetriever nil #applyFromLastSnapshotIcon) |
1408 label: 'Delete' |
1139 ) |
1409 itemValue: doDelete |
1140 #(#MenuItem |
1410 translateLabel: true |
1141 #label: '' |
1411 isButton: true |
1142 ) |
1412 labelImage: (ResourceRetriever nil deleteIcon) |
1143 #(#MenuItem |
1413 ) |
1144 #label: 'Delete' |
1414 (MenuItem |
1145 #isButton: true |
1415 activeHelpKey: deleteToEnd |
1146 #value: #doDelete |
1416 enabled: valueOfHavingSelection |
1147 #activeHelpKey: #deleteLine |
1417 label: 'Delete To End' |
1148 #enabled: #valueOfHavingSelection |
1418 itemValue: doDeleteToEnd |
1149 #labelImage: #(#ResourceRetriever nil #deleteIcon) |
1419 translateLabel: true |
1150 ) |
1420 isButton: true |
1151 #(#MenuItem |
1421 labelImage: (ResourceRetriever nil deleteToEndIcon) |
1152 #label: 'Delete To End' |
1422 ) |
1153 #isButton: true |
1423 (MenuItem |
1154 #value: #doDeleteToEnd |
1424 activeHelpKey: deleteCompress |
1155 #activeHelpKey: #deleteToEnd |
1425 enabled: valueOfNotReading |
1156 #enabled: #valueOfHavingSelection |
1426 label: 'Compress' |
1157 #labelImage: #(#ResourceRetriever nil #deleteToEndIcon) |
1427 itemValue: doCompress |
1158 ) |
1428 translateLabel: true |
1159 #(#MenuItem |
1429 isButton: true |
1160 #label: '' |
1430 labelImage: (ResourceRetriever nil compressIcon) |
1161 ) |
1431 ) |
1162 #(#MenuItem |
1432 (MenuItem |
1163 #label: 'Find Last Snapshot' |
1433 label: '-' |
1164 #isButton: true |
1434 ) |
1165 #value: #doFindSnapshot: |
1435 (MenuItem |
1166 #activeHelpKey: #testFindLastSnapshot |
1436 activeHelpKey: testFindPreviousSnapshot |
1167 #enabled: #valueOfHavingSelection |
1437 enabled: valueOfHavingSelection |
1168 #argument: 'last' |
1438 label: 'Find Previous Snapshot' |
1169 #labelImage: #(#ResourceRetriever nil #findLastSnapshotIcon) |
1439 itemValue: doFindSnapshot: |
1170 ) |
1440 translateLabel: true |
1171 #(#MenuItem |
1441 isButton: true |
1172 #label: 'Find Next Snapshot' |
1442 labelImage: (ResourceRetriever nil findPreviousSnapshotIcon) |
1173 #isButton: true |
1443 argument: 'previous' |
1174 #value: #doFindSnapshot: |
1444 ) |
1175 #activeHelpKey: #testFindNextSnapshot |
1445 (MenuItem |
1176 #enabled: #valueOfHavingSelection |
1446 activeHelpKey: testFindNextSnapshot |
1177 #argument: 'next' |
1447 enabled: valueOfHavingSelection |
1178 #labelImage: #(#ResourceRetriever nil #findNextSnapshotIcon) |
1448 label: 'Find Next Snapshot' |
1179 ) |
1449 itemValue: doFindSnapshot: |
1180 ) nil |
1450 translateLabel: true |
1181 nil |
1451 isButton: true |
|
1452 labelImage: (ResourceRetriever nil findNextSnapshotIcon) |
|
1453 argument: 'next' |
|
1454 ) |
|
1455 ) |
|
1456 nil |
|
1457 nil |
1182 ) |
1458 ) |
1183 ! ! |
1459 ! ! |
1184 |
1460 |
1185 !NewChangesBrowser methodsFor:'accesssing - columns'! |
1461 !NewChangesBrowser methodsFor:'accesssing - columns'! |
1186 |
1462 |
2411 v notNil ifTrue:[v raise]. |
2724 v notNil ifTrue:[v raise]. |
2412 v := self filterLabel. |
2725 v := self filterLabel. |
2413 v notNil ifTrue:[v label: 'Read:'; redraw]. |
2726 v notNil ifTrue:[v label: 'Read:'; redraw]. |
2414 |
2727 |
2415 self withReadCursorDo:[ |
2728 self withReadCursorDo:[ |
2416 |myProcess myPriority| |
2729 |myProcess myPriority| |
2417 |
2730 |
2418 " |
2731 " |
2419 this is a time consuming operation (especially, if reading an |
2732 this is a time consuming operation (especially, if reading an |
2420 NFS-mounted directory; therefore lower my priority... |
2733 NFS-mounted directory; therefore lower my priority... |
2421 " |
2734 " |
2422 inBackground ifTrue:[ |
2735 inBackground ifTrue:[ |
2423 myProcess := Processor activeProcess. |
2736 myProcess := Processor activeProcess. |
2424 myPriority := myProcess priority. |
2737 myPriority := myProcess priority. |
2425 myProcess priority:(Processor userBackgroundPriority). |
2738 myProcess priority:(Processor userBackgroundPriority). |
2426 ]. |
2739 ]. |
2427 |
2740 |
2428 [ |
2741 [ |
2429 |excla timeStampInfo lastChange| |
2742 |excla timeStampInfo lastChange| |
2430 |
2743 |
2431 excla := aStream class chunkSeparator. |
2744 excla := aStream class chunkSeparator. |
2432 |
2745 |
2433 [aStream atEnd] whileFalse:[ |
2746 [aStream atEnd] whileFalse:[ |
2434 |change changeDelta changeString changeType changeCategory |
2747 |change changeDelta changeString changeType changeCategory |
2435 line s l changeClass sawExcla category |
2748 line s l changeClass sawExcla category className selector |
2436 chunkText chunkPos sel oldValue| |
2749 chunkText chunkPos sel oldValue| |
2437 |
2750 |
2438 change := Change new. |
2751 change := Change new. |
2439 " |
2752 " |
2440 get a chunk (separated by excla) |
2753 get a chunk (separated by excla) |
2441 " |
2754 " |
2442 oldValue := self valueOfReadProgress value. |
2755 oldValue := self valueOfReadProgress value. |
2443 self valueOfReadProgress value: (((aStream position/aStream size) * 100) rounded). |
2756 self valueOfReadProgress value: (((aStream position/aStream size) * 100) rounded). |
2444 "/ oldValue ~~ self valueOfReadProgress value |
2757 "/ oldValue ~~ self valueOfReadProgress value |
2445 "/ ifTrue: [self readProgressIndicator redrawEdges;redraw]. |
2758 "/ ifTrue: [self readProgressIndicator redrawEdges;redraw]. |
2446 |
2759 |
2447 aStream skipSeparators. |
2760 aStream skipSeparators. |
2448 chunkPos := aStream position. |
2761 chunkPos := aStream position. |
2449 |
2762 |
2450 sawExcla := aStream peekFor:excla. |
2763 sawExcla := aStream peekFor:excla. |
2451 chunkText := aStream nextChunk. |
2764 chunkText := aStream nextChunk. |
2452 chunkText notNil ifTrue:[ |
2765 chunkText notNil ifTrue:[ |
2453 |index headerLine cls| |
2766 |index headerLine cls| |
2454 |
2767 |
2455 (chunkText startsWith:'''---- timestamp ') ifTrue:[ |
2768 (chunkText startsWith:'''---- timestamp ') ifTrue:[ |
2456 timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces. |
2769 timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces. |
2457 ] ifFalse:[ |
2770 ] ifFalse:[ |
2458 |
2771 |
2459 " |
2772 " |
2460 only first line is saved in changeChunks... |
2773 only first line is saved in changeChunks... |
2461 " |
2774 " |
2462 index := chunkText indexOf:(Character cr). |
2775 index := chunkText indexOf:(Character cr). |
2463 (index ~~ 0) ifTrue:[ |
2776 (index ~~ 0) ifTrue:[ |
2464 chunkText := chunkText copyTo:(index - 1). |
2777 chunkText := chunkText copyTo:(index - 1). |
2465 |
2778 |
2466 "take care for comment changes - must still be a |
2779 "take care for comment changes - must still be a |
2467 valid expression for classNameOfChange: to work" |
2780 valid expression for classNameOfChange: to work" |
2468 |
2781 |
2469 (chunkText endsWith:'comment:''') ifTrue:[ |
2782 (chunkText endsWith:'comment:''') ifTrue:[ |
2470 chunkText := chunkText , '...''' |
2783 chunkText := chunkText , '...''' |
2471 ]. |
2784 ]. |
2472 (chunkText endsWith:'primitiveDefinitions:''') ifTrue:[ |
2785 (chunkText endsWith:'primitiveDefinitions:''') ifTrue:[ |
2473 sel := 'primitiveDefinitions:'. |
2786 sel := 'primitiveDefinitions:'. |
2474 chunkText := chunkText copyWithoutLast:1 |
2787 chunkText := chunkText copyWithoutLast:1 |
2475 ]. |
2788 ]. |
2476 (chunkText endsWith:'primitiveVariables:''') ifTrue:[ |
2789 (chunkText endsWith:'primitiveVariables:''') ifTrue:[ |
2477 sel := 'primitiveVariables:'. |
2790 sel := 'primitiveVariables:'. |
2478 chunkText := chunkText copyWithoutLast:1 |
2791 chunkText := chunkText copyWithoutLast:1 |
2479 ]. |
2792 ]. |
2480 (chunkText endsWith:'primitiveFunctions:''') ifTrue:[ |
2793 (chunkText endsWith:'primitiveFunctions:''') ifTrue:[ |
2481 sel := 'primitiveFunctions:'. |
2794 sel := 'primitiveFunctions:'. |
2482 chunkText := chunkText copyWithoutLast:1 |
2795 chunkText := chunkText copyWithoutLast:1 |
2483 ]. |
2796 ]. |
2484 ]. |
2797 ]. |
2485 |
2798 |
2486 change chunk: chunkText. |
2799 change chunk: chunkText. |
2487 change position: chunkPos. |
2800 change position: chunkPos. |
2488 lastChange notNil ifTrue: [lastChange lastPosition: chunkPos - 1]. |
2801 lastChange notNil ifTrue: [lastChange lastPosition: chunkPos - 1]. |
2489 lastChange := change. |
2802 lastChange := change. |
2490 change timeStamp: timeStampInfo. |
2803 change timeStamp: timeStampInfo. |
2491 change followUp: false. |
2804 change followUp: false. |
2492 headerLine := nil. |
2805 headerLine := nil. |
2493 changeDelta := ' '. |
2806 changeDelta := ' '. |
2494 |
2807 |
2495 sawExcla ifFalse:[ |
2808 sawExcla ifFalse:[ |
2496 (chunkText startsWith:'''---- snap') ifTrue:[ |
2809 (chunkText startsWith:'''---- snap') ifTrue:[ |
2497 changeType := ''. |
2810 changeType := ''. |
2498 headerLine := chunkText. |
2811 headerLine := chunkText. |
2499 changeString := (chunkText contractTo:maxLen). |
2812 changeString := (chunkText contractTo:maxLen). |
2500 timeStampInfo := nil. |
2813 timeStampInfo := nil. |
2501 ] ifFalse:[ |
2814 ] ifFalse:[ |
2502 |
2815 |
2503 |p cls| |
2816 |p cls| |
2504 |
2817 |
2505 headerLine := chunkText , ' (doIt)'. |
2818 headerLine := chunkText , ' (doIt)'. |
2506 |
2819 |
2507 " |
2820 " |
2508 first, assume doIt - then lets have a more detailed look... |
2821 first, assume doIt - then lets have a more detailed look... |
2509 " |
2822 " |
2510 ((chunkText startsWith:'''---- file') |
2823 ((chunkText startsWith:'''---- file') |
2511 or:[(chunkText startsWith:'''---- check')]) ifTrue:[ |
2824 or:[(chunkText startsWith:'''---- check')]) ifTrue:[ |
2512 changeType := ''. |
2825 changeType := ''. |
2513 timeStampInfo := nil. |
2826 timeStampInfo := nil. |
2514 ] ifFalse:[ |
2827 ] ifFalse:[ |
2515 changeType := 'doIt'. |
2828 changeType := 'doIt'. |
2516 ]. |
2829 ]. |
2517 changeString := (chunkText contractTo:maxLen). |
2830 changeString := (chunkText contractTo:maxLen). |
2518 |
2831 |
2519 p := Parser parseExpression:chunkText inNameSpace:Smalltalk. |
2832 p := Parser parseExpression:chunkText inNameSpace:Smalltalk. |
2520 (p notNil |
2833 (p notNil |
2521 and:[p ~~ #Error |
2834 and:[p ~~ #Error |
2522 and:[p isMessage]]) ifTrue:[ |
2835 and:[p isMessage]]) ifTrue:[ |
2523 sel := p selector. |
2836 sel := p selector. |
2524 ]. |
2837 ]. |
2525 (sel == #removeSelector:) ifTrue:[ |
2838 (sel == #removeSelector:) ifTrue:[ |
2526 p receiver isUnaryMessage ifTrue:[ |
2839 p receiver isUnaryMessage ifTrue:[ |
2527 cls := p receiver receiver name. |
2840 cls := p receiver receiver name. |
2528 changeClass := (Smalltalk classNamed:cls) class. |
2841 changeClass := (Smalltalk classNamed:cls) class. |
2529 cls := cls , ' class'. |
2842 cls := cls , ' class'. |
2530 ] ifFalse:[ |
2843 ] ifFalse:[ |
2531 cls := p receiver name. |
2844 cls := p receiver name. |
2532 changeClass := (Smalltalk classNamed:cls) |
2845 changeClass := (Smalltalk classNamed:cls) |
2533 ]. |
2846 ]. |
2534 sel := (p args at:1) evaluate. |
2847 sel := (p args at:1) evaluate. |
2535 |
2848 |
2536 DeltaInfoColumn ifTrue:[ |
2849 DeltaInfoColumn ifTrue:[ |
2537 (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[ |
2850 (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[ |
2538 changeDelta := '?' |
2851 changeDelta := '?' |
2539 ] ifFalse:[ |
2852 ] ifFalse:[ |
2540 (changeClass implements:sel asSymbol) ifTrue:[ |
2853 (changeClass implements:sel asSymbol) ifTrue:[ |
2541 changeDelta := '-'. |
2854 changeDelta := '-'. |
2542 ] |
2855 ] |
2543 ] |
2856 ] |
2544 ]. |
2857 ]. |
2545 changeType := 'remove'. |
2858 changeType := 'remove'. |
2546 changeString := self contractClass:cls selector:sel to:maxLen. |
2859 changeString := self contractClass:cls selector:sel to:maxLen. |
2547 ]. |
2860 className := cls. |
2548 (p ~~ #Error |
2861 selector := sel. |
2549 and:[p isMessage |
2862 ]. |
2550 and:[p receiver isMessage |
2863 (p notNil and:[p ~~ #Error |
2551 and:[p receiver selector == #compiledMethodAt:]]]) ifTrue:[ |
2864 and:[p isMessage |
2552 p receiver receiver isUnaryMessage ifTrue:[ |
2865 and:[p receiver isMessage |
2553 cls := p receiver receiver receiver name. |
2866 and:[p receiver selector == #compiledMethodAt:]]]]) ifTrue:[ |
2554 changeClass := (Smalltalk classNamed:cls) class. |
2867 p receiver receiver isUnaryMessage ifTrue:[ |
2555 cls := cls , ' class'. |
2868 cls := p receiver receiver receiver name. |
2556 ] ifFalse:[ |
2869 changeClass := (Smalltalk classNamed:cls) class. |
2557 cls := p receiver receiver name. |
2870 cls := cls , ' class'. |
2558 changeClass := (Smalltalk classNamed:cls) |
2871 ] ifFalse:[ |
2559 ]. |
2872 cls := p receiver receiver name. |
2560 (sel == #category:) ifTrue:[ |
2873 changeClass := (Smalltalk classNamed:cls) |
2561 sel := (p receiver args at:1) evaluate. |
2874 ]. |
2562 changeType := '(category change)'. |
2875 (sel == #category:) ifTrue:[ |
2563 changeString := self contractClass:cls selector:sel to:maxLen. |
2876 sel := (p receiver args at:1) evaluate. |
2564 ]. |
2877 changeType := '(category change)'. |
2565 (sel == #privacy:) ifTrue:[ |
2878 changeString := self contractClass:cls selector:sel to:maxLen. |
2566 sel := (p receiver args at:1) evaluate. |
2879 ]. |
2567 changeType := 'privacy change'. |
2880 (sel == #privacy:) ifTrue:[ |
2568 changeString := self contractClass:cls selector:sel to:maxLen. |
2881 sel := (p receiver args at:1) evaluate. |
2569 ]. |
2882 changeType := 'privacy change'. |
2570 ]. |
2883 changeString := self contractClass:cls selector:sel to:maxLen. |
2571 (#(#'subclass:' |
2884 ]. |
2572 #'variableSubclass:' |
2885 className := cls. |
2573 #'variableByteSubclass:' |
2886 selector := sel. |
2574 #'variableWordSubclass:' |
2887 ]. |
2575 #'variableLongSubclass:' |
2888 (#(#'subclass:' |
2576 #'variableFloatSubclass:' |
2889 #'variableSubclass:' |
2577 #'variableDoubleSubclass:' |
2890 #'variableByteSubclass:' |
2578 #'primitiveDefinitions:' |
2891 #'variableWordSubclass:' |
2579 #'primitiveFunctions:' |
2892 #'variableLongSubclass:' |
2580 #'primitiveVariables:' |
2893 #'variableFloatSubclass:' |
2581 ) includes:sel) ifTrue:[ |
2894 #'variableDoubleSubclass:' |
2582 changeType := 'class definition'. |
2895 #'primitiveDefinitions:' |
2583 ]. |
2896 #'primitiveFunctions:' |
2584 ] |
2897 #'primitiveVariables:' |
2585 ] ifTrue:[ |
2898 ) includes:sel) ifTrue:[ |
2586 |done first p className cls text methodPos| |
2899 changeType := 'class definition'. |
2587 |
2900 ]. |
2588 " |
2901 ] |
2589 method definitions actually consist of |
2902 ] ifTrue:[ |
2590 two (or more) chunks; skip next chunk(s) |
2903 |done first p className cls text methodPos| |
2591 up to an empty one. |
2904 |
2592 The system only writes one chunk, |
2905 " |
2593 and we cannot handle more in this ChangesBrowser.... |
2906 method definitions actually consist of |
2594 " |
2907 two (or more) chunks; skip next chunk(s) |
2595 className := nil. |
2908 up to an empty one. |
2596 p := Parser parseExpression:chunkText inNameSpace:Smalltalk. |
2909 The system only writes one chunk, |
2597 |
2910 and we cannot handle more in this ChangesBrowser.... |
2598 (p notNil and:[p ~~ #Error]) ifTrue:[ |
2911 " |
2599 sel := p selector. |
2912 className := nil. |
2600 (sel == #methodsFor:) ifTrue:[ |
2913 p := Parser parseExpression:chunkText inNameSpace:Smalltalk. |
2601 p receiver isUnaryMessage ifTrue:[ |
2914 |
2602 className := p receiver receiver name. |
2915 (p notNil and:[p ~~ #Error]) ifTrue:[ |
2603 changeClass := (Smalltalk classNamed:className) class. |
2916 sel := p selector. |
2604 className := className , ' class'. |
2917 (sel == #methodsFor:) ifTrue:[ |
2605 ] ifFalse:[ |
2918 p receiver isUnaryMessage ifTrue:[ |
2606 className := p receiver name. |
2919 className := p receiver receiver name. |
2607 changeClass := Smalltalk classNamed:className |
2920 changeClass := (Smalltalk classNamed:className) class. |
2608 ]. |
2921 className := className , ' class'. |
2609 category := (p args at:1) evaluate. |
2922 ] ifFalse:[ |
2610 ]. |
2923 className := p receiver name. |
2611 ]. |
2924 changeClass := Smalltalk classNamed:className |
2612 |
2925 ]. |
2613 done := false. |
2926 category := (p args at:1) evaluate. |
2614 first := true. |
2927 ]. |
2615 [done] whileFalse:[ |
2928 ]. |
2616 |
2929 |
2617 changeDelta := ' '. |
2930 done := false. |
2618 methodPos := aStream position. |
2931 first := true. |
2619 |
2932 [done] whileFalse:[ |
2620 text := aStream nextChunk. |
2933 |
2621 text isNil ifTrue:[ |
2934 changeDelta := ' '. |
2622 done := true |
2935 methodPos := aStream position. |
2623 ] ifFalse:[ |
2936 |
2624 done := text isEmpty |
2937 text := aStream nextChunk. |
2625 ]. |
2938 text isNil ifTrue:[ |
2626 done ifFalse:[ |
2939 done := true |
2627 first ifFalse:[ |
2940 ] ifFalse:[ |
2628 change := Change new. |
2941 done := text isEmpty |
2629 change chunk: chunkText. |
2942 ]. |
2630 change string:changeString. |
2943 done ifFalse:[ |
2631 change position: methodPos. |
2944 first ifFalse:[ |
2632 change className: className. |
2945 change := Change new. |
2633 lastChange notNil ifTrue: [lastChange lastPosition: methodPos - 1]. |
2946 change chunk: chunkText. |
2634 lastChange := change. |
2947 change string:changeString. |
2635 change timeStamp: timeStampInfo. |
2948 change position: methodPos. |
2636 change followUp: true. |
2949 change className: className. |
2637 editingClassSource := true. |
2950 lastChange notNil ifTrue: [lastChange lastPosition: methodPos - 1]. |
2638 ]. |
2951 lastChange := change. |
2639 |
2952 change timeStamp: timeStampInfo. |
2640 first := false. |
2953 change followUp: true. |
2641 " |
2954 editingClassSource := true. |
2642 try to find the selector |
2955 ]. |
2643 " |
2956 |
2644 sel := nil. |
2957 first := false. |
2645 className notNil ifTrue:[ |
2958 " |
2646 p := Parser |
2959 try to find the selector |
2647 parseMethodSpecification:text |
2960 " |
2648 in:nil |
2961 sel := nil. |
2649 ignoreErrors:true |
2962 className notNil ifTrue:[ |
2650 ignoreWarnings:true. |
2963 p := Parser |
2651 (p notNil and:[p ~~ #Error]) ifTrue:[ |
2964 parseMethodSpecification:text |
2652 sel := p selector. |
2965 in:nil |
2653 ] |
2966 ignoreErrors:true |
2654 ]. |
2967 ignoreWarnings:true. |
2655 |
2968 (p notNil and:[p ~~ #Error]) ifTrue:[ |
2656 sel isNil ifTrue:[ |
2969 sel := p selector. |
2657 changeString := (chunkText contractTo:maxLen). |
2970 ] |
2658 changeType := 'change'. |
2971 ]. |
2659 headerLine := chunkText , ' (change)'. |
2972 |
2660 ] ifFalse:[ |
2973 sel isNil ifTrue:[ |
2661 changeString := self contractClass:className selector:sel to:maxLen. |
2974 changeString := (chunkText contractTo:maxLen). |
2662 changeType := 'method definition'. |
2975 changeType := 'change'. |
2663 changeCategory := category. |
2976 headerLine := chunkText , ' (change)'. |
2664 headerLine := className , ' ' , sel , ' ' , '(change category: ''' , category , ''')'. |
2977 ] ifFalse:[ |
2665 ]. |
2978 changeString := self contractClass:className selector:sel to:maxLen. |
2666 |
2979 changeType := 'method definition'. |
2667 DeltaInfoColumn ifTrue:[ |
2980 changeCategory := category. |
2668 changeClass isNil ifFalse:[ |
2981 headerLine := className , ' ' , sel , ' ' , '(change category: ''' , category , ''')'. |
2669 changeClass isMeta ifTrue:[ |
2982 change selector:sel. |
2670 cls := changeClass soleInstance |
2983 ]. |
2671 ] ifFalse:[ |
2984 |
2672 cls := changeClass |
2985 DeltaInfoColumn ifTrue:[ |
2673 ]. |
2986 changeClass isNil ifFalse:[ |
2674 ]. |
2987 changeClass isMeta ifTrue:[ |
2675 |
2988 cls := changeClass soleInstance |
2676 (changeClass isNil or:[cls isLoaded not]) ifTrue:[ |
2989 ] ifFalse:[ |
2677 changeDelta := '?' |
2990 cls := changeClass |
2678 ] ifFalse:[ |
2991 ]. |
2679 (changeClass implements:sel asSymbol) ifFalse:[ |
2992 ]. |
2680 changeDelta := '+'. |
2993 |
2681 ] ifTrue:[ |
2994 (changeClass isNil or:[cls isLoaded not]) ifTrue:[ |
2682 |m currentText t1 t2| |
2995 changeDelta := '?' |
2683 |
2996 ] ifFalse:[ |
2684 m := changeClass compiledMethodAt:sel asSymbol. |
2997 (changeClass implements:sel asSymbol) ifFalse:[ |
2685 currentText := m source. |
2998 changeDelta := '+'. |
2686 currentText notNil ifTrue:[ |
2999 ] ifTrue:[ |
2687 text asString = currentText asString ifTrue:[ |
3000 |m currentText t1 t2| |
2688 changeDelta := '=' |
3001 |
2689 ] ifFalse:[ |
3002 m := changeClass compiledMethodAt:sel asSymbol. |
2690 t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded]. |
3003 currentText := m source. |
2691 t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded]. |
3004 currentText notNil ifTrue:[ |
2692 t1 = t2 ifTrue:[ |
3005 text asString = currentText asString ifTrue:[ |
2693 changeDelta := '=' |
3006 changeDelta := '=' |
2694 ] |
3007 ] ifFalse:[ |
2695 ] |
3008 t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded]. |
2696 ] |
3009 t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded]. |
2697 ] |
3010 t1 = t2 ifTrue:[ |
2698 ] |
3011 changeDelta := '=' |
2699 ]. |
3012 ] |
2700 change delta:changeDelta. |
3013 ] |
2701 change string:changeString. |
3014 ] |
2702 change type:changeType. |
3015 ] |
2703 change category: changeCategory. |
3016 ] |
2704 change timeStamp:timeStampInfo. |
3017 ]. |
2705 changes add:change. |
3018 change delta:changeDelta. |
2706 ]. |
3019 change string:changeString. |
2707 changeString := nil. |
3020 change type:changeType. |
2708 headerLine := nil. |
3021 change category: changeCategory. |
2709 |
3022 change timeStamp:timeStampInfo. |
2710 ] |
3023 changes add:change. |
2711 ]. |
3024 ]. |
2712 changeString notNil ifTrue:[ |
3025 changeString := nil. |
2713 change delta:changeDelta. |
3026 headerLine := nil. |
2714 change string:changeString. |
3027 |
2715 change type:changeType. |
3028 ] |
2716 change timeStamp:timeStampInfo. |
3029 ]. |
2717 changes add:change. |
3030 changeString notNil ifTrue:[ |
2718 |
3031 change delta:changeDelta. |
2719 ] ifFalse:[ |
3032 change string:changeString. |
2720 headerLine notNil ifTrue:[ |
3033 change type:changeType. |
2721 changes add: change. |
3034 change timeStamp:timeStampInfo. |
2722 ] |
3035 changes add:change. |
2723 ] |
3036 |
2724 ] |
3037 ] ifFalse:[ |
2725 ]. |
3038 headerLine notNil ifTrue:[ |
2726 change lastPosition: aStream position. |
3039 changes add: change. |
2727 ]. |
3040 ] |
2728 modified := false. |
3041 ] |
2729 |
3042 ] |
2730 ] valueNowOrOnUnwindDo:[ |
3043 ]. |
2731 aStream close. |
3044 change lastPosition: aStream position. |
2732 inBackground ifTrue:[myProcess priority:myPriority]. |
3045 ]. |
2733 ]. |
3046 modified := false. |
|
3047 |
|
3048 ] valueNowOrOnUnwindDo:[ |
|
3049 aStream close. |
|
3050 inBackground ifTrue:[myProcess priority:myPriority]. |
|
3051 ]. |
2734 ]. |
3052 ]. |
2735 self setChangeList. |
3053 self setChangeList. |
2736 self valueOfNotReading value: true. |
3054 self valueOfNotReading value: true. |
2737 self filterField raise. |
3055 self filterField raise. |
2738 self filterLabel label: 'Filter:'. |
3056 self filterLabel label: 'Filter:'. |