Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maint: Normalize row index in TabularModel #873

Merged
merged 8 commits into from
Jun 5, 2020
Merged

Conversation

kitchoi
Copy link
Contributor

@kitchoi kitchoi commented Jun 5, 2020

This PR addresses my own comment in #871 (comment)

The row index should always be valid, that means nonnegative and less than the row count in the model.
See https://doc.qt.io/qt-5/qabstractitemmodel.html#checkIndex
See https://doc.qt.io/qt-5/qabstractitemmodel.html#dropMimeData for the scenario where row index will be -1.

This PR normalizes the row index for TraitsUI implementation of QAbstractItemModel.dropMimeData.
(It seems that the model never cares about the column index.)

Copy link
Contributor

@corranwebster corranwebster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@corranwebster corranwebster modified the milestone: Release 7.0.1 Jun 5, 2020
@corranwebster
Copy link
Contributor

Adding the PR to the milestone as a reminder to backport this to 7.0.1

@kitchoi kitchoi merged commit 8f782bb into master Jun 5, 2020
@kitchoi kitchoi deleted the maint-tabular-model branch June 5, 2020 17:53
kitchoi added a commit that referenced this pull request Jul 8, 2020
Maint: Normalize row index in TabularModel
kitchoi added a commit that referenced this pull request Jul 8, 2020
* Fix the back button in the demo. (#799)

* Fixes for Qt DatetimeEditor (#803)

* Fixes for Qt DatetimeEditor.

* Fix handling of changes to editor bounds.

* Remove commented out code from editor example.

* And remove corresponding imports.

* Missed file with explicit defaults.

* Fixes to min/max and value out of range handling.

* Remove NameError and add default root_dir to tutor.py (#813)

* Remove NameError from tutor.py

* Take current directory as default

* Relax argument number constraint

* Rewrite nose tests to use unittest (#809)

* Rewrite nose tests to use unittest

* Rewrite remaining bare test functions

* Remove print statements from unit tests

* Replace assertEquals with assertEqual

* Fix error due to comparing None with int (#969)

* Use unittest discover instead of nose.core (#810)

* Merge pull request #829 from enthought/fix/ui-panel-alignment

Remove align centre which was causing problems

* Merge pull request #808 from enthought/fix/demo-fixes

A variety of fixes to the Demo app

* Add more tests for Enum Editor (#836)

* Add more tests for Enum Editor

* Add wx EnumEditor tests

* Add missing skipif decorator

* Add issue references to FIXMEs

* Address review comments

* Add check list editor tests (#837)

* Add check list editor tests

* Add wx tests for check list editor

* Simplify helper functions

* Add issue references to FIXMEs

* Address review comments

* Don't rely on empty list behaviour with combobox editor

* Add temporary fix to prevent wx test interactions

* Add set editor tests (#838)

* Add set editor tests

* Simplify helper functions

* Add wx tests for set editor

* Add issue reference to FIXME

* Address review comments

* Expand ordered flag tests

* Add image enum editor tests (#845)

* Add tests for image enum editor

* Docstring fixes

* Address review comments

* Skip tests that don't cleanup properly due to editor issue

* Remove unreliable image_cache checks

* Skip problematic tests on linux

* Address review comments

* Move value mapping from factory to individual editors (#848)

* Move value mapping from factory to individual editors

* Remove factory mapping references from image enum editor

* Remove unused wx helper function

* Address review comments

* Remove test FIXMEs

* Use instantiated tookit

* Merge pull request #850 from enthought/fix-demo-app-description-for-folder

Fix Demo application description if __init__.py or traits_ui_demo.jpg are not found

* BUG: Correctly implement auto-add functionality in ListStrModel. (#860)

* Move format_func, format_str and invalid traits from factory to editor (#859)

* Move format_func and format_str from factory to editor

* Move invalid from factory to editor as invalid_trait_name

* Merge pull request #871 from enthought/fix/segfault-row-reorder

FIX: Make sure new_row is positive

* Merge pull request #873 from enthought/maint-tabular-model

Maint: Normalize row index in TabularModel

* Make sure all UI in tests are disposed (#865)

* Dispose ui in test_visible_when_layout

* Wrap test with create_ui, and store_exceptions_on_all_threads

* Dispose ui and wrap it under store_exceptions... for test_ui

* Use create_ui in test_color_column

* Wrap tests with create_ui and store_exceptions_on_all_threads

* Dispose ui in test_actions

* Consistently dispose UI with create_ui in test_code_editor

* Skip two tests on wx that fail on its own

* Dispose UI in test_table_editor; these tests are failing on their own

* Remove skips; it was the developer's fault in not refreshing their devenv

* Dispose UI in test_csv_editor

* Make sure dispose must be called in test_date_editor

* Make sure dispose is called in test_date_range_editor

* Make sure dispose is called in test_datetime_editor

* Dispose ui in test_instance_editor

* Dispose ui in test_liststr_editor_selection

* Dispose ui in test_range_editor_spinner

* Dispose ui in test_range_editor_text

* Dispose ui in test_tree_editor

* Dispose UI in test_tuple_editor

* One more in test_data_frame_editor

* Remove additional store_exceptions_on_all_threads as they are orthogonal changes

* Experiment removing skips that were added due to test interactions

* Revert "Experiment removing skips that were added due to test interactions"

This reverts commit 7466c03.

* Try removing another workaround

* Revert "Try removing another workaround"

This reverts commit 090c75c.

* Revert inconsequential change to test_color_column

* Add close back just because it was there before - not sure if it is still needed.

* Add more TabularEditor tests (#874)

* Add more tests for Tabular Editor

* Minor wx TabularEditor fix

* Add brief explanation about Rows flag

* Add more ListStrEditor tests (#869)

* Add more tests for ListStrEditor

* Minor wx ListStrEditor fix

* Add gui.process_events to fix pyface2 errors

* Rename TestListStrEditor with adapter test to TestListStrAdapter

* Add docstrings and clarification comments

* Skip tests on Windows due to potential test interactions

* Fix clear_selection usage

* Fix bad TraitListEvent in ListStr and Tabular Editors (#875)

* Fix bad TraitListEvent in ListStr and Tabular Editors

* Remove test FIXMEs

* Fix unexpected format_func in RangeEditor bug (#900)

* Accept format_func, format_str and invalid parameters with RangeEditor

* Add a test to verify same behaviour

* Use kwargs in the signature

* Alternative fix to TabularAdapter crashes when column number reduces (#897)

Co-authored-by: Federico Miorelli <FedeMiorelli@users.noreply.github.com>

* Fix eerror when the columns number is reduced

* Workaround slot being called after the UI is disconnected

* destroy control (later) in dispose to prevent slots being called after dispose

* Revert "destroy control (later) in dispose to prevent slots being called after dispose"

This reverts commit 8bb6abd.

* Fix issue number in comment

* Update test name and comments

* Rework test comment

* Rewrite comment and run process_events so that bug appears independently of the workaround

* Add links from TabularEditor and TreeEditor to adapter docs (#917)

* Add links from TabularEditor and TreeEditor to adapter docs

* Fix tree node ref

* Fix Theme pickling (#915)

* Check toolkit before wx import + tests

* Address review comments

* Merge pull request #846 from enthought/maint-test-non-null-toolkit-layout-labels

TST: Add tests for layout and labels using any non-null toolkits
(cherry picked from commit 4398b3d)

Co-authored-by: Ieva <ievacerny@users.noreply.github.com>
Co-authored-by: Kit Choi <kitchoi@users.noreply.github.com>
Co-authored-by: Robert Kern <rkern@enthought.com>
Co-authored-by: Kit Yan Choi <kchoi@enthought.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants