Commit Graph

63420 Commits

Author SHA1 Message Date
Vadim Zeitlin
cf02d15646 Merge branch 'appveyor-tests'
Fix several problems in tests under MSW (mostly with MinGW) and enable
building and running them on AppVeyor CI.
2017-11-25 19:18:14 +01:00
Paul Cornett
003faa993e Use CSS for window font and colors on GTK3
Avoids deprecated gtk_widget_override_* functions
2017-11-25 10:13:34 -08:00
Vadim Zeitlin
b29aa3f785 Run unit tests on AppVeyor too
Launch the tests after building them.
2017-11-25 17:30:51 +01:00
Vadim Zeitlin
f10bd1279d Remove the correct directory from PATH for MinGW AppVeyor builds
We need to remove the directory containing sh.exe from the PATH as
otherwise mingw32-make seems to use it and not cmd.exe for executing the
commands in the makefile, but the wrong directory was being removed in
appveyor.yml, having no effect.

Fix this and undo 5f2ccde269 which
compensated for it by (almost) clearing the PATH entirely which, in
turn, broke one of our unit tests (and could break other things in the
future, as having an empty PATH is rather unexpected).

Also use the full path for head program now that its directory is not in
the PATH any more. Alternative could be to use PowerShell, but while

powershell -Command "'gcc','mingw32-make','ar'|%%{ iex \"$_ --version\"|select -first 1 }"

does work, it looks really ugly, so avoid it for now.

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

See #17274.
2017-11-25 17:28:42 +01:00
Vadim Zeitlin
4e4617a9e6 Show value if comparison fails in VarArgTestCase
Use string comparison instead of wxStrcmp() to view the actual value of
the string if it doesn't have the expected value.
2017-11-25 17:28:42 +01:00
Vadim Zeitlin
01cd702ee3 Test for wxXLocale availability directly in the unit test
Apparently a locale can be available at MSW level, so that
wxLocale::IsAvailable() returns true, but not supported by the MSVC CRT,
so that constructing the corresponding wxXLocale fails, which resulted
in wxXLocale unit test failures.

Fix them by checking that wxXLocale can be constructed directly instead
of using wxLocale::IsAvailable() as a proxy.

This is not ideal and perhaps wxLocale::IsAvailable() should check that
the locale is supported in wxXLocale too, but should at least allow unit
tests to pass on AppVeyor for now.
2017-11-25 17:28:42 +01:00
Vadim Zeitlin
62f9438ad3 Rewrite wxPathList unit test without CppUnit-compatible API
Simplify the test by using a single function instead of all the
machinery inherited from CppUnit.

Also provide more information in case of test failure.
2017-11-25 16:08:01 +01:00
Vadim Zeitlin
b630abffd2 Fix FormatConverterTestCase for MinGW and Cygwin
Standard/Unix format strings are intentionally used when using these
compilers/environments (see d62c535d4c for
the former), so don't check for Windows/MSVC format strings in the test.
2017-11-25 11:13:02 +01:00
Vadim Zeitlin
471a771382 Fix built-in wxPrintf() for repeated positional parameters
Allow wxPrintf("%1$s %1$s", "foo") to work.

Take into account the possibility that the number of format specifiers
and the number of actual arguments can be different.

Closes #9367.
2017-11-25 11:13:02 +01:00
Vadim Zeitlin
dd8155980b Enable building the unit tests for x64 in MSVS solutions
For some reason (but probably accidentally), building tests was disabled
for x64 platform.
2017-11-25 11:13:02 +01:00
Vadim Zeitlin
3508e3a623 Disable test for clicking URLs under AppVeyor
It fails, for whatever reason, even though it passes locally and other
tests using wxUIActionSimulator work under AppVeyor too.
2017-11-25 11:13:02 +01:00
Vadim Zeitlin
753aa757a4 Recognize AppVeyor CI environment in unit tests
Check for APPVEYOR environment variable in addition to TRAVIS one.
2017-11-25 11:13:02 +01:00
Vadim Zeitlin
0c29775d4d Skip wxTopLevelWindow showing/activation tests in CI builds
It doesn't seem to work when run unattended, for whatever reason.
2017-11-25 11:13:02 +01:00
Vadim Zeitlin
838a687d94 Document wxComboBox::SetValue() better in wxCB_READONLY case
Make it clear that the control doesn't send wxEVT_TEXT event in this
case.
2017-11-25 10:47:50 +01:00
Vadim Zeitlin
075ebbe12a Skip AppVeyor CI builds on documentation-only changes
There is no need to rebuild everything if only the documentation files
have changed.

Unfortunately there doesn't seem to be any way to do the same thing for
Travis CI yet, see https://github.com/travis-ci/travis-ci/issues/6301
2017-11-25 10:47:50 +01:00
Vadim Zeitlin
a065e98a22 Regenerate configure after recent files additions
Fix undefined variable in the makefile.
2017-11-25 00:32:55 +01:00
Vadim Zeitlin
7130b4c611 No real changes, just regenerate autoconf_inc.m4 from scratch
Get rid of outdated references in this file.
2017-11-25 00:28:29 +01:00
Vadim Zeitlin
99db923c2c Add more missing generic headers to wxQt headers list
See f5cdda7b8b (commitcomment-25822547)
2017-11-25 00:25:14 +01:00
Vadim Zeitlin
53bf5936f1 Rename QT_LOWLEVEL_{HDR,SRC} to just QT_{HDR,SRC}
These file lists contained files that were not low level (meaning "used
by wxQt/Univ" in this context) at all and it doesn't make much sense to
think about Qt-based wxUniv port anyhow, so instead of painstakingly
separating them in low level part and the rest, just rename the
variables to be less confusing.
2017-11-25 00:12:38 +01:00
Vadim Zeitlin
472bb3d6d2 Fix wxUSE_PRIVATE_FONTS definition in configure
Only define it unconditionally for wxMSW and wxOSX, not wxGTK where we
need to test that the required versions of FontConfig and Pango Fc are
available.

Also do all wxUSE_PRIVATE_FONTS-related checks in the same place, to
make things more clear and avoid similar blunders in the future.
2017-11-25 00:07:01 +01:00
Vadim Zeitlin
19c4172671 Correct example of using wxDataObjectComposite in the docs
Don't call base class pure virtual method, but do call GetData() before
using the data object. Also fix a typo in a variable name.
2017-11-24 23:10:47 +01:00
Vadim Zeitlin
778340a286 Merge branch 'private-fonts'
Add support for using application-private fonts.

Closes #13568.

Closes https://github.com/wxWidgets/wxWidgets/pull/591
2017-11-24 22:58:09 +01:00
Vadim Zeitlin
b040dab0ca Add wxUSE_PRIVATE_FONTS and drop wxHAS_PRIVATE_FONTS
Handle this feature as all the other ones and provide a configure switch
and a setup.h option to disable it if necessary, as it may be desirable
to do it, especially under Linux, to avoid extra dependency on pangoft2
if this functionality is unnecessary.
2017-11-24 22:56:17 +01:00
Vadim Zeitlin
ba5a203105 Rewrite TLW unit test as a single function
Get rid of the unnecessary test case class.

No real changes yet.
2017-11-24 22:55:11 +01:00
Vadim Zeitlin
a68cb585cd Consistently use "unsigned" and "%u" in font unit test
Don't mix "size_t" and "unsigned" and don't use "%lu" for printing
"size_t" values as this doesn't work under Win64 where sizeof(size_t) is
8 while sizeof(unsigned long) is still just 4.
2017-11-24 22:55:11 +01:00
Vadim Zeitlin
bc100ff31e Build tests under AppVeyor too 2017-11-24 22:55:11 +01:00
Vadim Zeitlin
a50541795c Compilation fix for VsnprintfTestCase with Catch
Rewrite an assert using "||" as 2 asserts to allow it compile with Catch
(this wasn't detected before as this code is only compiled when using
our own vsnprintf() implementation, which is usually not the case).
2017-11-24 22:55:11 +01:00
PB
a04782238d Update version in the examples used in docs/msw/install.txt
Update the version number contained in the library file names to 3.1, e.g.,
from "wxmsw30ud_core.lib" to "wxmsw31ud_core.lib".
2017-11-23 18:15:04 +01:00
Vadim Zeitlin
166f754973 Fix comparison of size_t values with -1 in base 64 unit test
This doesn't work correctly in Catch after reverting the commit that
broke compilation with MSVC 9, so we have to live with explicitly using
the values of the correct type.
2017-11-23 02:02:19 +01:00
Maarten
bb9cd7a912 Fix rescaling image with wxIMAGE_QUALITY_BOX_AVERAGE
Work around rounding errors caused by using doubles.

Update reference images.

Closes https://github.com/wxWidgets/wxWidgets/pull/615
2017-11-23 00:36:46 +01:00
Jake Nelson
a8671869e5 Fix wxButton::SetBitmapPosition() with GTK+ 3
Make the check for GTK+ >= 2.10 pass for GTK+ 3 too by simply not making
it in this case.

Closes #18004.
2017-11-22 23:23:42 +01:00
Vadim Zeitlin
0b8c4d54a8 Don't run FTP unit test by default any longer
ftp.wxwidgets.org seems to have gone, breaking the existing test (thanks
chris for all the fish...), so don't hardcode this URL in the test and,
without it, don't run the test by default any more and require
specifying a working FTP host (as well as an existing directory and a
file on it) when running it manually.

Rewrite the test using normal functions instead of Java-like structure
imposed by CppUnit to make it simple to skip it.
2017-11-22 22:48:05 +01:00
René J.V. Bertin
10201c2732 Add support for stock menu items to wxQt
Sets the new QAction's text and shortcut properties to the
values provided by the corresponding wxGetStockXXX() functions.

Closes https://github.com/wxWidgets/wxWidgets/pull/613
2017-11-22 22:08:07 +01:00
Vadim Zeitlin
04209e3a3e Remove GetStandardCmdLineOptions() from wxGTK
Unfortunately there is no reasonable way to implement this function for all
glibc versions as the information we need is stored in the private
_GOptionGroup struct whose layout has already changed once (in 2.44) and could
change again, so we can't rely on it.

We really need a g_option_group_get_entries() in glib itself, but the request
to add it at http://bugzilla.gnome.org/show_bug.cgi?id=431021 hasn't been
touched since 10 years, so it seems unlikely to happen.

See 99367a1530 (commitcomment-25789514)
2017-11-22 22:02:36 +01:00
Vadim Zeitlin
f5cdda7b8b Add missing qt/nonownedwnd.h to the list of headers
Also add the previously added src/qt/nonownedwnd.cpp to the master files
list.
2017-11-22 21:49:56 +01:00
Vadim Zeitlin
e82cdf4a1e Merge branch 'travis-gtk3'
Test wxGTK3 on Travis too.
2017-11-22 12:57:24 +01:00
Paul Cornett
135e3875e2 Hide wxSpinButton's underlying GtkEntry using CSS on GTK+ >= 3.20 2017-11-21 22:05:08 -08:00
Vadim Zeitlin
2ee40f8a60 Add a build using GTK+ 3 to Travis
We need to test both wxGTK2 and wxGTK3 builds.
2017-11-22 02:33:53 +01:00
Vadim Zeitlin
38e441bdd8 Don't install libcppunit-dev under Travis CI any more
It is not needed since the switch to Catch for unit tests.
2017-11-22 02:31:47 +01:00
Vadim Zeitlin
f7d9098f1f Fix building wxVector unit tests in STL build without C++11
There is no shrink_to_fit() in wxVector in this case.

Arguably, we shouldn't be building wxVector unit tests in STL build at
all as there is no point in testing the standard class, but OTOH it
could be useful for checking that the tests themselves are correct, so
keep them for now.
2017-11-21 14:44:06 +01:00
Vadim Zeitlin
4ccda3959e Show more information for wxImage::Scale() unit test failures
Output the maximal difference between the differing images pixels to
show just how far are they from each other, exactly. And show the image
file name as well, for convenience.

Also run all checks instead of stopping after the first failing one.
2017-11-21 14:27:29 +01:00
Vadim Zeitlin
c3dee8b0bc Merge branch 'vector-enhancements'
Make wxVector<> more compatible with std::vector<>.
2017-11-21 13:50:26 +01:00
Lauri Nurmi
f2a5fd303b Declare wxInvalidSize also in wx/dir.h
wxInvalidSize is a documented return value for wxDir::GetTotalSize(),
yet it was not available by including just wx/dir.h as it was declared
in wx/filename.h only.

Fix this by declaring it in wx/dir.h too.

Closes https://github.com/wxWidgets/wxWidgets/pull/609
2017-11-21 13:49:21 +01:00
Artur Wieczorek
1033a1636d Process HDN_ITEMCHANGING notifications only when column is being resized
When column resizing is finished, after HDN_ENDTRACK notification there is
also sent one (and last) HDN_ITEMCHANGING notification. We have to skip it
to prevent from sending EVT_HEADER_RESIZING after EVT_HEADER_END_RESIZE
because EVT_HEADER_END_RESIZE should be really the last one event
in the sequence of resizing events (like it's assumed in wxGrid).

Closes #16390.
2017-11-20 21:57:05 +01:00
Vadim Zeitlin
8f9c4470d7 Merge branch 'arrays-alloc-optimise'
Reduce the number of memory allocations in wxArrayString and wxVector.
2017-11-19 23:13:43 +01:00
Vadim Zeitlin
7ba4832c0f Merge branch 'sound-async-unix'
Minor fixes to Unix wxSound implementation, including async API and OSS
backend tweaks.
2017-11-19 22:59:14 +01:00
Vadim Zeitlin
3590273503 Document that osspd requirement for using OSS under Linux
Without SDL, wxSound doesn't work out of the box on most (all?)
contemporary Linux systems, so at least document this.

See #14899.
2017-11-19 22:51:51 +01:00
Vadim Zeitlin
2558c91ae8 Don't fail to okay all mono WAVs in OSS wxSound backend
Ever since the changes of 544c4a3bde
(almost 14 years ago), playing mono WAVs with wxSound completely failed
if setting the sound device to mono using SNDCTL_DSP_STEREO ioctl
failed. This doesn't look like a wise thing to do, so don't consider
this as a fatal failure, but just play mono as stereo (and even possibly
stereo as mono) instead.

This fixes the sound sample being broken out of the box on many (all?)
Linux systems.
2017-11-19 22:44:57 +01:00
Vadim Zeitlin
d788588cfc Use wxMutexLocker instead of manual Lock/Unlock() calls
This is safer and also makes the code simpler and shorter.
2017-11-19 22:37:36 +01:00
Vadim Zeitlin
6c1a557a0f Lock and unlock mutex in both wxSound threads using it
The code was completely broken as it locked the mutex in only one thread
and then tried to unlock it in another one, which made no sense, didn't
protect against anything and resulted in errors and assert failures.

Fix this by locking and unlocking the mutex in both threads before
accessing shared data or playing sound.

Closes #17990.
2017-11-19 22:37:36 +01:00