U++ framework
Do not panic. Ask here before giving up.

Home » Developing U++ » U++ Developers corner » Please check the list of 2019.1 changes
Please check the list of 2019.1 changes [message #51135] Fri, 08 February 2019 09:29 Go to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
I am getting reading for 2019.1 release cycle. Here is the list of features, please check whether I have missed something (e.g. in Bazaar etc...)

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

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

[Updated on: Fri, 08 February 2019 10:00]

Report message to a moderator

Re: Please check the list of 2019.1 changes [message #51136 is a reply to message #51135] Fri, 08 February 2019 10:57 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1117
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

Looks like good release! Good job Mirek! I would add the information about the possibility to copy string to clipboard from debugger tree. Currently it is supported only for GDB, but maybe I will find the time during the weekend to port it to PDB.

Do you plan to ship macOS installation? I think the initial release can be marked as beta.

Sincerely,
Klugier


U++ - one framework to rule them all.
Re: Please check the list of 2019.1 changes [message #51138 is a reply to message #51136] Fri, 08 February 2019 12:04 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Klugier wrote on Fri, 08 February 2019 10:57

Do you plan to ship macOS installation? I think the initial release can be marked as beta.


Yes & Yes.

Although I am not yet 100% how will the final package look like.
Re: Please check the list of 2019.1 changes [message #51147 is a reply to message #51135] Fri, 08 February 2019 22:20 Go to previous messageGo to next message
Zbych is currently offline  Zbych
Messages: 332
Registered: July 2009
Senior Member
mirek wrote on Fri, 08 February 2019 09:29
please check whether I have missed something (e.g. in Bazaar etc...)


Any chance for chameleon fix?
https://www.ultimatepp.org/forums/index.php?t=msg&th=105 01&start=0&

Re: Please check the list of 2019.1 changes [message #51169 is a reply to message #51135] Wed, 13 February 2019 12:44 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
mirek wrote on Fri, 08 February 2019 03:29

MacOS X support

GridCtrl still doesn't work on MacOS, so, it would, probably, be better to say "Limited MacOS X support", because not every app can be ported to Mac at this time.


Regards,
Novo

[Updated on: Fri, 15 February 2019 12:54]

Report message to a moderator

Re: Please check the list of 2019.1 changes [message #51170 is a reply to message #51169] Wed, 13 February 2019 22:10 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
Docking doesn't work in MacOS X either.

Regards,
Novo
Re: Please check the list of 2019.1 changes [message #51171 is a reply to message #51170] Thu, 14 February 2019 14:34 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1117
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

I also find that in certain condition (I can not find the way how to reproduce it) the UI is blocked on macOS. I just try to launch GridCtrl example and switch between tabs and the UI is blocked. The only action I can execute is system close button. The application closed normally.

Sincerely,
Klugier


U++ - one framework to rule them all.
Re: Please check the list of 2019.1 changes [message #51172 is a reply to message #51135] Thu, 14 February 2019 21:35 Go to previous messageGo to next message
Zbych is currently offline  Zbych
Messages: 332
Registered: July 2009
Senior Member
Just one more thing - DLOG in X11Proc.cpp, line 7, causes compilation error in NOGTK mode.

https://github.com/ultimatepp/mirror/blob/7fe7344ed5b6f14314 b7dc6254cc7607756f692c/uppsrc/CtrlCore/X11Proc.cpp#L7

[Updated on: Thu, 14 February 2019 21:36]

Report message to a moderator

Re: Please check the list of 2019.1 changes [message #51174 is a reply to message #51172] Fri, 15 February 2019 13:04 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
Yet another tiny but extremely annoying thing: Control + trackpad click isn't handled. That makes using of contextual menus practically impossible. One basically needs to use an external mouse with MacBook.

Regards,
Novo
Re: Please check the list of 2019.1 changes [message #51181 is a reply to message #51174] Sun, 17 February 2019 17:43 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Fri, 15 February 2019 13:04
Yet another tiny but extremely annoying thing: Control + trackpad click isn't handled. That makes using of contextual menus practically impossible. One basically needs to use an external mouse with MacBook.


Is that supposed to be the same thing as right-click? I thought that there is some "two fingers" gesture for that...

Other than that, I am announcing the upcoming release exactly to find out what has to be finalized.... Smile

Mirek
Re: Please check the list of 2019.1 changes [message #51183 is a reply to message #51181] Sun, 17 February 2019 18:12 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
mirek wrote on Sun, 17 February 2019 11:43

Is that supposed to be the same thing as right-click? I thought that there is some "two fingers" gesture for that...
...

Yes, that is the same thing as the right-click.
I didn't know about the two-finger touch ... Embarassed Thanks for the hint. I was always using Control + Trackpad click ...


Regards,
Novo
Re: Please check the list of 2019.1 changes [message #51184 is a reply to message #51181] Sun, 17 February 2019 18:35 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1266
Registered: August 2007
Senior Contributor
Hello,

SSH package may have a problem on MacOS. (I can't test it as I don't have an Apple machine + OS.)

We are using POSIX's sigtimedwait() function in SshShell to notify console resize events (SshShell.cpp, ln 40-53).
However, it seems that MacOS didn't implement it, or it is stubbed.

I'd be grateful if anyone with such setup could compile and test it on MacOS. (by running reference/SshBasics with SSH_SHELL defined, on a console window.)

Best regards,
Oblivion


Re: Please check the list of 2019.1 changes [message #51197 is a reply to message #51135] Tue, 19 February 2019 13:32 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
Hi,

Maybe take a look at this ArrayCtrl -thing before release:

https://www.ultimatepp.org/forums/index.php?t=msg&th=105 78&goto=51192&#msg_51192

Best regards,

Tom
Re: Please check the list of 2019.1 changes [message #51198 is a reply to message #51184] Tue, 19 February 2019 14:14 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1117
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Oblivion,

You are right the SSH package doesn't compile on macOS due to problem you have mentioned.

Here is the output of compilation on mac (Please notice that I do not have openssl installed):
----- Core ( CLANG DEBUG SHARED DEBUG_FULL BLITZ POSIX BSD OSX ) (1 / 3)
BLITZ: Cpu.cpp Mt.cpp StringFind.cpp String.cpp WString.cpp StrUtil.cpp SplitMerge.cpp Utf.cpp UnicodeInfo.cpp Bom.cpp Path.cpp NetNode.cpp App.cpp Huge.cpp Stream.cpp BlockStream.cpp FileMapping.cpp FilterStream
    .cpp Log.cpp Debug.cpp Ini.cpp Util.cpp mathutil.cpp Random.cpp Speller.cpp LocalProcess.cpp Vcont.cpp Hash.cpp TimeDate.cpp Value.cpp ValueUtil.cpp Format.cpp Convert.cpp Color.cpp Gtypes.cpp Lang.cpp LangIn
    fo.cpp parser.cpp XML.cpp Xmlize.cpp JSON.cpp Uuid.cpp Ptr.cpp Topic.cpp CoWork.cpp MD5.cpp SHA1.cpp SHA256.cpp xxHsh.cpp InetUtil.cpp MIME.cpp Socket.cpp Http.cpp WebSocket.cpp Dli.cpp Win32Util.cpp
heaputil.cpp
sheap.cpp
lheap.cpp
heap.cpp
heapdbg.cpp
CharSet.cpp
t.cpp
z.cpp
lz4.c
xxhash.c
----- Core/SSH ( CLANG DEBUG SHARED DEBUG_FULL BLITZ POSIX BSD OSX ) (2 / 3)
BLITZ: Core.cpp Malloc.cpp SFtp.cpp SFtpStream.cpp Channels.cpp Scp.cpp Exec.cpp Tunnel.cpp Shell.cpp Hosts.cpp
Session.cpp
libssh2upp.c
----- SshBasics ( MAIN CLANG DEBUG SHARED DEBUG_FULL BLITZ POSIX BSD OSX ) (3 / 3)
BLITZ: main.cpp SFtp.cpp SFtpStream.cpp SFtpFileSystemInfo.cpp Exec.cpp Scp.cpp Shell.cpp X11Shell.cpp Tunnel.cpp SFtpMT.cpp ExecMT.cpp PickSemantics.cpp VerboseLogging.cpp
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/libssh2upp.c:4:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/libssh2/agent.c:40:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/libssh2/libssh2_priv.h:140:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/libssh2/crypto.h:42:
/Users/rebaczz/upp/uppsrc/Core/SSH/libssh2/openssl.h:40:10: fatal error: 'openssl/opensslconf.h' file not found
#include <openssl/opensslconf.h>
         ^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from /Users/rebaczz/out/reference/Core/SSH/CLANG.Debug.Debug_Full.Shared/$blitz.cpp:3:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/Core.cpp:1:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/SSH.h:46:
/Users/rebaczz/upp/uppsrc/Core/SSH/SFtp.h:238:5: warning: conversion function converting 'Upp::SFtpFileSystemInfo' to its base class 'Upp::FileSystemInfo' will never be used
    operator FileSystemInfo&()                  { return static_cast<FileSystemInfo&>(*this); }
    ^
In file included from /Users/rebaczz/out/reference/Core/SSH/CLANG.Debug.Debug_Full.Shared/$blitz.cpp:71:
/Users/rebaczz/upp/uppsrc/Core/SSH/Shell.cpp:48:14: error: use of undeclared identifier 'sigtimedwait'
                        auto rc = sigtimedwait(&set, nullptr, &timeout);
                                  ^
1 warning and 1 error generated.
In file included from /Users/rebaczz/out/reference/SshBasics/CLANG.Debug.Debug_Full.Main.Shared/$blitz.cpp:3:
In file included from /Users/rebaczz/upp/reference/SshBasics/main.cpp:1:
In file included from /Users/rebaczz/upp/reference/SshBasics/SshBasics.h:5:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/SSH.h:46:
/Users/rebaczz/upp/uppsrc/Core/SSH/SFtp.h:238:5: warning: conversion function converting 'Upp::SFtpFileSystemInfo' to its base class 'Upp::FileSystemInfo' will never be used
    operator FileSystemInfo&()                  { return static_cast<FileSystemInfo&>(*this); }
    ^
1 warning generated.
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/Session.cpp:1:
In file included from /Users/rebaczz/upp/uppsrc/Core/SSH/SSH.h:46:
/Users/rebaczz/upp/uppsrc/Core/SSH/SFtp.h:238:5: warning: conversion function converting 'Upp::SFtpFileSystemInfo' to its base class 'Upp::FileSystemInfo' will never be used
    operator FileSystemInfo&()                  { return static_cast<FileSystemInfo&>(*this); }
    ^
1 warning generated.
Core/SSH: 12 file(s) built in (0:00.05), 4 msecs / file, duration = 2274 msecs, parallelization 100%
SshBasics: 13 file(s) built in (0:00.00), 0 msecs / file, duration = 1367 msecs, parallelization 100%
Core: 66 file(s) built in (0:02.51), 38 msecs / file, duration = 5018 msecs, parallelization 98%

There were errors. (0:05.02)


Please also look at warning, maybe they are worth fixing, too.

Sincerely,
Klugier


U++ - one framework to rule them all.
Re: Please check the list of 2019.1 changes [message #51204 is a reply to message #51198] Tue, 19 February 2019 17:38 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1266
Registered: August 2007
Senior Contributor
Hello Klugier,

Thank you for your feedback.

I found a very simple workaround for sigtimedwait() issue on MacOS:
It relies on already existing functionality, so I tested it on Linux, and it worked:

			#if defined(PLATFORM_MACOS)
			// We are using sigtimedwait on POSIX-compliant systems.
			// Unfortunately MacOS didn't implement it. This is a simple workaround for MacOS.
			// It relies on ioctl, which is implemented on MacOS.
			Size sz = GetConsolePageSize();
			resized = !IsNull(sz) && sz != psize;
			if(resized)
				LLOG("Window size changed.");
			#else



And as to the the CLANG warning, which I don't get with GCC (probably because it's more relaxed):

I found that in C++11 standard (section 12.3.2):

If a conversion function is a member function, the type of the conversion function (8.3.5) is
"function taking no parameter returning conversion-type-id". A conversion function is never used to
convert a (possibly cv-qualified) object to the (possibly cv-qualified) same object type (or a reference to it), 
to a (possibly cv-qualified) base class of that type (or a reference to it), or to (possibly cv-qualified) void


So I removed the implicit converter.

I've commited the patches. And updated the ezamples accordingly.

I'd be grateful if you can test it when you have some time.

Best regards,
Oblivion


Re: Please check the list of 2019.1 changes [message #51215 is a reply to message #51204] Thu, 21 February 2019 21:44 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1117
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Oblivion,

I can confirm that there is lack of compilation errors and warning on macOS. However, I do not test the implementation, because I didn't install OpenSSL yet.

Sincerely,
Klugier


U++ - one framework to rule them all.
Re: Please check the list of 2019.1 changes [message #51218 is a reply to message #51215] Fri, 22 February 2019 09:00 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Klugier wrote on Thu, 21 February 2019 21:44
Hello Oblivion,

I can confirm that there is lack of compilation errors and warning on macOS. However, I do not test the implementation, because I didn't install OpenSSL yet.

Sincerely,
Klugier


BTW, general request. We will need some docs about how to setup U++ on MacOS. Unfortunately, I have done these steps months ago and probably forgot most of them. So if you make this work, it would be nice if you posted steps required here so that we can gradually compile it together Smile

Mirek
Re: Please check the list of 2019.1 changes [message #51222 is a reply to message #51169] Fri, 22 February 2019 19:06 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Wed, 13 February 2019 12:44
mirek wrote on Fri, 08 February 2019 03:29

MacOS X support

GridCtrl still doesn't work on MacOS, so, it would, probably, be better to say "Limited MacOS X support", because not every app can be ported to Mac at this time.


Hopefully fixed.
Re: Please check the list of 2019.1 changes [message #51223 is a reply to message #51174] Fri, 22 February 2019 19:08 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Fri, 15 February 2019 13:04
Yet another tiny but extremely annoying thing: Control + trackpad click isn't handled. That makes using of contextual menus practically impossible. One basically needs to use an external mouse with MacBook.


Any suggestion how to fix this?

The problem is that Ctrl+Left Click (or Alt+Click as these are logically reversed) has valid meaning, so I am not sure that simply calling right click there is a good idea...

Mirek
Re: Please check the list of 2019.1 changes [message #51224 is a reply to message #51222] Fri, 22 February 2019 19:39 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
mirek wrote on Fri, 22 February 2019 13:06

Hopefully fixed.

Checked latest git (CtrlCore: StateH(OPEN) fixes GridCtrl). The problem with GridCtrl is still there. Full rebuild.


Regards,
Novo
Re: Please check the list of 2019.1 changes [message #51225 is a reply to message #51224] Sat, 23 February 2019 07:55 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Fri, 22 February 2019 19:39
mirek wrote on Fri, 22 February 2019 13:06

Hopefully fixed.

Checked latest git (CtrlCore: StateH(OPEN) fixes GridCtrl). The problem with GridCtrl is still there. Full rebuild.


Thanks for reporting... "Problem with GridCtrl" is pretty wide description....

Before above fix, there was nothing visible in reference/GridCtrlTest. Now this particular test seems to work fine on my PowerPook.

What are you symptoms?
Re: Please check the list of 2019.1 changes [message #51227 is a reply to message #51225] Sat, 23 February 2019 13:14 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
mirek wrote on Sat, 23 February 2019 01:55

Before above fix, there was nothing visible in reference/GridCtrlTest. Now this particular test seems to work fine on my PowerPook.

What are you symptoms?

Actually, GridCtrl works fine now. Thanks a lot!
The reason why I couldn't detect that first time is related to another problem with TheIDE Smile
TheIDE in Release configuration adds a suffix to the executable's name: GridCtrlTest-Wl,--gc-sections.
"-Wl,--gc-sections" is coming from the "Release link options".
I was launching the app via Debug --> Execute, and it was running a bare "GridCtrlTest", which was outdated.

I also have a question. You mentioned that you've fixed problems with gdb. I still cannot use any debugger with TheIDE.
My build configuration: CLANG, Compiler name: clang++, External debugger field is empty. I tried both lldb and gdb, none of them work (I'm getting the "Error while invoking gdb!" message). gdb is installed via "brew install gdb".
Is this supposed to be this way?


Regards,
Novo
Re: Please check the list of 2019.1 changes [message #51228 is a reply to message #51227] Sat, 23 February 2019 13:42 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Sat, 23 February 2019 13:14

I also have a question. You mentioned that you've fixed problems with gdb. I still cannot use any debugger with TheIDE.
My build configuration: CLANG, Compiler name: clang++, External debugger field is empty. I tried both lldb and gdb, none of them work (I'm getting the "Error while invoking gdb!" message). gdb is installed via "brew install gdb".
Is this supposed to be this way?


AFAIK gdb is broken by Mojave, lldb impossible to use this way.

After about a month trying to deal with this I decided that the most logical course of action is to claim that we support gdb only and wait until it is fixed...

Mirek
Re: Please check the list of 2019.1 changes [message #51237 is a reply to message #51170] Sun, 24 February 2019 14:21 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Wed, 13 February 2019 22:10
Docking doesn't work in MacOS X either.


MacOS related part hopefully fixed. There seem to be UHD problems as well, but that has to be fixed for all platforms.
Re: Please check the list of 2019.1 changes [message #51256 is a reply to message #51227] Mon, 25 February 2019 12:29 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
[quote title=Novo wrote on Sat, 23 February 2019 13:14]mirek wrote on Sat, 23 February 2019 01:55

TheIDE in Release configuration adds a suffix to the executable's name: GridCtrlTest-Wl,--gc-sections.
"-Wl,--gc-sections" is coming from the "Release link options".


This is now fixed, however --gc-sections are not supported by toolchain anyway, so I have removed it from default setup...

Mirek
Re: Please check the list of 2019.1 changes [message #51258 is a reply to message #51174] Mon, 25 February 2019 12:36 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Novo wrote on Fri, 15 February 2019 13:04
Yet another tiny but extremely annoying thing: Control + trackpad click isn't handled. That makes using of contextual menus practically impossible. One basically needs to use an external mouse with MacBook.


This is now supported.

Supporting this removes the possibility to bind anything to K_ALT+LeftClick, but I have decided that these are rare anyway... (probably such code would need #ifdef PLATFORM_COCOA section, maybe using K_OPTION for the same reason. Or I can do that by default?

Not 100% sure this is the right approach. Maybe we need some further review of the situation with Control / Option / Command. Right now fro keyboard, we map Command -> K_CTRL and Control -> K_ALT to Control. This is because common Win/Linux hotkeys like Ctrl+F for find are normally mapped to Command+F on Mac.

BTW, Win32 Ctrl+Tab in theide is mapped to Option+Tab on Mac, but that is just specific for theide (this is because the combo is unavailable).

Any input is welcome.

Mirek
Re: Please check the list of 2019.1 changes [message #51312 is a reply to message #51256] Tue, 05 March 2019 06:07 Go to previous message
Novo is currently offline  Novo
Messages: 1431
Registered: December 2006
Ultimate Contributor
mirek wrote on Mon, 25 February 2019 06:29

This is now fixed ...
...
Any input is welcome.

Thanks a lot!
I'm not a right person to recommend something when it comes to GUI although I spent nine years working for a commercial GUI project Smile


Regards,
Novo
Previous Topic: umk on Linux
Next Topic: DarkTheme support
Goto Forum:
  


Current Time: Tue May 19 10:57:42 GMT+2 2026

Total time taken to generate the page: 0.00800 seconds