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

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

And I think at the moment I still prefer simply removing the 
wapiSetWindowIcon() code since it isn't used and allows the removal of 
the QT winextras dependency.

On 5/9/23 12:16, Orion Poplawski wrote:
> 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
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/