René's URL Explorer Experiment


Title: Refactor the File Management System by gmmcosta15 · Pull Request #171 · BlocksTechnology/BlocksScreen · GitHub

Open Graph Title: Refactor the File Management System by gmmcosta15 · Pull Request #171 · BlocksTechnology/BlocksScreen

X Title: Refactor the File Management System by gmmcosta15 · Pull Request #171 · BlocksTechnology/BlocksScreen

Description: Description Select the type: Feature Bug fix Code refactor Documentation BlocksScreen/lib/files.py: Refactored directory/file handling architecture: On WebSocket connection: requests the full file list once via initial_load() On notify_filelist_changed: updates internal state incrementally Emits signals for UI components to react to changes Added comments throughout the code BlocksScreen/lib/panels/mainWindow.py: Handle metadata missing errors and limit retries (timeout after 3 attempts per file) Added comments to clarify logic BlocksScreen/lib/panels/widgets/filesPage.py: Reacts to changes from files.py and adapts the EntryListModel accordingly Added “USB” icon to folders that start with USB- Added comments throughout the code BlocksScreen/lib/utils/list_model.py: Added method remove_item_by_text Added method insert_item to insert an item at a specific index Motivation This refactor improves the file list handling flow by separating full initial loading from incremental updates, which leads to better Modular Design and avoids unnecessary UI refreshes. It also introduces controlled retry logic for missing metadata, enhancing Reliability, and makes the UI clearer by displaying a USB icon for USB‑related folders, improving User Experience. Alongside these functional improvements, the changes enhance Readability and Extensibility of the codebase by organizing logic more cleanly and adding comments throughout the affected modules. Tests Tested on RF50, Missing Unit and Integration Tests, Future work Creating unit and integration tests, and handle of the root_update method called when the gcodes folder is changed

Open Graph Description: Description Select the type: Feature Bug fix Code refactor Documentation BlocksScreen/lib/files.py: Refactored directory/file handling architecture: On WebSocket connection: requests the fu...

X Description: Description Select the type: Feature Bug fix Code refactor Documentation BlocksScreen/lib/files.py: Refactored directory/file handling architecture: On WebSocket connection: requests the fu...

Opengraph URL: https://github.com/BlocksTechnology/BlocksScreen/pull/171

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:6e4ae51d-3b97-6cf7-8821-168b5bd5c19c
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id963A:2891C9:562D08:6FA1F3:69928901
html-safe-nonce3ccf480f767f660db0e768afdf0900f7182645976ab04b6d12986a31e414d8af
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NjNBOjI4OTFDOTo1NjJEMDg6NkZBMUYzOjY5OTI4OTAxIiwidmlzaXRvcl9pZCI6Ijg5ODQ4NjcxNDg4NTQ4ODg3MDUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac01ea7e16b155f90e7de389b94aa212ab0250f060e798977a687a1789806b3433
hovercard-subject-tagpull_request:3215571322
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/BlocksTechnology/BlocksScreen/pull/171/files
twitter:imagehttps://avatars.githubusercontent.com/u/241724854?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/241724854?s=400&v=4
og:image:altDescription Select the type: Feature Bug fix Code refactor Documentation BlocksScreen/lib/files.py: Refactored directory/file handling architecture: On WebSocket connection: requests the fu...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/BlocksTechnology/BlocksScreen git https://github.com/BlocksTechnology/BlocksScreen.git
octolytics-dimension-user_id13040595
octolytics-dimension-user_loginBlocksTechnology
octolytics-dimension-repository_id764211125
octolytics-dimension-repository_nwoBlocksTechnology/BlocksScreen
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id764211125
octolytics-dimension-repository_network_root_nwoBlocksTechnology/BlocksScreen
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release848bc6032dcc93a9a7301dcc3f379a72ba13b96e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FBlocksTechnology%2FBlocksScreen%2Fpull%2F171%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FBlocksTechnology%2FBlocksScreen%2Fpull%2F171%2Ffiles
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=BlocksTechnology%2FBlocksScreen
Reloadhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Reloadhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Reloadhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
BlocksTechnology https://patch-diff.githubusercontent.com/BlocksTechnology
BlocksScreenhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FBlocksTechnology%2FBlocksScreen
Fork 0 https://patch-diff.githubusercontent.com/login?return_to=%2FBlocksTechnology%2FBlocksScreen
Star 2 https://patch-diff.githubusercontent.com/login?return_to=%2FBlocksTechnology%2FBlocksScreen
Code https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen
Issues 0 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/issues
Pull requests 9 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pulls
Actions https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/actions
Projects 0 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/projects
Security 0 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/security
Insights https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pulse
Code https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen
Issues https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/issues
Pull requests https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pulls
Actions https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/actions
Projects https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/projects
Security https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/security
Insights https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pulse
Sign up for GitHub https://patch-diff.githubusercontent.com/signup?return_to=%2FBlocksTechnology%2FBlocksScreen%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://patch-diff.githubusercontent.com/login?return_to=%2FBlocksTechnology%2FBlocksScreen%2Fissues%2Fnew%2Fchoose
gmmcosta15https://patch-diff.githubusercontent.com/gmmcosta15
devhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/tree/dev
bugfix/filespage-penhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/tree/bugfix/filespage-pen
Conversation 0 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171
Commits 4 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/commits
Checks 8 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/checks
Files changed https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Please reload this pagehttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Refactor the File Management System https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#top
Show all changes 4 commits https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
1e548e2 refactor files list behaviour, added USB icons and handling when the … Jan 27, 2026 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/commits/1e548e280b53bfc8bd2ff4939468396a32cf1f60
aed3037 bugfix: generation of new .code files and handling of new files intro… Jan 29, 2026 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/commits/aed3037dba8341bb75bfa54b93bb5f6a3b605ae8
7c1dc21 Merge branch 'dev' into bugfix/filespage-pen gmmcosta15 Jan 29, 2026 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/commits/7c1dc21b1cbd80f5da0e77982fdfd46f3a7b91fe
0f74bee fix bug about the scrollbar not showing when screen started on the fi… gmmcosta15 Feb 3, 2026 https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/commits/0f74bee553b676b470c9a6c7aa2c90aec108fc05
Clear filters https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Please reload this pagehttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Please reload this pagehttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
files.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-cb3f46b1fddd50cf67a72f6aecb29239c520a9d5eb6375d5b73e90b26ebe74d6
mainWindow.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
printTab.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-7ae2cb6cab0d7926a6f16d2d2863804b23605fc2a231bf6dacbf5ccbe31680d0
confirmPage.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
filesPage.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-c57a674550a7dfd8d03775135b019acec5cfd8c8b5d4b6c79d4f37e836a1dd39
icon_resources.qrc https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-3bb1815a245acc9850493add1a52f1504a4fec5c5e7ecd3ff4a2d83e83fdd8a9
icon_resources_rc.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ed2791bd78dcb60f0c208afba640e1c6fadf87405ef52d7cfe53e67ba31c5c2c
usb_icon.svg https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-2f08f2ce033a3079a65384f56880a0f2cc749972dc4f7e31d6c2f16d0408c9b0
list_model.py https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-94103756545043561306963fd8f0b4296d7736754cb6de81f9d39987a0ca3582
BlocksScreen/lib/files.pyhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-cb3f46b1fddd50cf67a72f6aecb29239c520a9d5eb6375d5b73e90b26ebe74d6
View file https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/blob/0f74bee553b676b470c9a6c7aa2c90aec108fc05/BlocksScreen/lib/files.py
Open in desktop https://desktop.github.com
Please reload this pagehttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
BlocksScreen/lib/panels/mainWindow.pyhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
View file https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/blob/0f74bee553b676b470c9a6c7aa2c90aec108fc05/BlocksScreen/lib/panels/mainWindow.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-1e3c35e7492f782b707fd5e3986fd90dd842b3d8aee3ba3deebcb8bd8ebd6fe1
BlocksScreen/lib/panels/printTab.pyhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-7ae2cb6cab0d7926a6f16d2d2863804b23605fc2a231bf6dacbf5ccbe31680d0
View file https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/blob/0f74bee553b676b470c9a6c7aa2c90aec108fc05/BlocksScreen/lib/panels/printTab.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-7ae2cb6cab0d7926a6f16d2d2863804b23605fc2a231bf6dacbf5ccbe31680d0
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-7ae2cb6cab0d7926a6f16d2d2863804b23605fc2a231bf6dacbf5ccbe31680d0
BlocksScreen/lib/panels/widgets/confirmPage.pyhttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
View file https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/blob/0f74bee553b676b470c9a6c7aa2c90aec108fc05/BlocksScreen/lib/panels/widgets/confirmPage.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
https://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files#diff-ede805b00ab60c54f17859a5e444d159f2ba0a2e6580ccf4e8de9d1d65ebec10
Please reload this pagehttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
Please reload this pagehttps://patch-diff.githubusercontent.com/BlocksTechnology/BlocksScreen/pull/171/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.