forked from emweb/wt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReleaseNotes.html
6088 lines (5416 loc) · 261 KB
/
ReleaseNotes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style>
dt { font-weight: bold; }
h3 { text-decoration: underline; }
dd { margin-top: 10px; margin-bottom: 10px; }
dd p { margin-top: 0; }
dd div { margin: 10px 0; }
</style>
<title>Wt Release notes</title>
</head>
<body>
<h1>Wt Release notes</h1>
This file lists important notes on migrating existing applications to
newer version of Wt. It lists changes in the library that may break
the way you build Wt, the way you configure Wt or the Wt API and
behaviour.
<h2>Release 4.7.0 (March 10, 2022)</h2>
<ul>
<li>
<tt><a href="https://redmine.webtoolkit.eu/issues/7434" target="_blank">Issue #7434</a></tt>:
Wt moved from rgb to rgba with the alpha value default opaque.
This change allows to you to set the background color and tranparency using
<tt>setBackgroundColor(Wt::WColor(255, 0, 0, 128));</tt>.
This change altered the default state of <tt>withAlpha</tt> from false to true in
<tt><a href="classWt_1_1WColor.html#a738c53d744ed38a448d1554f2a2f42cf">Wcolor::cssText(bool withAlpha=true)</a></tt>
</li>
<li>
Since Google Maps v2 is no longer available as of May 26 2021, Wt no longer supports v2.
</li>
</ul>
<h2>Release 4.6.2 (February 15, 2022)</h2>
<p>
Wt 4.6.2 is a patch release that addresses the following issues:
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9424" target="_blank">Issue #9424</a>:
The special "no selection" status of
<a href="classWt_1_1WComboBox.html">WComboBox</a>
was lost if the items were rerendered, e.g. if the model changed.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9721" target="_blank">Issue #9721</a>:
Somewhere during the Bootstrap 5 transition, we accidentally removed some example code (<tt>pdfImageWrite.cpp</tt>) from the widget gallery.
We added it back.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9572" target="_blank">Issue #9572</a>:
Some JSON serialization tests were temporarily disabled since Boost 1.76.0, since the workaround put
in place does not generate entirely the same result.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9571" target="_blank">Issue #9571</a>:
Provided a fix for a false positive <tt>-Wfree-nonheap-object</tt> warning in <tt>Wt::Signals</tt>.
</li>
</ul>
</p>
<h2>Release 4.6.1 (December 23, 2021)</h2>
<p>
Wt 4.6.1 is a single bug fix release, fixing a regression
(<a href="https://redmine.webtoolkit.eu/issues/9523" target="_blank">issue #9523</a>).
A potential null pointer dereference would crash the Wt site or widget gallery every few days.
</p>
<h2>Release 4.6.0 (December 14, 2021)</h2>
<p>
We know that this one took a bit longer than normal. Starting now we intend to make the Wt release cycle
more regular, with a release every three months, so we're planning to release Wt 4.7.0 in March 2022.
We've still been busy improving Wt though. Wt 4.6.0 introduces some major new features, including
Bootstrap 5 theming support, Dbo-based forms, and SAML support for Wt::Auth.
</p>
<h3>Bootstrap 5 theming support (<a href="https://redmine.webtoolkit.eu/issues/7418" target="_blank">issue #7418</a>)</h3>
<p>
We split up <a href="classWt_1_1WBootstrapTheme.html">WBootstrapTheme</a> into
<a href="classWt_1_1WBootstrap2Theme.html">WBootstrap2Theme</a> and
<a href="classWt_1_1WBootstrap3Theme.html">WBootstrap3Theme</a>, and added
<a href="classWt_1_1WBootstrap5Theme.html">WBootstrap5Theme</a>. We found that the
different Bootstrap versions were distinct enough to warrant splitting each version of the theme up into its own class.
</p>
<p>
We abandoned development of <code>WBootstrap4Theme</code>, since there were still some unsolved
issues with it, and we didn't expect many users to be interested in it.
</p>
<p>
We also updated the design of the <a href="https://www.webtoolkit.eu/widgets" target="_blank">widget gallery</a>.
It now uses Bootstrap 5, and no longer uses box layouts, instead opting for a more responsive design featuring
a collapsible menu on narrow screens. This means that the widget gallery is finally usable on mobile phones!
</p>
<h3>Dbo-based forms (<a href="https://redmine.webtoolkit.eu/issues/8622" target="_blank">issue #8622</a>)</h3>
<p>
We added a new feature that allows Wt to automatically generate a form for a Dbo class. Based on the data types
that are used by the Dbo class, Wt will generate <a href="classWt_1_1Form_1_1WAbstractFormDelegate.html">form delegates</a>.
These form delegates are responsible for creating the widget and optional validator for representing the data type in the UI.
For example:
<a href="classWt_1_1WString.html">WString</a> objects are by default represented by a
<a href="classWt_1_1WLineEdit.html">WLineEdit</a>,
<a href="classWt_1_1WDate.html">WDate</a> objects by
<a href="classWt_1_1WDateEdit.html">WDateEdit</a>, and so on.
</p>
<p>
The user is able to override the default behavior either by customizing the
<a href="classWt_1_1Form_1_1Dbo_1_1FormView.html#aa60100980949a327483cec31c2963420">widgets</a> and/or
<a href="classWt_1_1Form_1_1Dbo_1_1FormView.html#a55cb4e6750f29a4871686d19cf714042">validators</a> or by creating a new
form delegate for the specific field and <a href="classWt_1_1Form_1_1Dbo_1_1FormView.html#a42cad48a1c44d319325be1732520ba83">adding</a>
it to the form.
</p>
<p>
All classes related to this new feature have been added to a new <a href="namespaceWt_1_1Form.html">Wt::Form</a> namespace.
Here's a short overview of the most important classes within that namespace:
</p>
<ul>
<li>
<a href="classWt_1_1Form_1_1Dbo_1_1FormModel.html">FormModel</a>: a model class that holds the data of the database object.
</li>
<li>
<a href="classWt_1_1Form_1_1Dbo_1_1FormView.html">FormView</a>: a view class to represent the database object in the UI.
</li>
<li>
<a href="classWt_1_1Form_1_1WAbstractFormDelegate.html">WAbstractFormDelegate</a>: delegate for creating form widgets.
</li>
</ul>
<p>We also added a new <a href="https://github.com/emweb/wt/tree/master/examples/dbo-form" target="_blank">example</a> to display this new functionality.</p>
<h3>SAML support for Wt::Auth (<a href="https://redmine.webtoolkit.eu/issues/8621" target="_blank">issue #8621</a>)</h3>
<p>
We added SAML support for authentication with third party identity providers.
<a href="classWt_1_1Auth_1_1Saml_1_1Service.html">Wt::Auth::Saml::Service</a>
implements a minimal SAML 2.0 service provider for single sign on.
</p>
<p>
We added a <a href="https://github.com/emweb/wt/tree/master/examples/feature/saml" target="_blank">SAML</a>
feature example to demonstrate this.
</p>
<p>
Note: this implementation is based on <a href="https://www.shibboleth.net/" target="_blank">Shibboleth</a>'s
OpenSAML library. This library uses the Apache License Version 2.0. Due to incompatibility with the GNU General
Public License V2.0 used by Wt, <strong>a commercial Wt license is required to distribute derived works using SAML
authentication</strong>.
</p>
<h3>Other features and improvements</h3>
<ul>
<li>
It is now possible to suspend the <a href="classWt_1_1WApplication.html">WApplication</a> using the
<a href="classWt_1_1WApplication.html#a5c811d91d3999ac881ce87bebaade864">suspend</a> function. Previously,
logging in using an external authentication provider required a popup, but this can now be done through a redirect
(<a href="classWt_1_1Auth_1_1OAuthService.html#a72f987f61e7a53636ac3f08b61bee2a5">OAuthService::setPopupEnabled()</a>
and
<a href="classWt_1_1Auth_1_1Saml_1_1Service.html#a89ae3fb932497cbe28ed8b032d447966">Saml::Service::setPopupEnabled()</a>).
This can also be useful for redirecting to payment providers.
(See <a href="https://redmine.webtoolkit.eu/issues/7742" target="_blank">issue #7742</a> and
<a href="https://redmine.webtoolkit.eu/issues/9439" target="_blank">issue #9439</a>.)</li>
<li>
Added <a href="classWt_1_1WServer.html#a28794f657a950e81c17e2c11fe4270b1">WServer::docRoot()</a>, which allows
access to the <code>--docroot</code> argument of wthttp.
(See <a href="https://redmine.webtoolkit.eu/issues/9391" target="_blank">issue #9391</a>.)
</li>
<li>
The Bootstrap themes now no longer need an active <a href="classWt_1_1WApplication.html">WApplication</a>
upon construction to properly function, through the addition of an <a href="classWt_1_1WTheme.html#ae15f579e5dfb0d50e909fd5e2c575f60">init()</a> function.
(See <a href="https://redmine.webtoolkit.eu/issues/9204" target="_blank">issue #9204</a>.)
</li>
<li>The <a href="classWt_1_1WAbstractItemView.html">WAbstractItemView</a> now allows drag/drop in between rows.
See <a href="classWt_1_1WAbstractItemView.html#a5469c23ea1e9066e98e832ec9da2af21">setEnabledDropLocations()</a>.
(See <a href="https://redmine.webtoolkit.eu/issues/8636" target="_blank">issue #8636</a>.)</li>
<li>With the latest version of Visual Studio supporting std::chrono's date and time zone support it is now possible
to use it when building Wt in C++20 mode
(<code>-DCMAKE_CXX_STANDARD=20 -DWT_CPP20_DATE_TZ_IMPLEMENTATION=std</code>). This means that when Wt is compiled
this way time zone support just works on Windows like it already did on Linux, instead of requiring you to
download the IANA time zone database.
(See <a href="https://redmine.webtoolkit.eu/issues/8595" target="_blank">issue #8595</a>.)</li>
<li>Updated the <code>date</code> library to commit <code>fb2554a7e00b24d23838b57a4db4121e148edb5c</code>.</li>
<li>Ability to change the row header count of <a href="classWt_1_1WTableView.html" target="_blank">WTableView</a>
after it is rendered (see <a href="https://redmine.webtoolkit.eu/issues/8077" target="_blank">issue #8077</a>).</li>
<li>Splitting up updates to stay under the form data limit when many updates are rapidly generated
(<a href="https://redmine.webtoolkit.eu/issues/7990" target="_blank">issue #7990</a>).</li>
<li>Revert delay of <a href="classWt_1_1WWidget.html#a1ee433705523b2b79c4c3539e0852c92">WWidget::load()</a>.
Load now happens when a widget is added to the widget tree.
(See <a href="https://redmine.webtoolkit.eu/issues/7968" target="_blank">issue #7968</a>.)</li>
<li>Added option to not automatically select first suggestion of a
<a href="classWt_1_1WSuggestionPopup.html">WSuggestionPopup</a>.</li>
<li><a href="classWt_1_1Http_1_1Request.html#ad8a1199b8692854fefb76f494d793f93">Wt::Http::Request::hostName()</a>
now takes into account <code>X-Forwarded-Host</code>.</li>
<li>Updated the version of the included <code>SQLite</code> to version 3.35.5.</li>
<li>Added <code>doc/licenses.md</code> as an exhaustive list of the licenses used by Wt, source code from external
sources included in Wt and any external dependencies.</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li><a href="https://redmine.webtoolkit.eu/issues/8972" target="_blank">Issue #8972</a>: fixed a regression with
<a href="classWt_1_1WResource.html#a06bb9dbe3ae195c320cfed7b062d448a">WResource::setInternalPath()</a>.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8838" target="_blank">Issue #8838</a>:
<a href="classWt_1_1WIOService.html">WIOService</a> would block all signals in its worker threads. Now we let through
thread specific signals, so that signal handlers for them can be installed, e.g. by crashpad.
</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8720" target="_blank">Issue #8720</a>:
fixed
<a href="classWt_1_1WServer.html#aa47d7a7af63b11ae5c49ea226401b5fa">WServer::dedicatedSessionProcess()</a>
so it's accurate after
<a href="classWt_1_1WServer.html#a6ef2c780a70eebc68707ea0d684b8509">WServer::setServerConfiguration()</a>.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8531" target="_blank">Issue #8531</a>:
fixed deletion/modification of remember me cookie when using websockets.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8518" target="_blank">Issue #8518</a>: fixed accessing freed memory
when <a href="classWt_1_1Dbo_1_1ptr.html">Wt::Dbo::ptr</a> exits at destruction of its session.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8392" target="_blank">Issue #8392</a>: fixed crash when using
<a href="classWt_1_1WToolBar.html#af18dca00ce4fb782c806272b6dfc1659">WToolBar::widget()</a>.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8336" target="_blank">Issue #8336</a>: fixed
<a href="classWt_1_1WNavigationBar.html">WNavigationBar</a> regression: popup menu remains selected.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8164" target="_blank">Issue #8164</a>: added protected copy
constructor to <a href="classWt_1_1WStandardItem.html">WStandardItem</a> to allow easier overriding of
<a href="classWt_1_1WStandardItem.html#a41a5f22630a4c876e3a4ba822c43a744">WStandardItem::clone()</a>.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8135" target="_blank">Issue #8135</a>:
<a href="classWt_1_1WMenu.html">WMenu</a> submenu selection not proparly propagated.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8025" target="_blank">Issue #8025</a>: text clipped in
<a href="classWt_1_1WRasterImage.html">WRasterImage</a> (GraphicsMagick) with Pango.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/7811" target="_blank">Issue #7811</a>: invalid ackId.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/7975" target="_blank">Issue #7975</a>: drag-drop icon under dialog.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8597" target="_blank">Issue #8597</a>: taking UpdateLock in
<a href="classWt_1_1WResource.html">WResource</a> sometimes fails.</li>
<li><a href="https://redmine.webtoolkit.eu/issues/8838" target="_blank">Issue #8838</a>: breakpad/crashpad signal
handler doesn't work in <a href="classWt_1_1WIOService.html">WIOService</a> threads.</li>
<li>Fixed <a href="classWt_1_1WString.html#a233225f344af1b4a090f4a4dd76ec53d">WString::empty()</a> returning false
for <code>Wt::WString("{1}").arg("")</code>.</li>
</ul>
<h2>Release 4.5.2 (December 14, 2021)</h2>
<p>Wt 4.5.2 is a bugfix release containing the following changes:</p>
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9490" target="_blank">Issue #9490</a>: Fixed a possible
exception being thrown in the Postgres backend for Dbo when subnormal floating point numbers are retrieved
from the database.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9414" target="_blank">Issue #9414</a>: Fixed an error that
occurred when trying to link <code>libwtdbosqlite3</code> on Fedora 35.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9363" target="_blank">Issue #9363</a>: Added a workaround for
<a href="https://github.com/boostorg/spirit/issues/688" target="_blank">Boost Spirit issue #688</a>,
affecting versions of Boost >e; 1.66.0.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9270" target="_blank">Issue #9270</a>: Fixed a possible but
very rarely occurring race condition
in the generation of ids that would make it possible to have two widgets with the same id in the same
<a href="classWt_1_1WApplication.html">WApplication</a>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9230" target="_blank">Issue #9230</a>: Fixed an issue where the 3-argument version
of <a href="classWt_1_1Dbo_1_1QueryModel.html#ac225ba823673dc46e47811631e3218fe">QueryModel::setHeaderData</a>
was no longer accessible.
</li>
</ul>
<h2>Release 4.5.1 (October 7, 2021)</h2>
<p>Wt 4.5.1 is a bugfix release containing the following changes:</p>
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/9008" target="_blank">Issue #9008</a>:
Fixed possible JavaScript issues by appending a semicolon to all JavaScript statements when using
<a href="classWt_1_1WApplication.html#a2a92457b9212cef4057cb54e56183967">doJavaScript</a>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8964" target="_blank">Issue #8964</a>:
fixed Boost 1.77.0 compilation by modernizing the implementation of <code>WCssParser</code> to use
range-based for loops instead of <code>BOOST_FOREACH</code>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8677" target="_blank">Issue #8677</a>:
<a href="classWt_1_1WWidget.html#a5d403e0390841df77a23445b28044d5d">WWidget::setScrollVisibilityEnabled()</a>
now refers to the correct
<a href="https://github.com/emweb/wt/tree/master/examples/feature/scrollvisibility" target="_blank">scrollvisibility</a> example.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8577" target="_blank">Issue #8577</a>:
fixed some tests in <code>test.http</code> related to the handling of
<code>X-Forwarded-For</code> and <code>Client-IP</code> headers.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8467" target="_blank">Issue #8467</a>:
fixed compilation of <code>WTextRenderer.C</code> on some systems due to a missing <code>#include <limits></code>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8407" target="_blank">Issue #8407</a>:
fixed an issue in <a href="classWt_1_1WTreeView.html">WTreeView</a> where the expand icon was not removed
when removing the last child.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8376" target="_blank">Issue #8376</a>:
made dragging and dropping icons work correctly in
<a href="classWt_1_1WAbstractItemView.html">WAbstractItemView</a> by
preventing the default action.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8335" target="_blank">Issue #8335</a>:
fixed an issue where
<a href="classWt_1_1WWidget.html#af432588db3d599f89b54121f2ede8d63">WWidget::layoutSizeChanged()</a> would
sometimes not be called.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8305" target="_blank">Issue #8305</a>:
fixed an issue that caused the
<a href="https://github.com/emweb/wt/tree/master/examples/style" target="_blank">style example</a>
to segfault.
<a href="classWt_1_1WRasterImage.html#a75dffbb4731d33ac6a2dc2fb8e9a4aec">WRasterImage::setChanged()</a> could
cause a crash if the image was not meant to be exposed as a resource.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8202" target="_blank">Issue #8202</a>:
fixed an issue where
<a href="classWt_1_1WServer.html#afd61307d5d869cfecea239dac720a86d">WServer::postAll()</a>
would also be handled by sessions that were not fully complete yet, which meant that
<a href="classWt_1_1WApplication.html#a38d922da0a0d83395519f3eaab85d0f6">WApplication::instance()</a>
would return <code>nullptr</code>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8194" target="_blank">Issue #8194</a>:
fixed an issue where
<a href="classWt_1_1WVirtualImage.html">WVirtualImage</a> would break if you added a
<a href="classWt_1_1WInteractWidget.html#a40c3643603fa861b1ec797eec794aa4c">mouseMoved()</a> handler to images.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8114" target="_blank">Issue #8114</a>:
fixed a possible JavaScript error in <a href="classWt_1_1WCanvasPaintDevice.html">WCanvasPaintDevice</a>
if an image load handler was executed after the painted widget was already removed.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8041" target="_blank">Issue #8041</a>:
fixed an inconsistency in how ellipses were rendered when using
<a href="classWt_1_1WPainter.html#aa79220ed9456f67a393009e5c5eea27e">drawArc()</a> with
wide <a href="classWt_1_1WPen.html">WPen</a> on an HTML canvas.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8039" target="_blank">Issue #8039</a>:
<a href="classWt_1_1WLocalDateTime.html#a08aaccd32fd329f4f696b07a060bcca1">WLocalDateTime::timeZoneOffset()</a> now throws if it was initialized without timezone
information, as opposed to crashing.
The <a href="https://github.com/emweb/wt/tree/master/examples/filetreetable" target="_blank">filetreetable example</a> was changed to use UTC so we don't need
timezones.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7998" target="_blank">Issue #7998</a>:
made sure the scroll position is preserved when a <a href="classWt_1_1WTreeView.html">WTreeView</a>
is sorted.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7996" target="_blank">Issue #7996</a>:
clarified the documentation of <a href="classWt_1_1WInteractWidget.html#ae11e050cce0d4a8f742afa3ef92bfe8c">WInteractWidget::clicked()</a>
to note that middle clicks do not emit the clicked event.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7985" target="_blank">Issue #7985</a>:
re-exposed two argument version of
<a href="classWt_1_1WAbstractItemModel.html#a0bccbb4373b4c1e8bce85573b933d53d">WAbstractItemModel::setHeaderData()</a>
in <a href="classWt_1_1Dbo_1_1QueryModel.html">QueryModel</a>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7957" target="_blank">Issue #7957</a>:
fixed behind reverse proxy behavior when using dedicated process mode.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7912" target="_blank">Issue #7912</a>:
fixed JavaScript errors when using <a href="classWt_1_1WPopupMenu.html">WPopupMenu</a>
in <a href="namespaceWt.html#af4b6ed5fd28b4f5fa141b153c1107349accf2281a355c2c9cd4698ac30bea7820">WidgetSet</a>
mode.
</li>
<li>
Added warning to the <a href="classWt_1_1WSuggestionPopup.html">WSuggestionPopup</a> documentation: this widget should not be bound to a template.
</li>
<li>
Added missing virtual destructor to <a href="classWt_1_1WLogSink.html">WLogSink</a> (contributed by Pavlo Solntsev).
</li>
<li>
Fixed an issue where the
<a href="classWt_1_1WWidget.html#aa5ce605dd465e06f3e3c2dbce2a4098e">scrollVisibilityChanged()</a>
signal would not always be created.
</li>
<li>
Fixed a compilation issue on Windows with the latest MSVC and Boost in
<code>WebUtils.C</code>.
</li>
<li>
Various fixes to make Wt build properly with C++20:
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7002" target="_blank">Issue #7002</a>:
made tests build with the new <code>char8_t</code> type.
</li>
<li>
Fixed infinite recursion in <a href="classWt_1_1WString.html">WString</a> comparison operator.
</li>
<li>
Fixed compilation of <a href="classWt_1_1Dbo_1_1Transaction.html">Dbo::Transaction</a> due
to the removal of <code>uncaught_exception</code>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/8022" target="_blank">Issue #8022</a>:
fixed a compilation issue due to ambiguous <code>local_time</code> symbol with MSVC when using
<code>/std:c++latest</code>.
</li>
</ul>
</li>
<li>
Contributions by Steven Köhler:
<ul>
<li>Fixed a "size is not a function" issue when using jQuery 3.x</li>
<li>Fixed a warning when using <code>DBO_EXTERN_TEMPLATES</code> and <code>DBO_INSTANTIATE_TEMPLATES</code>.</li>
<li>Resolved C++17 <code>std::iterator</code> deprecation issue in <code>Wt::Dbo</code>.</li>
<li>Fixed an access violation in <code>Dbo::collection<C>::iterator</code>.</li>
<li>Added the missing function definition for <code>Dbo::collection<C>::const_iterator::operator=</code>.</li>
<li>Resolved/suppressed some type conversion warnings in <a href="classWt_1_1Dbo_1_1collection.html">Dbo::collection</a>.</li>
</ul>
</li>
</ul>
<h2>Release 4.5.0 (December 15, 2020)</h2>
<h3>Notable changes</h3>
<ul>
<li>Wt now targets C++14, and <tt>CMAKE_CXX_STANDARD</tt> defaults to "14". There appears to
be no good reason to maintain C++11 support, since every compiler that supports enough C++11
for Wt also supports enough C++14. You should still be able to use C++11 mode when using Wt
as a library, but Wt itself no longer builds in C++11 mode.</li>
<li>Wt::Dbo: the <a href="classWt_1_1Dbo_1_1backend_1_1Firebird.html">Firebird</a> backend
has been marked as unmaintained. The Firebird tests were not succeeding, likely because
of an incompatibility with the unmaintained IBPP that the Firebird backend is based on
and recent versions of Firebird.</li>
</ul>
<h3>Features and improvements</h3>
<ul>
<li><a href="https://redmine.webtoolkit.eu/issues/7586" target="_blank">Issue #7586</a>:
The <tt><behind-reverse-proxy></tt> option has been deprecated in favor of a new
<tt><trusted-proxy-config></tt> option. It's now possible to specify the IP header
that Wt should look for using <tt><remote-ip-header></tt> (defaults to <tt>X-Forwarded-For</tt>).
Wt will trust all proxies listed in <tt><trusted-proxies></tt>.
When <tt><behind-reverse-proxy></tt> is set to <tt>true</tt>, the behavior stays the
same as it was before. <a href="overview.html#config_general">See the library overview for more
information about this option.</a>
</li>
<li>
<a href="classWt_1_1WFormModel.html">WFormModel</a> now uses string comparison instead of pointer comparison
for its fields.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7666" target="_blank">Issue #7666</a>: In some cases Wt 4.4.0 would
connect <tt>jsScrollVisibilityChanged</tt> even if it was not actually being used, causing extra unnecessary
requests.
</li>
<li>
Added Jenkins pipelines in the
<tt><a href="https://github.com/emweb/wt/tree/master/jenkins" target="_blank">jenkins</a></tt> folder.
We use Jenkins to test Wt at Emweb but we would usually
keep this configuration in Jenkins. Our pipelines for Linux and FreeBSD have now been updated a bit and moved
into the Wt repository, since they may be of use to people looking to contribute to Wt.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7669" target="_blank">Issue #7669</a>: Wt now automatically uses
<a href="classWt_1_1WObject.html#a3de0f0baf35f42aa4e77a90d427f2e11">addChild</a> instead of
<a href="classWt_1_1WContainerWidget.html#ad17b653b6f0487e42b2a63ab9de03f20">addWidget</a> when
<a href="classWt_1_1WContainerWidget.html#acf75dda5024db05cf847c282f8a99117">addNew</a> is used
on a global widget, like <a href="classWt_1_1WPopupWidget.html">WPopupWidget</a>.
</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/6367" target="_blank">Issue #6367</a>:
fixed issue where wthttp would no longer accept new connections when an error occurred
while accepting a connection, e.g. if the open file limit was reached.
</li>
<li>
<a href="classWt_1_1WDate.html#a57a614e3408f39c70605027fe3e3f3f5">WDate::currentServerDate()</a> and
<a href="classWt_1_1WTime.html#a271bd124707e50cc15872e263ffa71f2">WTime::currentServerTime()</a> now
correctly return the local date and time on the server instead of UTC.
</li>
<li>
Fixed visibility of
<a href="classWt_1_1Auth_1_1OAuthProcess.html">OAuthProcess</a> and
<a href="classWt_1_1Auth_1_1OAuthAccessToken.html">OAuthAccessToken</a>.
</li>
<li>Fixed issues
<a href="https://redmine.webtoolkit.eu/issues/6548" target="_blank">#6548</a> and
<a href="https://redmine.webtoolkit.eu/issues/7749" target="_blank">#7749</a>:
URL parameters were being parsed more than once for file uploads, causing a rapid
accumulation of duplicate values during uploads, and potentially causing segmentation
faults. The
<a href="https://github.com/emweb/wt/tree/master/examples/wtwithqt" target="_blank">wtwithqt</a>
example was also updated so that it properly waits for condition variables in a loop,
to deal with spurious wakeups. Also fixed a potential use-after-free when updating resource
progress.
</li>
<li>
Fixed an issue where the <a href="classWt_1_1Http_1_1Client.html">HTTP Client</a>
would wait indefinitely for data when <tt>Content-Length</tt> is zero.
</li>
<li>
WebSockets: If a bad value for <tt>server_max_window_bits</tt> or
<tt>client_max_window_bits</tt> was encountered, this would cause
an uncaught exception and a crash. This is now handled properly.
</li>
<li>
Fixed issue with <tt>DISTINCT ON</tt> in X3 based query parser: the fields listed
there would incorrectly be regarded as fields being returned.
</li>
<li>
Fixed issue <a href="https://redmine.webtoolkit.eu/issues/7677" target="_blank">#7677</a>:
when a font could not be loaded in <a href="classWt_1_1WPdfImage.html">WPdfImage</a>,
this would throw an uncaught exception. This was changed to logging an error.
</li>
<li>
Fixed issue <a href="https://redmine.webtoolkit.eu/issues/7719" target="_blank">#7719</a>:
<a href="group__modelview.html#gaac976f394f370d3d62c29791b13a0049">Wt::asString</a>
did not properly handle <tt>unsigned long</tt>.
</li>
<li>
<a href="https://github.com/emweb/wt/pull/166" target="_blank">PR #166</a>:
fixed <a href="https://github.com/emweb/wt/tree/master/examples/mandelbrot" target="_blank">mandelbrot</a> example:
missing call to <a href="classWt_1_1WRasterImage.html#af06beb3b09289d373fb7855750afdc83">done()</a>.
</li>
<li>
<a href="https://github.com/emweb/wt/pull/167" target="_blank">PR #167</a>:
we need to link with Boost unit_test_framework on Windows when <tt>BOOST_DYNAMIC</tt> is <tt>ON</tt>.
</li>
<li>
Fixed an issue where <a href="classWt_1_1WMediaPlayer.html">WMediaPlayer</a> would not get properly
loaded when <tt>reload-is-new-session</tt> is <tt>false</tt>, and the page is refreshed.
</li>
</ul>
<h2>Release 4.4.0 (August 3, 2020)</h2>
<p>Wt 4.4.0 adds a couple of new features, like multiple X axes, and WColorPicker, among other fixes and tweaks.</p>
<h3>Security related</h3>
<p>
Wt now rejects GET requests for Ajax-enabled sessions that are not for resources, as an
extra means to prevent session hijacking attempts. Patch provided by Bruce Toll in
<a href="https://redmine.webtoolkit.eu/issues/7585" target="_blank">issue #7585</a>.
</p>
<h3>Major new features</h3>
<ul>
<li>
<a href="classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a>: similar to how
Wt 4.0.4 added support for multiple Y axes, Wt 4.4.0 adds support for multiple X axes,
too. Instead of trying to squeeze another <tt>int</tt> argument into functions like
<a href="classWt_1_1Chart_1_1WCartesianChart.html#a37b22e4bdc17c45d193848cca443dd28">WCartesianChart::map</a>,
we decided to add overloads that take two <a href="classWt_1_1Chart_1_1WAxis.html">WAxis</a> references.
</li>
<li>
Added <a href="classWt_1_1WColorPicker.html">WColorPicker</a>: a simple form widget that display a browser-native
color picker. Patch provided in <a href="https://github.com/emweb/wt/pull/158" target="_blank">PR #158</a>.
</li>
</ul>
<h3>Minor features</h3>
<ul>
<li>
Wt::Dbo:
<ul>
<li>
<a href="https://github.com/emweb/wt/pull/161" target="_blank">PR #161</a>: added support for
<a href="group__dbo.html#ga4987bb75aacce8ada8662cc86a6fc3b5"><tt>ON UPDATE RESTRICT</tt></a> and
<a href="group__dbo.html#gaae0942000fa56b27ca4185f76395c388">ON DELETE RESTRICT</a> foreign key constraints in Wt::Dbo.
</li>
<li>
<tt>DBO_INSTANTIATE_TEMPLATES</tt> and the <tt>DBO_EXTERN_TEMPLATES</tt> macros used to be disabled with
Visual Studio since they wouldn't work with old versions of Visual Studio. We reenabled those macros, since
they've been working for a while now.
</li>
<li>
Added <a href="classWt_1_1Dbo_1_1Query.html#a693ed2ff14acaeffe45b8b6c09b6da8f">orWhere</a>.
</li>
</ul>
</li>
<li>
<a href="classWt_1_1WFileResource.html">WFileResource</a>: added a log message when failing to open a file. Previously,
it would not be very clear why nothing was downloaded.
</li>
<li>
Added the MIME type for <tt>.txt</tt> files to <tt>wthttp</tt>, so that
they are displayed in the browser rather than prompt a download.
</li>
<li>
All of the properties that Wt uses are now listed in the default <tt>wt_config.xml</tt> to make it easier
to get an overview of all of them without having to find them in the reference documentation.
</li>
</ul>
<h3>Updates</h3>
<ul>
<li>
<a href="https://github.com/emweb/wt/pull/162" target="_blank">PR #162</a>: Updated included Bootstrap 3 version to 3.4.1 (from 3.3.7)
</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>
Wt:: Auth:
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7518" target="_blank">Issue #7518</a>: previously, it was
not possible to set
<a href="classWt_1_1Auth_1_1AbstractPasswordService_1_1AbstractStrengthValidator.html">AbstractStrengthValidator</a>
to non-mandatory. This has now been fixed. It now also correctly reports
<a href="namespaceWt.html#a06744b1cf5fdeae2a8a6c0d0084fdf25">InvalidEmpty</a> when the input is left empty.
</li>
<li>
Fixed an issue where slots connected to <a href="classWt_1_1Auth_1_1Login.html#aafb1d791aeee8b59d28faeda88e8392b">Login::changed()</a> would still have the old session id, which would afterwards be updated, causing resource urls created in the slot to have the wrong session id.
</li>
</ul>
</li>
<li>
<a href="classWt_1_1WPaintedWidget.html">WPaintedWidget</a>: fixed an issue where combining incremental painting (<a href="namespaceWt.html#a23a1002020ee93ed4679d351b7350de3">PaintFlag::Update</a>) with images could cause the first paint event to be discarded, resulting in an incomplete result.
</li>
<li>
Previously, having multiple instances of <a href="classWt_1_1WGoogleMap.html">WGoogleMap</a> could cause JavaScript errors. This has now been resolved.
</li>
</ul>
<h2>Release 4.3.1 (April 20, 2020)</h2>
<p>This release fixes the following issues:</p>
<ul>
<li>
<a href="classWt_1_1WWebWidget.html">WWebWidget:</a> moved <tt>id_</tt> out of <tt>OtherImpl</tt>:
this fixes issues caused by the <tt>id_</tt> being removed before other things that depend on it,
like the <tt>jsScrollVisibilityChanged_</tt> signal. Fixes
<a href="https://redmine.webtoolkit.eu/issues/7508" target="_blank">issue #7508</a>.
</li>
<li>
Fixed join information not being copied over when copying
<a href="classWt_1_1Dbo_1_1AbstractQuery.html">Wt::Dbo::AbstractQuery</a>.
</li>
<li>
MinGW fixes: Direct2D/DirectWrite were disabled and are now enabled
by default. Libraries were changed to lowercase for cross-compiling
from Linux. Windows is case-insensitive, and MinGW libraries on Linux
are lowercase.
Fixes <a href="https://redmine.webtoolkit.eu/issues/7505" target="_blank">issue #7505</a>.
</li>
<li>
Fixed a wrong documentation link in the widget gallery.
</li>
</ul>
<h2>Release 4.3.0 (March 26, 2020)</h2>
<p>Wt 4.3.0 mainly adds the ability to redirect logging to a custom logging function, and login and transport encryption to the mail client, among some other fixes and tweaks.</p>
<h3>Logging redirection (<a href="https://redmine.webtoolkit.eu/issues/7240" target="_blank">issue #7240</a>)</h3>
<p>
Before, it was possible to send logging to a file or an <tt>std::ostream</tt>, and configure which messages were logged in <tt>wt_config.xml</tt>. Wt 4.3.0 extends
this with the ability to send all logging to a function, allowing users to redirect Wt's logs to whathever logging framework they prefer to use.
</p>
<p>The few log messages coming from Wt::Dbo would always be logged to <tt>std::cerr</tt>. It is now possible to change this to use Wt's logger, or a custom log function.</p>
<p>To allow for this new functionality, we introduced an abstract <a href="classWt_1_1WLogSink.html">WLogSink</a> class, and the following functions:</p>
<ul>
<li><a href="classWt_1_1WServer.html#a45fdbea913a16a310e10e337e5933072">WServer::setCustomLogger()</a>: sets a custom logger on the WServer level</li>
<li><a href="namespaceWt_1_1Dbo.html#a9a326a13084b93cbb33bf1c470879b0d">Wt::Dbo::setCustomLogger()</a>: sets a custom logger globally for all of Wt::Dbo</li>
<li><a href="namespaceWt_1_1Dbo.html#ac1c13200d17c21ab7a8dfe4cbf3aed05">Wt::Dbo::logToWt()</a>: sends all of Wt::Dbo's logging to Wt's logger</li>
</ul>
<h3>Mail client: support for login and encryption (<a href="https://redmine.webtoolkit.eu/issues/7444" target="_blank">issue #7444</a>)</h3>
<p>
We added basic support for <a href="namespaceWt_1_1Mail.html#a2e673920327e6df099fe3ec0191fdc93a4cd8413207629a963225f4314b53adcd">PLAIN</a> and
<a href="namespaceWt_1_1Mail.html#a2e673920327e6df099fe3ec0191fdc93a99dea78007133396a7b8ed70578ac6ae">LOGIN</a> authentication methods, and
encryption using <a href="namespaceWt_1_1Mail.html#a55d819f240a3553f33e6416ecd05b91fafa91df952500d196f6a10117d98843fe">StartTLS</a> or just
simple <a href="namespaceWt_1_1Mail.html#a55d819f240a3553f33e6416ecd05b91fa099d7d04319e5191b7473e016c55e320">TLS</a>.
</p>
<p>
You can enable authentication with <a href="classWt_1_1Mail_1_1Client.html#a4861b5d0157663d803a3edcb97f651f4">Client::enableAuthentication()</a>, and encryption with
<a href="classWt_1_1Mail_1_1Client.html#a170288f392a84a1e4e560422843c9a74">Client::setTransportEncryption()</a>, or using the configuration properties <tt>smtp-auth-username</tt>, <tt>smtp-auth-password</tt>,
<tt>smtp-auth-method</tt>, and <tt>smtp-transport-encryption</tt>.
</p>
<h3>Other changes</h3>
<p>Some small changes in behaviour that you may want to be aware of:</p>
<ul>
<li>
Wt::Auth: lost password tokens used to be removed as soon as the link was used, even when they were not actually used to change the password. Now, the
token will stay valid until the password is actually changed. Also, if the password is changed through other means, the update password token is invalidated.
</li>
<li>
<a href="classWt_1_1WCanvasPaintDevice.html">WCanvasPaintDevice</a>: instead of stopping the drawing entirely when <tt>drawImage()</tt> fails (e.g. because of a missing image),
the image will be skipped but drawing will continue. An error will be logged to the console.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7060" target="_blank">Issue #7060</a>: fixed
<a href="classWt_1_1Http_1_1Request.html#a5f18be4100482713c257bea43a3c913b">Request::clientAddress()</a> when behind a reverse proxy to
be the same as <a href="classWt_1_1WEnvironment.html#aedad4a59684dc41c9985a713ee4eb00a">WEnvironment::clientAddress()</a>, and as mentioned in the documentation.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7404" target="_blank">Issue #7404</a>: reparenting of popup widgets should only stop at scroll bars.
</li>
</ul>
<p>Other changes and fixes:</p>
<ul>
<li>
<a href="classWt_1_1WLength.html">WLength</a>: added
<a href="namespaceWt.html#a736803866293d189d852d2c7adb7d94ea67bbbcb8c3f0869b19682f3dd5f27893">LengthUnit::ViewportWidth</a>,
<a href="namespaceWt.html#a736803866293d189d852d2c7adb7d94ea1cc83e088aae799b9acb909c10c3d8b2">LengthUnit::ViewportHeight</a>,
<a href="namespaceWt.html#a736803866293d189d852d2c7adb7d94eae21d04628175a77110405adc9338b9c2">LengthUnit::ViewportMin</a>,
and <a href="namespaceWt.html#a736803866293d189d852d2c7adb7d94ea91b2f19f5c34f05a401200359e38e3c3">LengthUnit::ViewportMax</a>.
</li>
<li>
Updated the <tt>composer</tt> and <tt>filetreetable</tt> examples to use <a href="classWt_1_1WLocalDateTime.html">WLocalDateTime</a> rather than OS specific functions.
</li>
<li>
Refactored the <tt>treelist</tt> example.
</li>
<li>
Wt::Dbo:
<ul>
<li>added query parsing implementation based on X3 instead of Spirit Qi, which reduces compile time and memory usage.</li>
</ul>
<ul>
<li>added <a href="classWt_1_1Dbo_1_1SqlStatement.html#a4868a3639566171ac3d58e15e3bf77f3">SqlStatement::columnCount()</a>. This
makes it possible to create <tt>query_result_traits</tt> for result types with a variable number of columns, like <tt>std::vector</tt>.</li>
</ul>
</li>
<li>
<a href="classWt_1_1WModelIndex.html">WModelIndex</a> now has a proper ordering, even for raw indexes. This means they can properly be inserted into and retrieved from a <tt>std::set</tt>.
</li>
<li>
<a href="classWt_1_1WServer.html">WServer</a>: documented the <a href="classWt_1_1WServer.html#a5f850e30f9bd54a946c3f832d60f5b2a">schedule()</a> function.
</li>
<li>
wthttp: added child process id to some of the logging related to dedicated session processes
</li>
</ul>
<h2>Release 4.2.2 (March 16, 2020)</h2>
<p>
This release fixes the following issues:
</p>
<ul>
<li>
Security-related: in Wt::Auth the lost password email would be sent to the email
address provided in the form, rather than the user's configured email address. While
we treat email addresses as case insensitive, it is possible that the mail server may not,
and that could potentially be used to steal an account. It is however quite rare for
email services to be case sensitive.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7439" target="_blank">Issue #7439</a>:
ensure that tooltips are always on top, even inside of a dialog.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7448" target="_blank">Issue #7448</a>:
fixed compilation error on recent versions of MinGW, by using the <tt>gmtime_s</tt>
function on Windows.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7447" target="_blank">Issue #7447</a>:
fixed text format being reset when the text of a <a href="classWt_1_1WAnchor.html">WAnchor</a> is cleared.
</li>
<li>
Fix for <a href="classWt_1_1WLeafletMap.html">WLeafletMap</a> issue that was <a href="https://redmine.emweb.be/boards/2/topics/16718" target="_blank">reported on the forum</a>: signals would get unexposed when options were changed.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7457" target="_blank">Issue #7457</a>:
moved call to <a href="classWt_1_1WApplication.html#ae88546224ed32cade783da188b145138">WApplication::require()</a> to the constructor, since calling it in the render function may cause issues.
</li>
<li>
Fixes for <a href="classWt_1_1WVirtualImage.html">WVirtualImage</a>:
<ul>
<li>Do not render zero width or zero height images. This was possible when <tt>imageWidth</tt> or <tt>imageHeight</tt> was
a multiple of the <tt>gridImageSize</tt>.</li>
<li>Fixed <a href="classWt_1_1WVirtualImage.html#a0feb746fc22b907f779423bd9768109c">scrollTo()</a> when the image is narrower than the viewport: <tt>scrollTo(0, 0)</tt> would not put <tt>(0, 0)</tt> at
the top left when the image was narrower (or taller) than the viewport.</li>
</ul>
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7480" target="_blank">Issue #7480</a>: prefix Wt's crypt functions to fix issues
when linking with <tt>libxcrypt</tt>, and also set C code's default visibility to hidden.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7468" target="_blank">Issue #7468</a>: fixed panning not working properly for a <a href="classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a> with plain tooltips.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7482" target="_blank">Issue #7482</a>: <tt>lastId_</tt> in Postgres backend should be <tt>long long</tt>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/6774" target="_blank">Issue #6774</a>: misc. <a href="classWt_1_1WTreeView.html">WTreeView</a> fixes.
</li>
<li>
Fixed use after free caused by order of destruction in <a href="classWt_1_1WWebWidget.html">WWebWidget</a> destructor.
</li>
</ul>
<h2>Release 4.2.1 (February 6, 2020)</h2>
<p>
This release fixes the following issues:
</p>
<ul>
<li>wthttp fixes:
<ul>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7406" target="_blank">Issue #7406</a>: requests for absolute-form URLs (e.g. <tt>GET http://localhost:8080/ HTTP/1.1</tt> instead of <tt>GET / HTTP/1.1</tt>) are now rejected. No client normally sends requests like this to an origin server. See <a href="https://tools.ietf.org/html/rfc7230#section-5.3.2" target="_blank">RFC 7230, section 5.3.2</a>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7405" target="_blank">Issue #7405</a>: multiline HTTP headers (line folding) were causing
wthttp to segfault. This was fixed by removing support for (obsolete) line folding. See <a href="https://tools.ietf.org/html/rfc7230#section-3.2.4" target="_blank">RFC 7230, section 3.2.4</a>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7390" target="_blank">Issue #7390</a>: added MIME type for <tt>.wasm</tt> files.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7384" target="_blank">Issue #7384</a>: setting the <tt>--docroot</tt> of wthttp
to <tt>.;</tt> will now correctly make it so that no path is interpreted as being a static resource.
</li>
</ul>
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7350" target="_blank">Issue #7350</a>: fixed <a href="classWt_1_1WPaintedWidget.html">WPaintedWidget</a>'s <tt>wtResize</tt> JavaScript to assume its preferred size when called with a size of -1.
</li>
<li>
Fixed possible JavaScript errors caused by <a href="classWt_1_1WContainerWidget.html">WContainerWidget</a>'s <tt>wtEncodeValue</tt> JavaScript not being terminated by a semicolon.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7407" target="_blank">Issue #7407</a>: fixed JavaScript memory leak related to deferred or HTML tooltips.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7360" target="_blank">Issue #7360</a>: documented <a href="structWt_1_1Mail_1_1Message_1_1Recipient.html">Wt::Mail::Message::Recipient</a>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7393" target="_blank">Issue #7393</a>: if the internal path is set to invalid in initialize, Wt should still send a 404 status code.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7361" target="_blank">Issue #7361</a>: a previous attempt at fixing horizontal scrolling stutter
in Wt 4.1.1 caused a regression in <a href="classWt_1_1WTableView.html#a093b661f93551c1d6f73c423ae8ef459">WTableView::scrollTo()</a>.
</li>
<li>
Fixed several issues with <a href="classWt_1_1WLeafletMap.html">WLeafletMap</a> that were
<a href="https://redmine.emweb.be/boards/2/topics/16718" target="_blank">reported on the forum</a>.
</li>
<li>
<a href="classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a>: when there were so many bars on
a bar chart that the width of a bar became 0, placing tooltips would cause a crash. Wt will now skip
tooltip placement when bars get too narrow.
</li>
<li>
<a href="classWt_1_1WSuggestionPopup.html">WSuggestionPopup</a>: when
<a href="classWt_1_1WSuggestionPopup.html#a0395bd5080856eb95ccb50748f25d1c7"><tt>setDropDownIconUnfiltered(true)</tt></a>
was used, pressing the up/down arrows to move through the list would cause it to be filtered.
</li>
<li>
Reverted a previous change to <a href="classWt_1_1WModelIndex.html">WModelIndex</a>: since the comparison operator of model indexes uses the parent, we can't insert raw indexes into a <tt>std::set</tt>.
</li>
<li>
<a href="https://redmine.webtoolkit.eu/issues/7353" target="_blank">Issue #7353</a>: added mention in 3.5.0 release notes about
<a href="classWt_1_1WPdfImage.html">WPdfImage</a> pen width fix.
</li>
<li>
<a href="group__modelview.html#gaeb2f9c583490833afd55d65402b4fea9">registerType</a> now uses <tt>std::type_index</tt> instead of comparing <tt>type_info</tt> pointers.
</li>
<li>
Some widgets (like <a href="classWt_1_1WTreeView.html">WTreeView</a>) would not be properly sized when they were initially hidden.
</li>
<li>
Fixed a segfault in <a href="classWt_1_1WTableRow.html">WTableRow</a>, <a href="https://redmine.webtoolkit.eu/boards/2/topics/16732" target="_blank">reported on the forum</a>.
</li>
<li>
Miscellaneous documentation fixes.
</li>
<li>
<b>CMake fixes:</b>
<ul>
<li>
<tt>wt-config.cmake</tt>: CMake would look for Boost even when Wt was linked dynamically, and
Boost was linked statically, like in our Windows builds.
</li>
<li>
<tt>wt-config-version.cmake</tt>: <tt>match</tt> function needed to be <tt>math</tt>
</li>
<li>
CMake needed to look for <tt>Boost::filesystem</tt> for some examples (but didn't).
</li>
</ul>
</li>
</ul>
<p>
If you diff this release with the last one, it looks like we've changed a lot more, but this
is simply because we needed to update Emweb bvba to Emweb bv everywhere.
</p>
<h2>Release 4.2.0 (December 3, 2019)</h2>
<p>
Wt 4.2.0 introduces no major new features, but comes with some nice fixes and little quality of life improvements.
</p>
<h3>Notable backwards-incompatible changes</h3>
<ul>
<li><a href="classWt_1_1WSuggestionPopup.html">WSuggestionPopup</a>: <a href="structWt_1_1WSuggestionPopup_1_1Options.html#a3e29211108f2b156a0b983a5a15ecece">wordSeparators</a> no longer requires (extra) escaping, so a newline is indicated with the string literal "\n", not "\\n". Similarly, the <a href="structWt_1_1WSuggestionPopup_1_1Options.html#aef3e98b66b4cc136e2c726079d6681de">whitespace</a> property was incorrectly documented as requiring (extra) escaping.</li>
<li>The <a href="classWt_1_1WLogEntry.html">WLogEntry</a> copy constructor–which logically performed a move–was removed and replaced by a move constructor.</li>
<li>Removed <tt>WDatePicker::setGlobalPopup</tt>–it was deprecated in Wt 3.3.0, but we forgot to remove it in Wt 4.</li>
<li><a href="classWt_1_1WLogger.html">WLogger</a> now logs opening of log file to the previous output (usually <tt>std::cerr</tt>) using the logger instead of directly to <tt>std::cerr</tt>. This allows to disable this log message with <tt>-info:WLogger</tt>.</li>
</ul>
<h3>CMake changes</h3>
<ul>
<li>
When using GCC and clang, the default visibility of symbols is now set to hidden. This limits the exported symbols to only Wt's public interfaces,
reducing the size of <tt>.so</tt> files and preventing accidental use of unexposed APIs.
</li>
<li>
Added Wt version information to Wt's CMake config files
</li>
</ul>
<h3>HTTP connector</h3>
<p>It's now possible to get client certificate information in wthttp when behind a reverse proxy, see the documentation for <a href="classWt_1_1WEnvironment.html#a04b65c4f7fe6e3b0bd652e2580b4f62e">WEnvironment::sslInfo()</a> for more information.</p>
<p>This is tested to work with nginx and Apache. HAProxy is currently not supported, since its variables are in a rather different format.</p>
<p>Wt can still use this info even if Wt itself is compiled without OpenSSL.</p>
<h3>Features</h3>
<ul>
<li>
PR <a href="https://github.com/emweb/wt/pull/140">#140</a>: <a href="classWt_1_1WLogEntry.html">WLogEntry</a> can now use argument dependent lookup for <tt>to_string</tt> in its <tt>operator<<</tt>.
</li>
<li>
Added overloads to <a href="classWt_1_1WServer.html#af2100c604f1ad933256097972fd38102">WRun()</a>,
<a href="classWt_1_1WServer.html#af22c4176fb07d6f5f3cab42ef7f36f7f">WServer::WServer()</a>,
<a href="classWt_1_1WServer.html#a6ef2c780a70eebc68707ea0d684b8509">WServer::setServerConfiguration()</a>,
and <a href="classWt_1_1WServer.html#afd4dc8802de5f9b93b23ea7948c8a91e">WServer::restart()</a> that
take an applicationPath <tt>std::string</tt>, and a vector of strings for arguments, instead of <tt>argc</tt>, and <tt>argv</tt>.
This is more convenient if the command line arguments are generated by the application.
</li>
<li>
<a href="classWt_1_1WTreeView.html">WTreeView</a>: added <a href="classWt_1_1WTreeView.html#ab7c527ce5304cdbe7f5bcb3e51880641">collapseAll()</a>.
</li>