Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New interface #18

Merged
merged 274 commits into from
Sep 2, 2024
Merged

New interface #18

merged 274 commits into from
Sep 2, 2024

Conversation

AndrewSazonov
Copy link
Member

No description provided.

AndrewSazonov and others added 28 commits August 29, 2024 14:37
* BasicMinimalPy to BasicPy
* BasicMinimalC++ to BasicC++
* BasicPy to IntermediatePy
* IntermediatePy to AdvancedPy
Add 3 types of the most basic examples with an additional backend proxy layer and a new way to globally access QML components
@AndrewSazonov AndrewSazonov merged commit deaae0c into develop Sep 2, 2024
1 check passed
AndrewSazonov added a commit that referenced this pull request Sep 2, 2024
* Split easyApp content to Gui and Logic

* Add rich text to table header

* Change check for updates button text

* Add new release date property

* Fix disabled combo box color

* Update preferences dialog style

* Fix preferences dialog height

* Fix path to MaintenanceTool for Linux and Windows

* Bump version to 0.1.0

* Minor refactoring

* Fix changelog path

* Fix check on app start label

* Add nunito font

* Store app preferences tabs as global vars

* Fixed dependencies after refactoring

* Add support for iconified names in fitting constraints

* Fix ComboBox Label padding

* Remove vertical insets for ComboBox

* Set elide middle to be default for the TableViewLabel

* Fix vertical spacing on the preferences window

* Define 3rd line for Bokeh charts, showing current phase profile

* Add multiple phases support to the analysis chart

* Add support for the multiple HKL sets

* Replaced GNU license with BSD-3.

* Update license description

* update license copyright year

* Expand python versions and add RichText (#4)

* Expand python versions and add RichText

* plotting 3d libs boxes only visible for easyDiffraction

* Comments from Andrew S

* Fixing a typo (#5)

* dicttoxml -> XMLSerializer

* Plotly (#9)

* Bump qtquick to 2.15

* Remove `Structure plotting` from preferences

* Add simple 1d chart view based on Plotly

Co-authored-by: Andrew Sazonov <andrew.sazonov@ess.eu>

* Add another Plotly example: 2D Heatmap

* Update pyproject.toml

* New interface (#18)

* Qt6: Back to Qt.labs.settings before Qt 6.5

* Qt6: Fixed GroupBox component

* Qt6: Use Dialogs from Qt.labs.platform instead of QtQuick.Dialogs

* Qt6: Add comment `Parameter "mouse" is not declared` for future fix

* Qt6: Remove modules version number for easyApp

* Capitalize first letter in easyApp -> EasyApp

* Qt6: QtQuick.Dialogs seems better than Qt.labs.platform

* Remove wrong SPDX header

* Add splash screen implementation

* Modify splash screen to simplify live preview

* Remove QtCharts, Bokeh and ChemDoodle

* Add some default chart sizes

* Add title to the `parameter` component

* Extend basic Plotly 1d Line chart

* Implement new Plotly 1D chart: Measured vs Calculated data

* Move html templates into separate dir

* Add draft of the basic report

* Add pyproject.toml

* Fix pyproject.toml

* Continue improving BasicReport template

* Plotly 1.58.5 -> 2.18.0

* Remove old plotly 1.58.5

* Try with 'scattergl' instead of 'scatter' as default in plotly

* Get rid of miscProxy

* Remove default placeholder text from Parameter element

* Fix project description

* Add useWebGL property

* Hide splash screen right after app window is loaded

* Modify RemoteController

* Try to capitalize package name

* Try poetry

* Capitalize EasyApp from easyApp

* Back to hatch

* Allow py3.11

* Hardcode axes ranges

* Fix warning: Parameter "mouse" is not declared

* Fix 1d plot webgl toggler

* Add read write file functions

* Split x and y datasets for charts

* Cleaning up / renaiming

* Show tooltip on slider hover

* Refactor table view and status bar

* Add missing functions to remote controller

* Update Plotly1d chart

* Update TableView

* Add basic QtCharts

* EaGlobals.Variables -> EaGlobals.Vars

* Add background line

* Fix status bar model key names

* TableView: disable save-restore current state

* Fix `Qt.labs.settings is deprecated` for Qt6.5

* Fix `The current style does not support customization`

* Find `Using a Component as the root of a qmldocument is deprecated`

* Split header and delegate in TableView

* Clean up TableView

* Add children count property to SideBarColumn

* Add axis ranges to plotly chart

* Update persistent settings

* Enable logging level selector in app preferences

* Set QtCharts to be default 1d plotting lib

* The same useOpenGL property for all chart series

* Hide status bar model element if empty

* Extend logging options

* Fix logging level model

* Move logger to EasyApp

* Splash screen animation

* Extend and fix `fitting in progress` label

* Fix fitting label animation type

* Make base 1d chart

* Split logging message into chunks

* Fix logging

* Split qtchart to base and main

* Fix module name

* Set color for calc series

* Extend base chart

* Auto width and focus for the `Parameter` element

* All sidebar groups are collapsed by default

* No need to set group row width

* Fix sidebar group inner layout

* Update sidebar group row layout

* Minor fixes

* Some design changes: colors, animation

* New status bar design

* Add orange color

* Increase sidebar width

* Extend base QtCharts chart

* Remove focus on TableView TextEdit field change  accepted

* Add Font Awesome v.6 (but continue using v.5)

* Modify 'grey' color

* Modify default vertical padding for check box

* Fix preferences layout after check box changes

* Add custom scroll bar

* Extend base chart with pan functionality

* Add ranges after reset properties

* Add 'fit' property to some components

* Add menu component. Extend parameter component

* Minor fixes

* Improve parameter component

* TextArea and TabButton functionality ext

* Fix status bar spacing

* Add tooltip to tableview label

* Set default number of digits for parameter value and error

* Clean up

* Minor style changes for buttons, labels, tables

* Clean up

* Add background color property

* Reduce width of the group header clickable area

* Extend ComboBox and Group parameters

* Add gradient to the sidebar

* Add extra field to table view parameter

* Add outline icon property to table button

* New style for continue button

* Auto-hide and auto last for group boxes

* Fix group box title top margin

* Minor fixes

* Fix group box internal spacing

* Add color reset animation

* Reduce tab button icon size

* Add icon to the group box component

* Modify status bar

* Highlight title of the unfolded sidebar groups

* Minor fixes

* Use HoverHandler to react on hover events. New 2-lines table label

* Fix some cursor shape issues

* Increase sidebar button hight

* Multiple changes

* Fix project name validator

* Disable 1d charting library selector

* Modify parameter names format

* Update colors

* Disable loading 1d chart lib prom preferences

* New property for current color palette

* Save color scheme

* Fix menu background color

* Set 'error' to be the default logging level

* Fix logging header. Need move to EA from ED

* Add default project parent dir property

* Add extended logging to the Updater class

* Update translator

* Use categories in CIF

* Temporarily disable 'User guides' selector

* Minor changes

* Increase logging main message width

* Fixes updater's web date

* Add opacity to the `stop tutorial` button

* Accept project create dialog on return pressed

* Fix color

* Try Python 3.12

* Fix pyside6 version to be 6.5.3 because of the issues on macOS

Never version of pyside6 fails with QtQuick3D rendering on macOS:
- Particles not supported due to missing RGBA32F and RGBA16F texture format support
- No GLSL shader code found (versions tried:  QList(120) ) in baked shader

* Force using pyside6==6.7.0 and above

* Force using pyside6==6.6 and above

* Force using pyside6==6.6 only

* Keep the scrollbar thin, even if it is interactive

* Implement most basic qml and py examples

* Update readme

* Fix how to run qml

* Simplify structure

* Clean up. Minor corrections

* Update the Qt installation instruction

* Add instruction on how to edit GUI in live mode

* Update the readme file

* New way to access the backend and GUI components

* New qml-py-py example

* Update README.md

* Add qml-qml-cpp example

* Restructure examples

* Restructure the whole set of examples

* Add README.md

* Update examples.md

* Add ref to examples

* Move EasyApp to src/EasyApp

* Add link to web app based on BasicMinimalC++

* Clean up

* Fix qmlproject

* Add CI to build wasm

* Add libxkbcommon

* Switch to macos

* Cache emsdk and qt

* Add build wasm step

* Fix path to emsdk

* Add upload steps to CI

* Fix path

* Add GITHUB_API_PERSONAL_ACESS_TOKEN

* Update readme

* Fix GH_API_PERSONAL_ACESS_TOKEN

* Change path to Qt installation

* Update readme

* Change path to Qt

* Simplify BackendProxy.qml

* Simplify pyproject.toml

* Move the property 'version' back to pyproject.toml

* Add the full path to the logo image in the readme

* Minor fixes in examples.md

* Update project description

* adjustments BasicMinimalPy

* adjustments BasicPy

* adjustments BasicPy

* adjustments IntermediatePy

* vscode

* updates examples.md

* adjustment to examples

* Rename Status.py to status.py

* Rename Report.py to report.py

* Rename Project.py to project.py

* Rename Helpers.py to helpers.py

* Rename Helpers.py to helpers.py

* Rename Project.py to project.py

* Rename Report.py to report.py

* Rename Status.py to status.py

* handle when local EasyApp module is used

* updates to example.md

* Update EXAMPLES.md

* Re-order imports

* Update application info

* Remove unused __version__.py

* Update project structure diagram

* Remove missing files from resources.qrc

* Remove intermediate layer between GUI and backends (old implementation)

* Fix name_changed notification

* Add docstring

* Remove proxy access from all objects except the connections handler

* Remove unused property

* Replace setContextProperty with qmlRegisterSingletonType

* Implement onObjChanged in the intermediate backend layer

* Rename Backend

* Force PySide6>=6.6,<6.7

* moved entry to python backend to python dir

* flat backend

* renamed to BackendProxy to BackendWrapper

* Renamed Logic folder to Backends

* removed proxy from backend name

* cleaning BackendWrapper.qml

* Rename GUI accessible properties and slots following Qt standards

* Move ConnectionsHandler functionality into Backend

* Move real_backend.py out of RealPy

* Fix Backend name in debug output

* Fix pyproject structure

* Rename RealPy to real_py

* Update the IntermediatePy project diagram

* Fix all examples following the IntermediatePy one

* Rename examples (more simple structure)

* BasicMinimalPy to BasicPy
* BasicMinimalC++ to BasicC++
* BasicPy to IntermediatePy
* IntermediatePy to AdvancedPy

* Move non-QObject backend logic into subfolder

* Simplify examples and add more comments

* Update descriptions

* Update readme [ci skip]

* Move VS Code initial settings from `vscode/` to `.vscode`

* Update readme [ci skip]

---------

Co-authored-by: Andrew Sazonov <andrew.sazonov@ess.eu>
Co-authored-by: Andreas Pedersen <andreas.pedersen@ess.eu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants