Commit Graph

5354 Commits

Author SHA1 Message Date
Václav Slavík
560a81b913 wxDVC: Don't calculate hidden columns' widths
Don't call wxDataViewColumn::GetWidth() in OnPaint() for columns that
are hidden: they won't be drawn and their width won't affect anything.
The call looks deceptively simple, but may invoke best width
recalculation that can be very expensive on large models.
2019-05-10 18:18:20 +02:00
Vadim Zeitlin
02adddfa1a Merge branch 'wxlistctrl-virtual-checkboxes' of https://github.com/MaartenBent/wxWidgets
Add support for checkboxes to virtual wxListCtrl too.

See https://github.com/wxWidgets/wxWidgets/pull/1315
2019-05-10 01:39:33 +02:00
Vadim Zeitlin
998097b3a4 Merge branch 'col-dialog-current'
Add events for current colour change in wxColourDialog and
wxColourPickerCtrl.

See https://github.com/wxWidgets/wxWidgets/pull/1301
2019-05-10 01:31:18 +02:00
Maarten Bent
c20060745f Support checkboxes in virtual wxListCtrl 2019-05-05 14:25:06 +02:00
Maarten Bent
ceaf2aa803 Move virtual stub functions to wxListCtrlBase 2019-05-05 14:23:44 +02:00
Vadim Zeitlin
5488a1438f Globally replace vadim@wxwindows.org with vadim@wxwidgets.org
The old email address is invalid since many years and shouldn't be used
any longer.

No real changes.
2019-04-22 14:12:05 +02:00
Vadim Zeitlin
807d95e07d Add wxEVT_COLOURPICKER_CURRENT_CHANGED and DIALOG_CANCELLED events
Send events from generic wxColourPickerCtrl when the currently selected
colour in the dialog shown by it changes and when this dialog is
cancelled.

Notice that currently this only works on wxMSW as it relies on
wxEVT_COLOUR_CHANGED support in wxColourDialog which is only available
there.

Based on work of Trylz, see https://github.com/wxWidgets/wxWidgets/pull/1219
2019-04-21 01:53:14 +02:00
Vadim Zeitlin
5b7114b4d7 Send correct event directly from wxGenericColourButton
Instead of sending wxEVT_COLOURPICKER_CHANGED event from the button
itself and then catching it in wxColourPickerCtrl and resending an event
from the control from there, just send the event originating from the
correct object directly.

This allows to slightly simplify the code and will be especially useful
for other events, to be added in the upcoming commits, to avoid having
to write the same forwarding code for all of them.
2019-04-21 01:53:14 +02:00
Paul Cornett
fe1737d399 Reduce the scope of some local variables 2019-04-05 10:44:02 -07:00
Paul Cornett
90ce6a4334 Remove unused variables 2019-04-04 10:40:45 -07:00
Vadim Zeitlin
82290bfd10 Merge branch 'donovan6000_wxdataviewitem_fix' of https://github.com/donovan6000/wxWidgets
Render disabled items as greyed out in wxDataViewCtrl.

See https://github.com/wxWidgets/wxWidgets/pull/1277
2019-03-26 15:05:59 +01:00
donovan6000
7cd48f7db1 Fixes how disabled wxDataViewToggle columns are displayed when control is disabled 2019-03-25 18:02:41 -07:00
oneeyeman1
a9a0305758 Do nothing in wxGrid::SetCellValue() if value doesn't change
This is a minor optimization and can significantly reduce flicker in a
not uncommon case when SetCellValue() is used to refresh all or many of
the grid cells if only few of them actually change.

See #9717.

Closes https://github.com/wxWidgets/wxWidgets/pull/1276
2019-03-25 11:51:20 +01:00
Vadim Zeitlin
fc4242a906 Add a hack to allow building wxGTK without RTTI
Add a not really used, but required default ctor to fix compilation
without RTTI.

Closes #18364.
2019-03-19 02:25:44 +01:00
Ilya Sinitsyn
324c58d9e2 Do not set focus to the window when its rich tooltip is shown
Don't set the focus to the window the rich tooltip refers to in its
ShowFor() method because this was inconsistent with plain tooltips and
also could result in infinite recursion if the window decided to show
its tooltip when it got focus.

Closes https://github.com/wxWidgets/wxWidgets/pull/1265
2019-03-18 18:25:09 +01:00
Vadim Zeitlin
2531780c3b Avoid division by 0 in generic wxDataViewCtrl scrolling code
Apparently, ScrollTo() can be called when processing keyboard input in
the control before its initial resize and hence before scrolling is
initialized and in this case per-unit scroll units are still 0, so
dividing by them is not a good idea.

Just avoid scrolling in this case.

Closes https://github.com/wxWidgets/wxWidgets/pull/1262
2019-03-18 18:18:47 +01:00
Paul Cornett
393d2c61a7 Fix -Wreorder warning 2019-02-25 23:52:53 -08:00
Paul Cornett
1e753f97ba Remove initializations which are the default value 2019-02-25 10:49:04 -08:00
Paul Cornett
7c3ce912e0 Use ctor-initializer rather than assignment for non-POD class members 2019-02-25 10:23:35 -08:00
Paul Cornett
b5028f267d Remove unused variables, unused assignments 2019-02-25 09:12:43 -08:00
Pavel Kalugin
be12bc6a8a Fix selection in generic wxDataViewCtrl after adding an item
Notify m_selection about the new item in all cases, not just when using
a virtual list model.

This was broken back in 36a5983f64 and
only fixed for virtual list controls, but not all the other ones, in
9f5af0a494.
2019-02-15 14:39:13 +01:00
Jouk
cbbb9a28d9 Add src/generic/rowheightcache.cpp to the OpenVMS makefiles for compilation 2019-02-01 13:41:25 +01:00
Tomay
10eeb0b262 Improve drawing buttons in generic wxSearchCtrl
Several fixes:
* Clear the buttons background, which can be important if their (custom)
  bitmap is transparent.
* Only add margin before/after the corresponding button if it is
  actually visible.
* Select the bitmap out of wxMemoryDC before modifying it.
* Don't assume that the "Cancel" button is always square.

Closes https://github.com/wxWidgets/wxWidgets/pull/1142
2019-01-28 01:15:05 +01:00
Artur Wieczorek
3000091cd2 Allow columns reordering only if its wxCOL_REORDERABLE flag is set
Dragging the column should be allowed only if wxHD_ALLOW_REORDER header
style and wxCOL_REORDERABLE column flag are both set.

Closes #18332.
2019-01-20 13:22:03 +01:00
Artur Wieczorek
715b25aaf3 Allow columns reordering only if wxHD_ALLOW_REORDER style is set
Dragging the column should be allowed only if wxHD_ALLOW_REORDER style
is set.

Closes #18329.
2019-01-17 23:37:49 +01:00
Jay Nabonne
1d117b75f7 Add wxGraphicsContext implementation for wxQt
Add graphics renderer using Qt classes and use it by default in wxQt
port under MSW.

Closes https://github.com/wxWidgets/wxWidgets/pull/1139
2019-01-17 00:50:47 +01:00
Vadim Zeitlin
f09b3de914 Restore drawing item focus rectangle in generic wxDataViewCtrl
The current, but not selected, item was not visually marked in any way
since the changes of 4ac0250f90 which
replaced the calls to wxRendererNative::DrawFocusRect() with the calls
to DrawItemSelectionRect() which is not called when the item is not
selected.

Restore DrawFocusRect() call in this case and also pass
wxCONTROL_FOCUSED to DrawItemSelectionRect() even though this doesn't
seem to change much in practice.

Closes https://github.com/wxWidgets/wxWidgets/pull/1089

Closes #18304.
2019-01-16 01:29:23 +01:00
Vadim Zeitlin
288d26598c Merge branch 'dvc-var-height'
Optimize generic wxDataViewCtrl performance with variable line heights.

Closes https://github.com/wxWidgets/wxWidgets/pull/1053
2019-01-16 01:25:06 +01:00
Václav Slavík
488cbb7848 Fix flicker when reducing wxDVC width
After 841c14c37c, reducing width of a
generic wxDataViewCtrl caused flickering (horizontal scrollbar
appearing and disappearing immediately) when the columns were resized
by user code to fix exactly.

Fixed by calling AdjustScrollbars() after determining column sizes. It
doesn’t make sense to call it before, because UpdateColumnSizes() may
change required width.

See #18295.
2019-01-10 14:25:11 +01:00
Václav Slavík
7a45b7948a Move the hack for Cmd+C in wxOSX to a better place
"&Cancel" is an unfortunate label for wxID_CANCEL buttons on Macs,
because it makes Cmd+C a shortcut for the button, which in turn makes
any attempt to copy text from a text control instead abruptly close the
dialog.

There were partial hacks around it in some places made by 22bcdf0, but
it didn't even cover all uses within wx code itself, let alone user
code. Move the hack into wxButton to catch all uses of this and remove
the accelerator as the lesser evil.
2019-01-10 13:55:20 +01:00
Jens Göpfert
a8d89b9ced fixed memory leak 2019-01-08 00:12:51 +01:00
Jens Göpfert
8c64209df1 ensure m_rowHeightCache is not NULL before accessing it 2019-01-08 00:12:26 +01:00
ali kettab
36f6f8ad49 wxTextValidator improvements
Improve char inclusion/exclusion support; update the sample to show more
features of this class and add a unit test for it.

Closes https://github.com/wxWidgets/wxWidgets/pull/1093
2019-01-05 23:33:35 +01:00
Artur Wieczorek
3cfec773c9 Replace wxArrayPtrVoid with wxVector<void*> 2019-01-04 21:37:27 +01:00
Pavel Kalugin
659ab78c6d Add support for editing dates (without time) to wxGrid
Add wxGridCellDateRenderer and wxGridCellDateRenderer which can be used
for the grid cells containing only dates, without times.

Also add wxGrid::SetColFormatDate() convenience function.

Refactor wxGridCellDateTimeRenderer slightly to reuse its code.

Closes https://github.com/wxWidgets/wxWidgets/pull/1101
2019-01-04 14:14:01 +01:00
Vadim Zeitlin
7f63adde95 Merge branch 'select-after-delete'
Harmonize behaviour of wxItemContainer::Delete() for all controls and
ports when using single selection.

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

Closes #18267.
2019-01-04 14:01:02 +01:00
dghart
2cf0fcb4fd Allow setting wxTimePickerCtrlGeneric from numpad keys too
Previously the generic wxTimePickerCtrl ignored numerical numpad keypresses.
2019-01-03 22:58:14 -08:00
Pavel Pimenov
9c77e0b2a5 Remove unused variables
This fixes PVS Studio static analyzer warnings:

V808 'errMsg' object of 'wxString' type was created but was not utilized. docview.cpp 1182
V808 'search' object of 'wxString' type was created but was not utilized. dirctrlg.cpp 697
V808 'filename' object of 'wxString' type was created but was not utilized. dirctrlg.cpp 697

(see full report at http://www.fly-server.ru/pvs-studio/wxWidgets-core/)

Closes https://github.com/wxWidgets/wxWidgets/pull/1096
2018-12-21 17:45:26 +01:00
Vadim Zeitlin
9877f207d1 Merge branch 'dvc-last-col-resize'
Improve resizing of the last column in generic wxDataViewCtrl.

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

Closes #18295.
2018-12-20 18:57:48 +01:00
Vadim Zeitlin
b2cdd287bb Resolve change log conflict with master
Reapply the change log change manually to master version of the file to
let the CI builds merge this branch automatically.
2018-12-20 02:24:49 +01:00
Vadim Zeitlin
c922c95c96 Fix the just introduced signed/unsigned comparison warning
Cast to unsigned before comparing with an unsigned variable.
2018-12-20 02:21:53 +01:00
jensgoe
12edcbccc8 clear height cache if model is cleared 2018-12-19 20:45:32 +01:00
jensgoe
7ab9e992b6 ensure row >= GetRowCount() if GetLineAt reaches invalid item
refactored method structure for better readability
2018-12-19 20:45:00 +01:00
Graham Dawes
b0eca3bdde Fix some more uninitialised wxCairoContext fields in wxQt
Closes https://github.com/wxWidgets/wxWidgets/pull/1084
2018-12-17 17:46:38 +01:00
Vadim Zeitlin
c8d2195791 Make wxSimpleHtmlListBox::Delete() consistent with wxListBox
Also remove the selection when deleting the selected item, or any item
before it, in this class, for consistency with the native wxListBox.
2018-12-15 23:45:19 +01:00
Vadim Zeitlin
8856715d2d Use wxVector instead of wxList for wxDataViewCtrl columns storage
As wxDataViewColumnList was never public, it should be fine to not
define it any more and use a vector instead.

This makes the code more clear and also marginally more efficient.
2018-12-15 14:43:47 +01:00
Vadim Zeitlin
2340a16d18 Allow increasing the size of the last column in wxDataViewCtrl
Previously, the last column couldn't be effectively resized at all, as
its size was always automatically set to the remaining width of the
window after subtracting the widths of all the previous columns. Now
this is only done if this remaining width is greater than the width
given to the column by the user or by the program.

Effectively, this means that the user can now drag-resize the column to
increase its size (at the price of showing the horizontal scrollbar).

See #18295.
2018-12-15 14:27:52 +01:00
Graham Dawes
8fa32a40a9 Fix m_qtPainter not being initialised in wxCairoContext ctor
For some reason one of the overloads of the c'tor left the m_qtPainter
field set to NULL rather than asking the wxDC for it's painter.

The rest of the class assumes the painter is not NULL.

Closes https://github.com/wxWidgets/wxWidgets/pull/1075
2018-12-14 17:41:55 +01:00
Vadim Zeitlin
68bb67c009 Revert "Prevent the user from resizing the last wxDataViewCtrl column"
This reverts commit 24054c95d8 as it
actually should be possible to increase the size of the last column,
even if this shows the horizontal scroll bar.
2018-12-13 23:46:25 +01:00
Vadim Zeitlin
24054c95d8 Prevent the user from resizing the last wxDataViewCtrl column
This is useless as this column will be automatically expanded to fill
all the available space anyhow.

See #18295.
2018-12-13 23:42:15 +01:00