Uploaded image for project: 'Picard'
  1. Picard
  2. PICARD-2429

Windows: Drag and drop of file paths longer than 259 characters not detected

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • 2.7.3
    • File Move & Rename
    • None

      Drag and dropping file paths that exceed the path length limit of the Windows API does not get detected by Picard.

      The issue is that Windows does transport the file path differently in this case, and Qt5 does not handle this natively in the drop handler. Hence for Picard the drop event is registered, but the handler does not see any dropped path.

      In case of long paths the Qt5 QMimeData does not automatically provide the dropped URLs. After some research I think the dropped path names can be extracted from the provided data in 'application/x-qt-windows-mime;value="Shell IDList Array"'.

      But we need custom code to parse this structure. There is some documentation available at https://docs.microsoft.com/de-de/windows/win32/shell/clipboard (see the CFSTR_SHELLIDLIST).

      See also PICARD-2076

            Unassigned Unassigned
            outsidecontext Philipp Wolfer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                Version Package