|Age||Commit message (Collapse)||Author||Files||Lines|
Since we now have svg support enabled (and used) for all platforms we
can simply use the svg one, and bring it in line with the rest of the
Remaining rework of player info data handling.
Handling the data for players from rbutil.ini and the build-info data
from the server is closely related. Splitting things up into different
classes only creates tightly coupling, which is unnecessary, and the
need to differentiate between them in the application.
Merge both classes into a single one and rework handling so the
application doesn't have to deal with two separate classes anymore.
Furthermore, change URL templates to use new values from build-info
instead of hard coding them.
Installing the voice file is now done via the main installation.
The manual tab didn't show the manual, so it's clearer to have that as
part of the main tab.
Also fixes the wrong manual getting downloaded for releases.
Add checkbox for installing the prerendered voice file to the main
install widget. Current limitations:
- only english for now. The available languages are available from the
build server but are not yet taken into account.
- only for releases. This is the same limitations we had before. We do
have voices for daily builds, but that requires adding daily builds
again (those have been removed some time back.)
- Old voice installation dialog still present.
Use pattern replacement for lookup instead of expanded values. Will
allow simplifying things later for better handling of different build
Return status as int, not as string, and provide a separate function for
converting to string. This allows to filter based on the actual status,
not a (localized) status string, which is more robust.
Fix a regression that made players with missing status value show up as
Rename config entries and remove now unnecessary default value handling.
- Split internal configuration into player specific and common parts.
Always require passing the player for player specific data instead of
implicitly assuming the currently selected one; only use the currently
selected one if the player name is explicitly passed as empty.
- Similarly adjust handling of server info data; prepare for splitting
into build type specific values so the naming becomes cleaner.
Replace the Speex license tab in the about dialog with one that lists
all used libraries and their respective licenses, including Speex.
Previously only Speex required including the license in binary
distribution; the recently added bspatch also wants this. Show
the license for all used libraries so we can more easily add new ones in
Qt6 replaces QTextStream::setCodec() with QTextStream::setEncoding().
Replace use of deprecated APIs with their replacements, and fix some
other minor warnings.
During the bootloader install/uninstall process, a signal
is emitted when "Abort" button is pressed, the installers
can attach this signal and cancel the process.
Useful for targets that needs multi-stage uninstall. On current
targets (with Uninstall capability) the progress is updated to
100% when bootloader uninstall is successfully finished.
This allows to implement multi-stage uninstallers. Should not affect
the behaviour on current targets.
C++11 requires a space between literal and identifier. When compiling with Qt
5.6 on OS X C++11 support is automatically enabled, causing an error due to
MSVC doesn't like function style call to the logger.
Show the user both the current and updated version.
- Prevent the Changelog showing up when closing the configuration dialog if
"Show on startup" is enabled.
- Increase dialog size a bit.
- Detect and link Gerrit IDs.
Change tracing from qDebug() to use cutelogger, which is available under the
LGPL2.1. This allows to automatically add filename and line number to the log,
and also provides multiple log levels.
When Rockbox Utility is started for the first time, a new version is started or
the user selected to do so on startup a changelog window is shown.
If Rockbox Utility has no configuration file on the machine updateSettings()
will overwrite the global cache folder settings with an empty string before the
value is set properly by the user confirming the configuration dialog. QDir()
getting an empty string will result in the current working directory getting
used, and thus the temporary files ending up there.
On Windows most users are unlikely to have noticed this since running the
executable from within the distribution zip file will make Windows execute it
in the systems temporary path.
There are two reasons for this:
- QUrl::toEncoded() has problems with some characters like the colon and @.
Those are not percent encoded, causing the string getting parsed wrongly when
reading it back (see FS#12166).
- The password is cleartext in the configuration file.
While using base64 doesn't provide any real security either it's at
least better than plaintext.
Since this program is open source any fixed mechanism to obfuscate /
encrypt the password isn't much help either since anyone interested in
the password can look at the sources. The best way would be to
eventually use host OS functionality to store the password.
Qt5 deprecates the way this was done before.
Setting the cache later can result in the system trying to create cache files
in the current working directory, since an empty cache path will be treated as
current directory. If this happens set the system temporary path.
Offline Mode was intended to allow performing an installation without network
access. However, to get the required files cached the same installation has to
be performed with network access, which is a rather strange prerequisite. A
better way would be a way to direct Rockbox Utility to some local "repository"
that holds the required files.
Furthermore, Offline Mode hasn't been tested since long and is likely to be
broken since the caching mechanism has been extended.
For now remove this functionality. As far as I know it's been rarely used (if
at all) anyway.
This function returns an internal enum value of QHttp (which is also
deprecated). It was only used for showing an error to the user / showing it in
the system trace. Since it is an enum value it doesn't have much value. Log /
show the error string instead.
Since especially Windows puts the eject functionality behind an icon in the
systray which is usually hidden and doesn't complain if a USB drive is
unplugged without ejecting it first ejecting such a device might not be
obvious to everyone. Add a button to the main window allowing to eject the
Currently only implemented for Windows.
- Move a GUI-only implementation class around.
- Make some strings non-translatable which don't make sense translating.
- Rename internal state in installation class. There is no current build
When Rockbox Utility can't figure if the installed bootloader is a Rockbox
bootloader don't tell the user that it can't uninstall the bootloader but be
more specific stating that no Rockbox bootloader has been found.
The Quick Start tab turned out to be used a lot but not explaining what its
functionality actually does, leading to various amount of confusion. The Quick
Start tab and its functionality have been completely removed.
As replacement the reworked Installation tab now includes both the entries from
the old Installation tab (Bootloader and Rockbox) and the Extras tab (Fonts,
Themes, Game files). Each of the items can be enabled or disabled individually,
and the selection is saved in the configuration. The only exception is the
bootloader option, since installing the bootloader is only needed once. To help
with this the bootloader checkbox is automatically enabled if no Rockbox
installation is found, and disabled if one is found. While it would be nicer to
check if the bootloader is actually installed this is not possible for various
players so the implementation simply relies on a Rockbox installation.
This should also make it much easier to update an existing installation.
- the selected themes are not saved.
- it is not possible to detect if the target has the plugins that require
additional game files prior to installation. Thus the "Game files" option is
available for all targets but simply skipped if the plugins are not found.
After shrinking the size of the Rockbox logo shown and making the selected
device display two lines there is now enough room to also show an icon of the
player. The icon is scaled depending on the application font size, so for
setups configured with a larger font it still should show up in a reasonable
The original way of including the Rockbox logo wastes quite a bit of space.
Make it smaller and move it to the left, so the information about the
configured device can go next to it.
The "Installation" dialog allows backing up the current installation by
creating a zip file from the .rockbox folder since quite a while. However, this
has the drawback that you need to update your build to create a backup, but
creating a backup might be desireable in other cases as well (before updating
themes, or just for backup reasons). Since the functionality is somewhat hidden
it's also not obvious to users such a functionality exists (most users are
likely to use the "Quick Start" instead).
Implement backup functionality as dedicated dialog placed on the Uninstall tab.
Rename the Uninstall tab to accommodate this.
Since the Info widget is now a separate widget ask the tab widget about its
index instead of hard coding it. Rename a variable to avoid shadowing while at
To identify the source for System Trace entries qDebug() calls usually add the
class name at the beginning. Add some missing ones and remove some trailing
Centralize creating the URLs so it's not duplicated in two places. This also
allows to change the representation on the server more easily, since it only
requires changes in one place.
Currently only changes URLs for Rockbox builds.
The server now provides a single build-info file (instead of two separate ones
for development builds and stable releases). Update to use the new file, since
it simplifies things.
The voice file installed needs to match the Rockbox version installed. If not
the voice might not match the actual entries.
Rockbox Utility always was sloppy on this and installed the latest archived
(previously "daily") builds voice file for the latest development (previously
"current") build. Archived builds aren't supported anymore in Rockbox Utility,
so remove support for installing archived voice files as well.
There are no pregenerated voice files for development versions provided, and
Rockbox Utility can generate voice files anyway. Also, those files are only
provided and most users seem to prefer to use the voices they have installed on
The server timestamp is more meaningful as version identification than using
the revision of the currently installed build.
Instead of using some arbitrary and not really useful string use the timestamp
of the downloaded file if version string is provided by the caller. This also
makes it possible to check if the downloaded file is actually a different one.
Use it for manual and game file downloads, as this gives more reasonable values
than using the date transmitted for daily (archived) build and as support for
archived builds will be removed shortly.