Skip to content

Conversation

@Robert0Mart
Copy link
Collaborator

Description

fix bug from #134

Select the type:

  • Feature
  • Bug fix
  • Code refactor
  • Documentation

loadWidget.py:

  • set default "inital_anim_type" to DEFAULT

probeHelperPage.py

  • set LoadingOverlayWidget from placeholder to default

@Robert0Mart Robert0Mart requested a review from HugoCLSC January 7, 2026 17:52
@Robert0Mart Robert0Mart added the UI/UX User Interface what changed with this code label Jan 7, 2026
@HugoCLSC HugoCLSC merged commit 102a746 into dev Jan 14, 2026
7 of 8 checks passed
@HugoCLSC HugoCLSC deleted the bugfix/network-loadwidget branch January 14, 2026 11:43
HugoCLSC added a commit that referenced this pull request Jan 15, 2026
* Build(deps): Bump requests from 2.32.3 to 2.32.4 in /scripts (#105)

Bumps [requests](https://github.com/psf/requests) from 2.32.3 to 2.32.4.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](psf/requests@v2.32.3...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Hugoclsc/feature/GitHub actions (#107)

* initial actions

* Update CodeQL workflow to ignore certain paths

Ignore specific paths for CodeQL analysis on push and pull request events.

* experimenting workflows

* Add pylintrc configuration file, configure dev test code workflow

* split into multiple jobs

* Fail job on error

* pylint rc file, jobs refactores for dev workflow

* Remove upload artifacts for now, move pylintrc file to root dir

* Added upload artifacts with different files

* Rem: branch naming workflow, enviroment handles this

* Added fail-fast to false

* Run only on PR to dev

* Change file name

* Hugoclsc/feature/GitHub actions (#113)

* initial actions

* Update CodeQL workflow to ignore certain paths

Ignore specific paths for CodeQL analysis on push and pull request events.

* experimenting workflows

* Add pylintrc configuration file, configure dev test code workflow

* split into multiple jobs

* Fail job on error

* pylint rc file, jobs refactores for dev workflow

* Remove upload artifacts for now, move pylintrc file to root dir

* Added upload artifacts with different files

* Rem: branch naming workflow, enviroment handles this

* Added fail-fast to false

* Run only on PR to dev

* Change file name

* Initial stage-ci workflow configuration

* Changed worflow name, added docstr-coverage tool to the workflow

* Added dependencies cache, reduces redundant installations, fixes incorrect pytest file

* Exclude F403 ruff error

* Added docstr-coverage dependency

* Fix incorrect requirements installation command

* bugfix on cli command for docstr-coverage

* Uncomment artifact upload

* Update pyproject.toml

* Added bandig config, bump requests version

* Bump requests version

* Bump requirement versions

* Add dev, stage requirements, bump all requirements

* Migrate pylint config options to pyproject.toml file

* Deleted pylintrc.dev file

* Remove unused dependencie

* uncomment upload artifacts

* Added bandit security tests

* Standardize bandit output to json

* Add environment

---------

Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Hugoclsc/feature/GitHub actions (#114)

* initial actions

* Update CodeQL workflow to ignore certain paths

Ignore specific paths for CodeQL analysis on push and pull request events.

* experimenting workflows

* Add pylintrc configuration file, configure dev test code workflow

* split into multiple jobs

* Fail job on error

* pylint rc file, jobs refactores for dev workflow

* Remove upload artifacts for now, move pylintrc file to root dir

* Added upload artifacts with different files

* Rem: branch naming workflow, enviroment handles this

* Added fail-fast to false

* Run only on PR to dev

* Change file name

* Initial stage-ci workflow configuration

* Changed worflow name, added docstr-coverage tool to the workflow

* Added dependencies cache, reduces redundant installations, fixes incorrect pytest file

* Exclude F403 ruff error

* Added docstr-coverage dependency

* Fix incorrect requirements installation command

* bugfix on cli command for docstr-coverage

* Uncomment artifact upload

* Update pyproject.toml

* Added bandig config, bump requests version

* Bump requests version

* Bump requirement versions

* Add dev, stage requirements, bump all requirements

* Migrate pylint config options to pyproject.toml file

* Deleted pylintrc.dev file

* Remove unused dependencie

* uncomment upload artifacts

* Added bandit security tests

* Standardize bandit output to json

* Add environment

* Fix incorrect file extension for bandit

---------

Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Hugoclsc/feature/GitHub actions (#115)

* initial actions

* Update CodeQL workflow to ignore certain paths

Ignore specific paths for CodeQL analysis on push and pull request events.

* experimenting workflows

* Add pylintrc configuration file, configure dev test code workflow

* split into multiple jobs

* Fail job on error

* pylint rc file, jobs refactores for dev workflow

* Remove upload artifacts for now, move pylintrc file to root dir

* Added upload artifacts with different files

* Rem: branch naming workflow, enviroment handles this

* Added fail-fast to false

* Run only on PR to dev

* Change file name

* Initial stage-ci workflow configuration

* Changed worflow name, added docstr-coverage tool to the workflow

* Added dependencies cache, reduces redundant installations, fixes incorrect pytest file

* Exclude F403 ruff error

* Added docstr-coverage dependency

* Fix incorrect requirements installation command

* bugfix on cli command for docstr-coverage

* Uncomment artifact upload

* Update pyproject.toml

* Added bandig config, bump requests version

* Bump requests version

* Bump requirement versions

* Add dev, stage requirements, bump all requirements

* Migrate pylint config options to pyproject.toml file

* Deleted pylintrc.dev file

* Remove unused dependencie

* uncomment upload artifacts

* Added bandit security tests

* Standardize bandit output to json

* Add environment

* Fix incorrect file extension for bandit

* Add exclude section to ruff config

* Fix docstr-converage exclude regex

---------

Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Hugoclsc/feature/GitHub actions (#116)

* initial actions

* Update CodeQL workflow to ignore certain paths

Ignore specific paths for CodeQL analysis on push and pull request events.

* experimenting workflows

* Add pylintrc configuration file, configure dev test code workflow

* split into multiple jobs

* Fail job on error

* pylint rc file, jobs refactores for dev workflow

* Remove upload artifacts for now, move pylintrc file to root dir

* Added upload artifacts with different files

* Rem: branch naming workflow, enviroment handles this

* Added fail-fast to false

* Run only on PR to dev

* Change file name

* Initial stage-ci workflow configuration

* Changed worflow name, added docstr-coverage tool to the workflow

* Added dependencies cache, reduces redundant installations, fixes incorrect pytest file

* Exclude F403 ruff error

* Added docstr-coverage dependency

* Fix incorrect requirements installation command

* bugfix on cli command for docstr-coverage

* Uncomment artifact upload

* Update pyproject.toml

* Added bandig config, bump requests version

* Bump requests version

* Bump requirement versions

* Add dev, stage requirements, bump all requirements

* Migrate pylint config options to pyproject.toml file

* Deleted pylintrc.dev file

* Remove unused dependencie

* uncomment upload artifacts

* Added bandit security tests

* Standardize bandit output to json

* Add environment

* Fix incorrect file extension for bandit

* Add exclude section to ruff config

* Fix docstr-converage exclude regex

* Separate CI from CD

---------

Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Refactor/tests compliance (#117)

* Build(deps): Bump requests from 2.32.3 to 2.32.4 in /scripts (#112)

Bumps [requests](https://github.com/psf/requests) from 2.32.3 to 2.32.4.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](psf/requests@v2.32.3...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>


* Removed unused method

* Remove unused imports

* Remove unused import, f-string without placeholders

* Remove unused import

* Removed unused module

* Removed f-string without placeholder

* Removed unused code on method

* Removed placeholder file for new module

* Removed assigned variable but never used

* Removed unused import

* Comment unused variable

* Removed unused code line

* Removed unused file

* Explicity re-raise with from

* Removed unused code line

* Refactor text box painting

* Removed unused import

* Removed unused code line

* Removed unused module

* Removed unused module placeholder

* Added docstrings

* Add docstrings to methods

* Add docstring to methods and class

* Add docstring to methods

* Removed unused module

* Added docstrings

* Added docstrings

* Added docstrings, deleted commented code

* Added docstrings, deleted commented code

* Added docstrings, deleted commented code

* Added docstrings, deleted commented code

* deleted commented code

* Added docstrings, deleted commented code

* Deleted code from unused window

* Added docstring to methods, deleted unused code

* Added docstring to methods, deleted unused code

* Add docsctring, delete commented code

* Add docsctring

* Add docsctring, delete unused code

* Add docstring, change method name

* Add docstring, change method name, delete unused code

* Add docstring, delete unused code

* Add docstring, delete unused code, changed method name

* Add docstring, changed method name

* Add docstring, changed method name

* Add docstring, changed method name

* Add docstring, changed method name

* Add docstring, changed method name

* Formatting

* Add docstring

* Add docstring, delete unused code, changed method name

* Add docstring, delete unused code, changed method name

* Add docstring, changed method name

* Add docstring, changed method name

* Add docstring, delete commented code, change method name

* Add docstring, delete commented code, change method name

* Let troubleshoot page decide where it wants to go

* Add docstring, change method name

* Add docstring, delete unused and untested code

* Add docstring

* Add docstring

* Add docstring, delete unused code

* Add docstring

* Add docstring

* Add docstring

* Add docstring

* Add docstring

* Add docstrings

* Add docstring, change method name

* Add docstring

* Add docstring, delete unused code

* Add docstring, delete unused code

* Add docstring

* Change list item docstring

* Add docstring

* Add docstring

* Deleted unused module

* Add docstring

* Deleted unused method

* Deleted unused code line

* Delete unused code line

* Delete unused code line

* Security patch subprocess shell = True, security issue

* Remove argument from method

* Ruff formatting

* Ruff formatting

* Surpress Reviewed security issues

* Formatting

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ADD: added overriedCursor to blank cursor (#118)

* ADD: added overriedCursor to blank cursor

* Refactor: ran ruff formater

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* ADD: color degrade when ON/OFF (#120)

* Bugfix label overlap (#121)

* bugfix: label overlapping when stoped

* Upd: rollback some parts

* ADD: added delay to marquee effect

* bugfix: text when marquee wasnt needed and glow effect

* Refactor: Ran ruff formatter

* Remove unecessary lambda expression

* Add docstring to paintEvent method

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Bugfix: Delete file handling and QDialog class refactoring  (#128)

* Refactor: Ran ruff formatter

* Remove unecessary lambda expression

* Add docstring to paintEvent method

* Refactor back signal from reject to request_back

* Change delete file button from reject to delete_file_button

* Make setupUI method private

* Change request back signal name

* Make setupUI the last method on file

* Separate logic, created get mainwindow widget method

* Set dialog modal, add class vars, x and y dialog offsets

* Use accept and reject signals for dialog result

* implement open method, calculate dialog position relative to window

* Refactor cancel print dialog

* Simplify print cancel signal emition

* Refactor delete file logic

* Change delete file signal name

* Fix empty directory

* Fix directory handling for file deletion operationsFix empty directory

* Dev debt

---------

Co-authored-by: Roberto Martins <robertomicael.martins@gmail.com>
Co-authored-by: Roberto <roberto.martins@blockstec.com>

* Work fan page (#119)

* ADD: added fans page

* add: added fans into fans page

* ADD: added line to fans page

* Refacotr: changed layout type

* UPD: updated options card to have 2 text . added cards into controltab fans

* Rev: removed line from fans page

* Refactor: refactor on_fan_object_update

* Refactor: Ran ruff formatter

* Fix incorrect method name

* Fix incorrect method name

* bugfix: option card clicklable area

* Ran: ruff formatter

* Bugfix: names being wrong and slider spaming gcodes on change

* ADD: color degrade when ON/OFF (#120)

* Del: deleted some prints

* Bugfix: fan not updating when slider updates

* Bugfix: label size

* Bugfix: Delete file handling and QDialog class refactoring  (#128)

* Refactor: Ran ruff formatter

* Remove unecessary lambda expression

* Add docstring to paintEvent method

* Refactor back signal from reject to request_back

* Change delete file button from reject to delete_file_button

* Make setupUI method private

* Change request back signal name

* Make setupUI the last method on file

* Separate logic, created get mainwindow widget method

* Set dialog modal, add class vars, x and y dialog offsets

* Use accept and reject signals for dialog result

* implement open method, calculate dialog position relative to window

* Refactor cancel print dialog

* Simplify print cancel signal emition

* Refactor delete file logic

* Change delete file signal name

* Fix empty directory

* Fix directory handling for file deletion operationsFix empty directory

* Dev debt

---------

Co-authored-by: Roberto Martins <robertomicael.martins@gmail.com>
Co-authored-by: Roberto <roberto.martins@blockstec.com>

* bugfix: option card centering

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Fix issues intruduced in Bugfix label overlap #121 (#129)

* ADD: added fans page

* add: added fans into fans page

* ADD: added line to fans page

* Refacotr: changed layout type

* UPD: updated options card to have 2 text . added cards into controltab fans

* Rev: removed line from fans page

* Refactor: refactor on_fan_object_update

* Refactor: Ran ruff formatter

* Fix incorrect method name

* Fix incorrect method name

* bugfix: option card clicklable area

* Ran: ruff formatter

* Bugfix: names being wrong and slider spaming gcodes on change

* ADD: color degrade when ON/OFF (#120)

* Del: deleted some prints

* Bugfix: fan not updating when slider updates

* Bugfix: label size

* Fix integration problems #121 fix

* Refactor variable into local method variable

---------

Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>
Co-authored-by: Roberto Martins <robertomicael.martins@gmail.com>
Co-authored-by: Roberto <roberto.martins@blockstec.com>

* Fix Merge problems introduced on the previous pull requests (#131)

* Add 'flat' visual property, seperate methods to their own methods

* Delete attribute set, BlocksLabel does not have that attribute

* Refactor: reorder methods

* Fix missing slot for klippy signal, now reacts to klippy connected signal

* Delete: touch handlers, will be implemented in the future

* Added standard pull request template (#133)

* Bugfix: fixed white dot on list_model.py (#130)

Fix: white dot on widget lists built using **EntryDelegate** by deleting unused code

* Bugfix thumbnail not working (#123)

* Refactor: reafactor how thumbnail are painted

* Refactor: Ran ruff formatter

* Refactor: resolved issues on the code

* Adhere to snake casing

* Adhere to snake casing

* Return event handled

* Requests files on websocket open

Instead of only requesting the available files when Klippy is ready
request them when websocket opens. Moonraker handles the files, so there
is no need to wait until klippy is connected. This also ensures that
when the screen connects with moonraker and klipper the information
about all available print files are ready to be handled by the GUI.
This stems from a problem loading the thumbnails. There were many
instances of initializing the application mid print, when this
happened a request for the available thumbnails is made, because the
files are loaded after receiving the klippy ready event, the moment
when asking about the current job thumbnail there are not files nor
metadata loaded onto the GUI, so no thumbnail is fetched. Now with this
change the same situation doesn't occur.

* Change on_accept signal types.

There is no need to add list type to the signal. The thumbnails were
passed there before, we will load the print thumbnails when we get the
metadata from the file. Passing the thumbnails here was unnecessary.

* Add inner progress bar icon

The progress bar fills a circumference until the print is complete,
the inner part of the widget is blank and is suposed to have a thumbnail
of the current print, before a QGraphicsView overlaped with the
progress bar widget. Now we add the functionality to add a pixmap on the
progress bar itself. It calculates the scaling for the pixmap to fill
the inner part of the progress bar widget without overlaping anything.
There are some bugs still, such as what happens when resizeEvent is
emitted, the automatic scaling is not working properly yet.

* Refactor Thumnail painting and widget building

The solution provided by @Robert0Mart showed us that the thumbnail
building needed some work, this commit intends to extend that effort to
rewrite this feature. We will simplify thumbnail building, less
widgets for this feature to work. We will also let the progress bar
widget handle the small widget painting, and propagate the click to
expand to a bigger thumbnail painting that fills the entire screen.

* Final progress bar refactor, send signal on thumbnail click

Refactored class method positions to add some structure to the class.
Privatised some class variables, should add @Property decorator with
getter and setter for these variables since they are actually properties.
Captured MousePressEvent of the widget and filtered the events only to
those inside the inner rect of the widget, when triggered, send an event
`thumbnail_clicked` to signal that the thumbnail was actually clicked.

* Refactor `setValue`method

Added type for argument, refactored method body readability

* Added thumbnail expansion

Added initial thumbnail expansion, it works, but it needs to be worked
on. We need to hide all widgets so that the thumbnail doesn't have anything
on the background while its expanded. this requires us to hide all widgets
used one by one. it's not incorrect per-se but it's not the best. The thumbnail
is loaded once when the thumbnail is received, so it just paints once and stays
in memory until `.show()` and `.hide()` methods are called. Once the print stops
for whatever reason. Since the widget is built when the thumbnail comes, the
QGraphicsView and its childs are deleted, freeing memory. It'll be built again
when a new print job is selected.

* Added type for arguments, refactored `setValue` and `set_bar_color` methods.

* Reduced conditional branching, added docstring to class

Reduced branching on printer object handlers,
Added simple docstring to the `jobStatusPage` class.

* Conditional logic when thumbnail pixmaps are Null

When the provided thumbnails are Null Pixmaps, the should not build
the QGraphicsView Widget. Before , even when pixmaps were null,
it whould be built, the user could click the progress widget and
the scene whould expand, only without anything to show. Now
the widget simply does not build anything when all pixmaps are Null.
The click signal connections are now done inside the `_load_thumbnails`
method, the progress widget pixmap is also set inside that method.
Everything related to thumbnails (except the eventFilter method) is now
handled inside the `_load_thumbnails` method.

The next step, filtering the provided Null Pixmaps. Only load not Null
pixmaps

* Refactor filter null pixmaps during thumbnail loading

Simplified thumbnail filtering. Now i can have any number of Null
pixmaps, if no pixmap is usable, cancels thumbnail loading,
if there is at least one usable pixmap. It'll load the thumbnails
on the progress widget and on the QGraphicsView.
This means that if only the smallest resolution is available (48x48)
it'll paint with low resolution

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Bugfix uninitilized variable access  introduced on #123 (#141)

* Del: reference to uninitialized QGraphicsView variable

When there is no thumbnail for the current print, we shouldn't referece
`self.thumbnail_view` since it hasn't been initialized. When the print
stops for whatever reason we want to delete the object, but if it hasn't
been initilialized there is nothing to delete. So we must only delete
when the print stops if the class has been attributed.

* Added clear thumbnail object on print stop

* Small refactor, exit method when page is not visible

* Calculate and scale thumbnail pixmap on set

When setting the pixmap on the progress bar, the image was not scaled and
the inner rect was not calculated. This resulted in the pixmap not
showing. Now when setting the progressbar thumbnail this is calculated
so that the pixmap can be shown in the middle of the progress bar
circumference.

* Del forgotten print()

* Refactor and handle show event

Refactored some methods, including accessing values in dicts,
by using .get().
Now the slot `on_fileinfo` only runs when the `jobStatusPage` is visible
this is because the request for file information is done on `file.py` and
the confirmation page. This whould result in the slot triggering multiple
times before it was actually necessary and on asking for imformation for
all files, while we only want information on one file. Now the request
for file information is done when the `jobStatusPage` is actually
visible. The `showEvent` method requests the file information when that
event is triggered on the class.

* Split print state logic into seperate method

Split the state logic in a seperate method (`_handle_print_state(state: str))`
just so it's more readable than handling all `print_status` object updates
in a single method. It was getting to big of a method.

* Change print state event dispatch logic

* Refactor `SensorPanel`: replace `QListWidgetItem` with `EntryListModel` (#125)

* refactor: migrated sensorsPanel.py sensor list from a QtWidgets.QListWidgetItem to a ListModelView Arq with some bugfixes

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* sensors: resolve bugs and some cleanup

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* sensors: add cutter sensor handling and visual update for list item

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* code cleanup and formatting

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* sensorwidget bugfix

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* sensorsPanel.py: ensure first item is checked on startup
sensorWidget.py: lock toggle_button until action succeeds and replace repaint() with update() for proper refresh

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* sensorsPanel.py: reformat code to be complient with ruff guidelines

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

---------

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>
Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>
Co-authored-by: HugoCLSC <hugo.santos.costa@gmail.com>

* Refactor `filesPage.py`: Changed Files List `QtWidgets.QListWidgetItem` to our custom `EntryListModel` (#126)

* FilesPage: Refactor almost complete  missing passing the directory by itemclick
helper_methods: updated the get_file_loc method to return always the filename instead of the full path

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* filesPage.py: refactor concluded, scrollbar bugfix

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* helper_method.py: Change naming of a method from get_file_loc to get_file_name

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* filesPage.py: code cleanup, small docstring generation and add missing commented lines

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* filesPage.py: remove unused lines of code

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* filesPage.py - fix rebase conflits

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* formatting fix

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* filesPage.py: Add sync timeout and change click behavior in files page

Set file list to refresh after 1.5s to improve UI responsiveness.
Clicks are now handled in the _on_item_selected slot instead of
inline callbacks to separate logic and unify behavior.

---------

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>
Signed-off-by: gmmcosta15 <guilherme.costa@blockstec.com>
Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>
Co-authored-by: HugoCLSC <hugo.santos.costa@gmail.com>

* Work group button refactor (#137)

* Refactor: optimized group button and renamed to check button

* Refactor: updated button import to the newer file name and class

* Refactor: ran ruff formatter

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* Bugfix `tunePage`: Add clickability and distinct icons to controllable fans (#138)

* update fan icons and show only user-controllable fans

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>

* tunePage.py: improve icon management and add regex to display the correct icon for each fan type

* networkWindow.py: reorganize imports and refactor icons management condition

* Test signed commit

---------

Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>
Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Work display info UI (#140)

* Bugfix: fixed total layer/current layer fallback

* Add: added font size and family

* bugfix: where the fallback was allways active

* Refactor: ran ruff formatter

---------

Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>
Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Work input shapper rework (#134)

* ADD: added input shaper page

* bugfix: button blocking clicks

* ADD: added input shapper logic

* ADD: added input shapper page to .ui

* Add: basepopup.py
Refactor: loadwidget to have similar logic to loadpage
Removed: dialog page and loadPage

* Refactor: change popup to Basepopup or/with loadwidget

* Rev: removed misstype

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* Work connnectivity update page (#139)

* ADD: added update page to connection page

* ADD: added reload button to updatepage
Refactor : evertime it reload shows loadwidget
Refactor: info frame layout

* Refactor: when update page gets refreshed

* Added: icon_button pressed state
Refactor: resized icon buttons on connectionwindow

* Rev: removed updatepage instances

* Fix: fixed loadwidget not hiding

* add: added update page instance

* Refactor: ran ruff formatter

* refactor: removed unused import

* Refactor: ran ruff formatter

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* Bugfix/tab unlocking (#147)

* bugfix: fixed event config

* Rev: removed on_cancel_print from handle cancel print

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* jobStatusPage: only load filedata when printer is printing (#150)


Authored-by: Guilherme Costa <guiherme.costa@blockstec.com>

* Bugfix/inputshaper page (#148)

* bugfix: multiple connects signals

* bugifx: loadcreen having button

* bugfix: fixed input shaper after merge

* Bugfix: being able to click behind the popup

* Refactor: ran ruff formatter

---------

Authored-by: Roberto <roberto.martins@blockstec.com>

* work popup features  (#144)

* Fix: fixed wrong if check for popups

* feat: first version of userinput for popup

* feat: added new error and info icons

* feat: added ClearPixmap to icon_button

* Refactor: finished popup userInput feat

* Refactor: formated _handle_error_message message
ignored unknow  type popup

* Refactor: popups only shows error messages and added popup whitelist

* Refactor:run ruff formater

* Rev: removed prints

* refactor: removed bare except

* bugfix: fixed wordwrap

* Refactor: ran ruff formatter

---------

Authored-by: Roberto <roberto.martins@blockstec.com>

* Improvement/Apply Z‑offset changes immediately, with an option to save permanently (#149)

* babystepPage: make buttons update instantly and respond to all Z-offset changes

* babystepPage and printTab: bugfix showing the current saved z-offset

* printTab: change save message

* add missing icons from merge

---------

Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>

* Work network priority (#122)

* ADD: added priority to 'get_saved_networks'

* ADD: added priority buttons
ADD: added details page to saved network
Refacotr: refactor how edit on saved is made

* ADD: added option to set an Tittle

* UPD: changed some text

* Refactor: Ran Ruff formatter

* Refactor: some butttons text and group name

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Bugfix: fixed loadwidget default being placeholder (gif) (#145)

Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Hugo Costa <hugo.santos.costa@gmail.com>

* Bugfix/after merge fix (#151)

* bugfix: fixed wrong imports

* bugfix: wrong button name

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* Fans controlling UI wasnt working (#153)

Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>

* Bugfix/update page  & Popup logic (#154)

* add: added popup cap

* bugfix: made update page hide

* bugfix: fixed broken popup logic

---------

Co-authored-by: Roberto <roberto.martins@blockstec.com>

* bugfix: ipv4 ip command error fix (#155)

Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Hugo Costa <hugo.santos.costa@gmail.com>
Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>
Signed-off-by: gmmcosta15 <guilherme.costa@blockstec.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roberto Martins <robertomicael.martins@gmail.com>
Co-authored-by: Roberto <roberto.martins@blockstec.com>
Co-authored-by: Guilherme Costa <guilherme.costa@blockstec.com>
Co-authored-by: Guilherme Costa <guiherme.costa@blockstec.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

UI/UX User Interface what changed with this code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants