Skip to content

CTK 2023.07

Latest
Compare
Choose a tag to compare
@jcfr jcfr released this 18 Jul 09:17
· 161 commits to master since this release
2023.07.13

What's Changed

💥 This release is the last one to support Qt4, VTK 8, C++98 and Python 2.7.

Improvements:

  • ENH: Improve vtk scalars to colors widget by @jcfr in #841
  • ENH: Reduce warning logs during DICOM import by @lassoan in #842
  • ENH: Add python wrapping to functions in ctkVTKScalarsToColorsView and ctkVTKScalarsToColorsWidget by @lassoan in #844
  • ENH: Update version of QtTesting by @Xaxetrov in #853
  • ENH: Use display tables to allow showing derived and custom columns in DICOM browser by @cpinter in #858
  • ENH: Add ctkErrorLogAbstractModel to CTKCore library by @jcfr in #864
  • ENH: ctkMenuComboBox: Add completerMenu()/setCompleterMenu() by @jcfr in #868
  • ENH: ctkMenuComboBox: Ensure menu and completerMenu can be get and set from python by @jcfr in #869
  • ENH: Add direct access to widget items in ctkMatrixWidget by @lassoan in #871
  • ENH: Add qt to vtk image by @lassoan in #882
  • ENH: Update PythonQt by @jcfr in #883
  • ENH: DICOM browser rework by @lassoan in #886
  • ENH: Reduce memory usage of DICOM indexer by @lassoan in #887
  • ENH: Emit signals from ctkTransferFunctionItem for mouse events by @Sunderlandkyl in #888
  • ENH: Make applications use UTF-8 code page by @lassoan in #902
  • ENH: Accessibility improvements in DICOM classes by @cpinter in #905
  • ENH: Add patient display field for last study date by @cpinter in #907
  • ENH: Add checkBoxControlsButtonToggleState property to ctkCheckablePushButton by @Sunderlandkyl in #908
  • ENH: Allow setting DICOM thumbnail dimensions and resize function by @cpinter in #910
  • ENH: Make console message printing methods available in Python by @lassoan in #912
  • ENH: Add method to import selected files into DICOM browser by @lassoan in #914
  • ENH: Allow saving relative paths to settings by @lassoan in #922
  • ENH: Support build with vtk89 by @jcfr in #934
  • ENH: Adding support for VTK 9.0 by @kraehlit in #936
  • ENH: Allow ctkMessageBox to store any don't-show-again button roles in settings by @lassoan in #941
  • ENH: Reduce storage path length of files stores in DICOM database by @lassoan in #942
  • ENH: Ensure copyDirRecursively considers hidden directories and files by @jcfr in #943
  • ENH: Remove warning message when nullptr is used as vtkObject pointer event data by @lassoan in #944
  • ENH: add command and history properties to ctkConsole by @pieper in #945
  • ENH: Make DICOM database relocatable by @lassoan in #946
  • ENH: Improve filename sanitization in DICOM export by @lassoan in #952
  • ENH: Additional where conditions in DICOM table view; Safer SQL query by @cpinter in #955
  • ENH: Allow using custom DICOM schema and database update roles extern… by @cpinter in #956
  • ENH: Create roles instead of hard-coded DICOM display fields by @cpinter in #963
  • ENH: Make gradient opacity transfer function shift independently from opacity and color transfer functions by @lassoan in #965
  • ENH: Add DICOM displayed field generator rule factory by @cpinter in #970
  • ENH: Improve usability of Directory Button by using native dialog by @jamesobutler in #973
  • ENH: Impove DIMSE widget by @riep in #994
  • ENH: Added Qt multimedia component from PythonQt by @atracsys-sbt in #992
  • ENH: Add API to select items in the DICOM browser by @lassoan in #1002
  • ENH: Update ctkUtils adding qListToQSet and qSetToQList by @jcfr in #1004
  • ENH: Add ctk::endl and ctk::flush to fix endl deprecation warnings with Qt >= 5.14 by @jcfr in #1008
  • ENH: Add ctk::modelChildIndex implementation accepting const model by @jcfr in #1014
  • ENH: Add elide option to ctkPushButton and make ctkDirectoryButton elided by default by @lassoan in #1016
  • ENH: Minor ctkVTKTextPropertyWidget improvements by @lassoan in #1017
  • ENH: Improve ctkLanguageComboBox by @lassoan in #1019
  • ENH: Add option on using system library by @liududu in #1020
  • ENH: Add support for PBR material properties in material property widgets by @lassoan in #1022
  • ENH: Improve navigation in DICOM browser tables by @lassoan in #1025
  • ENH: Set focus proxy on ctkPathLineEdit by @ebrahimebrahim in #1026
  • ENH: Improve ctkLanguageComboBox by @lassoan in #1028
  • ENH: Update ExternalProjectDependency system based on commontk/Artichoke@ea920eb by @jcfr in #1029
  • ENH: Set a continuous CTF for the ctkVTKScalarsToColorsView as an edi… by @MichaelColonel in #1032
  • ENH: Add API to get message handler from ctkErrorLogAbstractModel by @lassoan in #1043
  • ENH: Improve error log model API to allow log display in console by @lassoan in #1044
  • ENH: Console improvements by @lassoan in #1045
  • ENH: Improve robustness of Python code running in the console by @lassoan in #1046
  • ENH: Expose removeCachedTags method in Python by @cpinter in #1056
  • ENH: Update external projects by @jcfr in #951
  • ENH: Multi viewport layout by @lassoan in #1061
  • ENH: Expose ctkPythonConsoleCompleter on the public CTK API by @lassoan in #1062
  • ENH: Browser thumbnails by @lassoan in #1063
  • ENH: follow symlinks in dicom indexing by @pieper in #1066
  • ENH: Added python bindings for ctkCheckableHeaderView by @kerim371 in #985
  • ENH: Allow instantiation of more CTK objects in Python by @lassoan in #1078
  • ENH: Remove irrelevant translatable strings by @lassoan in #1079
  • ENH: Ensure ctk::copyDirRecursively skips hidden file by default by @jcfr in #1085
  • ENH: Add "commit-message" GitHub Actions workflow by @jcfr in #1090
  • ENH: Improve ctkUtils by @jcfr in #1089
  • ENH: Add layout orientation to ErrorLogDockWidget by @Punzo in #1100

Documentation:

  • DOC: Document fix to support building using Qt-5.12 and Microsoft Visual Studio 2019 by @al-sabr in #930
  • DOC: Fix typos in the Libs/ subdirectory by @luzpaz in #1035
  • DOC: Fix remaining doxy/source comment typos by @luzpaz in #1036
  • DOC: Update README adding sections like Overview, Getting Started and Topics by @jcfr in #1101

Fixes:

  • BUG: Fix build failure with vtk and testing enabled by @jcfr in #840
  • COMP: DCMTK 3.6.4 updated function signatures by @hjmjohnson in #845
  • COMP: Fix catch by value warning in ctkDICOMAppWidget by @phcerdan in #850
  • BUG: Python3: Fix initialization of PythonQt module by @jcfr in #857
  • CI: Disable testing by @jcfr in #855
  • BUG: Fix Python console auto-completion by @jcfr in #859
  • COMP: Libs/DICOM: Fix warning and build errors by @jcfr in #860
  • BUG: Fix DICOM display fields merging by @cpinter in #861
  • BUG: Fix DICOM image size computation by @cpinter in #865
  • BUG: Fix crash if layout factory failed to create view from XML element by @jcfr in #866
  • BUG: Update ctkPythonConsole to support auto-completion including unicode characters by @jcfr in #872
  • BUG: Fix QtDesigner crash in debug mode by @lassoan in #847
  • BUG: Fix merging display table fields containing commas by @cpinter in #875
  • BUG: Fix PythonLibs handling by @kislinsk in #874
  • COMP: Ensure ctkFunctionExtractOptimizedLibrary can be used in dependent project by @jcfr in #879
  • BUG: Escape single quote in DICOM database SQL statement by @cpinter in #881
  • BUG: Fix unexpected camera position change in ctkVTKRenderView::lookFromAxis by @lassoan in #889
  • BUG: typo in ctkDICOMDatabase by @issakomi in #892
  • BUG: Attempt to fix crash when opening database created with old schema by @lassoan in #893
  • BUG: typo in database, signal not emitted by @issakomi in #896
  • BUG: Fix special character display in DICOM metadata viewer by @lassoan in #903
  • BUG: Fix warnings in ctk dicom classes by @jcfr in #906
  • COMP: Fix Qt4 build adding fallback implementation for qUtf8Printable() by @jcfr in #909
  • BUG: Fix font style in DICOM browser by @lassoan in #916
  • COMP: Fix various deprecation warning C4996 by @jamesobutler in #915
  • BUG: Fix ctkMessageBox don't show again feature in Qt-5.12 by @lassoan in #921
  • BUG: Fix DICOM table defined stylesheet messing up use with palette by @jamesobutler in #923
  • BUG: Fix crash in popup widgets with Qt-5.15 by @lassoan in #924
  • BUG: Fix crash when man instances of ctkPathLineEdit is instantiated by @lassoan in #926
  • COMP: Fix build of ctkVTKWidgetsUtilsTestImageConversion using Qt 5.10 by @jcfr in #927
  • COMP: Fix build of CTKVisualizationVTK tests against VTK9 by @jcfr in #938
  • BUG: Workaround slice viewer rendering issue when built against VTK9 by @jcfr in #939
  • BUG: Revert invalid workaround for slice viewer issue with VTK9 by @jcfr in #940
  • BUG: Replace Q_ASSERT by qWarning to avoid crash in debug by @xriobe in #948
  • BUG: Fix dicom import from inside database folder and performance improvements by @lassoan in #957
  • BUG: Fix ctkVTKThresholdWidget 'pow' was not declared by @phcerdan in #958
  • BUG: Remove invalid characters from DICOM strings with unsupported character encoding by @lassoan in #968
  • BUG: Remove assert from matrix widget that flooded application log by @cpinter in #976
  • BUG: Fix crash instantiating ctkDICOMBrowser by @jamesobutler in #977
  • BUG: Update PythonQt to fix intallation of light-the-torch in Slicer by @jcfr in #978
  • BUG: Fix crash upon selecting files with DICOM browser import dialog by @jamesobutler in #981
  • BUG: avoid app freeze on mac by @pieper in #983
  • BUG: Fixes in volume rendering properties widget and path conversion utility functions by @lassoan in #984
  • ENH added AccessionNumber to Filters by @rbumm in #987
  • BUG: Fix ctkDICOMRetrieve::calledAETitle property setting method by @lassoan in #988
  • BUG: don't try to update null database by @pieper in #991
  • BUG: Fix python autocomplete by @lassoan in #997
  • COMP: Fix -Wreorder in ctkDICOMDatabasePrivate class by @jcfr in #1001
  • COMP: Fix -Wunused-parameter in ctkDICOMDisplayedFieldGenerator classes by @jcfr in #998
  • COMP: Fix -Wsign-compare and -Wunused-variable in ctkDICOMItem class by @jcfr in #1000
  • BUG: Fix deprecated declarations and inconsistent missing override warnings by @jcfr in #1003
  • COMP: Consistently export global and namespace symbols by @jcfr in #1009
  • COMP: Update ctkMacroGenerateMocs to fix warnings using qt5_generate_moc by @jcfr in #1007
  • BUG: Fix deprecation warnings by @jcfr in #1010
  • COMP: Fix QModelIndex::child() deprecation warnings by @jcfr in #1011
  • BUG: Fix sorting of languages in ctkLanguageComboBox by @lassoan in #1024
  • BUG: Fix build with Slicer_USE_PYTHONQT set to OFF by @markasselin in #1027
  • STYLE: Explicitly associate "https" protocol with GitHub external projects by @jcfr in #1030
  • BUG: Fix clipped view content when rotating view by @lassoan in #1031
  • BUG: Fix various user-facing and non-user facing typos by @luzpaz in #1034
  • COMP: Fix build against VTK > 9.1 removing use of removed "vtkConfigure.h" by @jcfr in #1041
  • COMP: Fix build against VTK > 9.1 explicitly including "vtkVersion.h" by @jcfr in #1042
  • COMP: Fix -Wunused-parameter in ctkVTKRenderView::lookFromAxis() by @jcfr in #999
  • BUG: Fix unnecessary warning in ctkVTKHistogram::resetRange() by @lassoan in #1048
  • BUG: Minor Python console fixes by @lassoan in #1049
  • BUG: Fix cursor position during auto-complete by @lassoan in #1051
  • BUG: Fix cmake warnings by @jcfr in #1052
  • BUG: Fix crash in ctkDICOMQueryRetrieveWidget by @lassoan in #1057
  • BUG: Fix ctk::vtkImageDataToQImage function by @lassoan in #1060
  • BUG: Fix lupdate warnings on translation function calls by @mhdiop in #1067
  • BUG: Ensure that the min/max values can be reached in ctkDoubleSlider and ctkDoubleRangeSlider by @lassoan in #1071
  • BUG: Improve ctk & qt python packages to avoid segfault when imported from standalone python by @jcfr in #1072
  • BUG: Mark translatable strings in Libs/DICOM by @mhdiop in #1068
  • COMP: Fix DICOM/Core build ensuring Qt headers can always be included by @jcfr in #1074
  • BUG: Mark translatable strings in Libs/Widgets by @mhdiop in #1076
  • BUG: Mark translatable strings in Applications folder by @mhdiop in #1077
  • BUG: Fix localization and inconsistent state in ctkModalityWidget by @lassoan in #1080
  • BUG: Fix warnings by @jcfr in #1083
  • BUG: Fix ctkCoreSettingsTest by @jcfr in #1084
  • BUG: Fix regression in ctkDateRangeWidget by @jcfr in #1086
  • BUG: Fix warnings by @jcfr in #1087
  • BUG: Fix plugin framework tests by @jcfr in #1088
  • BUG: Fix simple warnings by @jcfr in #1097
  • BUG: Fix additional warnings by @jcfr in #1098
  • BUG: Fix warnings by @jcfr in #1096
  • BUG: Fix Qt4/C++98 build by @jcfr in #1005

Known issues

  • ctkDICOMIndexer is broken due to invalid signal/slot connection

    • Regression introduced in 7bb0d9f (COMP: Fix Qt4/C++98 ctkDICOMIndexerPrivate build using literal signal/slot)
    • Fixed in subsequent release in #1124
  • ctkFlowLayout minimum size computation is incorrect

    • Regression introduced in e663242 (COMP: Fix deprecated warning related to QWidget::getContentsMargins())
    • Fixed in subsequent release in #1125

New Contributors

Full Changelog: 2018-10-29...2023.07.13