path: root/rbutil/rbutilqt/rbutilqt.cpp
AgeCommit message (Collapse)AuthorFilesLines
2020-12-14rbutil: Always use svg icon for Window icon.Dominik Riebeling1-12/+0
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 icon. Change-Id: If99f1be0205de1a87eb727c33400811620d9876d
2020-12-05rbutil: Merge finding player by USB ID with PlayerBuildInfo.Dominik Riebeling1-1/+0
Remaining rework of player info data handling. Change-Id: I0e10cdff43e0c9fef43b3b9a30af81f1cd7c4853
2020-12-03rbutil: Rework and merge player and build server info handling.Dominik Riebeling1-17/+18
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. Change-Id: Ica550973ce23d1559110782add52bc214eba552d
2020-11-22rbutil: Remove Install Voice button from Accessibility tab.Dominik Riebeling1-76/+0
Installing the voice file is now done via the main installation. Change-Id: I431744467faaf1720b3c82d339a424d67c84e6e6
2020-11-22rbutil: Move Manual installation to main tab.Dominik Riebeling1-8/+0
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. Change-Id: I5d4a287102af037f94f0de8464e025d9ff5f76ed
2020-11-22rbutil: Add voice installation to main widget.Dominik Riebeling1-0/+1
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. Change-Id: Ia6443b0f15365196df86cc1b64d5e043dff70c4c
2020-11-22rbutil: Use pattern replacement for SystemInfo build type.Dominik Riebeling1-1/+2
Use pattern replacement for lookup instead of expanded values. Will allow simplifying things later for better handling of different build types. Change-Id: Iaad67a6c8654d27c3206cf95a379acab169565bc
2020-11-19rbutil: Modernize code to use C++11 nullptr.Dominik Riebeling1-3/+3
Change-Id: I112cf95122a896cdb30a823b4c1f49831273dc7e
2020-11-19rbutil: Convert ServerInfo to singleton.Dominik Riebeling1-3/+3
Change-Id: I29d94eb6bae084754e5e3f337c41de8354ba123c
2020-11-15rbutil: Rework server info data handling.Dominik Riebeling1-1/+1
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 retired. Change-Id: I15f83ae0df484199b1b3b5b95069db8b4d425987
2020-11-14rbutil: Rework player configuration.Dominik Riebeling1-8/+8
Rename config entries and remove now unnecessary default value handling. Change-Id: I5c60ef9769fc01f45f45290dafffb80c1962e674
2020-11-14rbutil: Rework player configuration.Dominik Riebeling1-9/+9
- 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. Change-Id: I894e694f83bd9fe2d22ad46b3f8f7df3e2c68033
2020-11-07rbutil: Show the license of all libraries included.Dominik Riebeling1-6/+32
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 the future. Change-Id: Ic8b403f8a2a05d0f1734ddf092782b85ddfa5ed9
2020-08-16rbutil: Initial Qt6 support.Dominik Riebeling1-0/+4
Qt6 replaces QTextStream::setCodec() with QTextStream::setEncoding(). Change-Id: I4cfa90d89f54ad49d061ad859585a2a74b5f9786
2020-08-16rbutil: Fix various warnings.Dominik Riebeling1-1/+1
Replace use of deprecated APIs with their replacements, and fix some other minor warnings. Change-Id: I3f63e0bd91b96ce86ce39c087fe0040fc226d16d
2016-08-15rbutil: add abort signal for bootloader install/uninstallCástor Muñoz1-0/+2
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. Change-Id: I7f297b8031d7a2d93da0022081aaef03ef041baf
2016-08-15rbutil: show progress bar during bootloader uninstallCástor Muñoz1-1/+0
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. Change-Id: I61be1c4f5cfc2d2f35fa5005962be9703888447d
2016-08-15rbutil: enable "done" signal on bootloader uninstallCástor Muñoz1-2/+1
This allows to implement multi-stage uninstallers. Should not affect the behaviour on current targets. Change-Id: Idf8aec5caf76cf9317798890d094a7cebdbcabec
2016-03-27Fix C++11 compile error with version strings.Dominik Riebeling1-1/+1
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 this. Change-Id: Ifbedc894a3cef23fc67ed1da75558e92e44d1077
2016-01-17rbutil: fix writing to rbutil.log after bootloader uninstallCástor Muñoz1-0/+2
Change-Id: I722d4d5a83fc57bd8df33bfb23a0ab16e5ac4861
2015-05-14Fix building with MSVC.Dominik Riebeling1-1/+1
MSVC doesn't like function style call to the logger. Change-Id: I98480442cafbec6728198e5f3bc40f992d4ea477
2015-05-02Add information about compiler used to startup log.Dominik Riebeling1-0/+9
Change-Id: I47442ea0458461d0ae0a1af40e7719f8543b1992
2015-05-02Improve update check information dialog.Dominik Riebeling1-4/+5
Show the user both the current and updated version. Change-Id: Ief693cce020a39a0c79bf2705da4a44b7bd15928
2015-05-02Add note to boot OF for update with OF on uninstallation.Dominik Riebeling1-2/+5
Change-Id: Ia2955ecc9616eaa91644970ef81320e23a7970a0
2013-11-04Fix changelog showing up too often.Dominik Riebeling1-4/+4
- 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-Id: I049be3c38a57b2559f2a78392b785fa51ec99dc1
2013-11-04Use cutelogger for Rockbox Utility internal trace.Dominik Riebeling1-23/+16
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. Change-Id: I5dbdaf902ba54ea99f07ae10a07467c52fdac910
2013-09-30Implement a first, simple changelog dialog.Dominik Riebeling1-0/+14
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. Change-Id: Ic223e092a09d31ccbbfcd9b973355225cac27632
2013-06-09Fix temporary files stored in current folder on first start.Dominik Riebeling1-5/+5
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. Change-Id: I7724a82af403955786798c7380198086837e128f
2013-03-19Encode the password using base64 before storing it to the configuration file.Dominik Riebeling1-2/+6
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. Change-Id: I6ac49d68211236e540b6ca16481e0e1c196532b7
2013-02-08Create Qt5 compatible version of trace event handler.Dominik Riebeling1-0/+4
Qt5 deprecates the way this was done before. Change-Id: Ic66bce2d1ffcb572a9ed9345abbbbc6bb6475af0
2013-01-27Set global cache immediately on startup.Dominik Riebeling1-0/+3
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. Change-Id: I1623330013d387a966015edd0e1d278c922d9475
2013-01-27Update Qt includes for compatibility with Qt5.Dominik Riebeling1-1/+2
Change-Id: Ibe400700f6bce0335a2975c6d635e10ae940f932
2013-01-13Remove Rockbox Utility Offline Mode.Dominik Riebeling1-7/+1
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. Change-Id: Ib2af4892708e0440bd0a7940c131f04182ddb39a
2013-01-13Remove HttpGet::error() function.Dominik Riebeling1-3/+3
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. Change-Id: I54b9b6026969f8108f779b02a04477f0ad9201ab
2012-09-16Support "eject" on OS X.Dominik Riebeling1-1/+1
Change-Id: I103587f2fad2b8b31a1bc53afbd107bf55f62c93
2012-09-08Add "Eject" button to main window.Dominik Riebeling1-0/+22
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 selected player. Currently only implemented for Windows. Change-Id: I785ac1482cda03a1379cf6d0fd0d9a0ff8130092
2012-07-01Do some minor cleanup.Dominik Riebeling1-2/+2
- 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 anymore. Change-Id: I7384c5601de36bc48f858fe5c7b009653d439d94
2012-07-01Be more specific on bootloader uninstallation errors.Dominik Riebeling1-4/+8
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. Change-Id: I8e1eae4bdba30da87d10d2dc11fb9d48e176de2a
2012-06-26Rework Installation and remove Quick Start tab.Dominik Riebeling1-543/+9
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. Current limitations: - 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. Change-Id: I1929bb7045e382fcbba431cca057d3121607d3a9
2012-06-26Show player picture left of device configuration.Dominik Riebeling1-11/+19
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 size. Change-Id: I8f62f3292c62f820309157db73741b57fd6371ef
2012-06-26Make Rockbox logo smaller and move device information up.Dominik Riebeling1-2/+2
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. Change-Id: I790ffc423135e02e28cc963b0b565284b75bf98c
2012-06-26Create dedicated backup dialog.Dominik Riebeling1-0/+9
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. Change-Id: I1d2c6c8f646672d1b66bb442408fbfc2eeec700d
2012-06-26Make Info widget update independent from tab index.Dominik Riebeling1-9/+4
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 it. Change-Id: I40c18387aacc780ac2051bb894db36247171c268
2012-06-25Add missing class name to System Trace log.Dominik Riebeling1-3/+5
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 spaces. Change-Id: I3179bb206e96de8b5a1c05c0fc0958936e4513f3
2012-06-17Move download URL construction to ServerInfo.Dominik Riebeling1-3/+1
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. Change-Id: I87277cd61f8b164bdbcd914c9873d674661a786c
2012-06-03Update for single build-info file.Dominik Riebeling1-35/+6
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. Change-Id: If3b949f4d78eecb54e47622da887f51005f6d155
2012-06-03Fix a comment and improve message box title.Dominik Riebeling1-2/+3
Change-Id: I10a37be97b1000fcee5a47f13dc8ba7ee6b31b36
2012-06-02Only support pregenerated voice file for releases.Dominik Riebeling1-5/+6
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 their PC. Change-Id: I17817da8a14dc5f8b0ef208579d8d75fa86ab610
2012-06-02Use server timestamp for development build fonts.Dominik Riebeling1-1/+0
The server timestamp is more meaningful as version identification than using the revision of the currently installed build. Change-Id: Ib57766f8e0f57ea9a4f805929acb589c2560fbd5
2012-05-23ZipIntaller: use file timestamp if version string is missing.Dominik Riebeling1-1/+1
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. Change-Id: I0c751fabe7bb516edca93a5f73f077a611d4ef87