Release history
2024 (rev. >17373) (Sep 2024)
Upcoming release
Core
First release of U++ that requires C++17
Moveable concept redesigned with C++17 features. U++ now allows non-moveable types to be stored in Vector flavor of containers (using Upp::is_upp_guest). PODs are automatically moveable (aka trivially relocatable)
Upp::Tuple now supports structured binding
GetFileTime, GetFileLength, FileExists, DirectoryExists and FileMapping refactored
Stream::GetAll now invokes LoadError on negative count
ValueCache limits setting methods are simplified
Value now directly supports 'float' type
Some iffy code now made more C++ compliant (e.g. always using memcpy for unaligned data)
AsXML had new XML_ESCAPELF
plugin/Zip
zip64 support
Draw
UHD image now can serve as source for SD image
New S3 .iml image flag - the images are drawn supersampled 3x, usually without antialiasing, and only downsampled at runtime
Painter
Multithreaded rendering further optimised
New image filtering parameter - so far, rendering image was always with bilinear filtering, new parameter allows other Image filter like Lanczos 3
CtrlCore
Horizontal mouse scroll wheel support
CtrlMapper now provides operator()(Ctrl, T, const T& factor) for simple unit conversions
gtk backend improvements, XWayland mouse cursor bug workaround
CtrlLib
CtrlMapper now provides operator()(Ctrl, T, const T& factor) for simple unit conversions
ide
Icon Designer refactored and optimised, new tools added, S3 flag support added
Alt-M now goes to special scratchpad file of the same type as is current file, this is helpful e.g. for temporary storing and editing parts of .iml images that are then composed to the final image.
Output directory in assembly definition now can be left empty and defaults to reasonable path.
Hexadecimal view is now much faster
Fixed further corner case Assist++ problems
Layout designer text field, used with e.g. Labels, now has Qtf button to edit text with RichEdit
Git file history now goes through renames
Compare with menu now suggests files in Download folder too
Main package configuration dialog improved
plugin upgrades
plugin/sqlite3: 3.46.0
plugin/lzma: 24.6
plugin/zstd: 1.5.6
Core: LZ4 1.9.4
plugin/z: 1.3.1
plugin/png: 1.6.46
plugin/tif: 4.6.0
plugin/jpeg: 9f
Win32
OpenSSL upgraded to 3.2.1
Clang compiler upgraded to 18.1.5
2023.2 (rev. 17045) (Oct 2023)
Current stable release
This is release is mostly focused on improving TheIDE capabilities.
Core
CParser::ReadDoubleNoE (to ignore E part of double)
CParser::ReadIdh (with '-' in id)
Draw, CtrlLib
StdDisplay (if CtrlLib is present) now supports \1 qtf escape code
RichEdit, RichText
"Paste without formatting"
Clipboard 'HTML format' support
GetPlainText allow_tabs parameter; CtrlLib Prompt now sometimes uses '\t' to separate table cells.
EncodeHTML strikeout support
ide
New C++ sources indexer mode - previoualy, after each file change, all depended files were reindexed. That often resulted in very heavy CPU load after each header change. In the new mode, only the changed file is being reindexed - while less accurate, real problems in this new mode are actually rare and it makes for much more responsive experience using theide.
Many Assist cornercases fixed
Result lists of Find in Files and Usage now have "Replace" button which effectively brings the "rename the entity" functionality (e.g. to rename method, find its Usage and then use Replace)
Bottom pane was redesigned allowing for more Find in Files and Usage result lists.
Many improvements in source comparsions
"Show git history of file" now allows for choosing branches
"Compare with" now suggests files with the same name from other upp nests
"Compare directories" now allows comparison with git commit
Various windows like comparisons are now non-modal. It is now e.g. possible to open multiple e.g. Directory comparison windows
Merge nests function got ability to specify target folder. Default mode is now to "import" packages missing in the first nest to "imported" subfolder of the first nest. The idea is to create an assembly of first nest and its "imported" subfolder to have imported packages fixed, while still allowing the use of the very same packages from original sources with another assembly.
Visual improvements, UHD versions of many icons
C++ Language standard for assist (e.g. C++ 17) can now be selected in Assist setup
Flow breaking commands (return, break, continue, goto, co_return, throw) now have specific syntax highlighting
TheIDE now displays out-of-page function/class headers in the first line of editor. This is helpful for quick orientation when jumping into long function body.
External changes for files now getting proper undo records (previously undo history was lost when file was edited outside of ide session)
Repo sync git pull mode changed to "merge" (from "rebase")
U++ Builder now defines bmGIT_HASH (with git hash of first nests HEAD, if it is git repo).
Copy with Syntax highlighting function
umk
-h option to automatically download missing packages from UppHub if possible
Win32:
OpenSSL now upgraded to 1.1.1w
2023.1 (rev. 16847) (May 2023)
The new release brings some long awaited features. As you might remember for the last release we removed the old deprecated library for code formatting. In the current release formatting is back based on clang-format. Also TheIDE has got a special dialog when you can adjust formatting to your needs. Formatting is available under "Assist" -> "Reformat" menu.
macOS support, temporarily removed in previous release, is back. Our POSIX installation is now universal, covering Linux, BSDs and MacOS, which means that when you unpack it on macOS you just run ./install script to download all dependencies using brew and build umk and theide just like on other POSIX platforms. It is compatible with X86_64 and Apple ARM CPUs.
In other news, libclang based Assist++ has been significantly stabilized and some corner cases are now fixed.
Happy coding with U++ and TheIDE! We are glad that you decided to try our software!
Core
MacOS is supported again; POSIX and macOS releases are now merged to single archive
X11 backend compiles again
TheIDE
clang-format integration
assist stablization
.iml Image selection database tool
CtrlLib
Menubar GTK based styling has been improved
2022.3 (rev. 16660) (Dec 2022)
The leading entity for this release is migration for our homegrown C++ parser to LibClang. This is the revolutionary change in the context of how easy is to develop code with our integrated development environment TheIDE. If you are familiar with older parser, you will noticed changes in plus immediately. From other things we optimized memory consumption used by our widgets. All applications recompiled with the newest version of U++ will be the beneficiaries of this change. Furthermore, we refreshed TheIDE's AndroidBuilder and it is now capable of building Andorid project using the latest tool-chains from Google.
We would like to thank all of our amazing contributors and users! Without your help we wouldn't be in the place we are today. Also, many thanks to our UppHub contributors who do a great job. Your additional packages are very helpful and needed for our users.
Release highlights
Homegrown C++ parser in TheIDE is replaced with LibClang resulting in new and improved Assist++ features
Optimised memory consumption of U++ widgets.
macOS version is not released with 2022.3. Our main priority is to leverage this inconvenience in one of 2023.x releases. If you want to use U++ on macOS please use 2022.2 instead.
TheIDE:
Autocomplete now correctly works in most cases (except in template bodies, which is libclang limitation)
Code navigator refactored and improved
TheIDE now shows C++ errors while editing sources
TheIDE now shows information tips about program symbols when you leave mouse over it (documentation if available, declaration signature if not)
New function "Usage" shows all usages of current symbol through all project sources based on C++ analysis. With virtual methods, it shows all overrides of base class method.
Android Builder was updated and it is compatible with the latest Android platform version. At the time of writing these words it is version 33.
UMK
UMK displays version when run without parameters
CtrlCore, CtrlLib:
Memory consumption (esp. sizeof) of widgets greatly reduced (by up to 70%).
LabelBox now allows center and right alignment.
Fix issue with not working drag and drop for files on Windows
2022.2 (rev. 16270) (May 2022)
This release serves mainly as a service pack to 2022.1 and contains significant number of resolved issues. There are limited set of new features.
Release highlights
Core: IsVoid(String) function to avoid confusion with IsVoid(Value)
Core: LoadFile fixed to be work with special files in POSIX /proc/
Core: BiVector, BiArray Create with constructor parameters
CtrlLib: RichTextView WhenLeftClick, ClearSelection
CtrlLib: FileSel::NoExeIcons to suppress loading of icons from .exe files in background
CtrlLib: Fixed issues with namespace agnostic layouts
Image: Support for >2G pixel images (ImageBuffer::GetLength now returns size_t)
Draw: Fixed/optimised FlipImage
plugin/tif: Minimal geotiff support via metadata (see reference/geotiff)
TheIDE:
ide: git format-patch patch format support
POSIX
Fix Manjaro (GNU/Linux) installation dependencies
2022.1 (rev. 16236) (April 2022)
Release highlights
sizeof(wchar) is changed to 4 (32 bits) to support non BMP unicode characters
This might bring some incompatibilities in the code that expects wchar to be 16 bit, which
escpecially involves dealing with Win32 (and to lesser extend MacOS) APIs, so if your application
is doing that, please check all instances of WCHAR (UniChar on MacOS) or even wchar
especially type casts.
To support host APIs, char16 is introduced (but there is no 16-bit String varian).
Use ToSystemCharsetW, FromSystemCharsetW to convert texts to Win32 API.
Support of drawing non-BMP characters in GUI
Vastly improved character font replacement code (when drawing characters missing with requested font, replacement font is used)
Last instances of Win32 ANSI calls (those ending with A) are removed
UTF handling routines are refactored and their's naming is unified
RTF is now being able to handle non-BMP characters (RTF is used as clipboard format for RichText)
Improved input method (aka preedit in Linux, aka marked text in MacOS) support
ConvertFloat and EditFloat to handle float vs double precision differences
Improved FP <-> text conversion routines
TheIDE
UppHub now raises error when Git is missing
'Win32 release
clang updated to actual version (llvm14)
zlib updated to 1.2.12
openssl updated to 1.1.1n
jpeg updated to 9e
Instant setup for VS 2022
POSIX
In order to satisfy UppHub requirements, Git dependency was added
2021.1 (rev. 15947) (May 2021)
Release highlights
New system for 3rd party modules, "UppHub": independently developed U++ modules residing in Git repositories now can be seamlessly integrated, including automatic installation of missing packages if they are in the UppHub.
Core
double NAN and INF values are now considered Null (IsNull returns true for them).
FileSystemInfo now returns volume names of network drives
Improvements in FindFile
String middle tier heap handling optimised
U++ does not require MemoryFreeThread call at the end of thread (it is now implemented using thread_local destructor)
Core/SSH: the underlying libssh2 library is upgraded to v. 1.9.0
CtrlCore
New C++ style for iteration of widget children now possible for(Ctrl& q : widget)
Pen support (pressure, tilt etc...)
RichText, RichEdit
1.15 line spacing support
JPEG raw image data is now exported to PDF as JPEG (instead of recoding)
TheIDE
Context goto now support AK_ key definitions
TheIDE now contains credentials manager for git and svn (including github tokens)
Various improvements to text comparison dialogs - ability to copy and delete individual lines between versions, filtering by file time (for directory comparison).
Repo history of .upp files directly available via package context menu
Open package dialog filtering options redesigned
New function to copy positions as text to clipboard (e.g. "RichEdit/Modify.cpp:27") and go to such position based on clipboard content. Useful for communication between developers.
Some common nest root files like README.md or LICENSE are now directly accessible through <meta> pseudo-package.
TheIDE/umk build flags MAKE_LIB and MAKE_MLIB force generation of library instead of executable.
New "Merge nests" function (in Package organizer) copies all used packages that are not in the first nest of assembly into the first nest. In U++, first nest usually contains the application code whole while other nests contain libraries (U++ or 3rd party libraries). This function is intended to "freeze" the non-application code before releasing / tagging / branching to reduce the chance that a change of that code does not break the application.
TheIDE now can "Open terminal" at various directories (output directory, package directory, source file directory etc...), with PATH augmented with current build executable directories.
Support for .md (markdown) format
Improved debugger threads tab
Support for override in virtual methods dialog
Ctrl+Shift+Up/Down now moving the line or block of text up/down
Win32
Now ships with minimal git (mingit) implementation
CLANG now at version 11.0.0
2020.2 (rev. 15260) (October 2020)
Release highlights
This release is mostly about optimizations, using SIMD and multithreading.
Core
memset*, memcpy*, memeq*, memhash SIMD optimized inlined routines (* = 8, 16, 32, 64, 128)
String comparison is yet again optimized
Using 64 bit hashes on 64 bit CPUs
Draw, Painter
SIMD optimizations (Intel SSE2 and ARM NEON) of graphics related routines
ScatterDraw
Added SetDataSourceInternal() to internally host data
ScatterCtrl
Added ScatterWindowPool
Ide/umk - Android
Removed depricated Android standard libraries (now select c++-static, c++_shared, system and none are supported)
Remove depricated Android platforms (now armabi-v7, arm64-v8a, x86 and x86-64 are supported)
Core/SSH
Fized a truncation issue with SshExec. It can now handle large outputs up to 2 GiB.
Turtle
Refactored to use VirtualGui
Ide/umk
C++ Assist parser in TheIDE is now multithreaded and some parts run in background
Navigator now can search for files too
The errors now can be directly googled
ide/umk now can be configured for cross-compilation (e.g. compile Win32 application in Linux)
Direct help button in "Select main package" window
Additional tooltips in various places for better user experience
Simplified project toolbar
Improved documentation
uppsrc
Improved support for OpenSolaris derived systems, FreeBSD and OpenBSD
upgrades of 3d party code
OpenSSL (in Win32 release) to 1.1.1g
plugin/jpg to 9d
plugin/tif to 4.1.0
plugin/lz4 to 1.9.2
plugin/zstd to 1.4.5
plugin/pcre to 8.44
plugin/sqlite3 to 3.33
plugin/glew to 2.2.0
plugin/Eigen to master branch commit C1D944DD (9/May/2020)
2020.1 (rev. 14429) (May 2020)
Release highlights
gtk3 replaces gtk2 as default linux backend
Visual look&feel refactored in Linux and MacOS, improved dark theme support
In Win32, PDB debugger now displays various U++ and standard library containers and types nicely
Win32 release now ships with CLANG compiler toolchain
Win32 release does not contain 32-bit TheIDE version anymore. Only 64-bit version is bundled. If you want to use U++ on 32-bit Windows 2019.2 is recommended for you.
Posix release archives are reworked to allow easier and faster installation
Core
SshExec improvements
ConditionVariable and Semaphore now have Wait variant with timeout
IsDoubleWidth function to detect double-width UNICODE glyphs
MacOS is now using fast U++ heap when possible (not for new/delete)
U++ now using ~/.config and ~/.cache folders to store things
Draw
GaussianBlur function added
CtrlCore
Ctrl::GetAscendant utility method to get parent based on its type
Dark mode is now enabled by default, CtrlLib: classic skin improvements
MacOS multimonitor support and other fixes
CtrlLib
Modernized widgets look in layout designer
Added some less often used widgets like ColorPusher, TreeCtrl or ColumnList that were not previously directly supported in layout designer
FileSel support of .lnk files in Win32
Host native file selecteor, FileSelector, is now renamed to FileSelNative and is now available in MacOS too (in addition to Win32 and gtk3)
GLCtrl in OpenGL/X11 refactored
Ide
umk now implements use target directory flag (thanks Novo)
Context goto (Alt+J) now able to detect files / links (and open the file / link in browser)
Gdb frontend now can better handle executables without debug info
Icon designer now can show synthetised UHD/Dark images
New Insert file/clipboard as.. function allows insertion of clipboard or files directly to the text in various formats (C string, Base64 encode, raw byte values, compressed byte values using LZ4 or Zlib or LZMA).
Move/Copy package function
Find in files now has 3 output panes
Painter
GetSVGPathBoundingBox function that gets bounding box of SVG path
Xform2D::Map function creates matrix for affinity triangle->triangle mapping
SQL
PGSQL now can escape ? as ?? or use NoQuestionParams method to avoid interpreting ? as parameter holder
SQL_RENAME .sch 'command' can be used to have different name of column in DB and code.
uppsrc
In POSIX, external library dependencies are now refactored with pkg-config
2019.2 (rev 13664) (October 2019)
Core
Allocator huge block handling optimized, memory consumption improved in specific cases
Index refactored to reduce sizeof and improve performance in specific cases
Introduced workaround for Mingw TLS performance issue
pick/clone semantics refined in several places
Random algorithm changed to xoshiro256**
Uuid generation optimized
Fast U++ allocator is now used internally where possible even if standard allocator us used for new/delete (with USEMALLOC flag)
pick/clone refinements
Value::Compare optimized for standard types
Graphics
SVG parser improvements
GLCtrl new method ExecuteGL to execute code with correct GL context
Font metrics optimized for MingW with TLS optimization workaround
CtrlLib
ArrayCtrl sorting improved
CtrlMapper small helper class
DropList supports Add with initializer_list
FileSelButton WhenSelected Event
FileSel has now more sorting options, PreSelect now supports Save As too
ScatterDraw
SetGridLines callbacks
Ide
Console output now supports search
Font settings 'set to defaults' button
Debugger now has arrow buttons to change frame without dropping the list
New GUI patch tool
GDB debugger frontend now has memory tab
Icon designer export to .png now exports uhd/dark variants too
Main config dialog now can drag/drop (or move) lines
Run options dialog got new buttons to insert file path / directory path into commandline args
pkg-config support
2019.1 (rev 13068) (May 2019)
General improvements
MacOS X support
Improved support for UHD displays
Improved support for dark themes
Core
Core/SSH: SSH protocol support
XMLRPC improvements (protocol version, support for i8 type)
WebSockets improvements
ToAscii, ToUpperAscii, ToLowerAscii functions optimized
New CoWork variant CoWorkNX solves an compilation problem when using CoWork as member variable
DarkTheme function inverts Color luminosity for dark themes support (dark colors become light, light colors dark, but color remains)
MakeOne is now changed to function
LocalProcess now allows setting current directory for started process
Ide
Various improvements of Image designer
'Disable UHD mode' option for testing applications
GDB interface improvements: Now possible to stop running application and to set breakpoints while application runs
Compare with clipboard function
Initial setup improved
New dialog for setting up project assemblies
PDB debugger improvements: now displays INF and NAN for floats, fixed termination issues
Selfupgrade feature (ide compiles itself and replaces the binary)
Other
Improved jpeg EXIF support
RichText now suggests corrections for misspelled words.
RichText now supports .svg images
GLCtrl refactored, changed to use single context per application (allows sharing resources, e.g. textures, between widgets), support for GTK fixed, MSAA supported in Win32
VirtualGui is a new package to implement working 'fullscreen' GUI by implementing a SystemDraw and a dozen of virtual methods, intended for use with e.g. games. VirtualGUI/SDL2GL is an implementation with SDL2.
Painter is heavily optimized for multithreaded rendering.
PostgreSQL now supports RETURNING clause in SqlExp.
New plugin/tess2 package (tesselation) and plugin/glm (OpenGL maths support).
Release
U++ now ships with speller files for multiple languages
Win32 Release
Now ships with SDL2, MySQL and PostgreSQL client libraries
mingw64 upgraded to 8.1.0
mingw64 now using lld linker - link times with mingw are now practically zero
OpenSSL updated 1.0.2r
plugin/jpg updated to 9c
plugin/tif updated to 4.0.10
plugin/lz4 updated to 1.8.3
plugin/zstd updated to 1.3.8
plugin/lzma updated to 19.0
plugin/pcre updated to 8.43
plugin/sqlite3 updated to 3.27.2
2018.1 (rev 11873) (Mar 2018)
Core
New low-overhead CoWork parallelization method / pattern - Loop
Throughout the Core, many rvalue / universal reference related optimizations
CoPartition optimized to perform the work in calling thread if data size is small
SeedRandom without parameter now reseeds the random with host entropy
Array/Vector new Get/Set methods
New features for WebSocket client mode
plugin/bz2
plugin/bz2: Streaming support
Painter
Co Option to run parallel
BufferPainter::PreClipDashed
PdfDraw
PdfDraw: DrawJPEG to directly embed JPEG compressed images into PDF
GUI programming
In Windows, owned windows now have minimize box disabled (as minimizing of owned windows leads to strange behaviour)
LineEdit::WhenScroll event
New OptionBox widget (Option with LabelBox like graphics, also able to automatically enable/disable contained widgets)
FileSel now has option to add widgets into the dialog (e.g. to specify save format)
TheIDE
Very long files (>400MB) are now opened for view rather than edit.
Some trivial merge conflict helper tools
IconDes improvements
Esc scripting language now has 'continue' statement
Debugger now can copy the back-trace of all threads to the clipboard
2017.2 (rev 11540) (Dec 2017)
Core
New AsyncWork class - U++ future-alike tool
CoWork: Exception propagation from worker threads, job cancellation support.
Bits class optimized, it is now possible to set multiple bits (count parameter)
WebSocket refactored for asynchronous operation
UTF-32 support functions, UnicodeCompose and UnicodeDecompose functions, support for UTF16 surrogate pairs
DeleteFolderDeep now deletes symlinks
MakeOne function (alternative to One::Create)
LoadFromFile, StoreToFile - Event variant
ReverseRange and SortedRange
Server Name Indicator support in Socket and HttpRequest
SSL1.1 API support
RegisterGlobalSerialize
GUI programming
ArrayCtrl: Improvements in sorting, new public GetCellRect, GetCellRectM, GetSelKeys, SetRowDisplay, SetColumnDisplay, AcceptRow methods
Button NakedStyle style.
WithDropChoice: Set/Remove entry in drop-down list
TextCtrl::Load refactored, now can break very long (>1MB) lines
TreeCtrl: GetOpenIds, OpenIds
IdCtrls, SqlCtrls refactored, improved
Option: SetColor
Edit...Spin: RoundFromMin modifier method
ColorPopup now has button to enter the color as text
New features in ScatterDraw, ScatterCtrl
Header / Footer can now be changed using paragraph properties
QTFDisplay now ignores text color / paper if style is not normal
TheIDE
Improved debugging of console applications with MinGW
Debugging with GDB is now much more stable
Macro manager
Explicit "Go to line.. "operation (in addition to Navigator)
BRC now supports LZ4, LZMA and Zstd compression
File comparison tool improved
Directory comparison now can show/filter new/modified/removed files
Dark theme highlighting
Duplicate package function
"Find all" button in normal Search (finds all occurrences in current file).
HexView now remembers position
Selection can be interpreted as error list
TheIDE now shows the number of selected characters
Tab size now possible on per-file basis
Repository synchronize refactored, now supports both svn and git
Layout visgen improvements
TheIDE now supports Visual Studio 2017 C++ compiler auto setup
MS build tools auto setup
3rd party modules
MinGW 64 updated to GCC-7.2.0
OpenSSL for VC++ updated to 1.0.2l
plugin/lz4: lz4 updated to 1.7.3
plugin/bz2: updated to 1.0.6
plugin/jpg: updated to version 9b
plugin/pcre: updated to 8.41
plugin/png: updated to 1.2.57
plugin/sqlite3: updated to 3.17.9
plugin/z: Updated to 1.2.11
plugin/Eigen: Updated to version 3.3.4
2017.1 (rev 10804) (Jan 2017)
This is the first release of U++ that requires C++11 compatible compiler. The main focus was Core, adding many enhancements allowed by C++11 and improved parallel programming support. We, also didn't forget about Android and we ported Core library on that platform.
Core
Original U++ Callbacks are deprecated and replaced with Function with better lambda support.
Begin/End methods are now renamed / deprecated in favor of (standard) begin/end.
U++ algorithms now primarily work on ranges, besides container SubRange, ConstRange and ViewRange are now provided.
Initial round of optimizations for ARM architecture.
U++ allocator optimized once again, locking is reduced in inter-thread deallocations, allocator now returns blocks always 16 bytes aligned (simplifies SSE2 code).
General cleanup of U++ algorithms, redundant algorithms removed, new Count and CountIf algorithms
Improvements in Core/RPC
CoWork::FinLock now provides 'free of charge' mutex at the end of worker jobs.
CoWorkerResources class now provides 'per worker thread' context.
CoPartition algorithm useful for partitioning array for parallel programming.
Where it makes sense, U++ algorithms now have parallel variant.
String further optimized, new TrimLast, TrimStart, TrimEnd, FindAfter, ReverseFindAfter
FastCompress (currently using LZ4) for internal program compression.
Core can be compiled on Android and major of features are currently ported.
xxHash - fast non-cryptographic hash - now part of Core.
SHA256 code now part of the Core.
plugin/pcre updated to the latest pcre version.
plugin/zstd now provides zstd compression (with multithreaded option).
plugin/lz4 now can multithreaded.
GUI programming & graphics
PdfDraw and RichText now support PDF signatures.
RichText now can change header/footer within document.
ArrayCtrl got SetLineColor and GetCellRect methods.
TheIDE
Comments now can be spell checked and there is comment word wrap and reformatting operation.
New functions / icons that search the web (launch the browser) for text selected or current identifier.
Optimal compilation mode is removed as confusing, it is now always either debug or release mode, release mode being configured for speed.
When comparing files, differences within single lines are now shown.
Most U++ designers now support drag&drop to reorganize lists.
Find File window was remastered.
New dialog for creating package file.
Android application can be directly launch on emulator from TheIDE.
Clang is now default compiler for native Android applications.
C++14 is now default standard for all Android builds.
Various android builder improvements.
ESC
New math functions like sin, cos, tg, pow etc.
New replace in string function.
General
Significantly improved the process of building TheIDE and UMK from tarball (POSIX environment). Compilation on multiple cores is possible with "-j" option.
Documentation improvements.
Bug fixes in various areas.
2015.2 (rev 9251) (Dec 2015)
The main focus of this release was C++ parser and Assist++ features. and Android applications builder in TheIDE (library does not yet support Android though).
Core
Improved C++11 support.
Leap second of 2015 added to time routines.
GUI programming & graphics
Improved support of UHD displays.
New QTF command {{* is shortcut for {{~0/0 to simplify using invisible tables for organizing text.
PdfDraw now supports urls (e.g. when converting QTF/RichText to PDF).
RichText/QTF now support round borders for table cells.
ScatterCtrl: new features.
TheIDE
Assist++ and C++ parser now support C++11 and non-project headers, parsing ability is generally improved.
Android builder.
UTF16 support, UTF BOM autodetection.
Rename/Delete package functions.
Layout designer has new code generation features and can jump to C++ using the layout.
Editor now truncates files longer than 200MB / 1GB (32/64 bits ide) while loading, makes them read-only.
Editor now shows misplaced whitespaces in source files.
TheIDE now detects binary files and provides binary viewer.
Toolbar has new navigation icons and icons to switch editation mode (text/designer/binary).
Legacy GDB-backended debugger was refurbished and became 'Standard' debugger for GCC.
Icon designer now shows images as files icons when inserting image files.
Win32 releases
Win32 now does not come as .exe installer, but simple .7z archive, which acts as "portable" installation. Nothing is written to the registry, nothing needs to be installed, simply running "theide.exe" setups everything needed. (theide.exe is 64bit executable. For those unlucky to still run 32-bit os, there is theide32.exe).
There is once again 'mingw' variant which is coupled with TDM64 release of mingw-w64.
2015.1 (rev 8227) (Mar 2015)
Core
U++ abandoned "default pick" semantics for containers. The transfer semantics now has to be specified explicitly, either as 'pick' or 'clone' (this is enforced in C++11 mode, in legacy mode old behaviour is maintained and pick/clone are optional).
New containers, based on fast-insertion arrays: InVector, InArray, SortedIndex, SortedVectorMap, SortedArrayMap. SortedIndex, SortedVectorMap and SortedArrayMap provide binary searches, while maintaining random access to the array, with performance comparable to binary tree based containers (e.g. std::map).
New Core/POP3 package - support for retrieving emails form POP3 servers.
Initial round of C++11 support (lambda callbacks, minor fixes)
A set of small utility functions findarg, decode, min/max now supporting more arguments. SplitTo and Merge for splitting/merging strings.
InFilterStream, OutFilterStream classes that can provide some sort of processing (e.g. compression) to regular streams.
New Date related functions EasterDay, GetMonths, GetWeek, GetWeekDate.
MIME / fileextension mapping functions FileExtToMIME and MIMEToFileExt.
Some ARMv7 related optimization (unaligned access, byte swaps).
SpinLock class.
Stream optimization methods GetPtr, PutPtr, GetSzPtr provide safe access to Stream internal buffer.
String/WString::Find(const String&) significantly speed optimized.
Value invalid casts now throwing exception ValueTypeError instead of panic.
WebSocket class.
[Stable]SortBy[Keys|Values] functions for sorting VectorMap, ArrayMap.
plugin/lz4 - adapted fast compression library
plugin/lzma - adapted high ratio compression library
plugin/glew - popular OpenGL utility library adapted as package
GUI programming & graphics
GTK backend (U++ now using Gtk for host platform interface)
EditDateDlg, EditNumber simple function for entering single value (equivalent to EditText)
ArrayCtrl new methods to add/retrieve ValueMaps and ValueArrays, new CreateCtrl<T> method.
LineEdit heavily optimized to be able to work with huge files (>100MB).
LineEdit now able to work with rectangular selections.
DDARasterizer and SDraw are new tools providing Draw with minimal host platform support (only two operations, paint Image and paint colored rectangle, are required).
Image rescaling now supports varios filters, like bicubic or lanczos.
AttrText is now rich comparable Value: it is now possible to sort ArrayCtrl by AttrText filled columns.
GLDraw - Draw implemented using OpenGL (ES).
SVG parser (to Painter interface).
plugin/ppm - trivial image format support.
RichText/RichEdit header/footer support, QTF now using BASE64 for binary data (instead of 7-bit raw encoding).
Turtle is another web framework of U++ - this one allows to convert existing GUI applications into Web application: simple Java Script terminal connects to server where GUI application runs.
ScatterDraw/ScatterCtrl - Added legend table, linked scroll controls, units, data fitting to equations, run time user equations, zoom window, improved text drawing, huge datasets handling and key/mouse handling.
X11 backend: Multimonitor support, removed flickering when opening window
Error[OK|Cancel|Yes|No...] - new Prompt variants with Error decorations
Sql
New variants of Insert/Select/Update commands (now roughly supporting all important combinations of SQL standard).
SqlSetFrom functions creates a SqlSet from any container.
S_ structures refactored, now provide an improved interface with better introspection.
Sql console redesigned.
TheIDE
Win64 PDB (Visual C++ compiled code) debugger.
Find/replace GUI refactored, added support for incremental finds, added regexp support.
Block replace now has grep-like feature to remove matching/non-matching lines (instead of replacing matches)
Case insensitive replace now has "mimic case" option (mimics the case of first and next characters, so replacing "vector" -> "array", when match is "Vector", result is "Array").
Compilation errors now parsed and displayed nicely.
Assist++ context goto (Alt+J) now supports local variables (goes to declaration).
Layout/Icon designers now have find Search filter.
Ide now displays long numbers with thousands separators.
Syntax highlighting refactored, added highlighting of HTML, XML, .log files, .xsd files, .diff files, C++11 keywords highlighted, TODO and FIXME comments highlighted
Directory comparison tool.
Simple Json/XML viewers.
Comment/Uncomment block.
Selected identifier is now highlighted in all the text.
Current line is highlighted with faint lines.
Precompiled headers support for release mode (BLITZ still far better for debug builds).
Insert file path (plain or as CString) function.
Layout code generator now can place double-quotes around elements, generate handlers for buttons.
Layout designer now can sort widgets based on their graphical position.
Code navigator is completely redesigned.
Icon designer supports various rescaling filters and new icon smoothing function.
Ide now has line duplicate feature (CTRL+D).
5485 (Oct 2012)
The focus of this release was server programming. The main new feature is "Skylark", lean and mean U++ based web development framework.
Core
String class has been further optimized for improved Cat performance.
Id class was refactored to better support multithreaded programming.
STATIC_ASSERT introduced for compile-time checks.
TCP/IP and HTTP was refactored and integrated into Core, providing new TcpSocket, IpAddrInfo, HttpHeader and HttpRequest classed (effectively obsoleting Web package).
Value was refactored and optimized, now using small value optimization technique.
Value got Xmlize (conversion to/from XML) and Jsonize (conversion to/from JSON) support.
Date now has operator++/--.
Exit is now equivalent of C exit function, implemented using exception trow to *_APP_MAIN and C++ friendly.
Thread now has AtExit support.
.ini parameters now can be optionally encapsulated using INI_* helpers.
Sort algorithm was refactored, works about 10% faster.
LOGHEX and DUMPHEX logging macros provided for logging Strings in hexadecimal form.
LoadFromJsonFile and StoreToJsonFile jsonize object from/to files.
Sql
'Of' method, used to qualify SQL column names, now has new alternative notation using operator().
Schema files information is now accessible application providing a form of database schema introspection.
JoinRef method of Select provides automatic join where join condition is synthetized by framework based on schema introspection.
SqlCtrls now support automated mode based on schema introspection.
SqlSession now has ThrowOnError option, when active all SQL errors throw SqlError exception.
Sql: Sql now supports fetching ValueMap of row (using Fetch variant or GetRowMap after Fetch).
MassInsert now has "remove" option to remove rows inserted before inserting, NoUseTransaction option and is using RDBM specific SQL syntax (instead generic UNION ALL trick) when possible.
Secondary SQLR default session intended for 'read-only' sessions.
Default sessions SQL and SQLR now can be per-thread (useful for multithreaded server applications).
Columns and table names now can be optionally quoted (new mode).
Sql: SqlLoadTable and SqlLoadColumn helper function can read whole tables into C++ VectorMaps.
New Sqls::operator^ fetches single row from select and returns it as ValueMap.
RichText, RichEdit
Paragraph ruler now can have dotted or dashed styles
CtrlLib
EditField now has WhenPasteFilter that can be used to change pasted clipboard text before inserting it.
FileSel in Win32 is now using separate thread to lazy-load icons.
ColorPopup checks clipboard and when it founds a text resembling color definition (like #12aa33 or 123 55 6), adds this color to predefined colors in selection.
ide
New, vastly improved GDB frontend.
Startup times should be significantly improved.
C#, JavaScript and css syntax highlighting.
Ide now can view .png, .jpg, .gif and .bmp files and even edit smaller .png files.
New save file on window deactivation option is helpful when editing scripts or web templates - no need to save file when going to another window to test.
Insert clipboard as C string, convert text to C string functions.
New find in files dialog option to filter files according to their 'read only' status.
4193 (24 Nov 2011)
"Rainbow" technology decouples U++ GUI from host platform. It is now possible to develop new GUI
implementation without changing core U++ files. "Framebuffer" package uses Rainbow to implement
GUI for trivial RGBA framebuffer (with keyboard and mouse inputs).
New command line utility "umk" - GUI independent, U++ package builder: umk.
Docking package was adopted to main source tree.
TheIDE
Support for UTF8-BOM encoding.
Layout files are now syntax highlighted, Assist++ now knows correct line position info.
Database schema files (.sch) are now syntax highlighted. Assist++ now knows to correct line position info.
Ide now has minimal Objective C and C++/CLR support.
New function to export documentation to html or pdf.
Layout designer now has 'struct' option in code generator
Image (.iml) designer now can import (insert) whole another .iml and also export .iml to png files.
There is now Assist++ for #include.
InsertColor function now supports QTF colors.
Local menu on package file items now has "Open file directory" item.
Library
Core
U++ now has Value compatible Complex type.
CParser has new Unicode Escape option to understand "\u" escape codes (as in JavaScript).
ValueArray has now Insert, Append and Remove methods.
ValueMap has now Set(key, value) method.
Value now has operator[] (key) and operator[] (index) methods to directly access contained ValueMap and ValueArray elements.
double formatting (Format, Convert) now has support to easily replace decimal point with ',' character.
Core now has JSON (JavaScript Object Notation) parsing and creation support.
String now has GetCharCount() that is able to return correct number of characters (code-points) in String even if encoding is UTF-8.
CtrlLib and CtrlCore (GUI library)
ArrayCtrl now has AsText, SetClipboard, AsQtf and AsCsv methods.
EditField now supports limited text highlighting.
New SetLayout_[layout name] template function generated from .lay (used to change compatible layout).
Draw/PdfDraw/Report (graphical output)
Draw/PdfDraw/Report got minimalistic PDF/A support.
AttrText now has Bold/Italic/Underline/Strikeout methods.
New QtfReport for simplified reporting of Qtf.
Other library changes
In SQL trace log, questionmark parameter placeholders are now replaced with actual parameters.
plugin\Sqlite3 is upgraded to 3.7.8.
plugin/tif is upgraded to version 1.43.
plugin/jpg now supports EXIM image orientation metadata.
New plugin/wincert package supports basic Win32 certificate manipulation and PDF digital signing.
HttpClient now supports PUT method.
3211 (16 Feb 2011)
TheIDE
SSE2 as Option in main config, templates now include SSE2 as default (RM #9).
new function - convert selection to ASCII.
Main package configuration editor shows structured flags accepted by packages.
Replaced QuickTabs with TabBar, reorganized Environment dialog.
Allow conditional breakpoints.
Support for CLOB columns in .sch file (#14).
Library
Core
Added missing Gate4::Execute.
Tuples now Moveable if all elements moveable.
Added Xmlize ValueArray and ValueMap.
Added DayOfYear, StrToTime; Draw: Rotate180.
Thread threadid support.
FormatIntBase added 'upper' option. Added FormatIntHexUpper function.
Draw
Added ImageOps hotspots.
RASTER_8ALPHA now considered non-premultiplied (fixes issue in some .png files).
Painter
Painter now depends on Draw.
plugin/gif:
Support for LCT.
CtrlCore
EncodeRTF improved to support page size, margins and table cell borders.
GetOpaqueRect, GetVoidRect now const
TopWindow FullScreen for open window in Win32
CtrlLib
FileSel: Support for Terminal Services client shares (Win32).
FileSel lazy and optimized file icon loading.
Automatic landscape mode for RichText print.
LabelBox visually supports Disabled state, LabelBase has got disabledink.
Splitter can now have any width.
ArrayCtrl with embedded Ctrls optimized to work well up to 10000 widgets.
RichEdit
Added SingleLine, Filter.
Improved process of searching for speller dictionaries.
Added some missing czech translations.
GridCtrl
Added ClearChanged(), added missing row_order setting in Remove0
Sql
operator[](SqlId) now invokes NEVER (in debug) when column is not found
Oracle: SQLT_TIMESTAMP support (thanks alendar)
Web
SmtpMail: Refactored, added support for character encoding in headers, added recipient/sender names,
Bazaar
Many packages added and improved: Scatter, DeEncrypter, CMeter, Protect, Tree, Dispatcher, Gen, SDLCtrl, PolyXML, PlotLib,PlotCtrl, SysInfo, Media, MediaPlayer, Functions4U, plugin/portaudio, Sound, SoundExample, AutoScroller, CtrlFinder, CtrlProp, LogPosCtrl, PointCtrl, PopUpC, RectCtrl, Styler, ValueCtrl, Docking , TabBar, SysExec, Protect, Updater, SysExecGui, OfficeAutomation, Dispatcher, Styler, Cypher, ProductVersion, Uniq, SplashSV and HelpViewer.
2791 (18 Oct 2010)
TheIDE
Now it has direct support for Windows SDK 7.1.
Library
Core
There are now new templates Tuple2 - Tuple4.
Stream class got new methods Peek and PutPtr intended for optional optimizations.
In Vector and Array template classes, interface was changed so that all Add methods are now returning the reference to the element inserted.
String and WString has new Replace method.
Draw
plugin/gif now has support for animated gifs, Raster and Raster encoder have new GetDPI and SetDPI methods. DPI information handling for png, tif and jpg was fixed.
AttrText utility class has new NormalInk method and supports conversion from Value.
CtrlCore
There is a new IsPainting method.
CtrlLib
Progress has now blocked open if invoked during Draw method. IdCtrls have now Reset method.
New utility function SelectDirectory.
LineEdit now reacts to Shift+MouseWheel does horizontal scroll with horizontal scrolling.
RichTextView got new WhenMouseMove callback.
GridCtrl
Has now WhenBeforeChangeRow and WhenBeforeChangeCol callbacks, CancelDuplicate, SetCtrl, FindCol, ReadCol and CopyColumnNames methods and SetValues, GetValues and Xmlize template specialization.
Sql
SqlSelect now can add individual fetch values using operator().
New SqlMassInsert provides generic acceleration of mass inserts using 'union all' trick.
IsSame is a new SqlExp equality test which is null safe (null == null yields true).
Oracle8 has new BulkExecute interface to OCI8 array binds repeated command execution with varying parameter sets; speeds up inserts / updates drastically over networks with long roundtrip.
XmlRpc
XmlRpcCall has now Proxy and ProxyAuth methods.
New plugin/Box2D package was added.
Bazaar
Added packages
Protect: Software encryption system.
Cypher, StreamCypher, CypherTest.
DeEncrypter: A *simple* AESStream based Encrypter / Decrypter.
BufferStream: Stream based on Vector<byte> buffer, self growing.
CMeter: A progressbar / meter / slider with some versatile settings Ctrl
Dispatcher: Generic class to dispatch data to arbitrary recipients.
HelpViewer, TestHelpViewer.
MtAlt
Some improvements
Scatter
Some fixes
Docking
Some fixes
PixRaster
Updated Leptonica library to version 1.65
TabBar
Minor changes and fixes
Timer
Minor changes
ExpandFrame
Minor changes
AESStream
Added SHA2 functions
LEDCtrl
New LED control by Christian
Functions4U
Added functions, GatherTpp, improved doc and fixed bugs
SysInfo
Added GetAdapterInfo
Control4U
Added Knob
OfficeAutomation
Cyrillic characters support
UltimateBook
Updated doc
2467 (10 Jun 2010)
TheIDE
Now has QTF designer.
Library
Core
[W]String got new variant of ReverseFind method.
CtrlCore
There is a new static method Ctrl::GetEventId to help identify individual GUI events, intended for use in caching schemes.
CtrlLib
Update system was parametrised.
Handling of active file type in FileSel was improved.
Splitter now has WhenSplitFinish.
PdfDraw
Got support for fill patterns.
Bazaar
SysInfo: Added CPU temperature monitoring and improved battery status.
Functions4U: Added new SVG color functions and doc.
Controls4U: Added ActiveX controls (VLC and web browsing).
MtAlt: Added support for fast 5-argument callbacks (copy and pick version).
Form: Form core package, Editor and sample.
Scatter: Added SetSequentialX and SetFastViewX for faster refresh.
Docking: Bug fixes, some small feature additions.
ExpandFrame/ExpanderCtrl: Fixes fopr horizontal alignment.
AESStream: Added SHA2 functions.
2361 (4 May 2010)
TheIDE
Packages now sorted by directory closeness to main package directory, names later - puts main package nest or main package subpackages first in the list
Library
Core:
ArrayIndex: Added Detach, PopDetach
XmlRpc: Added bool XmlRpcPerform(Socket& http, const char *group);
CtrlLib:
Added ArrayCtrl WhenScroll
ColumnList: AutoHideSb
FileSel: list is autohide
EditField ReadOnly Ctrl+C fix
DocEdit: NoEofLine
RichEdit now supports dropping Image files
SqlCtrl: SqlArray has new WhenFilter Gate (able to filter records being fetched)
Sql:
Optional SqlSession errorhandler routing is now installable
SqlSession: First SQL error is recorded (until ClearError) instead of last
Uppsrc:
New IT-IT translation
2232 (17 March 2010)
TheIDE
Sorting of package has been improved, placing project packages first
Insert menu now has typedef ... CLASSNAME entry.
FileSel was improved by adding Places with common directories.
Library
Core:
XmlRpc has improved error handling.
Xmlize now supports all Core Value types and has got support for Value serialization.
XmlParser has got new Peek methods. Socket has new GetPeerAddr method.
CParser now provides the information about current column.
CtrlLib:
TabCtrl has new Find/Set/Remove/Insert methods using reference to slave instead of index.
RichText:
RichTextView now have "ShrinkOversizedObjects" option.
2070 (16 February 2010)
TheIDE
User interface for Find and Replace was significantly reworked
Current editor line is now highlighted in the left bar.
Library
Core:
Support for Win32 .lnk files (GetSymLinkPath function, FindFile::IsSymLink method) - same interface as for Posix symlinks.
ConvertDate has new Truncate option (truncates Time to Date), corresponding StdConvertDateTruncate global Convert added.
CtrlLib:
SliderCtrl widget, has new Jump method.
ArrayCtrl class has new WhenMouseMove Callback.
EditField has new WhenEnter callback.
TabCtrl has new NoAccept option
Draw:
The search for missing glyphs (i18n issue) was optimized.
1952 (27 January 2010)
TheIde
Improved installation in Win32 with support for the latest Win32 SDK.
Helpsystem has vastly improved searching capabilities.
Build process now supports new link options - Posix releases now use "gc-sections" linker option to dramatically reduce the size of resulting binaries (up to 40%).
Library
CtrlLib:
File selector (FileSel class) got networking support in Win32.
TrayIcon in X11 now supports notifications.
TopWindow in X11 now supports SetAlphs.
Painter:
Image rescaling algorithm was improved for better downscaling.
Core:
Containers now have a new debugging utility to resolve pick semantic errors.
1824 (21 December 2009)
TheIDE
Autosetup now recognizes Win32 SDK 7.0.
Library
Core:
XmlRpc package adds support for XML-RPC based webservices.
LanguageInfo has been completely refactored.
Bazaar:
GoogleTranslator: New version.
Functions4U: New package with additional functions to complement Core and CtrlLib.
Controls4U: New package with additional graphic controls.
SysInfo: Improved Unicode support.
1713 (30 November 2009)
TheIDE
.t files are now saved with strings converted by escaping >127 characters (and back on loading). This fixes venerable problem of UTF-8 string literals in CJK Windows and MSC compiler.
Library
CtrlLib:
TreeCtrl InsertDrop now returns ids of inserted nodes.
A new set of utility functions that simplify selecting files introduced (see http://www.ultimatepp.org/src$CtrlLib$FileSelUtil$en-us.html)
HeaderCtrl columns now can have a tooltip
SliderCtrl now allows reversed orientation (thanks avpavp!)
RichEdit:
New much more effective speller dictionary format, utilities required to convert OpenOffice speller dictionaries into U++ speller files.
Labeled paragraphs now marked with arrow displayed in the left bar.
Previously private StyleManager class capable of managing paragraph styles has been made public.
Report:
New methods ChoosePrinter, ChooseDefault printer allow selecting printer BEFORE report is created, setting the physical page size based on chosen printer.
Core:
In Win32, console applications no longer pop up a MessageBox when panicking, instead they write the panic string on the error output and terminate.
GridCtrl:
Multiline popups now allowed, using GridDisplay to paint the content.
Bazaar:
New functions to SysInfo
Urr - UDP request-response protocol added
1659 (26 October 2009)
Library
Core
GetUtcTime
New Split variant with String delimiter
ConvertTime Min, Max
Core, CtrlLib: ConvertDate, ConvertTime now have Default method -> propagates to date/time widgets as well...
PostgreSQL: GetInsertedId now supported for tables with primary key 'id'
CtrlLib: MenuBar WhenOpenSubMenu, WhenCloseSubMenu callbacks
Sql, SqlExp: Sql::InsertNoKey(Fields) ommits first column - intended for key with autoincrement
TheIDE
Minor IDE speed improvements - removed unnecessary Assist++ package check when inserting / removing separators and auxiliary package contents
Package selector now shows app icons if available
1607 (07 October 2009)
Library
Draw
DisplayWithIcon (Display that adds an icon to any other Display)
AttrText now has 'SetImage' (places the icon to the left of text)
CtrlLib: DropTree widget
Web: void AttachSocket(Socket& socket, SOCKET s, bool blocking)
MSSQL: IdentityInsert helper (bypass of IDENTITY column insertion)
CtrlCore: RegisterSystemHotKey (system-wide hotkey)
1579 (23 September 2009)
Library
Core: Added support for many various 8-bit encodings
Geom: Added new Computational Geometry algorithm: 2D convex hull calculation (ConvexHullOrder)
Sql: SqlExp, SqlSelect AsTable, Joins accept SqlSet
RichText: Optimized by caching paragraph data and layout
Draw, plugin/tif: Added GetActivePage support
Fixed a lot of minor bugs
1517 (19 August 2009)
Major overhaul graphics infrastructure is finished, U++ is now capable of headless drawing operations
(e.g. drawing graphics and text into .png files in console applications, without X11)
Minor improvements:
Library
RegExp fixed to work with mingw, added GetMatchPos method
SetSurface functions for optimized raw output of RGBA data to screen
Added Blackfin CPU support into Core
EditField::NullText method now can provide an icon
RichText, Report: RichTextLayoutTracer ability
Core: Added StringStream::Reserve
TheIDE
Added package internal include paths
Ctrl+mouse wheel changes font size
1314 (17 June 2009)
Library
CtrlCore
Fixed several X11/Compiz/SCIM compatibility issues
RichText
QTF: Added text-type rich object format
GridCtrl
Added WhenMoveRow, CancelMove
Improved search results highlighting
TheIDE
Import directory source tree into package
Support for multiline svn commit messages
Assist++ now supports SQL schema files
FileTabs now persistent
Non-fixed pitch fonts allowed in editor (used as fixed...)
1254 (03 June 2009)
Library
Various improvements in SQL related stuff (SqlPerformScript, SqlBinary enable for PGSQL)
TheIDE
Highlighting of .sch and .sql files
Find in files now has separate output console
Select package dialog 'All' option replaced by the selection of more understandable options, main packages now displayed bold
1205 (18 May 2009)
Library
New GUI multithreading architecture
TheIDE
Layout designer: option to resize dialog without springs
No more confusing switches of .lay, .iml to text mode (instead designer)
One more redesign of code navigator
Ctrl+Click onto symbol jumps to its definition
Package selector now shows the nest
1126 (5 May 2009)
Library
Change in SetDateFilter format, cleanup in related docs
Improved translation docs
Added runtime check for serializing RichValue with missing Register
Docking: CreateDockable<T> now returns type T
mrjt's MultiList now merged into ColumnList
TabBar: Tab Stacking and sorting added. Other changes.
Drawing refactored
TheIDE
Refactored CodeNavigator, search symbol (Ctrl+Q) now copies current id search field
1096 (26 April 2009)
Library
Painter: High quality, "SVG/PDF strength" software renderer
HttpClient improvements
JPGRaster now can read EXIF thumbnails
ODBC SQL interface
Microsoft SQL Server interface improved
Multithreading: ConditionVarable and LazyUpdate classes
LocalProcess class
RichText: EncodeHTML support for superscript, subscript, strikeout
and smallcaps
Mersenne twister based Random
TheIDE
Win32 .pdb debugger:
shows tooltip with values of variables
improved displaying of strings in pdb debugger
watches are remembered, Clear all watches function, Drag&Drop to watches
Packages can be sorted by name
Packages now can be colored and assigned bold/italic font
Package files underlined if recently changed
SVN support, SVN history of file
Compare with file, compare with patch
Assist++
New heurestic error recovery of C++ parser
New code navigator bar
Position of Assist parameter info improved
Context go to (Alt+J) now jumps to layout designer when invoked on layout class template
Topic++ finished; documentation now visible (and editable) as tooltip annotations of sources
Abbreviations: e.g. type "i" and press Ctrl+[.] to expand it to if() ;
Icon editor: free angle rotation
Insert" color or U++ specific includes (.lay, .iml, .tpp group)
Print command (of source files)
Editor: ToUpper/Lower/InitCaps/SwapCase
2008.1 (28 July 2008)
Library
New very fast String/WString implementation
New high performance (mostly) lock-free heap allocator,
Improved multithreading support
CoWork multicore loop paralelization class
Unified Drag&Drop support
PostgreSQL support
Win64 support (except debugger)
QuickTabs class
HeaderCtrl can now move (reorganize) tabs
ArrayCtrl automated column sorting
Chameleon Look&feel improvements under GTK and Vista
TheIDE
Topic++ documentation editor now integrated into main window
Help Help integrated into main window
2007.1 (11 April 2007)
Library
Pdf export and printing in Linux finished
Raster image infrastructure completely reworked
"Chameleon" skinning system which allows both native look of U++ applications across platforms AND custom skins to be designed/used.
New useful widgets: GridCtrl, CalendarCtrl and DateTimeCtrl
Sql expressions are now adjusted before being executed on particular RDBMS target
Library moved to Upp namespace
FreeBSD port is now regular part of U++
Experimental PocketPC support was introduced
Library fixed to support ARM and PowerPC CPUs
A lot of new documentation and tutorials
Many minor improvements and bug fixes
TheIDE
New Icon designer (supports alpha channel and has tools to produce antialiased icons)
Distribution
FreeBSD port available
Ubuntu .deb packages released
605 (15 May 2006)
Library
XML parser refinements (faster, easier to use)
TheIDE
"Hydra build" - multi-CPU building
further Assist++ improvements
Distribution
new Windows installer - download size reduced by 50%
602 (28 February 2006)
Library
New Report package.
Fixed multi-threading issues in Linux.
TheIDE
Assist++
Fixed many C++ parsing issues and optimized
"Virtual methods" tool
"THISBACKs" tool
"Generate code.." tool of Layout designer able to generate useful code snippets
"Show opposite" (Alt+O) switches .h/.cpp files
"Complete identifier" (Alt+,) - based on identifiers in the file (no C++ parsing intelligence)
Fixed support for global variables in PDB debugger
Package organizer redesigned, "When" conditions now support logical operators, "uses" can be conditional
New fine-grained optimization system with "Optimize for speed" / "Optimize for size" / "Optimal" (only explicitly marked files are optimized for speed) modes
New TheIDE command-line mode, including compilation (via umk utility)
511 (20 November 2005)
U++ Library
New XML support in Core
Linux/AMD64 is now supported
X11 fixes improve stability with less common window managers, input method problem fixed as well
New kind of callbacks - pteback - to avoid dangling callback situation problem
Sqlite was added as source-based plugin together with U++ adapter
A lot of new documentation
TheIDE
File tabs are redesigned
Source editor has now scripting language
"Calculator" console
Layout of IDE now redesigned, bottom pane now contains browser/console/debugger/calculator switched by tabs
ASSIST++:
Improved C++ code analysis now able to resolve class hierarchy issues, code browser now displays base classes, methods, virtual methods, overrides etc...
New assist function now suggests list of methods and attributes after typing '->' or '.' or after Ctrl+Space.
Navigate in the file and Navigate functions simplify moving to symbol with specified name
Copy definition/declaration is able to convert method declaration (inside class declaration) to definition and back (works with more than one method as well)
Goto definition/declaration moves between definitions and declarations of current method
Distribution
U++/Win now ships with SDL library and contains nice SDLExample as well as SDL project templates.
|