change log for Bean:
Known Issues
- Bean’s Smart Quotes is incompatible with some keyboard layouts that require the ‘quotation mark’ key to function as a dead key (a key that combines with other keys). But note that in OS X 10.5, you can activate Leopard’s own Smart Quotes function by right-clicking (or ctrl + clicking) any text in a document window, then check the option Substitutions > Smart Quotes in the context menu.
- The table function is not particularly stable or powerful. It is part of Apple’s text object and as such is beyond my direct control to change or improve. In OS X 10.5 Leopard, some of the problems involving the text table seem to have been fixed (uncontrollable gridlines)...while other problems have appeared (un-editable areas of text, rdar://5759577). Tables in copied webtext can sometimes cause inappropriate page breaks and display problems (rdar://5650712) until you remove the tables. Pagination is much slower in Leopard than Tiger...frustrating! (rdar://5620204).
- Please note that if you see a potential bug that Bean has in common with Text Edit, it could very well be a problem with the Cocoa text system, which means there is probably nothing I can do about it (except file a bug report with Apple).
Bean Change Log
Version 1.2.0 (29 April 2008)
Enhancements
- images now indicate when they are selected with a selection-colored box (user suggestion)
- added a small ‘EXIT’ button in the status bar as a hard-to-miss way to exit full screen mode
- Find > Define Word now accepts multiple word selections, like ‘local time,’ or ‘turn on the charm’
- added Style > Select by > Font Style/Ruler
- added Style > Select by > Font Family/Ruler (like above, but selects italics, bold, etc. variations)
Changes
- Changed the factory default rich text font to Times New Roman instead of Times. Text lays out up to three times faster using Times New Roman, despite the fact that the two fonts are nearly identical!
- new keyboard shortcut for Format > Justify: Cmd-\ (the old one stopped working after the move to the 10.5 SDK)
- Style > Select by... menu now contains all select-by-style actions
Bug Fixes
- restored show/hide Font Panel action to Cmd-T (toggle function disappeared after the move to the 10.5 SDK)
- fixed a problem where Inspector wouldn’t display correct initial settings for any document opened with the cursor at the start of the document
- file links containing spaces now open immediately
- fixed minor ruler widgets drawing problem
Version 1.1.0 (17 April 2008)
Enhancements
- added OpenDocument and Word 2007 file format support (in OS X 10.5 Leopard only)
- shrink the Inspector: click the disclosure triangle to hide all Spacing controls
- added Edit > Insert > Signature Line menu action (user suggestion)
- added new header option: Subject (from Get Properties...)
- new toolbar items: Full Screen, Get Properties..., Show Invisibles (I’m to blame for the icons for these - JH)
Changes
- Inspector controls now work even when a document is empty
- updated the Help file (the File Formats page describes the new formats)
Bug Fixes
- the context menu you see when double-clicking a page’s margin in layout view is now localizable
- removed some stray NSLog debug messages!
- various fixes to help the Inspector follow changes better
Code: Bean’s Xcode project now uses the 10.5 SDK (for .odt and .docx support), but still targets OS X 10.4
Localization: I’ve tried everything I could find, short of coding an app from scratch, to create an incremental localization that combines the past translation work done on Bean with the new English version, so that only new controls and strings have to be translated. Apparently, there are just too many changes since the last version, and ibtool is too persnickety about slight changes in position of controls, etc. to be useful. If one of the many translators who volunteer to translate Bean has a solution to this problem, please let me know.
Version 1.0.1 (26 March 2008)
Bug Fixes
- fonts in Inspector’s popup menu were not sorted a-z on Tiger (but were on Leopard!), now fixed
- disabled font controls in Inspector when there is no text
Version 1.0.0 (25 March 2008)
Enhancements
- added Help file for all menu commands
- link sheet now removes any previous link from text when link URL is left empty
- new option: Preferences > View > Show invisible characters> Omit spaces
- new icon for Cut in toolbar
- added Please Wait... sheet which appears when Bean is paginating long documents
- added Preference to paginate in the background while typing (General > Use background pagination). This is recommended only for fast (i.e., Intel) processors!
- headers and footers now appear in Layout view when enabled
- if you click on the page margin in Layout view, a context menu pops up with various useful options (such as quick access to the header/footer controls)
- added value of 1.2 to line spacing options, commonly considered the most readable setting for most fonts (user suggestion)
Changes
- exiting full screen will now restore Layout view if necessary
Bug Fixes
- fixed a (recent) major bug where opening a file type not supported by Bean would appear to produce an open, empty document
- rewrote the Format > List > Move Up / Move Down code to be more reliable
- fixed some problems with the bindings for full screen preference controls
- fixed a problem where Check for Updates... would fail silently on Leopard if no network was found
- fixed a bug where zooming in or out using shortcut keys just after opening a document would fail
Version 0.9.12.1 and 0.9.12.2 (14 March 2008)
Bug Fix
- corrected a mysterious conflict between keyboard shortcuts to Format > List > Marker and Edit > Insert > Line Break
- Service menu items were failing because the controller object that enabled them had been accidentally deleted from the MainMenu.nib…now fixed
Version 0.9.12 (14 March 2008) Preview of Bean 1.0
Enhancements
- added Full Screen mode (View > Full Screen), and Preferences for Full Screen mode (user suggestion). This works better under Leopard than Tiger; under Tiger the title bar refuses to hide.
- added Preferences for new window size, zoom amount, and whether window should be centered (user suggestion)
- added Font and Font Size controls in the Inspector (check ‘Preview Fonts in Menu’ to enable live preview) (user suggestion)
- added improved control over Headers and Footers (MLA, APA, etc.) in Preferences (user suggestion)
- added menu commands and shortcut keys to quickly move list items north or south in list (Format > List > Move Up/Down)
- added keyboard shortcut for show/hide toolbar (Ctrl + Shift + T)
- added Preference to un-enable Cocoa’s ‘smart cut and paste’ (which adds or removes spaces for double-clicked text selections)
- added new menu item: Font > Strikethrough (shortcut: Shift + Cmd + U) (user suggestion)
- added new Service menu item: Paste Selection into Current Bean Document (user suggestion)
- added new Service menu item: Insert ‘Lorem Ipsum’ (which is mock-latin text used as filler for trial text layouts or templates)
- Bean can now save ‘empty’ documents (for templates and so on) (user suggestion)
- new menu items to Edit > Remove > Text Tables / List Markers / Attachments from Selection / All. When webpage text is copied and pasted into Bean, text tables in particular (which are used just for text layout) can screw up the output in layout mode and in PDFs (thanks to a bug in Apple’s code, which I’ve filed a bug report on [5650712]); you can remove tables, problem list attributes, or even all attachments at once using these new menu items.
- added Style > Remove All Styles menu item (user suggestion). This is equivalent to the Make Plain Text followed by Make Rich Text menu item sequence in Text Edit, which people say they miss in Bean; use it for example to strip web text of all font and paragraph styles, and all tables and attachments.
- added Style > Match > to Default Style which will match the selected text (or the whole document if no text is selected) to the default style as defined in the Preferences
- added Style > Match > to Most Common Style which will match the selected text to the most common font and paragraph styles found in that selection; if no text is selected, all styles in the document will be ‘flattened’ to the most common style
- added Style > Match > to Style at Text Cursor which will propagate the style found at the blinking text cursor throughout the selected text, or throughout the document if no text is selected
- added toolbar item for ‘Cut’ (user suggestion)
- added menu item Format > Paragraph > Allow Hyphenation (for selected text)
- added menu item Format > Paragraph > Right to Left Direction (for paragraphs of Arabic, Hebrew, etc.) (user suggestion)
- drag and drop of attachments from open Bean documents works better (JPGs instead of clippings, etc.) (user suggestion)
Changes
- better ‘show invisibles’ code thanks to Keith Blount
- Bean now opens clicked-on file URLs in Leopard (like Text Edit does) (user suggestion)
- reopened documents remember to show alternate colors if saved in that state (except due to full screen preferences) (user suggestion)
Bug Fixes
- fixed problem with text cursor fading at edge of margin
- fixed a display refresh problem following a change to File > Page Setup
Text system (NSTextView) in Leopard
There is finally some discussion on the internet about the sluggishness of the text system in Leopard, which becomes evident on any PowerPC Mac. You can read about this on the Scrivener and Nisus Writer Pro forums, and it is mentioned at the Rixstep website. A problem I did not address in my ‘Notes’ to version 0.9.11 below, but about which I did file a bug report with Apple (rdar://5620204), is that laying out text in text containers (using ‘layout’ mode or ‘wrap to page’ mode) is very slow under Leopard, whether on an Intel or PPC. My test file, which was 650K (text vs. rtf didn’t matter) took 10 times as long to finish layout under Leopard on a MacBook as it did under Tiger. This causes a noticeable pause while documents load in View > Layout mode in Bean (or Text Edit, etc.). Unfortunately, the use of background layout makes the text system too unresponsive. Since this was not fixed in the 10.5.2 update, I surmise this regression in performance is here to stay.
Version 0.9.11 (6 January 2008)
Bug Fixes
- improved method for screening out unnecessary screen updates that came with 10.5 Leopard
- backed away from paginating in the background as version 0.9.10 did; we now paginate while opening the document (slower to open, but more responsive once opened)
- new 512 x 512 icon, courtesy Laurent Baumann -- thank you again, Laurent! (you can see the improvement in detail using coverflow under Leopard)
- some tweaks in the document window’s UI and minor changes in the help files
- changing a document property (View > Get Properties...) now marks a document as needing to be saved
- Quick Look now works with .bean files (10.5 Leopard)
- added benefit: Text Edit on 10.5 Leopard now understands .bean files, since their UTI superclass is com.apple.rtfd
- moved UTF-8 to third position in encoding list for convenience; this is the modern format for conversion from legacy encodings
- fixed bug where the color panel could set an alternate color in Preferences while changing the color of a document’s selected text at the same time
- rewrote much of the View > Alternate Colors code to fix some problems
- removed some dead code
Version 0.9.10 (18 December 2007)
Bug Fixes
- fixed bugs causing severe slowdowns (only a problem on OS X 10.5 Leopard):
- PageView class under Leopard is getting many more drawRect messages than it ever did under Tiger; it is now optimized to ignore most of them, and objects (fonts, mainly) used in drawRect are now cached; also, we draw the insertion point cursor to eliminate some extra drawRect messages
- addTemporaryAttributes (=Alternate Text Colors) is now part of NSTextStorage’s processEditing method (the only place where it seems to work in Leopard without a slowdown)
- pagination now occurs in the background when documents are loading (instead of forcing completed layout, as we did formerly, since Leopard is very slow at paginating); also, Bean now ignores redraw messages sent while a document is paginating
- fixed Leopard-only bug where opening a document and typing at index 0 would give you default type (Helvetica 12) instead of type matching subsequent text
- fixed Leopard-only bug where the blinking insertion point could disappear (due to a low lineFragmentPadding value); widened the insertion point cursor for visibility
- fixed Leopard-only bug where resizing an image using the slider would cause a weird effect (due to the selectedRange being continually reset)
- fixed bug that could cause Get Info... to give incorrect plain text encoding after saving a document with different encodings in one session
- fixed bug where selected word count in status bar would not be reset when Live Word Count was off
- fine-tuned some user interface elements in JHDocument.nib; consequently, localizations will not work for tooltips in the document window of Bean Multilingual Edition 0.9.10 (when it is released)
- worked again to fix the problem where the Page Up and Page Down buttons sometimes disappear
Enhancements
- replaced black ruler markers with aqua ones
- added Services menu item ‘Recover Text from Selected File’ which attempts to salvage text from corrupt Word 97 files and from old legacy formats (such as WriteNow files); note that you have to log out and log back in to refresh the Services menu
- the ‘tab’ key now indents individual list items when a list item is being edited, instead of inserting a tab
- added keyboard shortcuts for creating numbered and bulleted lists
A note concerning Leopard’s text system
- after having tested the text system under Tiger and Leopard, I can offer the following observations:
- while the API for Leopard did not change much, the underlying code changed a lot, evidenced by the fact that the behavior of the text system has greatly changed
- Leopard is less forgiving than Tiger in terms of app performance, much of this due to increased redraws for all views, text views included (a fast CPU ‘corrects’ this problem)
- some examples of this: Leopard NSText displays each character typed rather than coalescing changes for display of rapidly typed text (which means trouble for fast typists running Leopard on an older CPU as they may have to wait for Leopard to catch up!); lineScroll now takes three redraws, rather than one, which appears smoother on faster machines, but is painful on older ones
- this means Leopard will run NSText-based apps better on newer (=Intel) CPUs, but in many ways not as well as Tiger on older CPUs (such as my G4 Powerbook!)
Misc.
- since Bean’s user interface changed hardly at all, no revision of localizations for 0.9.10 should be necessary
Version 0.9.9 (14 October 2007)
Bug Fixes
- fixed bug that prevented plain text format documents from being Default Save Format
- document background color control in Font Panel is now hidden (Bean doesn’t use it)
- the Link... sheet remembers the last type of link chosen
- fixed annoying List... bug that would change the font to Lucida Grande (thanks, Philip Dow, for the code fix)
- fixed bug where, for example, a .5 margin would yield .57 on the ruler (due to non-zero default textContainer:lineFragmentPadding setting)
- fixed a bug where input into any document would cause a beep when a read only document was open
- got rid of system beep upon attempted input to read only documents...didn’t like it
- added validation for menu items, toolbar, and Inspector when focused on a read only document
- List > Numbered and List > Bulleted now removes first line indent attribute for selected text, which NSTextList’s initWithMarkerFormat:options: also does
Version 0.9.8 (19 September 2007)
Bug Fixes
- fixed Check for Updates -- this did not work correctly until 0.9.7.1
- localization string fixes (0.9.7.2, 0.9.7.3, 0.9.7.5)
- fixed crash involving textStorageWillProcessEditing out-of-bounds error (0.9.7.4)
- fixed a bug where Bean would crash if you overtyped a single, selected smart quote (0.9.7.6)
- fixed ‘nil value’ bug involving editing picture as initial character in a document (0.9.7.7)
- fixed a problem with Get Info... numbers being formatted incorrectly (0.9.7.8)
Version 0.9.7 (3 September 2007)
Enhancements
- word and character counts for selected text now appear in the status bar (in blue instead of black); normal count resumes when no text is selected (user suggestion)
- resizing an image now does not affect resolution (user suggestion)
- Edit > Insert > Non-breaking space action added (like spacebar space, but prevents line breaks)
- you can now separately control whether the standard Cocoa header (title) and footer (page numbers) prints in Preferences
- fixed code so that Bean can now be fully localized (nibs, .strings files, html help). Note: unless you really want to potentially duplicate someone else's work, don't create a localization of Bean unless you coordinate it with me first.
Changes
- you can now change the language style of Smart Quotes on the fly
- added special code for French (France) and Canadian French Smart Quotes which inserts a non-breaking space before appropriate punctuation (yes, I know about partial cadratins, but the current solution seems more practical for Bean)
- 'Fonts' icon in toolbar now toggles show/hide for Font panel (note: you will have to remove the old font icon and drag in the new one for this to work). (user suggestion)
- Line Spacing 'Default' button in inspector now gets its value from user's Preference setting for line spacing
- added keyboard shortcuts for Line Spacing and Highlight menu actions (user suggestion)
Bug Fixes
- fixed a bug where documents would sometimes open in layout view when saved in continuous text view and vice versa
- fixed a long-standing bug involving retain of delegate of save panel which would cause a crash when you tried to close a document window, then were prompted to save the document and responded (thanks Isztar for pointing out that bug!)
- fixed bug where alternate editing colors would not cover entire scrollView when zooming out during continuous (non-layout) view mode
- fixed a bug with Center Cursor code that would cause view to jump when zoom amount was high
- fixed a bug that prevented the opening of UTF-16 text files with arbitrary extensions (like .strings files!)
- fixed a bug with Autosave controls that could cause a UI loop glitch
- fixed UI glitch with resizing document properties sheet
- improved auto-resizing code for when images are inserted that are too tall to fit on a page
- double autorelease of allAvailableEncodings fixed
Version 0.9.6 (30 July 2007)
Enhancements
- You can now specify the Default Save Format in the General pane of Preferences (frequent user suggestion)
- added Edit > Insert > Picture menu item (user suggestion)
- added Edit > Change > Picture Size menu item (user suggestion)
- You can double-click a picture to show the resizing control
- added Check for Updates, under the Bean menu item, to check for availability of new versions
- Export to PDF under File menu (user suggestion)
- Export to RTF and to DOC formats with pictures intact (thanks to Keith Blount)
- Bean now attaches the HFS creator code and OSType code (if applicable) to document files, reading and retaining this information for opened document files and adding it for newly saved document files. This will assist, for example, in opening RTF files without the ‘.rtf’ extension. It will also bind Bean-created documents a bit closer to Bean in Launch Services.
Changes
- great new app icon by Laurent Baumann
- the mouse’s text cursor (the ‘I-beam’ cursor) is now visible against dark backgrounds (user suggestion)
- ‘Get Info...’ now specifies the file format, since (with the addition of OSType to Bean documents) some files can get by without filename extensions, making the file format less obvious
- added a ‘Help’ button to the Save file panel and the Get Info... sheet for help with understanding file formats
- Images dropped or pasted at the head of a paragraph will no longer nuke the paragraph style (as happens in Text Edit, etc.)
- added toolbar items for Show/Hide Ruler and Insert Picture
- added shortcut keys for Super/Subscript/None and Copy/Paste Ruler+Font
Bug Fixes
- image references in exported HTML are now ready-to-go; just add the appropriately-named picture files to the directory
- ‘show ruler accessories’ preference now only affects new documents (i.e., works like the other preferences)
- fixed a bug in maintaining ruler visible state when layout view was switched on and off
- fixed bug in many number input fields for languages such as Finnish that use a comma as a decimal point
- fixed a bug that caused the Inspector to become confused when switching between documents when one used metric measurements and one used U.S. measurements
- a few alloc’s got releases they needed
Version 0.9.5a (20 June 2007)
Enhancements
- added Defaults tab in Preferences to adjust margins, first line indent, and line spacing for New Documents (user suggestion)
- added Preference to turn off page shadow in layout mode, to improve display speed on older machines (user suggestion)
- added Preference to show OS X ruler widgets (user suggestion)
- added Preference to Show invisible characters (user suggestion)
- added Preference to ‘Use fit width view’ mode or not (user suggestion)
- added Format > Use Smart Quotes menu item, so Smart Quotes can be easily turned on or off (user suggestion)
Changes
- Autosave is now per-document and not global. To access this feature, select View > Get Info... (user suggestion)
- removed ‘Autosave Untitled document’ feature
- added confirmation dialog to ‘Revert to Saved’
- Bean now doesn’t allow Smart Quotes for the ‘Text (you provide extension)’ format, since these files are probably code or scripts
- Autosave now saves only when changes exist since the last Autosave (instead of whenever unsaved changes exist). This avoids unnecessary Autosaves, such as Autosaving the same existing unsaved changes repeatedly, and captures saved changes as well, unlike the previous implementation.
- locking a file from Get Info... now causes an explicatory message to appear (urging the user to reopen the file as a template, if that was the intention)
- typing into a ‘Read Only’ document now causes a beep (instead of silently failing to insert text)
Bug Fixes
- rewrote shouldChangeTextInRange: method to fix a number of bugs, including:
- Smart Quotes now groups with other text for Undo/Redo
- Redo now works in .txt and .html files
- Paste now pastes with correct text attributes in .txt and .html files
- text attributes do not return to Cocoa default following Paste into empty lines (plain text) or into documents after all text is deleted
- alternate display colors now apply correctly for Edit > Insert > Date / Time menu items
- ‘Center when at end’ now responds to Return key
- fixed a problem where ‘Center when at end’ could erroneously affect multiple documents
- fixed a problem where Cocoa would leave a temporary file if it tried and failed to ‘safe save’ to a locked RTFD bundle--added an extra check for locked files/folders
- Trying to open non-supported non-RTFD package files (like .pages format files) will now display an alert message
- Inspector’s Line Spacing slider now has a bottom limit of 0.3; otherwise, it would seemingly unpredictably throw an exception for very low values that would crash Bean (below this setting is unusable anyway)
- Link menu item is now not active for non-rich text format files
- fixed some incorrect display attributes which could appear when rich text formats are saved as plain text formats
- Inspector’s Font styles popup now effects all text for non-rich text formats
- fixed a bug where text attributes would return to Cocoa defaults if layout view/continuous text view were alternated when there was no text
- fixed a bug involving parsing long keywords (Bean stores some information such as cursorLocation in the keywords field)
- added error checking for Format > Margins... input fields
Version 0.9.4a (27 May 2007)
- new feature: text highlighting
- new icons, thanks to Laurent Baumann!
- new Services menu item: New Document Containing Selection (menu item will appear next time you log in or restart)
- fixed a problem where ‘Fit Page Width/Fit Page’ mode would be forgotten when switching back to layout view from continuous text view
- fixed some inefficient code that caused Bean to slow down when editing large .txt or .html files
- files without a filename extension or in a file format unknown to Bean are now always opened as plain text files (except Word 97 files without the .doc extension)
- Word 97 files missing the .doc extension are now opened as .doc format files, thanks to Uniform Type Identifier ‘sniffing’
- had to change some keyboard shortcuts dealing with View > Fit Page/Page Width and View > Zoom In/Out (because of a conflict that was causing a bug)
- fixed a problem where text pasted into a .txt or .html file wouldn’t inherit the paragraph attributes of the text around it
- increased upper limit of margins so margins can be more than 3 centimeters (margins checking needs to become code based, not interface based as it is now)
- ‘Save’ toolbar icon now works correctly
- moved sourcecode from disk image to URL on download page
Version 0.9.3b (20 May 2007)
- adding UTI's (a way to associate file formats to applications without using filename extensions) caused Bean to take over the .doc file format (on some machines). That's not what I intended! UTI's have been removed for now. To those affected--I apologize. Note: application associations restore immediately after Bean 0.93b is installed, but every icon association may not restore until your Mac is restarted.
- the Page Up and Page Down buttons now display correctly (they would sometimes 'disappear')
Version 0.9.3a (16 May 2007)
Enhancements
- added Text (you provide extension) file type. Bean will now open and save text files with arbitrary filename extensions (that is, extensions that are not ‘.txt’).
- added keyboard shortcut to Float Window menu item (ctrl + cmd + F). (Note: cmd = ‘Apple’ key)
- added keyboard shortcut to ‘Location of Last Edit’ (ctrl + cmd + L)
- added more language options for Smart Quotes (such as inward-pointing brackets for German)
- select File > Send to Mail to open a new message in Mail with your document as an attachment
Changes
- switched to ‘Unified’ toolbar look
- revised some alert messages text to be less alarmist and more informative (particularly, when opening and saving plain text documents)
- changed Bean’s Unique Creator Code (which is used internally by OS X) to bEAN, because BEAN is not permitted and Bean was already taken. The ‘.bean’ filename extension should still work fine.
- improved Accessibility for most controls in Bean when using Voice Over
- added menu item under Format for preset Line spacings (for convenience, and to improve Accessibility)
- Bean now uses latest verison of KBWordCountingTextStorage. Thanks Keith!
- added UTI codes to filetypes
Bug fixes:
- fixed a problem with Bean’s use of centimeters vs. inches in the margin and tabstop sheets; Bean now looks at System Preferences > International > Formats > Measurement Units when a document is loaded to determine whether to use cm’s or inches
- Inspector controls are not enabled until at least one character is typed; this fixes a problem where controls could be changed but no change was being applied to text because there was no text!
- Inspector now displays correct information when Inspecting text files
- fixed a display bug: vertical scroller is now placed correctly when horizontal scroller is present
- fixed a bug: Edit > Convert > to Smart Quotes now works even if Smart Quotes is un-enabled in Preferences
- fixed a problem where the Smart Quotes popup button could be un-enabled in Preferences, but it should remain enabled since Edit > Convert > Smart Quotes uses this even when Smart Quotes is un-enabled
- fixed bug where convert to Smart Quotes would not undo when file was .txt
- added menu validation for Edit > Convert > items to indicate all text vs. selected text in menu item
- fixed a problem where saving a rich document to plain text wouldn’t discard attributes or images if document was ‘Read Only’
- fixed a problem where Bean would hang if ‘Arial’ font was not found
Version 0.9.2g (3 May 2007)
- fixed problem where uneven margins would cause printer output to be shifted too much
- fixed problem where firstTextView was not always initialFirstResponder (you typed and app did nothing)
Version 0.9.2f (1 May 2007)