Opened 7 years ago

Closed 7 years ago

#5827 closed Bug (fixed)

Periodic torrent details dialog freezes due to file tree updates

Reported by: mike.dld Owned by: mike.dld
Priority: Normal Milestone: 2.90
Component: Qt Client Version: 2.84
Severity: Normal Keywords: patch
Cc:

Description

Change made in r14000 (#5285) results in superfluous dataChanged notifications for parent items because their myHaveSize is constantly changing to that of their leaf child nodes (see FileTreeItem::update and FileTreeModel::addFile). Attached patch

  • brings back old behavior where only parent item name is updated in general case
  • speeds up file index-based item lookup by maintaining index-to-item mapping instead of doing slow linear search each time
  • updates corresponding columns of parent items when their leaf child items' downloaded size or DND flag changes
  • updates parent items progress column when child items' DND flag changes.

Attachments (2)

5827-qt-details-dialog-freeze.patch (6.9 KB) - added by mike.dld 7 years ago.
Screenshot - 10282014 - 10:41:44 PM.png (35.6 KB) - added by mike.dld 7 years ago.

Download all attachments as: .zip

Change History (5)

Changed 7 years ago by mike.dld

comment:1 Changed 7 years ago by mike.dld

Turns out this patch also fixes possible inconsistent progress calculation (see attached screenshot). To reproduce, a) make sure everything is fully checked, b) uncheck any of child items (but not all), c) select unchecked child items and parent item (using Shift or Control keyboard modifiers) and hit Space key to toggle the selection (this would uncheck parent and all child items), d) w/o changing the selection, hit the Space key again.

Last edited 7 years ago by mike.dld (previous) (diff)

Changed 7 years ago by mike.dld

comment:2 Changed 7 years ago by mike.dld

  • Milestone changed from None Set to 2.90
  • Owner changed from jordan to mike.dld
  • Status changed from new to assigned

comment:3 Changed 7 years ago by mike.dld

  • Resolution set to fixed
  • Status changed from assigned to closed

Committed as r14345.

Note: See TracTickets for help on using tickets.