Git Product home page Git Product logo

Comments (8)

LemurPwned avatar LemurPwned commented on July 28, 2024 1

I will join this issue with #35 since it has conjugated issues

from vism.

LemurPwned avatar LemurPwned commented on July 28, 2024 1

Yes, that's exactly what I have started to do

from vism.

pawelkulig1 avatar pawelkulig1 commented on July 28, 2024

I think we should do something like that:
Every widget has at least two files, one is GUI class to configure it and another class is to show it as widget. If One adds new Widget (installs it by this script, all names are added to some file etc. ). It is from now shown in menu of Widgets (this list of widgets). If One choses widget, it shows configuration window with default configuration (user can change it), and after clicking OK, new widget will be added. This reduces problems with for ex. not selecting plot setting before animation.

  • First (if One enters program) One has to pick folder with data (everything else is locked).
  • If One picks Widget he has to setup configuration, if not all options like (animation menu) is locked.

We will force user to pick things in order we want them to be picked.
I think this kind of thinking will let us simplify app, and get rid of some complicated bugs.

from vism.

LemurPwned avatar LemurPwned commented on July 28, 2024

Ok, so what I am preparing right now is a Mediator with proxy that propagates settings from the GUI to itself, verifies it and then manages settings prompting and Canvas or GL object creation. This will not require any blocking since settings are only prompted at creation and will be valid only for the object's lifetime (til deletion).

additionally, I will construct another class that will delegate Widget buildup (checks all files) and will enhance the namespace of the aforementioned settings mediator.

So for example:

  • first enter the data (nothing can be set yet)
  • pick a layout
  • select widget
  • (settings are prompted)
  • widget is created if settings are valid
  • close the widget if needed

I propose that settings should be valid for the whole lifetime of the 3d widget, if user wants to modify it, there is a need to reload it anyway so it wont save much time by modyfiying it i.e. delete and create new.
However, for now, settings Mediator will refresh modifications for 2D layers, that's ok.

Tell me what do you think about that.

from vism.

pawelkulig1 avatar pawelkulig1 commented on July 28, 2024

Correct. I think at start of app user should be prompted with some kind of Initial Panel and then asked to provide directory, the rest is as above.
For now I will take care of:

  • Button to delete widget.
  • Improve idea with pop up when data is loading.
  • Fix issue when some widgets are smaller and others bigger.
  • I will refactor Worker code (Singleton which is triggering frame change).
  • Fix issue? when you abort data loading app is closing - pretty inconvenient.

I will join you after having my part done.

from vism.

pawelkulig1 avatar pawelkulig1 commented on July 28, 2024

We have to think about putting each Widget in separate directory (I don't think it's necessary), but for sure we must put all widgets in one directory.

from vism.

pawelkulig1 avatar pawelkulig1 commented on July 28, 2024

To be clear this should also shorten main.py file because compose_dict and plotSettingsReceiver will be inside widgetSettings class and choosingWidgetReceiver won't be made of cascade of if statements.

from vism.

LemurPwned avatar LemurPwned commented on July 28, 2024

I think it was completely solved in #39 and #46

from vism.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.