Ticket #3737 (inprogress)

Opened 9 years ago

Last modified 5 years ago

Stability of CreateSampleShape GUI

Reported by: Nick Draper Owned by: Anyone
Priority: major Milestone: Backlog
Component: Framework Keywords:
Cc: Blocked By: #7802
Blocking: Tester:

Description (last modified by Keith Brown) (diff)

The gui can cause Mantid to crash when insufficient information is present to display the sample.

e.g.

  1. Create a sphere (enter no details)
  2. Create a union above
  3. Add a cylinder to the union (no details)
  4. Click update 3d view -> freeze

Change History

comment:1 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 32 to Iteration 33

Moved to iteration 33 at iteration 32 code freeze

comment:2 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.1 to Release 2.2

Moved at end of release 2.1

comment:3 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.2 to Release 2.3

Moved at the end of release 2.2

comment:4 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.3 to Release 2.4

Moved to milestone 2.4

comment:5 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.4 to Release 2.5

Moved at the code freeze for release 2.4

comment:6 Changed 7 years ago by Nick Draper

  • Milestone changed from Release 2.5 to Release 2.6

Moved to r2.6 at the end of r2.5

comment:7 Changed 7 years ago by Nick Draper

  • Keywords Student added

comment:8 Changed 7 years ago by Martyn Gigg

This should also be able to load a previously created shape

comment:9 Changed 7 years ago by Martyn Gigg

  • Status changed from new to assigned
  • Owner changed from Anyone to Keith Brown

comment:10 Changed 7 years ago by Keith Brown

  • Status changed from assigned to accepted

comment:11 Changed 7 years ago by Keith Brown

There seems to be two parts to this:

  • Fix the crash
  • Make the custom GUI operate more sensibly, populating itself if possible.

comment:12 Changed 7 years ago by Keith Brown

Fixed crash by means of extra validation

The program should no longer freeze as it is no longer possible to update the 3D view or create the shape without entering in all the details for a component shape. If any fields don't contain a number that's convertable to double, the program will show an error message. The error doesn't show what's wrong specifically, it just tells the user there is something to check.

Refs #3737

Changeset: 549e777f0ada41034a8ca9ffb92e677b4a07d40b

comment:13 Changed 7 years ago by Keith Brown

Stashing in order to fix another ticket

Validation has had a fix as in the shape valid() methods I had negated some conditions when I shouldn't have.

Otherwise, work is starting on loading a stored shape

Refs #3737

Changeset: f1fd374d9033a3bee7855be5fda62bbd91815e03

Last edited 7 years ago by Keith Brown (previous) (diff)

comment:14 Changed 7 years ago by Nick Draper

  • Status changed from accepted to assigned

comment:15 Changed 7 years ago by Keith Brown

Started writing the shape XML parser

The XML parser has been started and currently only gets the algebra string so that the tree can be constructed.

Next job is to actually build a data structure to hold the tree info in

Refs #3737

Changeset: d1f6d5840d0cc4f3b48909ec8241dd292b44ad90

comment:16 Changed 7 years ago by Nick Draper

  • Status changed from assigned to new

comment:17 Changed 7 years ago by Keith Brown

Started writing equation parser

Committing to save progress before looking at another branch the equasion parser will be written as a recursive function, finding the most central opperator and splitting the string there and passing to a lower function until only a shape remains

Refs #3737

Changeset: 4dfa9c4e4dce5ad636de17c71584fe12d94e4446

comment:18 Changed 7 years ago by Keith Brown

  • Status changed from new to inprogress
  • Description modified (diff)

comment:19 Changed 7 years ago by Keith Brown

Equation parser taking shape

the recursive equation parsing algorithm is taking shape and the framework is nealry complete

Refs #3737

Changeset: ac1b131307d98e92fb822e25ffbf9d1c9e1b7d84

comment:20 Changed 7 years ago by Keith Brown

Parsing fucntion practically complete.

The parsing function is as complete as it can be for now, as it can't create anything before i supply the storage framework for storing the dummy tree The new constructors for the shapes need written too

Refs #3737

Changeset: 1bdfcc733770a20635e15182bdec53ed5758a96a

comment:21 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

comment:22 Changed 7 years ago by Keith Brown

  • Milestone changed from Release 2.6 to Release 3.0

comment:23 Changed 7 years ago by Keith Brown

Discovered another bug where if a shape has it's complement flag set (the text in the widget has a # in it) it won't be able to be edited as setupDetailsBox() looks directly to see if item->text(0) is in m_setup_map, which it won't be as the # is in the way. so it continues without adding the editing widget, leaving a blank space.

Will have to change either the map or strip out the # before looking it up.

comment:24 Changed 7 years ago by Keith Brown

Stashing to switch tickets

Now creating the functionality to populate the tree. Committing in order to switch branches and fix a reopened ticket

Refs #3737

Changeset: fc16513906be06c008663a3c8965a0405f9c7170

comment:25 Changed 7 years ago by Keith Brown

Instanciation methods taking shape

The instanciation methods that build the QTreeWidget are taking shape.

I've added new constructors to ShapeDetails and derived classes that take a Poco::XML::Element and can fill in details from the XML contained within that element

Refs #3737

Changeset: 61cb9aba7a44b62a1c72fe5fe532b03db3db11de

comment:26 Changed 7 years ago by Keith Brown

Tree is being built, XML being parsed

The tree is being built as expected and the XML is being parsed, but i've revealed that the new way i've done something seems to mean that widgets aren't being loaded, but i'll fix that by making it get the widget a more sensible way.

Refs #3737

Changeset: 8301b67af959e1169d5da84299040675fe8b5839

comment:27 Changed 7 years ago by Keith Brown

Some shapes confirmed to work. Complement identification works

At least spheres and finite cylinders import properly, the code is there for sliceofcylinderring and infinitecylinder but they've not been tested. The other shapes are awaiting parseing code.

I had made some mistakes when it came to complements of shapes. The first was that even if they were identified they weren't getting set as them, this was because I'd accidentally redeclared the flag as local and it was going out of scope. the second was that the displayed text was wrong due to the way i was constructing the QString.

Fixed a possible memory leak (or at least objects were kept in memory and not deleted) as when i was parsing XML in the shapes, some lists weren't being released.

Refs #3737

Changeset: 95686b7279f15e92e744e44537277f4cd9f79ecd

Last edited 7 years ago by Keith Brown (previous) (diff)

comment:28 Changed 7 years ago by Keith Brown

All shapes now Parse XML given to them

All shapes now have a construtor that will intialise them from XML.

I still need to inlcude parts for the spherical coordinate system but once that's in all i need to do is test it out and make sure it works fully

Refs #3737

Changeset: bc1149c8e330b7f9d04e7fed8f68086d545761ca

comment:29 Changed 7 years ago by Keith Brown

  • Blocked By 7802 added

comment:30 Changed 7 years ago by Keith Brown

  • Milestone changed from Release 3.0 to Backlog

comment:31 Changed 7 years ago by Keith Brown

  • Milestone changed from Backlog to Release 3.1

comment:32 Changed 7 years ago by Keith Brown

  • Milestone changed from Release 3.1 to Backlog

comment:33 Changed 6 years ago by Keith Brown

This is blocked as some shapes don't render properly

comment:34 Changed 6 years ago by Keith Brown

  • Owner changed from Keith Brown to Anyone

not going to get this done before i leave, leaving to anyone

There is work against this ticket on branch bugfix/3737_CreateSampleShape_freeze_and_load_fix

comment:35 Changed 6 years ago by Nick Draper

  • Keywords Student removed

comment:36 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 4584

Note: See TracTickets for help on using tickets.