Christoph Thiede uploaded a new version of Monticello to project The Trunk: http://source.squeak.org/trunk/Monticello-ct.764.mcz
==================== Summary ====================
Name: Monticello-ct.764 Author: ct Time: 3 January 2022, 9:40:50.200397 pm UUID: 861868bb-b96a-3144-959b-a00a7e62abb0 Ancestors: Monticello-eem.763, Monticello-ct.729
Improves multilingual support.
=============== Diff against Monticello-eem.763 ===============
Item was changed: ----- Method: MCVersionHistoryBrowser>>defaultLabel (in category 'morphic ui') ----- defaultLabel + ^ '{1} History' translated format: {ancestry name}! - ^ ancestry name, ' History'!
Item was changed: ----- Method: MCVersionHistoryBrowser>>searchHistory (in category 'morphic ui') ----- searchHistory + (Project uiManager - (UIManager default edit: (String streamContents: [:s| self selectedInfo topologicalAncestors do: [:versionInfo | s nextPutAll: versionInfo summary] separatedBy: [s cr; cr]]) + label: ('Version History: {1}' translated format: {self selectedInfo versionName})) + extent: (0.5@0.9) * Display height! - label: 'Version History: ', self selectedInfo versionName) - extent: (0.5@0.9) * Display height!
Item was changed: ----- Method: MCVersionHistoryBrowser>>viewChanges:snapshot:relativeTo:snapshot: (in category 'morphic ui') ----- viewChanges: ancestorInfo snapshot: ancestorSnapshot relativeTo: baseInfo snapshot: baseSnapshot "Note that the patchLabel will be parsed in MCPatchBrowser>>installSelection, so don't translate it!!" | patch patchLabel | + patchLabel := 'changes between {1} and {2}' translated format: { baseInfo name. ancestorInfo name }. - patchLabel := 'changes between {1} and {2}' format: { baseInfo name. ancestorInfo name }. patch := ancestorSnapshot patchRelativeToBase: baseSnapshot. (MCPatchBrowser forPatch: patch) label: patchLabel; show!
Item was changed: ----- Method: MCWorkingCopyBrowser>>addWorkingCopy (in category 'actions') ----- addWorkingCopy |name| + name := Project uiManager request: 'Name of package:' translated. - name := UIManager default request: 'Name of package:'. name isEmptyOrNil ifFalse: [PackageInfo registerPackageName: name. workingCopy := MCWorkingCopy forPackage: (MCPackage new name: name). workingCopyWrapper := nil. self repositorySelection: 0]. self workingCopyListChanged; changed: #workingCopySelection; changed: #repositoryList. self changedButtons.!
Item was changed: ----- Method: MCWorkingCopyBrowser>>backportChanges (in category 'actions') ----- backportChanges self canBackport ifFalse: [^self]. workingCopy ifNotNil: + [workingCopy needsSaving ifTrue: [^ self inform: 'You must save the working copy before backporting.' translated]. - [workingCopy needsSaving ifTrue: [^ self inform: 'You must save the working copy before backporting.']. self pickAncestorVersionInfo ifNotNil: [:baseVersionInfo | workingCopy backportChangesTo: baseVersionInfo]]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>checkForNewerVersions (in category 'actions') ----- checkForNewerVersions + "Answer true if there are no newer versions preventing us from saving a version." + | newer | newer := workingCopy possiblyNewerVersionsIn: self repository. + + newer ifEmpty: [^ true]. + + ^ self confirm: ('CAUTION!! {1}:\ {2}\Do you really want to save this version?' withCRs translated format: { + newer size = 1 + ifTrue: ['This version in the repository may be newer' translated] + ifFalse: ['These {1} versions in the repository may be newer' translated format: {newer size}]. + newer asCommaString withNoLineLongerThan: 150})! - ^ newer isEmpty or: [ - self confirm: 'CAUTION!! These versions in the repository may be newer:', - String cr, ((newer asCommaString withNoLineLongerThan: 150) truncateWithElipsisTo: 5 * 149), String cr, - 'Do you really want to save this version?'].!
Item was changed: ----- Method: MCWorkingCopyBrowser>>defaultLabel (in category 'morphic ui') ----- defaultLabel + ^ 'Monticello Browser' translated! - ^ 'Monticello Browser'!
Item was changed: ----- Method: MCWorkingCopyBrowser>>editRepository (in category 'actions') ----- editRepository | newRepo | newRepo := self repository openAndEditTemplateCopy. newRepo ifNotNil: [ newRepo class = self repository class ifTrue: [ self repository copyFrom: newRepo. self changed: #repositoryList ] + ifFalse: [self inform: 'Must not change repository type!!' translated]]! - ifFalse: [self inform: 'Must not change repository type!!']] - !
Item was changed: ----- Method: MCWorkingCopyBrowser>>editScript: (in category 'morphic ui') ----- editScript: scriptSymbol
+ | script | + script := workingCopy packageInfo perform: scriptSymbol. + script openLabel: ('{1} of the Package {2}' translated format: {scriptSymbol. workingCopy package name}).! - | script | - script := workingCopy packageInfo perform: scriptSymbol. - script openLabel: scriptSymbol asString, ' of the Package ', workingCopy package name.!
Item was changed: ----- Method: MCWorkingCopyBrowser>>flushCachedVersions (in category 'actions') ----- flushCachedVersions | beforeBytes afterBytes beforeVersions afterVersions | Cursor wait showWhile: [ Smalltalk garbageCollect. beforeBytes := Smalltalk bytesLeft: true. beforeVersions := MCVersion allSubInstances size. MCFileBasedRepository flushAllCaches. afterBytes := Smalltalk bytesLeft: true. afterVersions := MCVersion allSubInstances size. ]. + ^self inform: ('{1} versions flushed{2} bytes reclaimed' translated format: {beforeVersions - afterVersions. beforeBytes - afterBytes})! - ^self inform: (beforeVersions - afterVersions) asString, ' versions flushed', String cr, - (beforeBytes - afterBytes) asBytesDescription, ' bytes reclaimed'!
Item was changed: ----- Method: MCWorkingCopyBrowser>>flushCachedVersionsAncestry (in category 'actions') ----- flushCachedVersionsAncestry | beforeBytes afterBytes beforeVersions afterVersions beforeInfos afterInfos | Cursor wait showWhile: [ beforeBytes := Smalltalk garbageCollect. beforeVersions := MCVersion allSubInstances size. beforeInfos := MCVersionInfo instanceCount. MCFileBasedRepository flushAllCaches. MCWorkingCopy stubAllAncestry. afterBytes := Smalltalk garbageCollect. afterVersions := MCVersion allSubInstances size. afterInfos := MCVersionInfo instanceCount ]. self inform: + ('{1} versions flushed{2\ infos flushed{3} reclaimed' translated + format: {beforeVersions - afterVersions. beforeInfos - afterInfos. (afterBytes - beforeBytes) asBytesDescription}).! - (beforeVersions-afterVersions) asString, ' versions flushed', - String cr, (beforeInfos-afterInfos), ' infos flushed', - String cr, (afterBytes-beforeBytes) asBytesDescription, ' reclaimed'!
Item was changed: ----- Method: MCWorkingCopyBrowser>>newRepository (in category 'actions') ----- newRepository | types index | types := MCRepository allConcreteSubclasses asArray. + index := Project uiManager chooseFrom: (types collect: [:ea | ea description]) + title: 'Repository type:' translated. - index := UIManager default chooseFrom: (types collect: [:ea | ea description]) - title: 'Repository type:'. ^ index = 0 ifFalse: [(types at: index) morphicConfigure]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>pickAncestorVersionInfo (in category 'morphic ui') ----- pickAncestorVersionInfo | ancestors index | ancestors := workingCopy ancestry breadthFirstAncestors. + index := Project uiManager chooseFrom: (ancestors collect: [:ea | ea name]) + title: 'Ancestor:' translated. - index := UIManager default chooseFrom: (ancestors collect: [:ea | ea name]) - title: 'Ancestor:'. ^ index = 0 ifFalse: [ ancestors at: index]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>pickRepositorySatisfying: (in category 'morphic ui') ----- pickRepositorySatisfying: aBlock | repos index | repos := MCRepositoryGroup default repositories select: aBlock. + index := Project uiManager chooseFrom: (repos collect: [:ea | ea description]) + title: 'Repository:' translated. - index := UIManager default chooseFrom: (repos collect: [:ea | ea description]) - title: 'Repository:'. ^ index = 0 ifFalse: [repos at: index]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>pickWorkingCopySatisfying: (in category 'morphic ui') ----- pickWorkingCopySatisfying: aBlock | copies index | copies := self workingCopies select: aBlock. copies isEmpty ifTrue: [ ^nil ]. + index := Project uiManager chooseFrom: (copies collect: [:ea | ea packageName]) + title: 'Package:' translated. - index := UIManager default chooseFrom: (copies collect: [:ea | ea packageName]) - title: 'Package:'. ^ index = 0 ifFalse: [ copies at: index]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>recompilePackage (in category 'actions') ----- recompilePackage (workingCopy withEnvironmentActiveDo: [workingCopy package packageInfo methods]) do: [:ea | ea actualClass recompile: ea methodSymbol] + displayingProgress: 'Recompiling...' translated.! - displayingProgress: 'Recompiling...'!
Item was changed: ----- Method: MCWorkingCopyBrowser>>renamePackage (in category 'actions') ----- renamePackage | newName | workingCopy ifNil: + [ self inform: 'Please select a package to be renamed.' translated. - [ UIManager inform: 'Please select a package to be renamed.'. ^ self ]. workingCopy modified ifTrue: + [ self inform: 'Only unmodified packages should be renamed.' translated. - [ UIManager inform: 'Only unmodified packages should be renamed.'. ^ self ]. + newName := Project uiManager + request: 'New name of package:' translated - newName := UIManager default - request: 'New name of package:' initialAnswer: workingCopy packageName. newName isEmptyOrNil ifFalse: [ | newWorkingCopy | newWorkingCopy := workingCopy renameToBe: newName. workingCopy package snapshot definitions ifEmpty: [ "It worked." workingCopy unregister. workingCopy := newWorkingCopy. self repositorySelection: 0. self workingCopyListChanged ; changed: #workingCopySelection ; changed: #repositoryList. self changedButtons ] ifNotEmpty: [ "It didn't work, browse the remaining definitions." self browseWorkingCopy ] ]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>revertPackage (in category 'actions') ----- revertPackage self pickAncestorVersionInfo ifNotNil: [:info | (self repositoryGroup versionWithInfo: info + ifNone: [^self inform: ('No repository found for {1}' translated format: {info name})] - ifNone: [^self inform: 'No repository found for ', info name] ) load]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>searchHistory (in category 'actions') ----- searchHistory workingCopy ifNotNil: [(UIManager default edit: (String streamContents: [:s| "Ignore the initial MCWorkingAncestry instance." workingCopy ancestry topologicalAncestors allButFirst do: [:versionInfo| s nextPutAll: versionInfo summary] separatedBy: [s cr; cr"; next: 32 put: $-; cr; cr"]]) + label: ('Version History: {1}' translated format: {workingCopy packageName})) - label: 'Version History: ', workingCopy packageName) extent: (0.6@1) * Display height * 0.9]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>viewChanges (in category 'actions') ----- viewChanges | patch | self canSave ifTrue: [patch := workingCopy changesRelativeToRepository: self repository withCache. patch isNil ifTrue: [ ^self ]. patch isEmpty ifTrue: [ workingCopy modified: false. self inform: ('No changes between your working copy of the package\ {1}\ and the repository at location\ {2}' withCRs translated asText format: { workingCopy packageName asText allBold. self repository description asText allBold })] ifFalse: [ workingCopy modified: true. (MCPatchBrowser forPatch: patch) + label: ('Patch Browser: {1}' translated format: {workingCopy description}); - label: 'Patch Browser: ', workingCopy description; environmentInDisplayingImage: workingCopy environment; show ] ]!
Item was changed: ----- Method: MCWorkingCopyBrowser>>viewHistory (in category 'actions') ----- viewHistory workingCopy ifNotNil: [(MCWorkingHistoryBrowser new ancestry: workingCopy ancestry; package: workingCopy package) + label: ('Version History: {1}' translated format: {workingCopy packageName}); - label: 'Version History: ', workingCopy packageName; show]!
squeak-dev@lists.squeakfoundation.org