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.
Closes #193
Closes #191
Closes #180
Closes #182
Closes #446
Closes #435
Closes #450
Tip
What is new? ✨
Project Structure
sandbox
This folder copies the structure of
view
insidesource
. It is supposed to help develop visual components using PyQt. Each file inside the sandbox must follow the patternsandbox_{component_name}
, and be stored in the same project structure found onview
, because it uses the structure to automatically build the components.source
commons
Stores objects and configurations that are used across the software.
domain
Keeps all the logical foundation of the software, and all necessary configuration to make the program run. It is the only part of the software that interacts with mathematical libraries.
boolean_expression_solver
Is where all the logic to solve equations or inequalities is. Now it is complex enough to deal with multiple logical connectives AND, OR. It also knows how to prioritize expressions with the use of parenthesis.
entities
Those are the objects from the domain of the project. In a very basic way, they are meant to replace the dictionaries and will be used across the software to perform necessary calculations.
filter
view
Contains all the visuals of the software and is the only part that interacts with PyQt library.
components
Components encapsulate logic and contain elements. They act as higher-level UI constructs and may involve more complex interactions. Components are responsible for managing the behavior of elements and coordinating their actions.
elements
Elements are minimal, basic components with common behavior. They are the building blocks of the UI and can make the use of items.
items
Items are VERY minimal components, mostly used to display information and with almost no modifications from its parent Qt class.
pages
Pages represent distinct sections of the application UI. Each contains one or more components and is responsible for displaying them. They are the content to be displayed inside the windows.
utils
Contains methods, configurations, and constants that are required across the view.
windows
Windows are what will actually be displayed as a complete component of the software. Its internal contents are pages, and they have extra configurations as of where it's going to be displayed, the window size and so on.
controller
Makes the interactions between windows of the software.
test
This folder copies the structure of
source
, as each file containing logic is supposed to be tested to grant coverage.Discoveries
Following the proposed pattern from Add code documentation #191 , the code is being documented. Some examples can be found at
source/view/components
.Apart from testing the logic from
domain
, components fromview
are also being tested using PyQtTest.Instead of downloading icons to be used in the software, it is now installed a library qtawesome that allows us to import icons directly.
Now we have a standardized way to use colors on the software, that adapts to the system's theme.
It was implemented a way to add logs at the crucial parts of the software to facilitate debugging once the executable is generated
Stores the needed settings and information of the software, including, for example, the software version.
Warning
ONLY the Wizard is implemented so far.