Bootloader installation: set file filter.

When requesting an original firmware file from the user set the filter for the
file chooser dialog to only show files with matching file extension to simplify
selection. Allow the user to select "all files" in case the file for whatever
reason has the wrong extension.

Change-Id: Ic3643c3601f6d849e6563f8753ae80a168ec0a45
This commit is contained in:
Dominik Riebeling 2012-05-01 10:46:10 +02:00
parent 92ef7bd328
commit 9b363c6ced
4 changed files with 28 additions and 1 deletions

View file

@ -54,6 +54,7 @@ const static struct {
{ SystemInfo::CurBootloaderMethod, ":platform:/bootloadermethod", "none" }, { SystemInfo::CurBootloaderMethod, ":platform:/bootloadermethod", "none" },
{ SystemInfo::CurBootloaderName, ":platform:/bootloadername", "" }, { SystemInfo::CurBootloaderName, ":platform:/bootloadername", "" },
{ SystemInfo::CurBootloaderFile, ":platform:/bootloaderfile", "" }, { SystemInfo::CurBootloaderFile, ":platform:/bootloaderfile", "" },
{ SystemInfo::CurBootloaderFilter, ":platform:/bootloaderfilter", "" },
{ SystemInfo::CurEncoder, ":platform:/encoder", "" }, { SystemInfo::CurEncoder, ":platform:/encoder", "" },
{ SystemInfo::CurBrand, ":platform:/brand", "" }, { SystemInfo::CurBrand, ":platform:/brand", "" },
{ SystemInfo::CurName, ":platform:/name", "" }, { SystemInfo::CurName, ":platform:/name", "" },

View file

@ -58,6 +58,7 @@ class SystemInfo : public QObject
CurBootloaderMethod, CurBootloaderMethod,
CurBootloaderName, CurBootloaderName,
CurBootloaderFile, CurBootloaderFile,
CurBootloaderFilter,
CurEncoder, CurEncoder,
CurBrand, CurBrand,
CurName, CurName,

View file

@ -196,6 +196,7 @@ buildserver_modelname=iriverh100
bootloadermethod=hex bootloadermethod=hex
bootloadername=/iriver/bootloader-h100.bin bootloadername=/iriver/bootloader-h100.bin
bootloaderfile=/ihp_100.hex bootloaderfile=/ihp_100.hex
bootloaderfilter=*.hex *.zip
manualname=iriverh100 manualname=iriverh100
brand=Iriver brand=Iriver
usbid=0x10063001 usbid=0x10063001
@ -208,6 +209,7 @@ buildserver_modelname=iriverh120
bootloadermethod=hex bootloadermethod=hex
bootloadername=/iriver/bootloader-h120.bin bootloadername=/iriver/bootloader-h120.bin
bootloaderfile=/ihp_120.hex bootloaderfile=/ihp_120.hex
bootloaderfilter=*.hex *.zip
manualname=iriverh100 manualname=iriverh100
brand=Iriver brand=Iriver
usbid=0x10063002 usbid=0x10063002
@ -220,6 +222,7 @@ buildserver_modelname=iriverh300
bootloadermethod=hex bootloadermethod=hex
bootloadername=/iriver/bootloader-h300.bin bootloadername=/iriver/bootloader-h300.bin
bootloaderfile=/H300.hex bootloaderfile=/H300.hex
bootloaderfilter=*.hex *.zip
manualname=iriverh300 manualname=iriverh300
brand=Iriver brand=Iriver
usbid=0x10063003 usbid=0x10063003
@ -452,6 +455,7 @@ buildserver_modelname=sansae200v2
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/e200v2/bootloader-e200v2.sansa bootloadername=/sandisk-sansa/e200v2/bootloader-e200v2.sansa
bootloaderfile=/e200pa.bin,/e200pe.bin,/e200pf.bin bootloaderfile=/e200pa.bin,/e200pe.bin,/e200pf.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x07817423 usbid=0x07817423
@ -465,6 +469,7 @@ buildserver_modelname=sansac200v2
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/c200v2/bootloader-c200v2.sansa bootloadername=/sandisk-sansa/c200v2/bootloader-c200v2.sansa
bootloaderfile=/c200pa.bin bootloaderfile=/c200pa.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x07817452 usbid=0x07817452
@ -478,6 +483,7 @@ buildserver_modelname=sansafuze
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/fuze/bootloader-fuze.sansa bootloadername=/sandisk-sansa/fuze/bootloader-fuze.sansa
bootloaderfile=/fuzea.bin bootloaderfile=/fuzea.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x078174c1 usbid=0x078174c1
@ -491,6 +497,7 @@ buildserver_modelname=sansafuzev2
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/fuzev2/bootloader-fuzev2.sansa bootloadername=/sandisk-sansa/fuzev2/bootloader-fuzev2.sansa
bootloaderfile=/fuzpa.bin bootloaderfile=/fuzpa.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x078174c3 usbid=0x078174c3
@ -504,6 +511,7 @@ buildserver_modelname=sansafuzeplus
bootloadermethod=imx bootloadermethod=imx
bootloadername=/sandisk-sansa/fuzeplus/bootloader-fuzeplus.sansa bootloadername=/sandisk-sansa/fuzeplus/bootloader-fuzeplus.sansa
bootloaderfile=/firmware.sb bootloaderfile=/firmware.sb
bootloaderfilter=*.sb *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x078174e1 usbid=0x078174e1
@ -517,6 +525,7 @@ buildserver_modelname=sansam200v4
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/m200v4/bootloader-m200v4.sansa bootloadername=/sandisk-sansa/m200v4/bootloader-m200v4.sansa
bootloaderfile=/m200a.bin bootloaderfile=/m200a.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid= usbid=
@ -531,6 +540,7 @@ buildserver_modelname=sansaclip
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/clip/bootloader-clip.sansa bootloadername=/sandisk-sansa/clip/bootloader-clip.sansa
bootloaderfile=/m300a.bin bootloaderfile=/m300a.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x07817433 usbid=0x07817433
@ -544,6 +554,7 @@ buildserver_modelname=sansaclipv2
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/clipv2/bootloader-clipv2.sansa bootloadername=/sandisk-sansa/clipv2/bootloader-clipv2.sansa
bootloaderfile=/m30pa.bin bootloaderfile=/m30pa.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x07817435 usbid=0x07817435
@ -557,6 +568,7 @@ buildserver_modelname=sansaclipplus
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/clipplus/bootloader-clipplus.sansa bootloadername=/sandisk-sansa/clipplus/bootloader-clipplus.sansa
bootloaderfile=/clppa.bin bootloaderfile=/clppa.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x078174d1 usbid=0x078174d1
@ -570,6 +582,7 @@ buildserver_modelname=sansaclipzip
bootloadermethod=ams bootloadermethod=ams
bootloadername=/sandisk-sansa/clipzip/bootloader-clipzip.sansa bootloadername=/sandisk-sansa/clipzip/bootloader-clipzip.sansa
bootloaderfile=/clpza.bin bootloaderfile=/clpza.bin
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Sandisk brand=Sandisk
usbid=0x078174e5 usbid=0x078174e5
@ -595,6 +608,7 @@ buildserver_modelname=ondavx747
bootloadermethod=chinachip bootloadermethod=chinachip
bootloadername=/onda/vx747/ccpmp.bin bootloadername=/onda/vx747/ccpmp.bin
bootloaderfile=/SG301.HXF bootloaderfile=/SG301.HXF
bootloaderfilter=*.hxf *.zip
manualname= manualname=
brand=Onda brand=Onda
usbid=0x07c4a4a5 usbid=0x07c4a4a5
@ -608,6 +622,7 @@ buildserver_modelname=ondavx747p
bootloadermethod=chinachip bootloadermethod=chinachip
bootloadername=/onda/vx747p/ccpmp.bin bootloadername=/onda/vx747p/ccpmp.bin
bootloaderfile=/SG301.HXF bootloaderfile=/SG301.HXF
bootloaderfilter=*.hxf *.zip
manualname= manualname=
brand=Onda brand=Onda
usbid=0x07c4a4a5 usbid=0x07c4a4a5
@ -621,6 +636,7 @@ buildserver_modelname=ondavx777
bootloadermethod=chinachip bootloadermethod=chinachip
bootloadername=/onda/vx777/ccpmp.bin bootloadername=/onda/vx777/ccpmp.bin
bootloaderfile=/VX777.HXF bootloaderfile=/VX777.HXF
bootloaderfilter=*.hxf *.zip
manualname= manualname=
brand=Onda brand=Onda
usbid=0x07c4a4a5 usbid=0x07c4a4a5
@ -670,6 +686,7 @@ buildserver_modelname=cowond2
bootloadermethod=tcc bootloadermethod=tcc
bootloadername=/cowon/d2/bootloader-cowond2.bin bootloadername=/cowon/d2/bootloader-cowond2.bin
bootloaderfile=/ bootloaderfile=/
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=Cowon brand=Cowon
usbid=0x0e210800, 0x0e210860, 0x0e210870, 0x0e210880, 0x0e210890 usbid=0x0e210800, 0x0e210860, 0x0e210870, 0x0e210880, 0x0e210890
@ -697,6 +714,7 @@ buildserver_modelname=mpiohd200
bootloadermethod=mpio bootloadermethod=mpio
bootloadername=/mpiohd200/bootloader.mpio bootloadername=/mpiohd200/bootloader.mpio
bootloaderfile=/SYSTEM/HD200_UPG.SYS bootloaderfile=/SYSTEM/HD200_UPG.SYS
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=MPIO brand=MPIO
usbid=0x27351004 usbid=0x27351004
@ -709,6 +727,7 @@ buildserver_modelname=mpiohd300
bootloadermethod=mpio bootloadermethod=mpio
bootloadername=/mpiohd300/bootloader.mpio bootloadername=/mpiohd300/bootloader.mpio
bootloaderfile=/SYSTEM/HD300_UPG.SYS bootloaderfile=/SYSTEM/HD300_UPG.SYS
bootloaderfilter=*.bin *.zip
manualname= manualname=
brand=MPIO brand=MPIO
usbid=0x27351005 usbid=0x27351005

View file

@ -760,8 +760,14 @@ void RbUtilQt::installBootloader()
} }
// open dialog to browse to of file // open dialog to browse to of file
QString offile; QString offile;
QString filter
= SystemInfo::value(SystemInfo::CurBootloaderFilter).toString();
if(!filter.isEmpty()) {
filter = tr("Bootloader files (%1)").arg(filter) + ";;";
}
filter += tr("All files (*)");
offile = QFileDialog::getOpenFileName(this, offile = QFileDialog::getOpenFileName(this,
tr("Select firmware file"), QDir::homePath()); tr("Select firmware file"), QDir::homePath(), filter);
if(!QFileInfo(offile).isReadable()) { if(!QFileInfo(offile).isReadable()) {
logger->addItem(tr("Error opening firmware file"), LOGERROR); logger->addItem(tr("Error opening firmware file"), LOGERROR);
logger->setFinished(); logger->setFinished();