-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Fixed bug: Incorrect point deletion with keyboard shortcut #4420
Conversation
@ActiveChooN Could you look on this fix, please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, would you add tests for the issue in this PR?
Yes, as a next step in this pr test will be added |
@bsekachev Could you look on this pr? |
}); | ||
|
||
describe(`Testing issue "${issueId}"`, () => { | ||
it('Crearte points shapes', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it('Crearte points shapes', () => { | |
it('Create points shapes', () => { |
it('Remove point holding Alt key from each shape', () => { | ||
cy.get('#cvat_canvas_shape_1').trigger('mousemove', { force: true }).trigger('mouseover', { force: true }); | ||
cy.get('body').type('{alt}', { release: false }); | ||
cy.get('#cvat_canvas_shape_1') | ||
.children() | ||
.then((children) => { | ||
cy.get(children) | ||
.eq(1) | ||
.then((elem) => { | ||
cy.get(elem).click(); | ||
}); | ||
}); | ||
cy.get('#cvat_canvas_shape_2') | ||
.children() | ||
.then((children) => { | ||
cy.get(children) | ||
.eq(1) | ||
.then((elem) => { | ||
cy.get(elem).click(); | ||
}); | ||
}); | ||
}); | ||
it('Point must be removed from first shape, second one should stay the same', () => { | ||
cy.get('#cvat_canvas_shape_1') | ||
.children() | ||
.should('have.length', 2); | ||
cy.get('#cvat_canvas_shape_2') | ||
.children() | ||
.should('have.length', 3); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should be the same it(). In the first you do not check anything.
it('Crearte points shapes', () => { | ||
cy.createPoint(firstPointsShape); | ||
cy.get('#cvat-objects-sidebar-state-item-1').should('contain', '1').and('contain', 'POINTS SHAPE'); | ||
cy.createPoint(secondPointsShape); | ||
cy.get('#cvat-objects-sidebar-state-item-2').should('contain', '2').and('contain', 'POINTS SHAPE'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably it should be a part of before
section because we do not test creating points here
const [state] = getController().objects.filter( | ||
(_state: any): boolean => _state.clientID === activeElement.clientID, | ||
); | ||
if (state.shapeType === 'points') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (state.shapeType === 'points') { | |
if (state?.shapeType === 'points') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this condition should work for all the shapes, not only for points, do not you think so?
const selectedClientID = parseInt( | ||
((e.target as HTMLElement).parentElement as HTMLElement).getAttribute('clientID'), 10, | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not to use + operator here to cast to integer? It looks simpler
Motivation and context
The point deletion with shortcut works not quite well if we start deleting points from another shape holding
Alt
Solution: implement the same behavior with points shape as with polylines. If we are holding
Alt
over one object, another one shouldn't be activated.Result:
Resolved #3821
How has this been tested?
Checklist
develop
branchI have updated the documentation accordinglycvat-core, cvat-data and cvat-ui)
License
Feel free to contact the maintainers if that's a concern.