Commit Graph

2803 Commits

Author SHA1 Message Date
Vadim Zeitlin
f41564a3e2 Add wxRegEx::ConvertFromBasic() helper
This will be used to implement support for BREs using PCRE which doesn't
support them directly in the upcoming commits.
2021-07-15 22:45:29 +02:00
Vadim Zeitlin
020b5f7383 Add simple wxRegEx benchmark
Allow testing speed of some simple regex operations to compare the speed
of the currently used regex library with some other alternatives.
2021-07-15 21:44:28 +02:00
Vadim Zeitlin
8be998861d Use CHECK rather than REQUIRE in individual regex tests
Don't prevent the remaining CheckMatch() tests from running if one of
them fails by using CHECK() rather than REQUIRE().

This is a bit awkward and we probably ought to use sections here
instead, but this change is more minimal.

This commit is best viewed ignoring whitespace-only changes.
2021-07-15 21:44:28 +02:00
Vadim Zeitlin
381cd322ec Always skip the rest of regex tests checking for compile failure
It's useless to continue with testing the given regex if compiling it
has unexpectedly succeeded, all the rest of the tests will fail anyhow.

Also explain that REQUIRE() can't be used here, which is why we need to
use CHECK() and then check the same condition again before returning to
avoid the temptation to "simplify" things.
2021-07-15 21:44:28 +02:00
Vadim Zeitlin
63b4c5ee67 Remove checks for buildbot in the test suite
buildbot is not used since a long time, so don't bother checking for it
in IsAutomaticTest().

This commit is best viewed ignoring whitespace-only changes.
2021-07-15 19:59:11 +02:00
Vadim Zeitlin
9aae8fc81f Remove checks for LXC containers used under Travis CI only
As we don't use Travis CI any longer, we don't need these checks
neither.
2021-07-15 19:55:01 +02:00
Vadim Zeitlin
a370de4caf Remove checks for TRAVIS environments variable from the tests
We don't use Travis CI any more, so this is now unnecessary.
2021-07-15 19:54:29 +02:00
Vadim Zeitlin
7c6f290995 Document wxMulDivInt32() and add a test for it
This function exists since always and is probably already used outside
wx, so make it officially public and add at least a trivial unit test
for it.
2021-07-13 23:05:16 +01:00
Vadim Zeitlin
f37d449208 Add convenient wxFileName::GetAbsolutePath() wrapper and use it
This wrapper simply combines the calls to MakeAbsolute() and
GetFullPath(), but using it results in shorter and more clear code, so
it seems to be worth having.
2021-07-11 14:51:31 +01:00
Vadim Zeitlin
3539a81a8a Define a helper variable to reduce #ifdefs in wxFileName test
No real changes, just avoid repeating "#ifdef __WINDOWS__" multiple
times.
2021-07-11 14:51:31 +01:00
Vadim Zeitlin
702c221901 Deprecate wxPATH_NORM_ALL and Normalize() with default flags
Using wxFileName::Normalize() with default flags could be surprising and
result in bugs in the code, as shown by our own wrong use of it in
wxFileSystemWatcher corrected in the previous commit.

Deprecate using it without any flags and recommend using MakeAbsolute()
instead.

Also improve the related parts of the documentation.
2021-07-11 14:51:31 +01:00
Vadim Zeitlin
6d2af9e7a1 Use wxFileName::MakeAbsolute() instead of Normalize()
Make the code more clear by being more explicit about what it does.

No real changes and no changes in behaviour at all.
2021-07-11 14:51:31 +01:00
Vadim Zeitlin
02c90d126c Merge branch 'file-tests'
Clean up file tests and re-enable most of them in the CI workflow using
Wine.

See https://github.com/wxWidgets/wxWidgets/pull/2416
2021-07-04 18:23:03 +02:00
Vadim Zeitlin
f31a745909 Remove unnecessary c_str() from wx var arg functions arguments
Using c_str() for arguments to wxString::Printf(), Format() and
wxLogXXX() is useless since wx 2.9 days, so simply remove them.

No real changes, this is just a (long due) cleanup.
2021-07-04 15:08:13 +01:00
Vadim Zeitlin
071771474e Remove CppUnit boilerplate from wxFileName test
This is similar to the grand parent commit for the file functions.

No real changes.
2021-07-04 15:03:12 +01:00
Vadim Zeitlin
bab92b4805 Remove CppUnit boilerplate from the file functions test
This cuts down the number of lines and allows to execute, or exclude,
individual tests easily.
2021-07-04 15:03:08 +01:00
Vadim Zeitlin
3e1687c36b Use WX_ASSERT_FAILS_WITH_ASSERT in file functions test case
Make the code shorter and more clear by using an existing macro checking
that the expected assert happens instead of writing it out.
2021-07-04 13:56:24 +01:00
Vadim Zeitlin
2be8f78982 Make wxExecute() unit test work when using Wine too
Use wxTEST_RUNNER in this test, which can be/is set to "wine" by the
GitHub wxMSW CI workflow and can also be set manually if necessary, to
make executing MSW commands under non-MSW systems have a chance to
actually work (but note that the tests still fail when run under Wine).
2021-07-03 16:45:15 +02:00
Vadim Zeitlin
8e2cac22ba Add support for std::string_view to wx vararg functions
Allow using wxPrintf() etc with std::string_view arguments when using
C++17.

This is inefficient but still more convenient than not being able to use
string_view at all.
2021-06-24 14:53:05 +01:00
Vadim Zeitlin
3d7f9877fb Predefine __USE_W32_SOCKETS for Cygwin in allheaders test
This is required to avoid warnings (and worse, probably) due to
conflicting function declarations in the platform SDK and Cygwin headers
that have started happening since 8dfcb582da (Regenerate configure after
enabling IPv6 support by default, 2021-06-15).
2021-06-15 16:44:24 +01:00
Vadim Zeitlin
c0f2430ee4 Correct misleading comment in allheaders test
We don't use any HAVE_XXX here, but we do use wxUSE_XXX.
2021-06-15 14:50:37 +02:00
Vadim Zeitlin
0a166474f8 Don't include MSW headers in allheaders test
This extends the changes of e0005c1d93 (No longer include the system
headers first, 2021-04-22) to the platform-specific headers included for
Cygwin/MinGW wxMSW builds, as this shouldn't be necessary neither any
more (but doing it for wxQt is still needed, for the reasons explained
in the new comment added by this commit).

It also incidentally fixes a problem in Cygwin build since enabling IPv6
in 8dfcb582da (Regenerate configure after enabling IPv6 support by
default, 2021-06-15) as including unistd.h directly results in warnings
if wx/defs.h, which predefines __USE_W32_SOCKETS, hadn't been included
before.
2021-06-15 14:50:37 +02:00
Vadim Zeitlin
b17e7a7640 Merge branch 'aui-notebook-rtti'
Fix down-casting from wxAuiNotebook to wxBookCtrlBase.

See https://github.com/wxWidgets/wxWidgets/pull/2388
2021-06-10 01:02:01 +02:00
Vadim Zeitlin
9324c7bfdd Fix sending wxEVT_GRID_RANGE_SELECTED from Select{All,Col,Row}()
This was broken in to 682cb8355c (Replace "sendEvent" parameter in
wxGridSelection with "eventType", 2020-08-21) which changed Select() to
take wxEventType argument but still passed it "true" in a few places.

Fix this and add a unit test verifying that this works as expected.

Ideal would, of course, be to avoid implicit conversions from bool to
wxEventType but making wxEventType anything other than int, for which
such conversions are unavoidable, is too backwards-incompatible to
seriously consider.
2021-06-09 16:09:55 +02:00
Vadim Zeitlin
894861becb Fix wxRTTI for wxAuiNotebook by deriving it from wxBookCtrlBase
Otherwise wxDynamicCast-ing wxAuiNotebook to wxBookCtrlBase didn't work
(even if the more usual and useful upcast did still work).

Add a unit test for this.
2021-06-08 22:40:29 +02:00
Vadim Zeitlin
fbe12789f6 Refactor wxAuiNotebook unit test to use a test fixture
No real changes, this will just make adding more tests using
wxAuiNotebook simpler.
2021-06-08 22:40:03 +02:00
Vadim Zeitlin
f16b502f66 Forward key down/up events from wxCompositeWindow children too
There doesn't seem to be any reason to only forward CHAR events, but not
KEY_{DOWN,UP} ones, so do the same thing for the latter ones too.

This allows to get rid of GetMainWindow() call in wxDataViewCtrl unit
tests, as wxEVT_KEY_DOWN are now correctly received in the control
itself and not just its main window.
2021-05-24 14:24:24 +01:00
Vadim Zeitlin
3e70842775 Test that we get key events from wxDataViewCtrl
This test passes in wxGTK after the previous commit changes.
2021-05-24 14:43:05 +02:00
Vadim Zeitlin
0b20b97704 Merge branch 'spinctrl-digits'
Improve setting the number of digits in wxSpinCtrlDouble and make it
consistent on all platforms.

See https://github.com/wxWidgets/wxWidgets/pull/2348

Closes #17085.
2021-05-22 21:25:32 +01:00
Vadim Zeitlin
0585c96a3b Restore wxObject::ms_classInfo public access
This undoes accidental change of ms_classInfo from public to protected
in 95c98a0b5f (Work around -Wuggest-override for event table macros from
gcc 11, 2021-04-25).

Also add a unit test checking that using wxCLASSINFO(wxObject) compiles
and works as expected.
2021-05-04 23:14:41 +02:00
PB
da581ccc1a Remove BCC makefiles (again)
All BCC makefiles were removed as a part of "Remove support for Borland
C++ compiler" PR; however, a few of them sneaked back as a part of the
newly introduced wxWebRequest.

Remove them for good.
2021-05-01 18:40:38 +02:00
Tomay
0e39566b3a Add wxImage Change{Saturation,Brightness,HSV,Lightness}()
Add more functions for manipulating wxImage colours.

Show using them in the same and add new unit tests for them.

This is a squashed commit of branch 'tomay3000/image-lightness'.

Closes https://github.com/wxWidgets/wxWidgets/pull/2310
2021-05-01 14:03:04 +02:00
Vadim Zeitlin
8b854d2f92 Remove MSVC 7 project files and support for generating them
This compiler is not supported any longer.
2021-04-26 16:24:02 +02:00
Vadim Zeitlin
84bcc109ad Merge branch 'cxx20-warning-fixes'
Build fixes for gcc 11 and clang 12, including in C++ 20 mode.

See https://github.com/wxWidgets/wxWidgets/pull/2347
2021-04-26 16:10:33 +02:00
Vadim Zeitlin
86d1a25624 Merge branch 'winsock-2'
Use WinSock 2 rather than 1.1 by default and also enable IPv6 support,
requiring WinSock 2, by default now that it can be done.

See https://github.com/wxWidgets/wxWidgets/pull/2335

Closes #15562.
2021-04-26 15:07:13 +01:00
Vadim Zeitlin
95c98a0b5f Work around -Wuggest-override for event table macros from gcc 11
Disabling -Wsuggest-override inside macros is broken in gcc, see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578, and has started
affecting wxWARNING_SUPPRESS_MISSING_OVERRIDE since gcc 11, i.e. this
macro doesn't have any effect any more and the warning is still given.

Avoid it by actually specifying "override" for gcc 11 (as doing it for
all compilers would result in -Winconsistent-missing-override from
clang) and check that we don't get this warning in the allheaders test.

Also don't use wxDECLARE_ABSTRACT_CLASS() inside wxObject itself, now
that it uses "override", which is not appropriate for the base class
version. This is arguably more clear and should have been done like this
since the beginning anyhow.
2021-04-26 11:55:33 +02:00
Vadim Zeitlin
6c9c0ba02b Determine number of digits correctly when increment > 1
Using increment greater than 1 but with a fractional part should still
work, i.e. should use enough digits to fully show the fractional part of
the numbers that can be obtained by using this increment.
2021-04-25 20:00:31 +01:00
Vadim Zeitlin
0153a6673e Don't decrease the number of digits implicitly
wxSpinCtrlDouble::SetIncrement() should increase the number of digits if
necessary because not doing it would be inconsistent with the initial
determination of the number of digits in the ctor and would actually
lose the digits displayed, but it seems unnecessary to decrease the
number of digits and it might be surprising, so don't do it.

Add a test for this behaviour and document it.
2021-04-25 19:54:27 +01:00
Vadim Zeitlin
6938d91942 Update number of digits in wxSpinCtrlDouble::SetIncrement()
This is consistent with using the value of the increment specified in
the ctor for setting the initial number of digits, it was surprising
that creating the control with some value of the increment (e.g. 0.1)
and calling SetIncrement(0.1) later resulted in very different outcomes,
as in the former case the value was shown with a digit after the period
while in the latter case only the integer part was shown.

This also makes the behaviour compatible with that of the previous
versions of the generic wxSpinCtrlDouble, which used "%g" to format the
number before the changes of edc553870f (Fix displaying wxSpinCtrlDouble
values with default precision, 2020-05-18), as they did show the
fractional part even in the latter case.

Add a test checking that this works as expected: before this commit, the
test failed with "1 == 1.2" and "1 == 1.23" errors.
2021-04-25 19:45:34 +01:00
Vadim Zeitlin
c177e006fc Use wxScopedPtr instead of manual delete in wxSpinCtrlDouble test
No real changes.
2021-04-25 16:45:39 +01:00
Vadim Zeitlin
8fc2d44004 Don't generate events from wxMSW wxSpinCtrl::SetValue(wxString)
The function was documented to not generate the events, but actually
did generate wxEVT_TEXT ones, even if it didn't generate wxEVT_SPINCTRL.

This was inconsistent with wxGTK and generic wxSpinCtrlDouble used under
MSW, so change this to avoid the unwanted events.
2021-04-23 22:30:59 +01:00
Vadim Zeitlin
35fa1f93bc Reset wxSpinCtrl value to GetMin() if text string is invalid
Previously, wxSpinCtrl (using native control) and wxSpinCtrlDouble
(using the generic implementation) behaved differently in this case,
with the former changing its value but the latter keeping the last valid
value instead.

Make them behave the same by resetting the value in both cases and
document this behaviour.
2021-04-23 22:27:28 +01:00
Vadim Zeitlin
c67e689bb5 Fix left over control in wxSpinCtrlDouble unit tests
Fix the bug introduced in the recent 34ab87ce4d (Get rid of CppUnit
boilerplate in wxSpinCtrlDouble unit test, 2021-04-19) which resulted in
failures in the subsequent unit tests and ensure that the spin control
is destroyed at the end of the test.
2021-04-23 21:45:35 +02:00
Vadim Zeitlin
3fc404372f Temporarily disable failing wxSpinCtrl unit test
wxSpinCtrl::GetValue() behaviour after calling SetValue("") is currently
inconsistent between wxMSW and wxGTK, or even between wxSpinCtrl and
wxSpinCtrlDouble in wxMSW.

Disable the recently added test checking it for now.
2021-04-23 17:28:34 +02:00
Vadim Zeitlin
c89a8f973c Merge branch 'im/stdheaders' of https://github.com/imciner2/wxWidgets
Don't enable warnings in the system headers during all headers test.

See https://github.com/wxWidgets/wxWidgets/pull/2342
2021-04-23 00:04:21 +02:00
Vadim Zeitlin
87fddbdbdb Merge branch 'spinctrl-gettextvalue'
Add wxSpinCtrl::GetTextValue() and allow clearing the text value in
wxGTK version for compatibility with MSW.

See https://github.com/wxWidgets/wxWidgets/pull/2334
2021-04-22 23:55:30 +02:00
Ian McInerney
e0005c1d93 No longer include the system headers first
With the Wsystem-headers warning removed, these are no longer needed
and can instead be included on first-use again.
2021-04-22 19:23:48 +01:00
Ian McInerney
b47189b945 Don't enable warnings in the system headers during all headers test
This warning flag is really only used for stdlib debugging/writing,
and is off by default so that normal users of the library don't see
any warnings generated by the library (since they have no control
over it).
2021-04-22 19:22:32 +01:00
Vadim Zeitlin
ca0cf3ea59 Allow using a different text value in wxGTK wxSpinCtrl
Make it possible to use a string value different from the numeric value,
as wxMSW version allows this and some existing code depends on it.

Closes #19140.
2021-04-20 22:23:14 +02:00
Vadim Zeitlin
bf5235e01c Merge branch 'explicit-image-from-xpm'
Make wxImage ctor from XPM data explicit to avoid surprising behaviour.

See https://github.com/wxWidgets/wxWidgets/pull/2332

Closes #19149.
2021-04-20 00:21:16 +01:00