View Issue Details

IDProjectCategoryView StatusLast Update
0004412Slicer4Core: GUIpublic2017-09-26 10:16
Reporterpinter Assigned To 
PrioritylowSeverityfeatureReproducibilityN/A
Status acknowledgedResolutionopen 
Product Versionbacklog 
Target VersionbacklogFixed in Version 
Summary0004412: ctkMessageBox cannot handle complex layouts
Description

If ctkMessageBox is subclassed and anything is added to the layout under the message text, then the Don't show again button appears incorrectly. The reason is that the checkbox is added to the second row and second column of the main grid layout.

This came up when don't show again checkbox was added to the DICOM references dialog: https://github.com/Slicer/Slicer/pull/767
It was decided to keep subclassing QMessageBox, and implementing the don't show feature. If this comes up again, then ctkMessageBox might need to be changed.

Issues identified with ctkMessageBox:

  • setDontShowAgainVisible adds the checkbox in a fixed layout position
  • A new OK button is also added when calling setDontShowAgainVisible (this could be a potential source of regressions, as this logic might be relied on in other projects)
    • The new button is added in ctkMessageBoxPrivate::button, which is supposed to be a getter function. Adding a button in this function is unexpected
      Potential solution:
  • Add a 0px high and empty QFrame in ctkMessageBox between the message and the don't show button. Any extra content could then be added to this empty frame
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2017-08-11 12:45 pinter New Issue
2017-09-26 10:16 jcfr Status new => acknowledged