1. 07 Oct, 2021 1 commit
  2. 28 Sep, 2021 1 commit
  3. 24 Sep, 2021 3 commits
  4. 23 Sep, 2021 1 commit
  5. 22 Sep, 2021 1 commit
  6. 21 Sep, 2021 1 commit
  7. 20 Sep, 2021 3 commits
  8. 17 Sep, 2021 1 commit
  9. 16 Sep, 2021 1 commit
  10. 15 Sep, 2021 3 commits
  11. 13 Sep, 2021 4 commits
  12. 09 Sep, 2021 2 commits
  13. 07 Sep, 2021 5 commits
  14. 06 Sep, 2021 13 commits
    • Flavien BRIDAULT-LOUCHEZ's avatar
      fix(core): make data library load more robust · cd3a8613
      Flavien BRIDAULT-LOUCHEZ authored
      The deduction of the library path failed when share was already present in the main module path. The problem already occurred with module paths themselves, so the regex is now shared between these two places.
    • Didier WECKMANN's avatar
      feat(io): Drop in replacement for SReader and SWriter to serialize an application session · 60a298a9
      Didier WECKMANN authored
      ### Main feature
      Two services `sight::module::io::session::SReader` and `sight::module::io::session::SWriter` were implemented. They read/write a root data object from/to a session file on a filesystem.
      The session file is indeed a standard "ZIP" archive, while the compression algorithm for files inside the session archive is ZSTD. A standard archive reader could open a session file, if it is able to handle ZIP archive with ZSTD compression.
      The archive can be password protected using AES256 algorithm and the compression level is set individually, depending of the type of data to serialize.
      The service configuration includes specifying the file extension and the password policy for encryption.
      Configuration example:
      <service type="sight::module::io::session::SReader">
          <inout key="data" uid="..." />
          <dialog extension=".sample" description="Sample Sight session file" policy=always/>
          <password policy="once" encryption="salted"/>
      The dialog policy specifies when the open dialog is shown:
      * **never**: never show the open dialog
      * **once**: show only once, store the location as long as the service is started
      * **always**: always show the location dialog
      * **default**: default behavior, which is "always"
      The password policy defines if we should protect the session file using a password and when to ask for it:
      * **never**: a password will never be asked and the session file will never be encrypted.
      * **once**: a password will be asked only once and stored in the memory for subsequent uses. The session file will be encrypted.
      * **always**: a password will always be asked. The session file will be encrypted.
      * **default**: uses the builtin default behavior which is "never".
      The encryption policy defines if we uses the password as is or with salt. It can also be used to encrypt without password:
      * **password**: Use the given password for encryption.
      * **salted**: Use the given password with salt for encryption.
      * **forced**: Force encryption with a pseudo random hidden password (if no password are provided).
      * **default**: uses the builtin default behavior which is "password".
      ### General improvement:
      * `ExActivities` has been modified to use the new session services instead of atoms
      * new `TemporaryFile` class in `core::tools::System` that use ROII to delete the associated file as soon as the `TemporaryFile` class is destroyed.
      * `core::tools::System::RobustRename()` now have an optional parameter to force renaming, even if the target already exists (it will be first deleted)
      * `ui::base::Cursor` improvement: `BusyCursor`, `WaitCursor`, `CrossCursor` classes that use ROII to restore back "default" cursor, even if an exception occurs
      * `ui::xxx::dialog::InputDialog` improvement: add a "bullet" mode for password field.
      * `ui::xxx::dialog::MessageDialog` improvement: add a "retry" button.
      Merge branch '752-io-drop-in-replacement-for-sreader-and-swriter-to-serialize-an-application-session' into 'dev'
      Closes #752
      See merge request sight/sight!606
    • Didier WECKMANN's avatar
      misc: apply review suggestions · bef282a8
      Didier WECKMANN authored
    • Didier WECKMANN's avatar
    • Didier WECKMANN's avatar
    • Flavien BRIDAULT-LOUCHEZ's avatar
    • Didier WECKMANN's avatar
      misc: apply review suggestions · 66ad2467
      Didier WECKMANN authored
    • Didier WECKMANN's avatar
    • Flavien BRIDAULT-LOUCHEZ's avatar
      fix(core): make core::System::robustRename more robust · 96206c8f
      Flavien BRIDAULT-LOUCHEZ authored and Didier WECKMANN's avatar Didier WECKMANN committed
      The function failed when renaming from a EXT4 volume to a NTFS volume. This fixes detect the error and try another copy strategy.
    • Didier WECKMANN's avatar
    • Didier WECKMANN's avatar
    • Didier WECKMANN's avatar
      feat(io): implement a session writer service · 0aae7ba1
      Didier WECKMANN authored
      - add a password mode for input dialog
      - add ROII cursor and temporary file classes
      - fixes regarding encryption
    • Flavien BRIDAULT-LOUCHEZ's avatar
      fix(io): dicomXplorer crashes when display mesh preview · 8bec599b
      Flavien BRIDAULT-LOUCHEZ authored
      This MR fixes a crash upon selecting mesh in `dicomXplorer`.
      The problem was simply that old configurations used in this software were deleted.
      **It does not display the mesh in an activity.** It simply fixes the crash and re-enables the preview.
      Closes #723
      Merge branch '723-io-dicomxplorer-crahes-when-display-mesh-preview' into 'dev'
      See merge request sight/sight!580