Glitch is a graphical lightweight interactive tool and compiler hybrid. Generate Arduino software via beautiful graphical diagrams (blueprints). Now with a natural language processor! Glitch: connect (a, b) (c, d). Glitch: new int variable (a, b). Glitch: select left-most objects; align.
Summary of Glitch
Release Notes
2024.11.12
- Arduino: upload and verify functions.
- Generate output file before launching the IDE.
- Include scaling information in the status bar.
- New LTS version string information for About.
- Object order was incorrect upon loading of diagram because of invalid object position.
- Print.
2024.09.25
- ASH: copy, paste commands.
- Allow for canvas color alphas: background color, dots / grids color, lock color, selection color, source text color, wire color.
- Arrow object and background color alpha; in addition to transparency property!
- Awesome button colors.
- Bold ASH text.
- Corrected glitch.pro. Deleting debug plugins may delete required plugins files in the Windows install target. Qt 6.5 LTS has separated the debug and release files and the additional logic in glitch.pro is not necessary.
- Ctrl + W and docked property editors. Duplicating shortcuts causes problems.
- Default Arduino IDE of /usr/bin/arduino on Linux.
- Display icons of dragged objects.
- Fewer changed() signals during the saving of a diagram.
- LTS release!
- Many constants.
- Object background color alpha.
- Pasting into a canvas preview is now natural. Previously, a paste event's coordinates would be translated.
- Pasting into a view will not require a mouse click event.
- Save periodically. New Edit -> Canvas Settings -> Project -> Save Periodically.
- The Windows bundle includes some additional revisions. Please read https://github.com/textbrowser/glitch/compare/2024.09.25...master.
- Twenty years of Glitch!
2024.07.30
- Allow categories to exist in their own floating dialogs. Dialogs are available via context menus.
- Constant variables and paint events.
- Drag-and-drop: display an item's icon if the item is ready for a drag.
2024.06.05
- Corrected dragging and dropping of multiple items. The current implementation creates multiple copies of a single item.
- Dragging a category onto a canvas will cause an abnormal termination because the category's parent() object does not exist because a category is a top-level item.
- First Apple Silicon release.
- LTS release!
- Redo / undo history panel.
- Serial port in the PowerPC distribution.
- Source Preview Close icon.
2024.04.30
- ASH behavior: list local objects if a list argument is not provided.
- ASH: list local must return local objects only.
- ASH: list-statistics.
- ASH: sort list results.
- Added Ctrl+W shortcut to User Functions's Close button.
- Avoid noisy signals between Find Objects and modified objects.
- Avoid verbose signals after committing canvas settings.
- Center child window with respect to separated diagram if necessary.
- Copy selected ASH text via Control + C.
- Destroy magic proxies in glitch_scene::purgeRedoUndoProxies(). Such local proxies exist within the universal redo / undo stack and must be purged when their parent scenes are destroyed.
- Display the number of objects in Find Objects.
- Do not generate a canvas's source view unless a Source View window is visible.
- Floating source preview for child items.
- Inspect scene() results. Curious mishaps.
- Interrupt an ASH prompt via Control + Shift + C instead of Control + C.
- New --generate-source terminal option.
- New File -> Close All Diagrams.
- New default value of false: Canvas Settings -> Source View -> Generate Source View Periodically.
- Page scrolling in ASH.
- QString::split() and skip-empty-parts.
- Remove leading and trailing space characters from ASH commands.
- Removed all iterators from recent-diagrams highlight logic.
- Renamed database table properties to diagram_properties.
- Separated diagrams and source previews.
- Speedier object instantiation.
- The option --open-arduino-diagram does not require absolute file names.
- The option --open-arduino-diagram is now --open-arduino-diagrams.
2024.03.25
- Block signals in glitch_misc::sortCombinationBox() before altering the provided combination box widget.
- Floating source preview. Please see Windows. Click an object and read its source!
- Improved text search in documentation class.
- Inspect redo / undo stack objects and provide alternate logic if necessary.
- New Arduino keyword: //.
- New default canvas background color #55aaff.
- Write comments on multiple lines. Modifies an item from the 2023.09.10 release.
2024.02.29
- A source-only review for a planet of lunatics.
- ASH of child views.
- ASH: !history-item (repeat), clear-history, delete, history, list all, list local, save-history-desktop.
- ASH: support the Home key.
- Drag and copy!
- Editable size in widget context menu.
- This release is dedicated to the glitchy Mr. D. Peace out!
2024.01.15
- ASH, design via a human-like language. An introduction.
- Connect close shortcuts to close buttons.
- Corrected Debian control files. The files do not contain the required dependencies. GitHub ticket #9.
- Find Objects is now a dialog instead of a window.
- Highlight Recent Diagrams item if selected via the keyboard.
- Icons: zoom-reset on canvas context menu.
- Include object identifier in Find Objects.
- LTS release!
- New --full-screen.
- New errors covering Examples permissions. GitHub ticket #10.
- QString::split() and skip-empty-parts.
- Qt 6: size_t qHash() instead of uint qHash().
- Show image of dragged item during creation.
- The option --help did not include --show-serial-port-window.
2023.11.20
- Center edit windows with respect to the main window.
- Improved resizing of syntax object.
- New Arduino constants and conversions.
- Zoom Reset tool.
2023.10.30
- Adjust-size created shadows. Corrected!
- Added Other to Syntax category.
- Allow assigment of value during initialization of array variable.
- Beautiful zoom tool bar.
- Comment-like object property: Generate Source. Objects will appear transparent.
- Corrected spelling: macros() -> micros().
- Disable some keyboard events on read-only text-input fields.
- Improved recording of splitter states.
- Initialize the Tabs menu on MacOS.
- LTS release! See the bundles of love.
- New Arduino type: uint32_t.
- New Catalog category.
- New auto keyword as variable type.
- New input dialog sizes.
- New tool bar titles. Mostly invisible, however, present.
- Qt 6.5.3 LTS Android.
- Qt 6.5.3 LTS MacOS.
- Qt 6.5.3 LTS Windows.
- Removed bounces which are observable during resizing of compact widgets.
- Save edit window states on close events.
- Synchronize diagram name with Tabs menu.
- The size property of a widget must be restored in a delayed manner as some properties are prepared in derived classes.
2023.09.25
- Bouncy-less object resizing.
- New Serial Port Window layout.
- New show-serial-port-window terminal option.
- Object resize optimizations: object caches, switch statements.
- Prepared the project file for FreeBSD and Qt 6.
- Removed duplicate instructions in widget resizing.
- Retain Serial Port Window geometry and layout.
- Source-only release. Adopting an LTS-release format.
- Variable spelling: m_rectanges -> m_rectangles.
- Write serial port data as UTF-8 instead of Latin.
2023.09.10
- Added QPainter::LosslessImageRendering where supported. Requires Qt 5.13 and newer.
- Added context menu item to variable object for setting the variable's type.
- Added default keyword to Arduino flow control object.
- Clearer rendering of diagram previews.
- Destroy a tab's save push-button whenever its diagram is destroyed. Otherwise, resources will not be released.
- Disable WA_AcceptTouchEvents on MacOS. Resolves qt.pointer.dispatch: skipping QEventPoint() warning.
- Display a diagram's tab before loading it.
- Display only non-array types in Variables category.
- Do not register a redo / undo if a widget is moved to its current position.
- Emit editingFinished() in glitch_object_lineedit::leaveEvent().
- Highlight problematic Recent Diagrams entries on non-Android and non-MacOS.
- Improved processing of restoring diagrams from database containers. PowerPC and Windows only. Other systems will receive this item in a future release.
- Increased generate-source-view timer interval to 1.5 seconds.
- Initialize the output_directory INI setting to the operator's home directory. If the setting is not initialized, a source file cannot be generated.
- New lock and selection colors.
- New minimum height for comment object.
- New sizeHint() implementation for flow-control object.
- Partially completed SipHash example. Cryptography in Arduino through Glitch!
- Resize edit windows to 85% of the main window's size. New windows only.
- Serial Port Window. Please see Windows menu.
- Simplified selection border of selected objects.
- Write comments on single lines.
2023.08.19
- Corrected abnormal termination caused by redo / undo delete of nested functions.
- Corrected move and resize cursors.
- Corrected redo / undo of function return type.
- Create actions for special tools. If the actions are not created, special functions such as group locking will fail.
- Disable diagram separation on Android.
- Double-clicking on an empty portion of a canvas will display the diagram's context menu.
- Hide a widget's resize helpers whenever the widget is dragged.
- Improved mouse interaction in proximity of wires.
- Improved positioning of context menus. A menu's top-left-corner position should be the cursor's position.
- Interactive scene previews. Double-clicking on a scene will place the major theme into view.
- New Glitch preference: Override Widget Fonts.
- Nicer Recent Diagrams for non-Android and non-MacOS.
- Open function edit windows via double-click on docked function views.
- Set a minimum width when restoring a widget from its database.
- Set icon sizes on separated window tool bars.
- Show context menu on widget double-click event.
- Simplified block comment widget.
- Support returning pointers in functions.
- Zoom feature: View -> Zoom. See Windows -> Glitch Preferences.
2023.07.30
- Android: new close buttons, properly close windows (hide() instead of close()), showMaximized() instead of showNormal(), tools menus (menus are shown in separate windows).
- Attached descriptive tool tips to objects.
- Darkmode for Windows.
- Double-clicking a function clone will now launch the function's edit window.
- Edit menu items are now present in the tool bar.
- File menu items are now present in the main window's tool bar.
- Font tool will now cover all widgets of a diagram.
- Generate Source View Periodically is now enabled for new diagrams.
- Intelligent timers preserve resources.
- Linux-like distributions: /usr/local -> /opt.
- New Arduino variable types: BitOrder, PinStatus, pin_size_t, uint8_t, uint16_t.
- New minimum-size-hint methods.
- New tool: Adjust Size(s) (All Widgets).
- New tool: Widget(s) Properties (Selected Widget(s)).
- New widget sizes. Please resize existing widgets!
- Properly sort User Functions whenever a function is added or renamed.
- Qt 6.5.2 LTS for Android.
- Qt 6.5.2 LTS for Windows.
- Removed Stream object as this is an abstract, base class.
- Saving a diagram as PNG image(s).
- Scoped C++ enumerators.
- Special method for installing Examples on Android.
- User Functions are now docked in edit windows.
- Widgets now ignore the application-level font. Widgets provide custom fonts.
2023.06.30
- A widget may be deleted in glitch_scene::artificialDrop() because of an addObject() failure. Improved the logic of artificialDrop().
- Added Generate -> Source View to separated canvases.
- Added Tools to tool bars.
- Added analogReadResolution().
- Adjust the size of a widget after it's been compressed or decompressed.
- All distributions now include the Examples directory.
- Allow selecting of text in widgets housing text fields.
- Arrow object may or may not be transparent; corrected action availability.
- Attempt to prepare a widget's edit window's geometry.
- Center an edit window if restoreGeometry() fails.
- Copying wired function clones is now complete!
- Corrected MacOS Qt warning: outside any known screen, using primary screen.
- Corrected adding of compound operator -= via drag & drop.
- Corrected derelict 'else' in glitch_object_variable_arduino:: setProperties().
- Corrected drawing of arrow object. Large arrows are distorted.
- Corrected state of Clear Copied Widgets Buffer in the main window.
- Corrected state of Paste function in canvas floating menu.
- Corrected widget transformations. Function types were incomplete.
- Decreased the number of instructions in glitch_object(): retrieve a new identifier for only a new widget.
- Default Arduino syntax colors for new diagrams.
- Denote widget type in context menu.
- Display a constant's value as its name.
- Display the Canvas Settings dialog if the IDE is not accessible after a Show Project IDE request.
- Do not draw dots and grids if their colors match the brush color of their parent canvas. Fewer instructions!
- Double-click events will open context menus or edit windows.
- Emit changed() signal in glitch_object::slotPropertyChanged(), glitch_object::slotSelectColor() if necessary.
- File Tool Bar now precedes the Tool Bar. New Glitch instances.
- Find Objects now includes a search field.
- Functions added via User Functions are mislabeled (toLower()). Corrected!
- Generate source and copy it into the clipboard buffer.
- Glitch will be shown in a maximized window for flawed or new instances.
- Group operations will now create grouped redo / undo commands.
- Highlight syntax widget text.
- Improved detection of invalid variable names.
- Initialize Docked Widget Properties Editor's size.
- Native icons.
- New Canvas Settings option: Source View -> Generate Source View Periodically.
- New Edit -> Separate Current Canvas.
- New Find Objects column: Type Total.
- New default redo / undo stack size of 1500.
- New icons added to several widgets.
- New layout in Glitch Preferences.
- New tool: (Un)lock Position(s) (Selected Widget(s)).
- New tool: Disconnect Selected Widget(s).
- New tool: Fonts (All Widgets).
- Non-empty Arduino variable names.
- Qt 5.15.10 LTS for MacOS.
- Qt 6.5.1 LTS for Android.
- Qt 6.5.1 LTS for Windows. Windows 7 has been removed.
- Raise newly-separated diagrams.
- Record absolute file paths for recent files.
- Reinitialize Glitch Preferences on show event. That is, discard revisions which have not been committed.
- Removed --show-arduino-structures as it's deprecated.
- Removed Qt::WindowStaysOnTopHint.
- Removed legacy SQLite statements.
- Removed virtual methods from constructors.
- Render property colors in floating context menus through manufactured icons!
- Repaint a wire whenever its parent scene is updated.
- Replaced QLabel Object Name widget with QLineEdit in Floating Context Menu panel.
- Resize widgets upon drop events.
- Retain Find Objects selection after a synchronization event.
- Retain Tools mode before the Tools window is displayed.
- Saving newly-created diagrams was incomplete because of invalid object identifiers. For example, a widget attached to an editable widget would not be saved.
- Set function return type via context menu.
- Simplified block comments: /*\nText\n*/.
- Synchronize the contents of Find Objects if the synchronization widget is activated.
- The Tools value does not retain the proper setting after a separated canvas is united.
- Widget font.
- Widget input fields have been replaced with special widgets so that double-click events are now required to interact with the field text. The new widgets provide more natural widget manipulation.
- Windows x86-64 only.
- Wired objects may now be disconnected via wire clicks.
- loop and setup are Arduino keywords.
2023.05.20
- Activate minimized windows if necessary.
- An object's context menu is now accessible via Find Objects. Simply ignite a context menu over the desired object in Find Objects.
- Arduino IDE is optional. Do not prevent file generation.
- Corrected color sorting in Canvas Settings -> Source View.
- Corrected tear-off-menus default INI value.
- If necessary, highlight required variable name on creation.
- Multiple objects may now be dragged onto a diagram.
- Natively-drawn widgets may now be optionally transparent.
- New tools: Adjust Size, Compress.
- Object transformation. For example, noTone() -> tone() via context menu.
- Portable output files. New Glitch Preferences setting.
- PowerPC Debian release!
- Removed Other, block comment, and function() from Arduino keywords.
- Removed redundant sorting from Canvas Settings -> Source View.
- Scroll a view if an object is moved via keyboard arrow keys.
2023.04.30
- Added New Diagram -> Arduino tool bar action.
- Background color property for natively-drawn widget.
- Corrected default value of setting preferences/docked_widget_property_editors.
- Corrected pointer comparison in glitch_canvas_settings::slotSelectColor().
- Dock property editors of children of editable objects.
- Edit tool bar.
- Enable native dialogs and menus. File dialogs are excluded.
- Font color property for natively-drawn widget.
- Lock color. Please see Canvas Settings -> Canvas.
- Manually resize objects!
- Native drawing of many Arduino structures.
- Pi-64 (aarch64) for Debian. A package will not be created.
- Properties tool tips.
- Q_OS_MAC is deprecated. Replaced with Q_OS_MACOS.
- Qt 6.5 LTS compliant!
- Replaced color property with background color for arrow object.
- Retain an edit window's geometry and state upon save event.
- Save state of a separated canvas is not reflected in the window's title.
- Simplified Recent Diagrams menu; native menus.
- Smoother preparation of tool bars through delayed painting.
- Vacuum glitch_recent_files.db after processing.
2023.04.04
- A function name may not represent a reserved word.
- Added Edit -> Unite menu action to separated window.
- Added filter utility to Arduino structures widget.
- Android and Qt 6.2 LTS.
- Application font hinting. Please see Glitch Preferences.
- C++17 is the new C++ standard.
- Corrected syntax highlighting of #define and #include.
- Delete selected items via Backspace and Delete keys if the Alt modifier key is also pressed.
- Denote the number of objects in Find Objects status bar.
- Disable Border Color property for arrow object.
- Disable a diagram's tool bar's context menu.
- Display categories icons for new diagrams.
- Do not display a disconnect symbol over a disconnected port.
- Docked widget property editors. Please see Glitch Preferences.
- Enabled sorting of Canvas Settings -> Source View -> table.
- Highlight an invalid variable name after editing completes.
- Native drawing of boolean operators.
- New initial color for arrow object.
- Removed QPainter::HighQualityAntialiasing render hint.
- Replaced Shift modifier with Control modifier: disconnect wires, move objects via arrow keys.
- SQLite database of new diagram was missing keyword_colors field.
- Sensible notification of undefined source file.
- Separate pages via Control and drag.
- Show tool bars for new diagrams.
- Stack widgets. New z-value property.
- Super render hints for arrow object.
- The main window's title will be incorrect if a non-current diagram is saved.
- Underline function clone name if parent function has members.
2023.02.28
- Categories icons.
- Corrected buddies (mnemonics).
- Do not display order indicators for decorative widgets.
- Eliminated background color of arrow widget.
- Improved adjust-size of constant object.
- New colorful icons.
- Qt 5.15.8 LTS for MacOS.
- Retain scrollbar values in Source View.
- Set cursor position to 0 after setText() for textfields.
- Source preview highlighting. See also Canvas Settings.
- The first Android release was available in 2023.02.10!
2023.02.10
- Arduino Documentation and Release Notes window titles.
- Corrected changed states of views. Function object revisions may cause multiple signals.
- Do not create a source file after a canvas's settings are applied.
- Intelligent tree collapse / expand.
- Object border color via context menu item.
- Set object opacity after a paste event.
- Source view. See Project -> Generate Source View.
2023.02.05
- Floating context menu items are now sorted by name.
- Horizontal arrow object for decorating diagrams.
- Qt 5.5.1 corrections.
2023.01.15
- Copy Object context menu item will not require that the object be selected.
- Download official version information and display it in About.
- Enable Set Port Colors menu item if the parent widget has input or output.
- Include diagram name in Find Objects.
- Save option from object views.
- Show object floating menu via context menu action.
2023.01.01
- Added Find action to separated window.
- Arduino IDE Linux path was incorrect.
- Close button added in Find Objects.
- Double-click event in Find Objects.
- New widget heights.
- Object input and output port colors.
- Open the Arduino IDE even if the output file is not defined.
- Optionally synchronize Find Objects with parent diagram.
- QKeyEvent::modifiers() is not reliable. Replaced with QGuiApplication::keyboardModifiers().
- Scroll-on-selection in diagrams.
- Select a widget if its combination box is clicked on by the left mouse button.
- Simplified flow-control conditional text.
2022.11.30
- Detect clean states of redo / undo stacks and adjust states of parent diagrams.
- Project IDE. Please see Project menu.
- Renamed Generate menu to Project.
- Special copying of loop() and setup() contents.
2022.11.25
- Copy context-menu action.
- Detect clean-state of redo / undo stack and adjust diagram state.
- Establish wires after undo events.
- Fancy collapse widgets for trees.
- New Position column in Find Objects. Proper sorting is included.
- Paste context-menu actions attached to diagrams.
2022.11.20
- Connect (wire) copied items if necessary.
- Copy correct locations of function clones.
- New selection color canvas property.
- Optimization level three.
- Prevent artificial redo / undo stack entries caused by copying and pasting of objects.
2022.11.15
- Application fonts.
- Glitch Preferences. Please see Windows -> Glitch Preferences.
- New Canvas Settings layout.
- Prepare for future translations.
- Wire color alphas.
- Wire widths.
2022.11.10
- Find objects.
- Minimum widget heights.
- Precise object names (context menus, find).
- Prevent pasting of object beyond scene boundary.
- Qt 5.15.7 LTS for MacOS.
- Removed logical operator as it duplicates boolean operator.
2022.11.05
- Initial release!
2004.09.25
- A splendid idea is born.