{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":720294,"defaultBranch":"master","name":"CTK","ownerLogin":"commontk","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-06-14T15:23:41.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/300358?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1698259255.0","currentOid":""},"activityList":{"items":[{"before":"7ed1da357b9e7e2462b4b764882612484c6fa051","after":"4c7154624e9a1a528ca04c067e7f35549339b53e","ref":"refs/heads/master","pushedAt":"2024-05-17T12:40:16.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"lassoan","name":"Andras Lasso","path":"/lassoan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/307929?s=80&v=4"},"commit":{"message":"BUG: Ensure all studies metadata are queried before filtering","shortMessageHtmlLink":"BUG: Ensure all studies metadata are queried before filtering"}},{"before":"e5970bc87c6a9f77b901ece5889b4455259d6620","after":"7ed1da357b9e7e2462b4b764882612484c6fa051","ref":"refs/heads/master","pushedAt":"2024-04-27T01:41:47.000Z","pushType":"pr_merge","commitsCount":24,"pusher":{"login":"lassoan","name":"Andras Lasso","path":"/lassoan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/307929?s=80&v=4"},"commit":{"message":"BUG: Do not overwrite the full palette in ctkDICOMServerNodeWidget2","shortMessageHtmlLink":"BUG: Do not overwrite the full palette in ctkDICOMServerNodeWidget2"}},{"before":"867f3875dcf93071661c8678fad30b1bd05ad498","after":"e5970bc87c6a9f77b901ece5889b4455259d6620","ref":"refs/heads/master","pushedAt":"2024-04-03T12:36:09.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Update GitHub workflow to test build against Qt 5.12.8\n\nThis update to the GitHub workflow enables testing builds against Qt 5.12.8\non Ubuntu 20.04. Notably, the build excludes VTK due to unavailability of\nVTK 9 packages on Ubuntu 20.04.\n\nTo support building ctkDICOMCore on Ubuntu 20.04, DCMTK is now built from source\nusing the CTK SuperBuild. This decision stems from the absence of DCMTK 3.6.6, as\nindicated by the DCMTK package version 3.6.4 available[^1] via apt-get. The need for\nbuilding DCMTK from source arises from the utilization of the function\n`DcmSCP::acceptAssociations`, introduced in DCMTK 3.6.6\nthrough DCMTK/dcmtk@c3d4c8e09 (Added alternative service provision API to DcmSCP).\n\nAdditionally, to ensure completion of the independent GitHub CI build workflows\ntesting against Qt 5.15.2 and Qt 5.12.8, the \"fail-fast\" option is set to false.\n\n[^1]: https://packages.ubuntu.com/focal/dcmtk","shortMessageHtmlLink":"ENH: Update GitHub workflow to test build against Qt 5.12.8"}},{"before":"fb72e1aa2b143bb942e6c7cdc5603a676884a80a","after":"867f3875dcf93071661c8678fad30b1bd05ad498","ref":"refs/heads/master","pushedAt":"2024-04-03T03:45:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Switch from CircleCI to GitHub Action for building CTK\n\nStreamline the build process by eliminating reliance on the\n`slicer/buildenv-qt5-centos7:latest` Docker image in favor of direct\nhost-based builds. Python, Qt, VTK, and DCMTK are now installed directly\non the host system.\n\nBuild on ubuntu-latest (22.04) installs Qt 5.15.2","shortMessageHtmlLink":"ENH: Switch from CircleCI to GitHub Action for building CTK"}},{"before":"a0ea618f1af08f7810d36f00e5427ff1b900507d","after":"fb72e1aa2b143bb942e6c7cdc5603a676884a80a","ref":"refs/heads/master","pushedAt":"2024-03-20T01:47:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lassoan","name":"Andras Lasso","path":"/lassoan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/307929?s=80&v=4"},"commit":{"message":"BUG: Fix crash when stopping jobs","shortMessageHtmlLink":"BUG: Fix crash when stopping jobs"}},{"before":"5a5c9f62a822ea48174cf544e0f05210f3810292","after":"a0ea618f1af08f7810d36f00e5427ff1b900507d","ref":"refs/heads/master","pushedAt":"2024-03-05T16:02:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Support using ctkAbstractPythonManager::ExecuteStringMode from Python\n\nFollow-up of fc58c6a16 (ENH: Make executeString and executeFile invokable\nfrom Python)\n\nCo-authored-by: Andras Lasso \nCo-authored-by: Steve Pieper ","shortMessageHtmlLink":"ENH: Support using ctkAbstractPythonManager::ExecuteStringMode from P…"}},{"before":"51c9f4a5a55f38ddce9d8b75a72c02fca64bf17a","after":"5a5c9f62a822ea48174cf544e0f05210f3810292","ref":"refs/heads/master","pushedAt":"2024-02-23T23:59:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pieper","name":"Steve Pieper","path":"/pieper","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/126077?s=80&v=4"},"commit":{"message":"STYLE: Convert C++ source files from old-style \"Whitesmiths\" to \"Allman\" style (#1193)\n\nThis commit reindents the C++ source files to adhere to the \"Allman\" style, moving\r\naway from the outdated and VTK-specific \"Whitesmiths\" style. The changes are applied\r\nusing an approach similar to the one utilized in kitware/VTK@f830ff47b3 (\"Reindent\r\nusing the reindentation script,\" 2016-09-23).\r\n\r\nThese modifications are made in anticipation of future changes that will introduce\r\nthe use of a standard configuration based on clang-format.\r\n\r\nSteps Taken:\r\n\r\n1. The script `Utilities/Maintenance/vtk_reindent_code.py` is executed, leveraging\r\n the approach from kitware/VTK@b6fec283cc. The command used is as follows:\r\n\r\n ```\r\n fd -e cxx -e h -e cpp -e cxx.in -e cpp.in -e h.in -e txx -x \\\r\n python3.9 /path/to/VTK/Utilities/Maintenance/vtk_reindent_code.py {}\r\n ```\r\n\r\n2. Manual review and adjustments are performed to address the errors identified\r\n during the reindentation process (see below).\r\n\r\n3. Update the indentations associated with macros to ensure proper alignment of\r\n backslashes. To identify the affected files, the following one-liner was utilized:\r\n\r\n ```\r\n for file in $(git diff HEAD --name-only); do\r\n git diff HEAD -- $file | ack \"\\+.+\\s\\\\\\\\$\" > /dev/null 2>&1 && echo $file;\r\n done\r\n ```\r\n\r\nErrors identified during the reindentation process:\r\n\r\n```\r\nLibs/Widgets/ctkTestApplication.h:64: mismatched '}'\r\n```","shortMessageHtmlLink":"STYLE: Convert C++ source files from old-style \"Whitesmiths\" to \"Allm…"}},{"before":"4aba4e20341c7111f5637337952a089464dc15db","after":"51c9f4a5a55f38ddce9d8b75a72c02fca64bf17a","ref":"refs/heads/master","pushedAt":"2024-02-13T13:00:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Fix Qt designer crash at startup\n\nOne of the DICOM widgets crashed the Qt designer because ctkDICOMScheduler::~ctkDICOMScheduler() called ctkJobScheduler::waitForDone,\nand that method called processEvents(). After returning form processEvents() the application crashed because the \"this\" pointer has become invalid\n(probably the ctkDICOMScheduler object got deleted).\n\nSolved the issue by removing processEvents() from ctkJobScheduler::waitForDone, and instead calling processEvents() before calling ctkJobScheduler::waitForDone.","shortMessageHtmlLink":"BUG: Fix Qt designer crash at startup"}},{"before":"9058c638438206e4756297a9976c350aa71d7fcd","after":"4aba4e20341c7111f5637337952a089464dc15db","ref":"refs/heads/master","pushedAt":"2024-01-28T16:14:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Always compile python scripts as legacy .pyc files\n\nRefine the script introduced in commit db3f4d99 (\"Re-create python compile\nscript only if needed and fix dependency. See #449\", 2014-04-16) by explicitly\nspecifying the `cfile` parameter. Disable the default behavior (introduced in\nPython 3.2) of generating .pyc files in the `__pycache__` directory, as outlined\nin PEP-3147.\n\nThis improvement is needed for Slicer-based applications, enabling them to\nlocate scripted modules and plugins as either .py or .pyc files in a specific\ndirectory.\n\nReferences:\n* PEP-3147: https://peps.python.org/pep-3147/\n* Slicer Forum Discussion: https://discourse.slicer.org/t/how-to-hide-the-code-of-the-script-module/26135/14\n* Python Documentation: https://docs.python.org/3/library/py_compile.html#py_compile.compile","shortMessageHtmlLink":"ENH: Always compile python scripts as legacy .pyc files"}},{"before":"888cdd92b7d5d465ed7e6b378deb99e10a801588","after":"9058c638438206e4756297a9976c350aa71d7fcd","ref":"refs/heads/master","pushedAt":"2024-01-28T14:59:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Update PythonQt backporting recent changes from MeVisLab/pythonqt\n\nMeticulous backport of all recent changes introduced in https://github.com/MeVisLab/pythonqt/\n\nCommit impacting only the PythonQt library are prefix with `[Backport]`\nthe one impacting only the generator are prefixed with `[Backport generator]`.\n\nList of PythonQt changes:\n\n```\n$ git shortlog c4a5a155b..db525aff0 --no-merges\nChristophe Giboudeaux (1):\n [Backport] Fix build with Python 3.8\n\nDavid Brooks (2):\n [Backport] Use `quote` characters around includes of our headers.\n [Backport] Support Qt 5.12\n\nFelix Petriconi (4):\n [Backport generator] Also generate python function for operator!=()\n [Backport generator] Default initialize all members\n [Backport] Replace foreach macro with range based for loop\n [Backport generator] Remove __* and _Uppercase from symbols because they must not been used\n\nGregor Anich (2):\n [Backport] More potential leak fixes and build fix\n [Backport] Allow setting PYTHON_VERSION and PYTHON_DIR when including python.prf, add rpath\n\nIakov Kirilenko (2):\n [Backport] Use XSETREF for safety\n [Backport] CI for CONFIG+=debug + UbSan for tests\n\nJames Butler (1):\n Prevent crashes during and after cleanup\n\nJean-Christophe Fillion-Robin (1):\n [Backport] Remove unused variable from PythonQtPrivate::callMethodInPython\n\nJohn Bowler (19):\n [Backport] Qt6: initial changes to make compilation work (#114)\n [Backport generator] Replace deprecated QAtomicPointer::load() (#115)\n [Backport generator] Qt6: QListoperator== requires const T::operator== (#116)\n [Backport generator] Qt6: qSort and qStableSort removed (#117)\n [Backport generator] Qt6: qSort, toList and fromList removal (#118)\n [Backport generator] Qt6: QString::SkipEmptyParts moved to Qt (#119)\n [Backport generator] Qt6: QTextStream compatibility (#120)\n [Backport generator] Eliminate warnings about #warning (#122)\n [Backport generator] Qt6: generator/typesystem.cpp: XML workround (#123)\n [Backport generator] Add constexpr and decltype parsing (#125)\n [Backport generator] Handle constexpr, auto (#126)\n [Backport] Qt6: fixes for removal of Qt5 types (#127)\n [Backport generator] Fix problems in Qt5.11 generator (#128)\n [Backport generator] Use spaces instead of tabs (#129)\n [Backport generator] generator: remove anonymous structs (#121)\n [Backport generator] generator: call Reporthandler::setContext more (#131)\n [Backport generator] generator: AbstractMetaClassList: correct sorting (#132)\n [Backport generator] generator: fix iterator issues with Qt5.14 headers (#142)\n [Backport generator] Fix: AbstractMetaBuilder::classesTopologicalSorted (#148)\n\nRichard Goedeken (1):\n [Backport] Qt6 compatibility fixes for core PythonQt library\n\nUwe Kindler (2):\n [Backport] Fixed mingw build issues\n [Backport] Fixed mingw64-build\n\nUwe Siems (90):\n [Backport] Loop did never finish if the first entry didn't match, fixes support for kwargs in slots.\n [Backport generator] Add default and copy constructor for QFontInfo and QFontMetrics\n [Backport generator] Avoid spaces at end of generated lines.\n [Backport] Make __enter__ and __exit__ slots work with \"with\" statements\n [Backport generator] Create correct __enter__ and __exit__ methods for QMutexLocker, QReadLocker, and QWriteLocker\n [Backport] Add a hint about QByteArray/bytes conversion, use fake footnote references.\n [Backport] Avoid crash for certain types that have no wrapper because they can't be instantiated\n [Backport] Fix a possible invalid memory access\n [Backport generator] QUrl::FormattingOptions flag arguments didn't work for Qt 5\n [Backport] Make this a proper C++ struct\n [Backport] Get rid of typedef struct completely, this is C++ code\n [Backport] Update __spec__ too (if existing) when setting the import path\n [Backport] Ignore some file types and directories\n [Backport] Generate modern C++ code with nullptr and override\n [Backport generator] Also consider interfaces of super classes (issue #75)\n [Backport generator] Add missing space in message\n [Backport generator] initialize members with list-initializers\n [Backport] Fix crash when converting Python list with None value to QVariant\n [Backport] Fix crash when using QObject::disconnect method (when multi-threading is enabled)\n [Backport] Limit string representation of argument list in length\n [Backport generator] add option to print parser errors when they occur\n [Backport generator] Keep track of current source code in Debug mode,\n [Backport] always ignore .vs folder\n [Backport generator] Don't interpret \"= default\" or \"= delete\" to mean this is an abstract method\n [Backport generator] Deleted methods need to marked as \"invalid\" to be handled correctly\n [Backport generator] Cover cases where noexcept comes with an expression\n [Backport generator] Implement and use Parser::skipFunctionBody\n [Backport generator] Simplify skipFunctionBody by only looking at curly braces\n [Backport generator] Avoid currently unsupported use of \"noexcept(...)\"\n [Backport generator] Ignore some more macros that lead to parser errors\n [Backport generator] Support basic new-style initializers\n [Backport generator] Add missing enum used as default value for a method\n [Backport generator] Automatically mark methods with r-value references (&&) as invalid\n [Backport generator] Don't create wrappers for cbegin and cend\n [Backport generator] Hopefully make generator immune against iterator order changes for typeMap\n [Backport generator] Don't generate wrappers for templated methods in non-template classes\n [Backport generator] Handle ellipsis in type parser\n [Backport generator] Improve debugging code for rewind, also show identifiers\n [Backport] Add qsizetype and qptrdiff as primitive types\n [Backport generator] Avoid crash if supposed property setter has no arguments\n [Backport generator] Avoid crash in lexer by increasing size of token_stream early\n [Backport generator] Make number of classes per generated file configurable\n [Backport generator] Add version qualifiers to typesystem XML files\n [Backport generator] Don't assume some Qt version if it could not be found/parsed\n [Backport] Correct initialization of return value pointer failed\n [Backport] Some types are aliases in Qt6 now\n [Backport] Comparison rules of QVariant have changed in Qt6\n [Backport generator] Better handling of \"auto\" and trailing return types \"-> decltype()\"\n [Backport generator] Better handling of variadic templates\n [Backport generator] Skip attribute specifiers like [[maybe_unused]]\n [Backport generator] Fix types being rejected because they contain \"constexpr\"\n [Backport generator] Handle \"friend\" functions with implementation body...\n [Backport generator] Treat constexpr as a function modifier, not as a type modifier\n [Backport generator] Treat noexcept inside of expressions\n [Backport generator] Fix expansion of variadic macros in preprocessor\n [Backport generator] Fix handling of elif in preprocessor...\n [Backport generator] Support for new-style initializers in expressions\n [Backport generator] Improve handling of new-style initializers\n [Backport generator] Improve type name handling\n [Backport generator] Make parsing more robust against shuffling of qualifiers/specifiers\n [Backport generator] Fix missing includes for namespace items from different files\n [Backport generator] Implement methods with lvalue/rvalue references, ...\n [Backport generator] Handle (templated) functions with packed parameters\n [Backport generator] Parse inline namespaces,\n [Backport generator] Parse string literal operator definition,\n [Backport generator] Some necessary defines for Qt6\n [Backport generator] Add some entries to typesystem files missing for Qt6\n [Backport generator] Add new multimedia classes\n [Backport generator] Automatically add enums marked with Q_ENUM to TypeDatabase\n [Backport generator] Fix uninitialized member\n [Backport generator] Some more defines we don't need to parse\n [Backport generator] Q_PROPERTY might contain \"REVISION(1, 1)\"\n [Backport generator] Improve parsing of Q_PROPERTY types starting with \"const\"\n [Backport generator] Rename \"after-version\" attribute to \"since-version\"\n [Backport generator] More missing or updated type entries\n [Backport generator] Handle enum classes\n [Backport generator] Complete/fix scope for enum class values\n [Backport generator] Remove figureOutEnumValues and company\n [Backport generator] Do not add copy constructor if it was deleted or private\n [Backport generator] QMutexLocker is a template now, don't know how to handle this\n [Backport generator] Fix handling of protected operators\n [Backport generator] Fix compiler warning (possibly unintended copy)\n [Backport generator] Fix QList::swap missing the template argument in the argument type\n [Backport generator] I believe it is not necessary to create a shell for QPagedPaintDevice\n [Backport] Try to fix library names and linking problems\n [Backport] Make PythonQtTests compile with Qt6\n [Backport generator] Do not prepend enum class name for items of enum classes,\n [Backport generator] Avoid emitting QStringList* arguments as QStringList*\n [Backport generator] Avoid some compiler warnings\n [Backport generator] Skip alignas specifier\n\nYuri Victorovich (1):\n [Backport] Fix install paths by adding INSTALL_PREFIX\n\nYuriUfimtsev (4):\n [Backport generator] Add support for parsing enum class declarations\n [Backport generator] Add parsed enums and some more enums from warning messages to typesystem\n [Backport generator] Add a token consistency check between enum and array\n [Backport generator] Reduce memory leaks by implementing the AbstractMetaBuilder destructor\n\ngithubuser0xFFFF (1):\n [Backport] Provide missing implementation of PythonQtSlotInfo::getGlobalShouldAllowThreads() (#65)\n\niakov (5):\n [Backport] Fix memory leak\n [Backport] Add missing break in switch to fix P3K conversion\n [Backport] Several fixes and patches (#89)\n [Backport] Add support for Python 3.11 (#91)\n [Backport] Tiny improvements for build system\n\nmrbean-bremen (21):\n [Backport] Add -std=c++11 flag to check for problems\n [Backport] Replace NULL with nullptr\n [Backport] Add override and noexcept modifiers\n [Backport] Fix type conversion warnings, use const\n [Backport] Avoid redefinition warnings, fix export macros\n [Backport] Add facility to set task done callback\n [Backport] Make sure queued connection of Signals with Python types are safe\n [Backport] Add missing GIL scope to single shot timer destructor\n [Backport] Add initial support for coroutines\n [Backport] Use ubuntu instead of gcc based images\n [Backport] Revert undefining some defines (#103)\n [Backport] Add back undefining _POSIX_C_SOURCE and _XOPEN_SOURCE (#106)\n [Backport generator] Make the generator compile with C++17\n [Backport generator] Add parsing of noexcept exception specifier\n [Backport generator] Add support for parsing using declarations\n [Backport generator] Fix parse error for function declaration\n [Backport] Bring back more Qt5 compatibility\n [Backport] More Qt5 compatibility changes\n [Backport] Bring back QRegExp and QMatrix for Qt5\n [Backport generator] Fix handling of right-shift as template bracket\n [Backport generator] Ignore variadic template parameters\n```\n\nCo-authored-by: James Butler ","shortMessageHtmlLink":"ENH: Update PythonQt backporting recent changes from MeVisLab/pythonqt"}},{"before":"8d358c696e3cc53bd56dfbdb248174def9889b0f","after":"888cdd92b7d5d465ed7e6b378deb99e10a801588","ref":"refs/heads/master","pushedAt":"2024-01-25T02:58:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lassoan","name":"Andras Lasso","path":"/lassoan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/307929?s=80&v=4"},"commit":{"message":"ENH: Add ctkDICOMJobListWidget for logging jobs activity in the UI\n\nThe commit also includes these fixes and improvements:\n- fix updates in the series widget when the update signal is from ctkDICOMStoregeListener (i.e. CMOVE)\n- fix folder selector in ctkDICOMVisualBrowser, save folder selection to QSettings\n- remove unnecessary re-rendering of the thumbnails","shortMessageHtmlLink":"ENH: Add ctkDICOMJobListWidget for logging jobs activity in the UI"}},{"before":"88ff72b9c2b1e57cf4f822ea2e547be5b9a32b98","after":"8d358c696e3cc53bd56dfbdb248174def9889b0f","ref":"refs/heads/master","pushedAt":"2024-01-25T02:50:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lassoan","name":"Andras Lasso","path":"/lassoan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/307929?s=80&v=4"},"commit":{"message":"PERF: Remove unnecessary logging information from ctkDICOMDatabase class","shortMessageHtmlLink":"PERF: Remove unnecessary logging information from ctkDICOMDatabase class"}},{"before":"8a0717da81ff32cea34a724cfac93a443bbe3caa","after":"88ff72b9c2b1e57cf4f822ea2e547be5b9a32b98","ref":"refs/heads/master","pushedAt":"2024-01-19T06:38:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Add Visual DICOM Browser (#1165)\n\nIntroduces the `ctkDICOMVisualBrowserWidget`, which improves the threaded\nexecution of the following operations:\n\n- Filtering and navigation with thumbnails of local database and servers results\n- Import from file system to local database\n- Query/Retrieve from servers (DIMSE C-GET/C-MOVE )\n- Storage listener\n- Send (emits only a signal for the moment, requires external implementation)\n- Remove (only from local database, not from server)\n- Metadata exploration\n\nIn addition, the commit introduces the following classes:\n\n* `Core` classes:\n * `ctkAbstractJob`\n * `ctkAbstractScheduler`\n * `ctkAbstractWorker`\n* `DICOM/Core` classes:\n * `ctkDICOMEcho`\n * `ctkDICOMInserter`\n * `ctkDICOMInserterJob`\n * `ctkDICOMInserterWorker`\n * `ctkDICOMJob`\n * `ctkDICOMJobResponseSet`\n * `ctkDICOMQueryJob`\n * `ctkDICOMQueryWorker`\n * `ctkDICOMRetrieveJob`\n * `ctkDICOMRetrieveWorker`\n * `ctkDICOMScheduler`\n * `ctkDICOMServer`\n * `ctkDICOMStorageListener`\n * `ctkDICOMStorageListenerJob`\n * `ctkDICOMStorageListenerWorker`\n* `DICOM/Widget`classes:\n * `ctkDICOMPatientItemWidget`\n * `ctkDICOMSeriesItemWidget`\n * `ctkDICOMServerNodeWidget2`\n * `ctkDICOMStudyItemWidget`\n\nCo-authored-by: Andras Lasso \nCo-authored-by: Jean-Christophe Fillion-Robin ","shortMessageHtmlLink":"ENH: Add Visual DICOM Browser (#1165)"}},{"before":"45f33c81d8f60d2ac4b749cb21828974a73a4f76","after":"8a0717da81ff32cea34a724cfac93a443bbe3caa","ref":"refs/heads/master","pushedAt":"2024-01-19T06:28:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Add Visual DICOM Browser (#1165)\n\nENH: Add Visual DICOM Browser\r\n\r\nIntroduces the `ctkDICOMVisualBrowserWidget`, which improves the threaded\r\nexecution of the following operations:\r\n\r\n- Filtering and navigation with thumbnails of local database and servers results\r\n- Import from file system to local database\r\n- Query/Retrieve from servers (DIMSE C-GET/C-MOVE )\r\n- Storage listener\r\n- Send (emits only a signal for the moment, requires external implementation)\r\n- Remove (only from local database, not from server)\r\n- Metadata exploration\r\n\r\nIn addition, the commit introduces the following classes:\r\n\r\n* `Core` classes:\r\n * `ctkAbstractJob`\r\n * `ctkAbstractScheduler`\r\n * `ctkAbstractWorker`\r\n* `DICOM/Core` classes:\r\n * `ctkDICOMEcho`\r\n * `ctkDICOMInserter`\r\n * `ctkDICOMInserterJob`\r\n * `ctkDICOMInserterWorker`\r\n * `ctkDICOMJob`\r\n * `ctkDICOMJobResponseSet`\r\n * `ctkDICOMQueryJob`\r\n * `ctkDICOMQueryWorker`\r\n * `ctkDICOMRetrieveJob`\r\n * `ctkDICOMRetrieveWorker`\r\n * `ctkDICOMScheduler`\r\n * `ctkDICOMServer`\r\n * `ctkDICOMStorageListener`\r\n * `ctkDICOMStorageListenerJob`\r\n * `ctkDICOMStorageListenerWorker`\r\n* `DICOM/Widget`classes:\r\n * `ctkDICOMPatientItemWidget`\r\n * `ctkDICOMSeriesItemWidget`\r\n * `ctkDICOMServerNodeWidget2`\r\n * `ctkDICOMStudyItemWidget`\r\n\r\nCo-authored-by: Davide Punzo \r\nCo-authored-by: Andras Lasso \r\nCo-authored-by: Jean-Christophe Fillion-Robin ","shortMessageHtmlLink":"ENH: Add Visual DICOM Browser (#1165)"}},{"before":"b2b1561fb7107a0275562e283ad8b252a893d6da","after":"45f33c81d8f60d2ac4b749cb21828974a73a4f76","ref":"refs/heads/master","pushedAt":"2024-01-18T22:23:59.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Update pre-commit config to include \"mixed-line-ending\"\n\nBy adding `mixed-line-ending` to the pre-commit configuration, it enables\n\"GitHub Action report\" and \"local pre-commit checks\".\n\nSee https://github.com/pre-commit/pre-commit-hooks#mixed-line-ending","shortMessageHtmlLink":"ENH: Update pre-commit config to include \"mixed-line-ending\""}},{"before":"5b502aa7160d96d09e4819138065bd32cd5534e2","after":"b2b1561fb7107a0275562e283ad8b252a893d6da","ref":"refs/heads/master","pushedAt":"2024-01-18T09:59:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Add removePatient/Series/Study signals to DICOM database\n\nCo-authored-by: Davide Punzo \nCo-authored-by: Andras Lasso \nCo-authored-by: Jean-Christophe Fillion-Robin ","shortMessageHtmlLink":"ENH: Add removePatient/Series/Study signals to DICOM database"}},{"before":"2f84abd4667f90ce68cdf1513f6f467c673be50f","after":"5b502aa7160d96d09e4819138065bd32cd5534e2","ref":"refs/heads/master","pushedAt":"2024-01-18T07:17:41.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Update ctkDICOMTester to always kill \"storescp\" process on destruction\n\nSince the DCMTK executable do not seem to configure a termination handler on\nwindows (using `SetConsoleCtrlHandler()`) or on Unix (using `sigaction()`),\nwe speed up testing by simply killing the process.\n\n> On Windows, terminate() posts a WM_CLOSE message to all top-level\n> windows of the process and then to the main thread of the process\n> itself. On Unix and macOS the SIGTERM signal is sent.\n>\n> Console applications on Windows that do not run an event loop, or whose\n> event loop does not handle the WM_CLOSE message, can only be terminated\n> by calling kill().\n\nSource: https://doc.qt.io/qt-5/qprocess.html#terminate","shortMessageHtmlLink":"BUG: Update ctkDICOMTester to always kill \"storescp\" process on destr…"}},{"before":"b83ff7a54addd489764da9c607ef0f53374751fd","after":"2f84abd4667f90ce68cdf1513f6f467c673be50f","ref":"refs/heads/master","pushedAt":"2024-01-17T21:21:28.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Update ctkLoggerTest1 to check logging using a Qt message handler.","shortMessageHtmlLink":"ENH: Update ctkLoggerTest1 to check logging using a Qt message handler."}},{"before":"fff697726a51bec49c2e591b524e378ed3f58f13","after":"b83ff7a54addd489764da9c607ef0f53374751fd","ref":"refs/heads/master","pushedAt":"2024-01-16T00:18:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jamesobutler","name":"James Butler","path":"/jamesobutler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15837524?s=80&v=4"},"commit":{"message":"BUG: Fix applySettings() to emit \"settingChanged()\" only if needed\n\nFurther improve the fix integrated in c8ce0dec (\"BUG: Fix incorrect changed\nsettings indicator\", 2018-07-04) and update ctkSettingsPanelTest1 accordingly.","shortMessageHtmlLink":"BUG: Fix applySettings() to emit \"settingChanged()\" only if needed"}},{"before":"ee04e40c2a40b801ec769d30228d01e21323f9eb","after":"fff697726a51bec49c2e591b524e378ed3f58f13","ref":"refs/heads/master","pushedAt":"2024-01-14T05:22:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Fix ctkSettingsPanelTest reading settings file as text\n\nThis ensures newlines are always read as `/n` independently of the platform.\n\nIt fixes errors like the following:\n\n```\n126: FAIL! : ctkSettingsPanelTester::testChangeProperty(null none changed obj) Compared values are not the same\n126: Actual (currentSettingContent) : \"[General]\\r\\nproperty=2\\r\\n\"\n```","shortMessageHtmlLink":"BUG: Fix ctkSettingsPanelTest reading settings file as text"}},{"before":"62e2076b7a413ceb160e6b932f2ccd4d4a4eca23","after":"ee04e40c2a40b801ec769d30228d01e21323f9eb","ref":"refs/heads/master","pushedAt":"2024-01-14T04:37:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Fix ctkCoreSettingsTest testMultiplePaths on Windows\n\nFollow-up on commit f0bb5d782 (ENH: Allow saving relative paths to settings)\nwhere the test case was incorrectly specified.\n\nIt fixes the following error:\n\n10: FAIL! : ctkCoreSettingsTester::testMultiplePaths(windows-style absolute paths) Compared lists differ at index 0.\n10: Actual (settings.value(key).toStringList()): \"d:/windows/path/internal/dir\"\n10: Expected (expectedStoredValues): \"/internal/dir\"\n10: C:\\path\\to\\CTK\\Libs\\Core\\Testing\\Cpp\\ctkCoreSettingsTest.cpp(115) : failure location","shortMessageHtmlLink":"BUG: Fix ctkCoreSettingsTest testMultiplePaths on Windows"}},{"before":"2cc640a6d6897766868486cb194adf36e09b61e1","after":"62e2076b7a413ceb160e6b932f2ccd4d4a4eca23","ref":"refs/heads/master","pushedAt":"2024-01-13T21:24:05.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"DOC: Update ctkFileDialog docstring to describe behavior as native dialog","shortMessageHtmlLink":"DOC: Update ctkFileDialog docstring to describe behavior as native di…"}},{"before":"3944cc8e0367d80e68f5460c42daf6abcc613dd7","after":"2cc640a6d6897766868486cb194adf36e09b61e1","ref":"refs/heads/master","pushedAt":"2024-01-13T21:16:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Fix ctkUtilsCopyDirRecursivelyTest on windows creating hidden files","shortMessageHtmlLink":"BUG: Fix ctkUtilsCopyDirRecursivelyTest on windows creating hidden files"}},{"before":"753193f358a55dfb3a23f1c2b50ccf46ee334dbb","after":"3944cc8e0367d80e68f5460c42daf6abcc613dd7","ref":"refs/heads/master","pushedAt":"2024-01-13T17:09:34.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Update pre-commit config to include \"trailing-whitespace\"\n\nBy adding `trailing-whitespace` to the pre-commit configuration, it enables the following:\n* GitHub Action report: Suggested changes are reported in the error log associated with the pre-commit GitHub Action workflow.\n* Consolidated local pre-commit checks and updates by running:\n\n ```\n python -m pip install pyupgrade\n\n python -m pre_commit run --all-files\n ```","shortMessageHtmlLink":"ENH: Update pre-commit config to include \"trailing-whitespace\""}},{"before":"6f7d7dc7dc41cffba3644d7c9da6f684ba2bb95e","after":"753193f358a55dfb3a23f1c2b50ccf46ee334dbb","ref":"refs/heads/master","pushedAt":"2024-01-13T16:53:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Add GitHub Actions workflow for running \"pre-commit\"\n\nThis commit adds workflow leveraging pre-commit, a framework for\nmanaging and maintaining pre-commit hooks.\n\nSee https://pre-commit.com/ and https://github.com/pre-commit/action\n\nRunning the pre-commit locally can be done using the following\ncommand:\n\n pre-commit run --all-files\n\nThe hooks enabled in the \"pre-commit-config.yaml\" configuration\nfile are:\n\n* check-added-large-files\n Prevent giant files from being committed.\n\n Set the size to 1024 to match the value hard-coded in\n https://github.com/Slicer/Slicer/blob/hooks/pre-commit#L125\n\n* check-case-conflict\n Check for files with names that would conflict on a case-insensitive\n filesystem like MacOS HFS+ or Windows FAT.\n\n* check-merge-conflict\n Check for files that contain merge conflict strings.\n\n* check-symlinks\n Checks for symlinks which do not point to anything.","shortMessageHtmlLink":"ENH: Add GitHub Actions workflow for running \"pre-commit\""}},{"before":"c1d55a133256f49ea7328e95c6c7346734b947d1","after":"6f7d7dc7dc41cffba3644d7c9da6f684ba2bb95e","ref":"refs/heads/master","pushedAt":"2024-01-13T16:02:48.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Fix ctkDICOMApplicationTest1 on Windows configuring hostname in dcmqrscp.cfg\n\nThis addresses the following error reported by the server ():\n\n I: Association Received (HOSTNAME:CTK_AE -> CTK_AE)\n I: Refusing Association (BadAEService)\n\nwhere HOSTNAME corresponds to the actual hostname.","shortMessageHtmlLink":"BUG: Fix ctkDICOMApplicationTest1 on Windows configuring hostname in …"}},{"before":"bfe6d92e00ab98e4705a98fba8d028748836e161","after":"c1d55a133256f49ea7328e95c6c7346734b947d1","ref":"refs/heads/master","pushedAt":"2024-01-13T09:35:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Streamline test execution setting launch environment (#1168)\n\nUpdate \"simple_test\" and \"simple_test_with_data\" macros by setting the\r\n`ENVIRONMENT_MODIFICATION` test property using the `CTK_TEST_LAUNCH_BUILD_ENVIRONMENT_MODIFICATION`\r\nvariable.\r\n\r\nThe `CTK_TEST_LAUNCH_BUILD_ENVIRONMENT_MODIFICATION` variable now contains a list\r\nof environment modifications for each of the variables: `PATH`, `LD_LIBRARY_PATH`,\r\nand/or `DYLD_LIBRARY_PATH`. These modifications are based on the specified paths\r\nand library paths associated with dependencies, including Qt and any enabled\r\nexternal projects.\r\n\r\nTo simplify the collection of external project-specific \"library paths\" and \"paths,\"\r\nthese are individually defined within each external project and linked to a label\r\nassociated with the corresponding `mark_as_superbuild()` call.","shortMessageHtmlLink":"ENH: Streamline test execution setting launch environment (#1168)"}},{"before":"a30c3bec4fa8a36d169fdb27527e06d46a196a2a","after":"bfe6d92e00ab98e4705a98fba8d028748836e161","ref":"refs/heads/master","pushedAt":"2024-01-13T05:32:07.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Support running ctkDICOMDatabase tests in parallel using QTemporaryDir","shortMessageHtmlLink":"ENH: Support running ctkDICOMDatabase tests in parallel using QTempor…"}},{"before":"f8bc141ce894079e037e60ff54c5716ecd37a614","after":"a30c3bec4fa8a36d169fdb27527e06d46a196a2a","ref":"refs/heads/master","pushedAt":"2024-01-13T02:29:32.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"BUG: Fix ctkDICOMBrowserTester checking for use of native file dialog\n\nFollow-up of c4f1eeea (\"ENH: Update ctkFileDialog to use native dialog\nby default\", 2021-06-10).\n\nCo-authored-by: Jean-Christophe Fillion-Robin ","shortMessageHtmlLink":"BUG: Fix ctkDICOMBrowserTester checking for use of native file dialog"}},{"before":"0d82ac919d143ec32491f1a7dc2c3d7355abd745","after":"f8bc141ce894079e037e60ff54c5716ecd37a614","ref":"refs/heads/master","pushedAt":"2024-01-12T07:37:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jcfr","name":"Jean-Christophe Fillion-Robin","path":"/jcfr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/219043?s=80&v=4"},"commit":{"message":"ENH: Convert ctkDoubleRangeSlider::setRange to a slot to expose to Python\n\nSuggested-by: Harald Scheirich ","shortMessageHtmlLink":"ENH: Convert ctkDoubleRangeSlider::setRange to a slot to expose to Py…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETOcn1gA","startCursor":null,"endCursor":null}},"title":"Activity · commontk/CTK"}