[GB.FORM.EDITOR]
* NEW: TextEditor: Scroll to the top left when reinitializing the view.
* NEW: TextEditor: Highlight current tabulation context with a thinner line using the margin limit color.
[GB.GUI.BASE]
* NEW: Frame: The container contents width is now equal to the frame width, and the contents height is now equal to the frame height when there is no title.
[GB.FORM]
* NEW: FileView: Ignore newlines when displaying the name of a file.
* BUG: FontChooser: Do not show plus sign when the font size is absolute.
* NEW: Add 'text-bigger', 'text-smaller', 'text-super' and 'text-sub' stock icons.
* NEW: Update deprecated controls icons.
[GB.FORM.EDITOR]
* BUG: TextEditor: Fix GetIndent() method.
* NEW: TextEditor: Add documentation.
* BUG: TextEditor: Fix TextEditor.Styles interface.
* BUG: TextEditor: Line number color is now correct when LineOffset property is used.
* OPT: TextEditor: SaveCursor() now disables indent check and matching braces check until RestoreCursor() is called.
* NEW: TextEditor: GetSelectedLines() is a new method that return an array of the selected lines.
[GB.GUI.BASE]
* NEW: Picture: Picture.Load() was overriden so that it can deal with "icon:/" paths, but without cache, dark theme or right-to-left support like Picture[].
[GB.GUI.BASE]
* NEW: SpinBox: ShowSign is a new property that adds the "+" character to the positive numbers.
* NEW: SpinBox: If ReadOnly is set, the SpinBox is grayed out, and the arrows are hidden.
* BUG: TreeView: Removing an item or clearing the view now correctly update the list of selected items.
[GB.FORM]
* NEW: FontChooser: Use a tool button to display font size. Clicking on the button shows the spinbox.
* BUG: FontChooser: Do not run the thumbnail cache in design mode.
[GB.GUI.BASE]
* BUG: Use Font.TextHeight() instead of Font.Height in Paint.TrimText() and Paint.TrimRichText(), because some fonts can have a negative leading for some sizes in Qt!
[GB.GUI.BASE]
* BUG: Paint.TrimText() now trims at each character.
* BUG: Paint.TrimRichText() now correctly trim void markups.
* BUG: Frame: Fix title layout in all possible alignments.
* OPT: ScrollView: Always defer the contents size computation to the next event loop.
[GB.GUI.BASE]
* BUG: Paint.TrimText() and Paint.TrimRichText() now return a null string if the specified maximum width is too low.
* BUG: Frame: Add an Alignment property for the relative position of the title and the frame top border.
[GB.FORM]
* NEW: FontChooser: Implement a font thumbnail cache to speed up redrawing.
* NEW: FontChooser: Better font list presentation.
* NEW: Spinner: Add a margin property that represents an inner padding of Desktop.Scale.
* BUG: Spinner: Take the padding into account correctly.
[GB.GUI.BASE]
* NEW: Frame: Draw border without inner margin.
* OPT: ProgressBar: Use the new UserControl pseudo-events instead of an embedded DrawingArea.
* NEW: TreeView: Draw is a new event that allows to override default tree item drawing.
* NEW: TreeView: Indent is a new property that returns the indent width.
* NEW: TreeView: TreeView item has a new Depth property that returns the depth of the item.
* BUG: TreeView: Collapsing an item does not scroll the view to the current selected item anymore.
[GB.EVAL]
* NEW: Keywords and subroutines are now returned by two different properties of the System class.
* NEW: System properties Keywords, Subroutines and Datatypes now return a read-only array.
[GB.EVAL.HIGHLIGHT]
* NEW: Support for the new System Keywords and Subroutines properties.
[GB.FORM]
* NEW: Update Spinner icon.
* NEW: Spinner: The 'circle' type is larger.
* NEW: Add new stock icons
* NEW: TabPanel: The tab close button is tiny now.
[GB.FORM.STOCK]
* NEW: Add new stock icons.
[GB.FORM.EDITOR]
* BUG: TextEditor: HighlightAll() internal method highlights the current line too.
* BUG: TextEditor: Current line is now highlighted with a light margin color.
[GB.FORM.TERMINAL]
* NEW: TerminalView: Handle terminal bell with a screen flash.
* NEW: TerminalView: 'Bell' is new event that is raised when the terminal bells, and that overrides the default behaviour if handled.
[GB.FORM]
* NEW: New stock icons for '*.md' and '*.xml' files.
* NEW: Update some control icons.
[GB.FORM.STOCK]
* NEW: New stock icons for '*.md' and '*.xml' files.
* NEW: Update 'file' and 'file-manager' icons.
[GB.FORM]
* NEW: New 'office-presentation' stock icon.
[GB.FORM.STOCK]
* NEW: New 'office-presentation' stock icon.
* NEW: Add 128 pixels version of some colored stock icons.
[GB.FORM.STOCK]
* NEW: New 'invert' icon.
* NEW: Monochrome version of emote icons.
* NEW: 128 pixels version of 'linux' and 'terminal' icons.
* NEW: Update and fix some other icons.
[GB.FORM.TERMINAL]
* NEW: TerminalView: Link is a new event raised during mouse move for detecting links.
* NEW: TerminalView: Link is a new property that returns an object for managing links.
* NEW: TerminalView: Click is a new event raised when a link has been clicked.
* NEW: TerminalView: ShowLink is a new property that toggles the link management.
* NEW: Update French translation.
[CONFIGURATION]
* NEW: More 64x64 control icons.
[DEVELOPMENT ENVIRONMENT]
* NEW: Image editor: Use SpinBox controls for grid options.
* NEW: Form editor: Sort toolbox controls in the alphabetical order.
[CONFIGURATION]
* NEW: Use 64x64 icons for controls now.
[DEVELOPMENT ENVIRONMENT]
* NEW: Custom control icons size is now proportional to the font size.
* BUG: Form editor: Changing the toolbar icon size now keeps the current tab.
* NEW: Image editor: Default image resize mode is stretching now.
* NEW: Image editor: Apply a zoom fit after an image resizing.
[GB.REPORT]
* BUG: Rename a duplicated class that prevented the project to be opened.
[GB.FORM]
* NEW: SliderBox: Use the new Slider.Orientation property.
[GB.GUI.BASE]
* NEW: ScrollArea: Use the new ScrollBar.Orientation property.
[GB.GTK]
* NEW: ScrollBar: Add orientation constants.
* NEW: ScrollBar: Orientation is a new property that allows to define the orientation explicitly.
* NEW: Slider: Orientation is a new property that allows to define the orientation explicitly.
[GB.GTK3]
* NEW: ScrollBar: Add orientation constants.
* NEW: ScrollBar: Orientation is a new property that allows to define the orientation explicitly.
* NEW: Slider: Orientation is a new property that allows to define the orientation explicitly.
[GB.QT4]
* NEW: ScrollBar: Add orientation constants.
* NEW: ScrollBar: Orientation is a new property that allows to define the orientation explicitly.
* NEW: Slider: Orientation is a new property that allows to define the orientation explicitly.
[GB.QT5]
* NEW: ScrollBar: Add orientation constants.
* NEW: ScrollBar: Orientation is a new property that allows to define the orientation explicitly.
* NEW: Slider: Orientation is a new property that allows to define the orientation explicitly.
[GB.FORM.DIALOG]
* BUG: Password dialog: Do not raise the dialog.
* BUG: File dialog: Do not check for file existence. It is now done in the FileChooser control.
[GB.FORM.EDITOR]
* OPT: TextEditor: Highlight lines the later as possible: when the Text or SelectedText property is read, or when the line is drawn.
Consequently, the IDE restores a project faster when there are a lot of files to open.
* NEW: TextEditor: Draw matching characters differently again, trying to make that the most readable possible.
[GB.FORM]
* NEW: Update translations.
* NEW: DirChooser & FileChooser: Ask for overwriting selected file if in single selection mode and if not read-only.
[GB.FORM]
* NEW: DirChooser & FileChooser: Add an UncompressFilter property that defines a list of additional 'LIKE' regexp filters for custom compressed files.
* NEW: DirChooser & FileChooser: Raise an Uncompress event when a custom compressed file is requested to be uncompressed.
[GB.FORM.EDITOR]
* OPT: TextEditor: Use the new FindSorted() array method in a function.
* OPT: TextEditor: Access theme style properties directly.
* OPT: TextEditor: Avoid some computations when nothing is folded.
[GB.GUI.BASE]
* NEW: Picture.Refresh() reload all application pictures coming from the stock icons.
* NEW: Shortcut.FromKey() now does not duplicate a modifier key with its modifier prefix (i.e. it does not return "Shift+ShiftKey" anymore but just "ShiftKey").
[GB.FORM]
* NEW: Stock.Refresh() now should refresh all application pictures associated with the application theme.
[GB.FORM.MDI]
* NEW: ToolBar: Don't hide separators followed by an expander.
[GB.FORM.EDITOR]
* NEW: TextEditor: Use different highlights for matching characters.
* NEW: TextEditor: The matching character under the cursor does not blink anymore.
[GB.FORM]
* BUG: ListEditor: Better behavior in design mode.
* NEW: TableView: Columns automatic width is now a bit larger to support inner padding of TextBox control.
[GB.FORM]
* NEW: ButtonBox: Clicking on the clear button triggers filtering immediately now.
* BUG: FileChooser: Hide the bookmark button and its separator accordingly.
[GB.DRAW]
* NEW: Add PaintExtents W and H properties as synonymous of Width and Height.
[GB.GUI.BASE]
* NEW: PictureBox now uses the new UserControl Draw pseudo-event.
* NEW: Frame container in now implemented in Gambas.
[GB.GTK]
* NEW: Frame container in now implemented in Gambas.
* BUG: Style drawing routines now work correctly on UserControl.
[GB.GTK3]
* NEW: Frame container in now implemented in Gambas.
[GB.QT4]
* NEW: Frame container in now implemented in Gambas.
[GB.QT5]
* NEW: Frame container in now implemented in Gambas.
* BUG: Do not activate windows on Wayland, this is not supported.
[GB.GTK]
* NEW: UserControl now can paint itself through a UserControl_Draw method.
[GB.GTK3]
* NEW: UserControl now can paint itself through a UserControl_Draw method.
* BUG: Remove debugging message.
[GB.GUI.BASE]
* NEW: Separator: Use the new painting pseudo-event of UserControl.
[GB.QT4]
* NEW: UserControl now can paint itself through a UserControl_Draw method.
[GB.QT5]
* NEW: UserControl now can paint itself through a UserControl_Draw method.
[GB.GUI.BASE]
* NEW: Message: Style is a new property that defines the message box style. At the moment, "default" and "flat" are supported.
* NEW: Message: ColoredButtons is a new property that defines if the buttons should be colored or not.
[GB.GUI.BASE]
* NEW: GridView: Cells have now a Tag property.
* NEW: GridView: Columns have now a Tag property.
* NEW: TreeView: Items have now a Tag property.
* NEW: ListView: Items have now a Tag property.
* NEW: ColumnView: Items have now a Tag property.
* NEW: IconView: Items have now a Tag property.
[DEVELOPMENT ENVIRONMENT]
* NEW: Support for the MovieBox Animation property.
[GB.GTK]
* NEW: Animation is a new class that represents an animated image.
* NEW: MovieBox has been removed.
[GB.GTK3]
* NEW: Animation is a new class that represents an animated image.
* NEW: MovieBox has been removed.
[GB.GUI.BASE]
* NEW: MovieBox is now implemented in Gambas.
[GB.QT4]
* NEW: Animation is a new class that represents an animated image.
* NEW: MovieBox has been removed.
[GB.QT5]
* NEW: Animation is a new class that represents an animated image.
* NEW: MovieBox has been removed.
[GB.FORM]
* NEW: FileView: Sort configuration is kept when the view is refreshed.
* NEW: FileView: The first column now has a maximum width when it is resized at refresh.
[GB.FORM.TERMINAL]
* NEW: TerminalView: The last lines are now automatically relayouted when the width of the terminal changes.
* BUG: TerminalView: The padding is now correctly taking into account when computing the terminal character width.
[GB.FORM.EDITOR]
* BUG: TextEditor: Do not optimize character layouting for non-ASCII text, so that lines including non-western characters are displayed correctly whatever the font.
* NEW: TextEditor: Keep displaying the cursor and the matching braces when the editor does not have the focus.
[GB.WEB.GUI]
* NEW: WebForm: AddHeader() is a new method that allows to add a custom page header.
* BUG: WebForm: Custom form javascript files are now different for each form.
[GB.FORM]
* NEW: FontChooser: Better GUI.
* NEW: FontChooser: Add a ShowFont property that toggle the display of fonts inside the font tree.
* NEW: FontChooser: Define pangrams for some languages.
[GB.FORM.TERMINAL]
* NEW: TerminalView: Various XTerm window manipulation escape sequences added to VT100.
* NEW: TerminalView: Added WindowCommands boolean property to enable manipulations.
Useful if your terminalview is a standalone in a form/window although\
handling has been added to account for other objects in a form.\
Set property TerminalView1.WindowCommands = True and it enables\
XTerm escape sequences on the top window...
Eg. Type 'echo -en "\\033\[10;2t"' to toggle fullscreen.\
Handles the following modes...\
1, Minimize false\
2, Minimize true\
3, Move window (x,y)\
4, Resize (h,w) in pixels\
5, Send to front (Window.Raise)\
6, Send to back (Window.Lower)\
7, Refresh (useless but it would be a shame to do 1-10 and leave 7 out.)\
8, Resize (lines, cols) text characters\
9;0 Maximize false\
9;1 Maximize true (also works as true/false toggle)\
10;0 Full screen off\
10;1 Full screen on\
10;2 Full screen toggle\
[GB.GUI.BASE]
* NEW: Message: Provide default buttons if none are specified.
* NEW: Message: The message can only be closed by clicking on a button.
* NEW: Message: Focus on the cancel button by default.
[GB.GUI.BASE]
* NEW: Message: Rework the message box. Copying the message is now done through a popup menu.
* OPT: ScrollArea: Remove some useless lines in scrollbar management.
[GB.FORM.EDITOR]
* BUG: TextEditor: Do not stop keyboard event if the key is not handled by the editor.
* NEW: TextEditor: Use the standard background and foreground colors by default.
* NEW: TextEditor: Draw the matching brace under the cursor with an underline.
[GB.DB.FORM]
* NEW: DataSource: Find() is a new method that returns the index of the first row matching a specific SQL condition.
* NEW: DataSource: FindNext() is a new method that returns the index of the first row matching a specific SQL condition next to the current position.
* NEW: DataBrowser: Find() is a new method that moves to the first row matching a specific SQL condition next to the current position.
* NEW: DataView: Find() is a new method that moves to the first row matching a specific SQL condition next to the current position.
[GB.FORM]
* BUG: MenuButton: Fix hidden shortcut button for GTK+ components.
* BUG: DirButton: Take the Design property into account.
* BUG: Wizard: Unset the AutoResize property on wizard title label, it breaks with GTK+ components.
[GB.EVAL.HIGHLIGHT]
* NEW: TextHighlighter.CanRewrite is a new property that tells if highlighting is allowed to rewrite.
* NEW: Take the previous property into account in Gambas highlighter.
[GB.FORM.EDITOR]
* NEW: Allow rewriting during highlighting only when the Mode property is set to something different from "None" or a void string.
[GB.GUI.BASE]
* BUG: ScrollArea: Delete shadows differently to better support GTK+.
* NEW: HSplit & VSplit: Handle the Design property.
* NEW: ListBox: Setting the Index property with an incorrect value now raise an explicit error.
[GB.REPORT2]
* BUG: Report.Print() now works correctly whatever the toolkit or the printer.
* BUG: Checking or unchecking the grayscale checkbox now correctly refreshes the preview.
* FIX: Removed ToConsole
* NEW: Created new branch for console highlight
* NEW: Updated TextHighlight to include ToConsole, for console print highlighting support
[GB.DB.FORM]
* BUG: DataComboView: Ignore vertical alignment when drawing the contents.
* NEW: DataComboView: Draw grid inside the combo if the grid property is set (the code is actually in the previous commit).
[GB.SETTINGS]
* NEW: Settings.Count is a new property that returns the total number of settings.
* NEW: Settings.Exist() is a new method that return if a specific settings key is set.
* NEW: Settings.Keys.Count is a new property that returns the number of children slots.
* NEW: Settings.Keys.Exist() is a new method that returns if a specific child slot exists.
* NEW: Settings.Keys.All is a new property that returns an array of all children slot keys.
[GB.FORM]
* NEW: FileChooser: ShowToolbar is a new property that toggles the toolbar.
* NEW: DirChooser: ShowToolbar is a new property that toggles the toolbar.
* NEW: FileView: Display a text inside the view when a directory is empty.
[GB.MEDIA.FORM]
* NEW: MediaView: Volume is a new property to return or set the audio volume.
* NEW: MediaView: Muted is a new property that defines if the audio is muted or not.
[GB.FORM.EDITOR]
* BUG: TextEditor: Moving down now should work as expected on wrapped lines.
* NEW: TextEditor: Draw wrapped lines with little arrows at the end.
* NEW: TextEditor: String closing routine should be less stupid now.
[GB.FORM]
* NEW: Update translations.
* NEW: ListEditor: The insert button text is now "Add".
* NEW: DirView: Do not display an error when a directory is unreadable.
* NEW: FileView: Display a lock icon when a directory is unreadable.
[GB.FORM]
* NEW: ListEditor: Text property now return or set the text currently edited.
* NEW: ListEditor: Add Index property.
* NEW: ListEditor: Add Find() method.
* NEW: ListEditor: Add Remove() method.
[INTERPRETER]
* NEW: Remove the now useless testing specific code.
* NEW: 'gbx3 -T' now just loads the 'gb.test' component and calls Test.Main() passing it the '-T' option argument.
[GB.TEST]
* NEW: Move 'gb.test' sources in '/main/lib'.
* NEW: 'gb.test' has now a part written in C that allows him to load project classes on demand.
[GB.GUI.BASE]
* NEW: GridView: Selecting while moving the mouse cursor now raises the Select event only when the mouse button is depressed.
* BUG: TreeView: Setting the Key value with an unknown key now unselects the current key.
[GB.WEB.GUI]
* NEW: Store the error log in '/tmp/gambas.XXX/gb.web.gui' directory now.
* BUG: Fix how mandatory fields are highlighted by the SetFocus(True) method.
[GB.GUI.BASE]
* NEW: TreeView: Use radio buttons when ShowCheck property is set with single selection mode.
* NEW: TreeView: Clicking anywhere in the row from the check now toggles it when ShowCheck property is set.
[GB.FORM]
* NEW: ListEditor: Unique is a new property that ensures that all ListEditor elements are unique.
* NEW: ListEditor: Activate event is now emitted if the user clicks twice on the list.
[GB.FORM]
* NEW: ColorChooser: Use icons instead of labels for color components.
* NEW: SliderBox: Add a Picture property.
* NEW: SliderBox: The default value is now applied when double-clicking on the spinbox, not the slider.
* NEW: Add new stock icons.
[GB.UTIL.WEB]
* BUG: Fix query encoding & decoding in URLQuery class.
* NEW: URL.UnQuote() takes a new optional argument that prevent unquoting "+" into space.
* NEW: URL.Quote() now quotes spaces as "%20" and not "+" anymore.
[GB.GUI.BASE]
* BUG: TreeView: Take padding into account when interpreting mouse events.
* BUG: TreeView: Fix right-to-left layout management.
* NEW: TreeView: ShowCheck is a new property that uses checkboxes to handle selection mode.
* NEW: Paint.Check() is a new method that draws a check mark.
[GB.TEST]
* NEW: TestRunner.List returns all tests as TestCommand[]
* NEW: Test.Main can be triggered to report all tests as string
* NEW: TestCommand FromString and ToString to convert TestCopmmands into objects and vice versa
[GB.TEST]
* OPT: Hide more classes and symbols.
TapPrinter, TapParser and TapContext are not exported anymore. The Tap
constants are moved into other classes. Some public methods/properties
that expose printer, parser or context are hidden.
Returns exit code.
Doesn't print a summary any more as this is provided by gb.test.
Doesn't print blank line at the beginning any more. Plan has to be in
the first line.
Works fine with tappy (python TAP consumer)
Kills temporary startup file
[GB.TEST]
* BUG: Do not trim whitespace from diagnostic lines.
* NEW: Show TODOs (failed and bonus) and SKIPs in summary.
Previously, TapPrinter.Diagnostic would Trim$ its argument before
splitting it by line. This would remove any indentation that may
be useful for formatted diagnostics output, so it has to go.
Additionally I special-case Null and gb.Lf to print exactly "#\n",
which is a common use case as a visual separator.
This is a big refactor of the TapPrinter and Assert interaction with
the goal of enabling gb.test to print a self-summary after a TAP session
(without storing the TAP we printed and parsing it afterwards). The main
feature addition is a new class representing an assertion (together with
its subtests). Objects of this type are now produced by TapPrinter when
it prints an assertion and by TapParser alike when it parses TAP.
This allows more uniform and more detailed reporting of failures, too.
For organizational reasons, subtest support was moved into the printer.
[GB.TEST]
* NEW: Expose the TapContext class which holds the current TAP session's state.
* NEW: Represent assertions (and entire subtests) by TestAssertion objects in both TapPrinter and TapParser.
* NEW: Coalesce the four TapParser events for assertions into one.
* OPT: Move subtest support into TapPrinter, removing the need to create multiple TapPrinter objects.
* OPT: Remove the need for buffering the TAP to print a self-summary.
* BUG: Fix the buffering issue that would lose TAP when the process crashes.
[GB.FORM.EDITOR]
* NEW: TextEditor: Do not use Application.Busy in Load() and Save() methods.
* BUG: TextEditor: TextEditor[].Purge() works as expected now.
Without "Debug oTest.Name" in TestSuite.class:39 it would silently crash anywhere
after TestNoMessage is done without printing any single character. Reason is
"Assert.BailOut" in TestSuite:51 which miraculously does nothing.
If the testsystem itself crashes, ist must print "BailOut ..."
But here also can be seen, why the system has to print every assertion immediately.
Any bufferíng is bad because if the testsystem crashes the buffered results are gone.
So we must get rid of the buffered stream thing and go back to Print scattered all over ;-)
[GB.TEST]
* BUG: Forward Description in Assert.ErrorCode.
* BUG: Fix spelling of TearDown -> Teardown special test method.
* OPT: Use Assert.Note() instead of Print in tests.
[GB.MARKDOWN]
* BUG: Take anchors into account correctly when generating links.
* BUG: Lines beginning with '#' without a space after do not make the parser crash anymore.
[INTERPRETER]
* NEW: Support for JIT '&=' optimization.
* BUG: Fix '&=' optimization on argument variables.
* OPT: Strings greater than 4096 bytes are allocated by 4096 bytes steps.
[GB.JIT]
* NEW: JIT optimization of '&=' has been implemented.
[GB.WEB.GUI]
* NEW: This is the new name of 'gb.web.form2'.
* NEW: Support for popup menus.
* NEW: Support for stock icons.
[GB.WEB.FORM2]
* NEW: Rename the component as 'gb.web.gui'.
[GB.UTIL]
* NEW: CSVFile: Charset now can be specified. If not specified, the first line of the files is used to guess if it could be WINDOWS-1252, or otherwise UTF-8.
[GB.WEB.FORM2]
* BUG: Use SIGUSR2 for synchronizing session process with CGI process, as SIGUSR1 is used by the debugger.
* NEW: Support for debugger.
* NEW: THe HTML body now uses sans-serif font by default.
[GB.WEB.FORM2]
* NEW: WebForm: Current is a new static property that return or set the main form.
* NEW: WebForm: Goto() is a new static method that switch the Current property.
* NEW: WebForm: Reload() is a new method that reload the form if it is the main one. Otherwise it calls Refresh().
[GB.WEB.FORM2]
* NEW: Session: Fix compatibility with replaced Session class, with support for array accessor, Exist method and Prefix property.
* NEW: Session: Remove Dir property. Session.Path was done for that.
* BUG: Calling Session.Abandon now quits the session process immediately.
* BUG: WebTimer: The Refresh() method now does nothing.
[GB.WEB.FORM2]
* NEW: DateBox: Open calendar popup on mouse down.
* NEW: Override the Session class, so that its methods that do not have any sense with 'gb.web.form2' do nothing anymore.
* NEW: WebForm.Current is a new property that allows to define the main form of the application that fills its HTML page.
* NEW: Session.Dir is a new property that returns the session directory. It is now '/tmp/gambas.<userid>/session/gb.web.form2'.
* NEW: Session.Timeout is taken into account by session processes.
* BUG: Window titles do not wrap anymore.
[GB.FORM.TERMINAL]
* BUG: TerminalView: Terminal output processing is now delayed until the control is visible and has been arranged, so that the terminal width is accurate.
* BUG: Move XTerm files to the hidden project directory.
* NEW: TerminalView: Automatic scrolling is disabled when the last terminal line is hidden.
* OPT: TerminalView: Automatic scrolling is not smooth anymore.
[GB.FORM.TERMINAL]
* NEW: TerminalView: Add a new popup menu entry to select all the text.
* NEW: TerminalView: Add a 2 pixels margin around the terminal contents.
* NEW: TerminalView: ReadOnly is a new property that makes the TerminalView ignore keyboard input.
[GB.UTIL]
* NEW: String.PadLeft() is a new method that pad a string to the left up to a specified length using a string pattern.
* NEW: String.PadRight() is a new method that pad a string to the right up to a specified length using a string pattern.
[GB.TEST]
* NEW: Flowchart made by libre office draw and exported as svg
This is a first try to show the interplay between gbt3, gb.test and
gb.test.tap.
[GB.FORM]
* NEW: FileProperties: Add() now returns the index of the added tab.
* NEW: FileProperties: Index is a new property that returns or sets the current tab index.
* NEW: FileProperties: Click is a new event that is raised when a tab is selected.
[GB.TEST.TAP]
* NEW: Assert.SubtestLevel is a new property that returns the number of nested subtests.
* NEW: Assert.BailOut always unwinds the subtest stack and bails out of the entire TAP session.
* BUG: Tests can bail out even if Finished was called.
[GB.TEST]
* NEW: Bail out again if errors from test methods are caught.
* BUG: Don't call Finish on a subtest when it was already finished.
After the Bail out message, we Quit with non-zero exit status to signal
an abnormal termination to the harness.
[GB.TEST]
* NEW: Use gb.test.
This removes the Assert and Track classes and uses gb.test.tap instead.
Test methods are now executed inside subtests, plan lines are auto-
matically emitted by the harness.
Differences between gb.tests's and gb.test.tap's Assert module:
- Instead of Assert.True and Assert.False, use Assert.Ok.
- Instead of Assert.Equals* for every type, there is a generic
Assert.Equals for Variants and a specific Assert.StringEquals
for strings which prints diagnostics when the test fails.
- Assert.BailOut does not terminate the entire program, just
the TAP stream.
- Assert.ErrorWithCode is called Assert.ErrorCode.
All TAP printing is done through Assert now. Errors happening in the
test code are not caught and spoofed in the TAP stream anymore, they
cause a test failure. The system would be more robust if the testee
would be in a different process from the tester.
[GB.TEST.TAP]
* NEW: Add Reset() method to Assert. Useful if you use the same (automatic) instance for multiple TAP streams.
* BUG: Fix state handling in TapPrinter.Finished.
[GB.TEST.TAP]
* NEW: Turn TestStats into a class.
* NEW: Store TestStats.Failures as an Integer[].
* BUG: Do NOT intercept test's stderr and convert it to diagnostics.
[GB.FORM.EDITOR]
* BUG: TextEditor: Correctly handle the drawing of the difference before the first line.
* BUG: TextEditor: Correctly relayout differences when the Wrap property changes.
[GB.UTIL]
* NEW: CsvFile: Open() is a new method for opening a CSV file for reading.
* NEW: CsvFile: Create() is a new method for opening a CSV file for writing.
[GB.UTIL]
* NEW: The Terminal class has been removed, and replace by an extension of the Process class. In other word the Expect() method is now directly a method of the Process class.
[GB.UTIL]
* NEW: Terminal: A new class that allows to answer the prompts of interactive commands running in a virtual terminal easily (think about ssh, scp...).