[squeak-dev] The Trunk: MorphicExtras-nice.218.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Thu Nov 30 23:23:53 UTC 2017
That worked for me, maybe not for the others, because '-- all --' category
is empty but still there...
There is no clean-up of empty categories on MC load/merge.
Either we force Smalltalk removeEmptyMessageCategories in some script, or
change MC to care of it at package level?
2017-11-26 23:18 GMT+01:00 <commits at source.squeak.org>:
> Nicolas Cellier uploaded a new version of MorphicExtras to project The
> Trunk:
> http://source.squeak.org/trunk/MorphicExtras-nice.218.mcz
>
> ==================== Summary ====================
>
> Name: MorphicExtras-nice.218
> Author: nice
> Time: 26 November 2017, 11:17:28.596315 pm
> UUID: c781b24f-85b2-4fca-941a-dd8c2852a640
> Ancestors: MorphicExtras-dtl.217
>
> Change fancy categorization of FancyMailComposition methods.
>
> My arbitrary categorization might be less than perfect, but at least this
> makes testNoSpecialCategories pass.
>
> =============== Diff against MorphicExtras-dtl.217 ===============
>
> Item was changed:
> + ----- Method: FancyMailComposition>>addAttachment (in category
> 'actions') -----
> - ----- Method: FancyMailComposition>>addAttachment (in category '-- all
> --') -----
> addAttachment
> | file fileResult fileName |
> textEditor
> ifNotNil: [self hasUnacceptedEdits ifTrue: [textEditor
> accept]].
>
> (fileResult := StandardFileMenu oldFile)
> ifNotNil:
> [fileName := fileResult directory fullNameFor:
> fileResult name.
> file := FileStream readOnlyFileNamed: fileName.
> file ifNotNil:
> [file binary.
> self messageText:
> ((MailMessage from: self
> messageText asString)
> addAttachmentFrom:
> file withName: fileResult name; text).
> file close]] !
>
> Item was changed:
> + ----- Method: FancyMailComposition>>breakLines:atWidth: (in category
> 'private') -----
> - ----- Method: FancyMailComposition>>breakLines:atWidth: (in category
> '-- all --') -----
> breakLines: aString atWidth: width
> "break lines in the given string into shorter lines"
> | result atAttachment |
>
> result := WriteStream on: (String new: (aString size * 50 // 49)).
>
> atAttachment := false.
> aString asString linesDo: [ :line | | start end |
> (line beginsWith: '====') ifTrue: [ atAttachment := true ].
> atAttachment ifTrue: [
> "at or after an attachment line; no more wrapping
> for the rest of the message"
> result nextPutAll: line. result cr ]
> ifFalse: [
> (line beginsWith: '>') ifTrue: [
> "it's quoted text; don't wrap it"
> result nextPutAll: line. result cr. ]
> ifFalse: [
> "regular old line. Wrap it to multiple
> lines"
> start := 1.
> "output one shorter line each time
> through this loop"
> [ start + width <= line size ] whileTrue: [
>
> "find the end of the line"
> end := start + width - 1.
> [end >= start and: [ (line at:
> (end+1)) isSeparator not ]] whileTrue: [
> end := end - 1 ].
> end < start ifTrue: [
> "a word spans the entire
> width!!"
> end := start + width - 1 ].
>
> "copy the line to the output"
> result nextPutAll: (line copyFrom:
> start to: end).
> result cr.
>
> "get ready for next iteration"
> start := end+1.
> (line at: start) isSeparator
> ifTrue: [ start := start + 1 ].
> ].
>
> "write out the final part of the line"
> result nextPutAll: (line copyFrom: start
> to: line size).
> result cr.
> ].
> ].
> ].
>
> ^result contents!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>breakLinesInMessage: (in category
> 'private') -----
> - ----- Method: FancyMailComposition>>breakLinesInMessage: (in category
> '-- all --') -----
> breakLinesInMessage: message
> "reformat long lines in the specified message into shorter ones"
> self flag: #TODO. "Maybe deprecated"
> message body mainType = 'text' ifTrue: [
> "it's a single-part text message. reformat the text"
> | newBodyText |
> newBodyText := self breakLines: message bodyText atWidth:
> 72.
> message body: (MIMEDocument contentType: message body
> contentType content: newBodyText).
>
> ^self ].
>
> message body isMultipart ifTrue: [
> "multipart message; process the top-level parts. HACK:
> the parts are modified in place"
> message parts do: [ :part |
> part body mainType = 'text' ifTrue: [
> | newBodyText |
> newBodyText := self breakLines: part
> bodyText atWidth: 72.
> part body: (MIMEDocument contentType: part
> body contentType content: newBodyText) ] ].
> message regenerateBodyFromParts. ].!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>menuGet:shifted: (in category
> 'interface') -----
> - ----- Method: FancyMailComposition>>menuGet:shifted: (in category '--
> all --') -----
> menuGet: aMenu shifted: shifted
>
> aMenu addList: {
> {'find...(f)' translated. #find}.
> {'find selection again (g)' translated.
> #findAgain}.
> #-.
> {'accept (s)' translated. #accept}.
> {'send message' translated. #submit}}.
>
> ^aMenu.!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>messageText (in category
> 'accessing') -----
> - ----- Method: FancyMailComposition>>messageText (in category '-- all
> --') -----
> messageText
> "return the current text"
> ^messageText.
> !
>
> Item was changed:
> + ----- Method: FancyMailComposition>>messageText: (in category
> 'accessing') -----
> - ----- Method: FancyMailComposition>>messageText: (in category '-- all
> --') -----
> messageText: aText
> "change the current text"
> messageText := aText.
> self changed: #messageText.
> ^true!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>morphicOpen (in category 'user
> interface') -----
> - ----- Method: FancyMailComposition>>morphicOpen (in category '-- all
> --') -----
> morphicOpen
> "open an interface for sending a mail message with the given
> initial
> text "
> | textMorph buttonsList sendButton attachmentButton |
> morphicWindow := SystemWindow labelled: 'Mister Postman'.
> morphicWindow model: self.
> textEditor := textMorph := PluggableTextMorph
> on: self
> text: #messageText
> accept: #messageText:
> readSelection: nil
> menu: #menuGet:shifted:.
> morphicWindow addMorph: textMorph frame: (0 @ 0.1 corner: 1 @ 1).
> buttonsList := AlignmentMorph newRow.
> sendButton := PluggableButtonMorph
> on: self
> getState: nil
> action: #submit.
> sendButton
> hResizing: #spaceFill;
> vResizing: #spaceFill;
> label: 'send message';
> setBalloonText: 'Accept any unaccepted edits and add this
> to the queue of messages to be sent';
> onColor: Color white offColor: Color white.
> buttonsList addMorphBack: sendButton.
>
> attachmentButton := PluggableButtonMorph
> on: self
> getState: nil
> action: #addAttachment.
> attachmentButton
> hResizing: #spaceFill;
> vResizing: #spaceFill;
> label: 'add attachment';
> setBalloonText: 'Send a file with the message';
> onColor: Color white offColor: Color white.
> buttonsList addMorphBack: attachmentButton.
>
> morphicWindow addMorph: buttonsList frame: (0 @ 0 extent: 1 @ 0.1).
> morphicWindow openInWorld!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>mvcOpen (in category 'user
> interface') -----
> - ----- Method: FancyMailComposition>>mvcOpen (in category '-- all --')
> -----
> mvcOpen
> | textView sendButton |
>
> mvcWindow := StandardSystemView new
> label: 'Mister Postman';
> minimumSize: 400 at 250;
> model: self.
>
> textView := PluggableTextView
> on: self
> text: #messageText
> accept: #messageText:.
> textEditor := textView controller.
>
> sendButton := PluggableButtonView
> on: self
> getState: nil
> action: #submit.
> sendButton label: 'Send'.
> sendButton borderWidth: 1.
>
> sendButton window: (1 at 1 extent: 398 at 38).
> mvcWindow addSubView: sendButton.
>
> textView window: (0 at 40 corner: 400 at 250).
> mvcWindow addSubView: textView below: sendButton.
>
> mvcWindow controller open.
>
>
> !
>
> Item was changed:
> + ----- Method: FancyMailComposition>>open (in category 'user interface')
> -----
> - ----- Method: FancyMailComposition>>open (in category '-- all --') -----
> open
> "open an interface"
>
> ^ Project current
> dispatchTo: self
> addPrefixAndSend: #Open
> withArguments: {}
> !
>
> Item was changed:
> + ----- Method: FancyMailComposition>>perform:orSendTo: (in category
> 'private') -----
> - ----- Method: FancyMailComposition>>perform:orSendTo: (in category '--
> all --') -----
> perform: selector orSendTo: otherTarget
>
> (self respondsTo: selector)
> ifTrue: [^self perform: selector]
> ifFalse: [^otherTarget perform: selector]
>
> !
>
> Item was changed:
> + ----- Method: FancyMailComposition>>sendMailMessage: (in category
> 'MailSender interface') -----
> - ----- Method: FancyMailComposition>>sendMailMessage: (in category '--
> all --') -----
> sendMailMessage: aMailMessage
> self messageText: aMailMessage text!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>smtpServer (in category 'MailSender
> interface') -----
> - ----- Method: FancyMailComposition>>smtpServer (in category '-- all
> --') -----
> smtpServer
> ^MailSender smtpServer!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>subject (in category 'accessing')
> -----
> - ----- Method: FancyMailComposition>>subject (in category 'access') -----
> subject
>
> ^ subject
>
> !
>
> Item was changed:
> + ----- Method: FancyMailComposition>>subject: (in category 'accessing')
> -----
> - ----- Method: FancyMailComposition>>subject: (in category 'access') -----
> subject: x
>
> subject := x.
> self changed: #subject.
> ^true!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>to (in category 'accessing') -----
> - ----- Method: FancyMailComposition>>to (in category 'access') -----
> to
>
> ^to!
>
> Item was changed:
> + ----- Method: FancyMailComposition>>to: (in category 'accessing') -----
> - ----- Method: FancyMailComposition>>to: (in category 'access') -----
> to: x
>
> to := x.
> self changed: #to.
> ^true
> !
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20171201/b8eb6a97/attachment.html>
More information about the Squeak-dev
mailing list
|