- Support for screen readers on Linux/Windows. (Mac does not work
as intended yet)
- Add keyboard navigation
- Add write confirmation dialog. Closes#84
- Update debian changelog
Mac OS X allows one to provide multiple preferred languages instead
of one.
Make sure that if is English is the "main" language, it does not
go for one of the translations.
Closes#81
For reasons unknown the device write statistics sometimes report
higher numbers than the number of bytes we wrote to the device on
some hardware. Causing write percentage in progressbar text
to exceed 100%
Maximize amount of bytes to what we wrote to the device.
This do will result in unreliable write progress on these devices
(it will then show amount of bytes written to cache instead of
what made it to device yet)
Closes#82
We originally used libcurl for both downloading images from
Internet and reading local files to have the same code path for both.
It doesn't work that well in practice, as Qt and libcurl are not
on the same page how special characters such as Chinese characters
are represented in a local file URL.
So create a new class to handle local files.
Closes#76
- Allow static build
- Use .svg icons
- Linux Embedded lacks normal "open file dialog". So simply scan
files in root folder of USB stick and return list.
- Change QProcess::execute(command) calls to
QProcess::execute(command, args) calls to silence Qt 5.15.0
depreciation warning.
- Qt thinks UNC URLs should look like: file://1.2.3.4/share/file.img
libcurl likes them: file:////1.2.3.4/share/file.img
So correct that.
- Mention it is an unspecified libcurl error if libcurl passes us
an error code with an empty error message string.
Closes#65
Modern CPUs have special instructions to accelerate computing
SHA hashes.
The Qt QCryptographicHash code is standard C, so not taking
advantage of those though.
Outsource the hashing to OpenSSL that does.
Shaves off some seconds during verification stage.
Append "rpi-imager/version-num" to the default User-Agent when curl is
downloading the image so that image hosts can more easily distinguish
rpi-imager traffic from other traffic.
The default Info.plist template provided by CMake doesn't have this key, and
CMake only has minimal support for settingstypically found in this file.
In order to specify NSPrincipalClass, we need to provide the whole Info.plist instead.
Info.plist is also specified as a dependancy to the application so that it will
appear in the project explorer, and changes to this file will trigger a rebuild.
- Use larger buffer size when writing uncompressed files
(was libcurl's default of 16 kb, change it to 128 kb)
- Uncompress the next MB of data, while it is hashing/writing to
disk in seperate thread.
Appereantly the function does not work as advertised on Windows 7.
Do call it, but ignore errors.
Hopefully any real write errors, will be detected when reading
back image instead.
The software requires at least:
- libcurl 7.32.0 (released Aug 12 2013!)
- libarchive 3.2.0 (released Apr 30 2016)
- util-linux 2.27 (released Sep 7 2015)
While technically we could build libcurl and libarchive statically
(like we do for Mac and Windows) if the system has older libs,
it's likely that running the software on systems that old may
give other problems as well (e.g. does lsblk --json (util-linux)
and udisks2 work correctly?), so do not bother.
Closes#16
- We are only using zlib indirectly through libarchive
(For Windows/Mac OS X we do keep requiring zlib headers, as we
need them to build the bundled libarchive on these platforms)