po: update Brazilian Portuguese translation - #860
Merged
Conversation
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Jun 7, 2026
…ule-project#912) Extends existing categories (preferring extensions over new lines): - Performance/Upload: amule-project#898 SlotAllocation default raised. - Networking & Discovery: wire-parser hardening list extended with amule-project#879/amule-project#882/amule-project#890/amule-project#886; new amuleweb security hardening bullet consolidating ngosang's amule-project#869-amule-project#874 triage (all landed in amule-project#875); amulegui list extended with amule-project#857; shared-folder watcher extended with amule-project#858. - Packaging: Windows installer i18n line extended with amule-project#899. - Internals & Refactoring: new docs-polish + code-quality bullets covering amule-project#851/amule-project#855/amule-project#862/amule-project#888/amule-project#900/amule-project#866/amule-project#867/amule-project#895 and amule-project#909/amule-project#910/amule-project#912. - Translations: new pre-release final-wave bullet covering amule-project#847/amule-project#856/ amule-project#891/amule-project#908/amule-project#860/amule-project#904/amule-project#859/amule-project#863/amule-project#861/amule-project#880/amule-project#911/amule-project#901/amule-project#902/amule-project#889/amule-project#868/amule-project#853. - Bug Fixes & Stability: amule-project#850/amule-project#854/amule-project#878/amule-project#906. - CI: ccache wiring (amule-project#892, amule-project#903) + CodeQL binutils-dev (amule-project#907). Contributors footer gains mifritscher and nguyenhoangminhhieu2004-gif (both first-time contributors). PR index extended through amule-project#912.
mrjimenez
pushed a commit
that referenced
this pull request
Jun 8, 2026
Extends existing categories (preferring extensions over new lines): - Performance/Upload: #898 SlotAllocation default raised. - Networking & Discovery: wire-parser hardening list extended with #879/#882/#890/#886; new amuleweb security hardening bullet consolidating ngosang's #869-#874 triage (all landed in #875); amulegui list extended with #857; shared-folder watcher extended with #858. - Packaging: Windows installer i18n line extended with #899. - Internals & Refactoring: new docs-polish + code-quality bullets covering #851/#855/#862/#888/#900/#866/#867/#895 and #909/#910/#912. - Translations: new pre-release final-wave bullet covering #847/#856/ #891/#908/#860/#904/#859/#863/#861/#880/#911/#901/#902/#889/#868/#853. - Bug Fixes & Stability: #850/#854/#878/#906. - CI: ccache wiring (#892, #903) + CodeQL binutils-dev (#907). Contributors footer gains mifritscher and nguyenhoangminhhieu2004-gif (both first-time contributors). PR index extended through #912.
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Aug 8, 2026
…e-project#860) Three ways the ported lists threw away the row the user was reading. SortList() ended in wxDataViewIndexListModel::Reset(), which says the model was replaced; every backend rebuilds and lands at row 0, both axes. A sort reorders rows without replacing them and the count is the same on both sides of the std::sort, so a repaint is all it needs. The bulk path is the exception: AppendItemData() adds rows without telling the control -- that is what makes a bulk load cheap -- so Reset() was doubling as the only notification that the rows existed, and repainting there drew a list the control still believed was empty. The sort now splits into SortItems(), which is silent, SortList(), which repaints, and FinishBulkLoad(), which keeps its Reset(). Affects servers, shared files, clients, downloads, file details and friends. The unshifted page and home/end keys on macOS were left to NSOutlineView, which scrolls without moving the cursor, so the next arrow key snapped the view straight back and the page key looked inert. They now run through the handler the shifted keys already used: unshifted replaces the selection with the row landed on, shifted keeps extending, and both move the cursor. GTK and MSW get this from their backends. The search list answered every arriving result with Cleared(), which during a search is continuous. Arrivals now batch per idle into ItemsAdded()/ItemsChanged() on macOS. GTK cannot take them at all -- feeding this model's arrivals in one notification at a time aborts inside GtkTreeView's red-black tree, first from ItemAdded() under a newly formed group and again from the batch of top-level additions after that case was routed away. PR amule-project#796 had already found that neither ItemChanged() nor a delete-and-re-add made GTK or MSW re-derive container-ness; two aborts from two different notifications say the constraint is broader than that, so those platforms keep one Cleared() per idle and put the view back afterwards instead. The idle branch already restored the selection and the expanded rows, so the top row joins them -- which works here and not in the virtual lists because a CSearchFile pointer still names the same result after a rebuild, where a row-addressed item names whatever has since moved into it. Measured against wx 3.3.3 rather than argued: Refresh() and SetSelections() move no viewport on either backend; SetCurrentItem() moves it only when the target is off screen, and then onto the cursor; EnsureVisible() after Cleared() restores exactly on GTK and lands at the bottom on macOS. So the cursor is restored only while its row is on screen -- with no row ever clicked GTK's cursor sits at row 0, and restoring it unconditionally clamped the view to the top. GetScrollPos() is unusable on this control: wx asserts that the window is not scrollable and answers 0. Four things review turned up on the way. The synthetic first child of a new group is now announced -- AddChild() creates a copy of the parent as the first child and notified nobody, so a freshly formed group reported one child where the model had two. Both batches de-duplicate, since SetDownloadStatus() notifies every child of the parent it updated and a single arrival into a 50-variant group queued 51 entries. Pending pointers are dropped through MuleNotify::SearchFileBeingDestroyed, which CCommentDialogLst already consumes for this purpose, replacing a guard that checked membership in a list nothing ever unlinks from. And SortList() restores the cursor by identity alongside the selection, which Reset() used to invalidate for it. Builds clean on macOS ARM64, Ubuntu ARM64 and Windows ARM64, with clang-format and both clang-tidy tiers clean over the diff. Confirmed interactively on amulegui on all three: sorting holds position in shared files and clients, the search list holds position while results stream in, group expansion is intact, and the macOS page keys move the cursor with the view.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary