MatthewASimonson / r-orange

Automatically exported from code.google.com/p/r-orange
Other
0 stars 0 forks source link

qtWidget state #505

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Serge reported a problem with the list boxes not being visible on reload.

How is this handled in redRGUI.  I can see that there is a default state, I'm 
guessing that this is loaded in parallel to the loadSettings?

Original issue reported on code.google.com by kylecovi...@gmail.com on 22 Apr 2011 at 3:06

GoogleCodeExporter commented 9 years ago
can you give an example? 
the listbox is not visible on the GUI? what does reload mean? 

Original comment by anup.parikh on 2 May 2011 at 12:49

GoogleCodeExporter commented 9 years ago
apparently he couldn't see the listbox when reloading a saved schema.  

The larger issue is how we plan to handle things like enabled, visible, etc.  
Should this be relegated to widget state or to the widget itself?

Original comment by kylecovi...@gmail.com on 2 May 2011 at 1:52

GoogleCodeExporter commented 9 years ago
since widgets can have multiple qt components, widgetstate was designed to  
encompassed all the components in a single widgetbox called controlArea. 
show(), hide() enabled(),disabled() are all functions defined in widgetstate 
that work on controlArea and should be generic enough to work across all 
qtwidgets. 

Take a look at the widgetState class in redRGUI. All qtWidgets add their qt 
components to self.controlArea defined in widgetState

Original comment by anup.parikh on 2 May 2011 at 5:13

GoogleCodeExporter commented 9 years ago
serge gets the following error, perhaps linked with the widget close events?

I don't know if the bug has been looked at or put in the issue list, but radio 
buttons are not shown in widgets when I load them from a saved file. Maybe 
something like what happened with list boxes?

When I open or close a widget with radio buttons, I get:

REDRCORE:CRITICAL : 

############################################################
Unhandled exception of type TypeError occured at 2011-05-02 09:56:19.670000:
Traceback:
  File: redRWidgetGUI.py, line 379 in moveEvent
    File: redRWidgetGUI.py, line 343 in saveWidgetWindowState
      TypeError: 'radioButtons' object is not callable 
############################################################

REDRCORE:CRITICAL : 

############################################################
Unhandled exception of type TypeError occured at 2011-05-02 09:56:19.676000:
Traceback:
  File: redRWidgetGUI.py, line 371 in resizeEvent
    File: redRWidgetGUI.py, line 343 in saveWidgetWindowState
      TypeError: 'radioButtons' object is not callable 
############################################################

REDRCORE:CRITICAL : 

############################################################
Unhandled exception of type TypeError occured at 2011-05-02 09:56:23.532000:
Traceback:
  File: redRWidgetGUI.py, line 359 in closeEvent
    File: redRWidgetGUI.py, line 343 in saveWidgetWindowState
      TypeError: 'radioButtons' object is not callable 
############################################################

Original comment by kylecovi...@gmail.com on 2 May 2011 at 2:29

GoogleCodeExporter commented 9 years ago
I think I might see the problem.  saveWidgetState wants to call self.size(), if 
someone set self.size to be a radioButtons then the object wouldn't be callable 
and it would cause lots of errors to happen.

I wonder if there would be some way to rename all the variables so we know that 
they are private?

self.OWRpyFunctionSize() instead of size().  Problem there is that Qt has 
already set several of these functions for us...

Original comment by kylecovi...@gmail.com on 2 May 2011 at 2:36

GoogleCodeExporter commented 9 years ago
I am working from 1.85_gold branch. I open/close, save/reload merge widget 
without this error. 

Original comment by anup.parikh on 2 May 2011 at 2:43

GoogleCodeExporter commented 9 years ago
From Serge

I changed the self.size variable in the raw2comp.py widget, but the problem 
persists.

To produce the bug, here is what I do with revision 1302, Windows 7.

* New Pipeline
* Insert "Column Matcher" widget
* Save [dummy].rrs
* Exit

* Launch Red-R
* Open [dummy].rrs
* Double-clic on "Column Matcher" widget
--> radio buttons are no longer there!

Original comment by kylecovi...@gmail.com on 2 May 2011 at 2:54

GoogleCodeExporter commented 9 years ago
fixed,

do not set visible in the qtWidget, this will need to be handled by widget 
state.

Original comment by kylecovi...@gmail.com on 2 May 2011 at 2:54

GoogleCodeExporter commented 9 years ago
I was working on trunk until the problem is fixed.

I think it is now, please check if 1.85_gold sets visibility in radioButtons.py

If so then merge from trunk to fix.

Thanks

Original comment by kylecovi...@gmail.com on 2 May 2011 at 2:57

GoogleCodeExporter commented 9 years ago
this raises a bigger issue. There are many functions/variables in the
parent class of widgets, signals and qtwidgets that should not be
overwritten.
Currently the developer just needs to know what these
functions/variables are and remember not to use them in their code.

should create a naming schema for all core functions to avoid these errors.

Original comment by anup.parikh on 2 May 2011 at 3:31

GoogleCodeExporter commented 9 years ago
that's kind of what I was suggesting for self.OWRpyFunctionSize() but size() is 
a qt function.  

Perhaps enforcing the oposite would be better, we already use 
RFunctionParam_XXXX for widgetmaker.  Perhaps should recommend this to 
developers.  Programmers run into this problem all the time in C...

Kyle

Original comment by kylecovi...@gmail.com on 2 May 2011 at 3:51

GoogleCodeExporter commented 9 years ago
This issue seems to be closed.

If we run into any other problems with states we can tackle those then

Original comment by kylecovi...@gmail.com on 7 Jun 2011 at 4:56