Subject: Bug#1601: [X2Go-Dev] Bug#1601: Patch for x2goclient Qt5 build on Windows

From: Orion Poplawski <[email-masked]>
Date: Tue, 9 May 2023 12:16:18 -0600

Gah, once again I make the mistake of not trying to build with the 
latest git
code.

So now I'm trying with that and getting:

i686-w64-mingw32-g++ -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 
-fexceptions --param=ssp-buffer-size=4 -fno-keep-inline-dllexport -O2 
-Wall -Wextra -mthreads -DUNICODE -DCFGCLIENT -DQT_STATIC 
-DQT_DESIGNER_STATIC -DDBUS_STATIC_BUILD -DPCRE_STATIC -DPCRE2_STATIC 
-DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_WINEXTRAS_LIB 
-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN 
-I../../x2goclient-1ca43813937df9cd136ae6d282204604ab659fab -I. -I../src 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtSvg 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtWidgets 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtWinExtras 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtGui 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtNetwork 
-I/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtCore -Irelease -I. 
-I/usr/i686-w64-mingw32/sys-root/mingw/share/qt5/mkspecs/mingw-w64-g++ 
-o release/wapi.o ../src/wapi.cpp
../src/wapi.cpp:25:10: fatal error: AccCtrl.h: No such file or directory
    25 | #include <AccCtrl.h>
       |          ^~~~~~~~~~~

I couldn't find anything that provided that on my system so I simply 
removed it.  And that seems to compile okay.

Ah, just realized I'm on a case sensitive system, so changing that to 
<accctrl.h> works too.  But perhaps it isn't really needed?

On 5/9/23 11:27, Ulrich Sibiller wrote:
> Hi again,
> 
> the current upstream of x2goclient contains these lines. So it looks
> like your QT_VERSION is not set correctly. (see
> https://code.x2go.org/gitweb?p=x2goclient.git;a=blob;f=src/wapi.cpp;h=12732c24b7b7cbf2da4cc8b0d0d9f782646960d3;hb=HEAD)
> 
> Uli
> 
> On Tue, May 9, 2023 at 7:25 PM Ulrich Sibiller
> <[email-masked]> wrote:
>>
>> Iirc I have made some patches for the windows version. I thought they had been merged but I must check that. For now try this:
>>
>>
>> #if QT_VERSION >= 0x050200
>>    largeIcon=QtWin::toHICON(icon.scaled(iconx,icony, Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
>>    smallIcon=QtWin::toHICON(icon.scaled(smallx,smally, Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
>> #else
>>    largeIcon=icon.scaled(iconx,icony, Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON();
>>    smallIcon=icon.scaled(smallx,smally, Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON();
>> #endif
>>
>>
>> Uli
>>
>> Orion Poplawski <[email-masked]> schrieb am Di., 9. Mai 2023, 19:00:
>>>
>>> Package: x2goclient
>>> Version: 4.1.2.2
>>> Tag: patch
>>>
>>>
>>> When compiling against Qt5 5.15.9 I get:
>>>
>>> ../src/wapi.cpp: In function 'void wapiSetWindowIcon(HWND, const QPixmap&)':
>>> ../src/wapi.cpp:224:88: error: 'class QPixmap' has no member named
>>> 'toWinHICON'
>>>    224 |     largeIcon=icon.scaled(iconx,icony,
>>> Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON ();
>>>        |                        ^~~~~~~~~~
>>> ../src/wapi.cpp:225:90: error: 'class QPixmap' has no member named
>>> 'toWinHICON'
>>>    225 |     smallIcon=icon.scaled(smallx,smally,
>>> Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON ();
>>>        |                          ^~~~~~~~~~
>>>
>>> Now, the only call to wapiSetWindowIcon() is commented out, so I just
>>> commented out the wapiSetWindowIcon() code as we...  Looks like the
>>> current function to use is QImage::toHICON().
>>>
>>> I'm also curious that you need to shift to a Windows API call -
>>> shouldn't we be able to do everything in Qt?
>>>
>>>
>>>
>>> --
>>> Orion Poplawski
>>> he/him/his  - surely the least important thing about me
>>> IT Systems Manager                         720-772-5637
>>> NWRA, Boulder/CoRA Office             FAX: 303-415-9702
>>> 3380 Mitchell Lane                       [email-masked]
>>> Boulder, CO 80301                 https://www.nwra.com/_______________________________________________
>>> x2go-dev mailing list
>>> [email-masked]
>>> https://lists.x2go.org/listinfo/x2go-dev

-- 
Orion Poplawski
IT Systems Manager                         720-772-5637
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       [email-masked]
Boulder, CO 80301                 https://www.nwra.com/