[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master b3ac65b 43/46: Allow wxGrid to compute census
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master b3ac65b 43/46: Allow wxGrid to compute census view column sizes more efficiently |
Date: |
Wed, 22 Jul 2020 11:05:17 -0400 (EDT) |
branch: master
commit b3ac65ba860bd5f30c4ce09bdd4abf283a2566f4
Author: Vadim Zeitlin <vadim@tt-solutions.com>
Commit: Vadim Zeitlin <vadim@tt-solutions.com>
Allow wxGrid to compute census view column sizes more efficiently
Override the recently introduced CanMeasureColUsingSameAttr() to
indicate that there is no need to re-query each row for its own
attribute when the same one can be used for measuring the widths of all
of them.
This results in significant speedup for the censuses with many rows
(more than 2x for the total time of switching to varying width columns
for ~4000 rows, for example).
---
census_view.cpp | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/census_view.cpp b/census_view.cpp
index ed4a953..0910b75 100644
--- a/census_view.cpp
+++ b/census_view.cpp
@@ -1502,6 +1502,8 @@ class CensusViewGridTable
wxString GetColLabelValue(int col) override;
+ bool CanMeasureColUsingSameAttr(int col) const override;
+
std::string const& col_name(int col) const;
Input& row_at(int row);
@@ -1611,6 +1613,15 @@ wxString CensusViewGridTable::GetColLabelValue(int col)
return insert_spaces_between_words(header);
}
+bool CensusViewGridTable::CanMeasureColUsingSameAttr(int) const
+{
+ // All our columns use the same type and practically the same attribute:
+ // only its background colour varies, but the colour doesn't matter for
+ // measuring, so we can always return true from here and allow wxGrid to
+ // reuse the same attribute for the entire column.
+ return true;
+}
+
bool CensusViewGridTable::AppendRows(size_t numRows)
{
auto grid = GetView();
- [lmi-commits] [lmi] master 4dcae52 34/46: Don't change default wxGrid lines colour, (continued)
- [lmi-commits] [lmi] master 4dcae52 34/46: Don't change default wxGrid lines colour, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 342b9f5 27/46: Always resize columns in CensusGridView::update_visible_columns(), Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master f217203 29/46: Rename "columns_count" to "old_columns_count" for consistency, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 395e268 41/46: Remove unnecessary calls to Update() when toggling autosize, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 713d56f 46/46: Fix defect introduced 20200608T2219Z: warning not suppressed, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 6281a6d 20/46: Make object returned by table_type_converter::get_impl() const, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master b85da3e 24/46: Clarify the comment about CensusViewDataViewModel wrappers, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 5423df7 25/46: Remove separate table_type_converter::type(), Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master f82b136 31/46: Remove unnecessary make_cell_number_column_read_only() function, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 9f1cb2e 39/46: Only auto-size columns when they change, not after each update, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master b3ac65b 43/46: Allow wxGrid to compute census view column sizes more efficiently,
Greg Chicares <=
- [lmi-commits] [lmi] master ece93a0 17/46: Make check for Alt-Enter more obvious in the code, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master b57ed4a 18/46: Remove deleted DatumSequenceEditor copy-related methods, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 041ccfc 30/46: Optimize changing grid columns number too, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 53a288a 33/46: Restore "delete_cells" update UI handler for CensusDVCView, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 3c3d0c0 36/46: Explain grid customizations in the function creating it, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 337d81f 37/46: Make UponDeleteCells() more efficient for large censuses, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 2922db9 44/46: Disallow single cell operations when non-current row is selected, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master d337a22 45/46: Upgrade wx, Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master c679655 19/46: Replace table_type_converter::get_all() with register_all(), Greg Chicares, 2020/07/22
- [lmi-commits] [lmi] master 7dc508e 35/46: Don't select the first row initially in the grid census view, Greg Chicares, 2020/07/22