diff --git a/rbutil/rbutilqt/autodetection.cpp b/rbutil/rbutilqt/autodetection.cpp index 08c471718d..2300a1bba1 100644 --- a/rbutil/rbutilqt/autodetection.cpp +++ b/rbutil/rbutilqt/autodetection.cpp @@ -28,15 +28,28 @@ bool Autodetection::detect() { m_device = ""; m_mountpoint = ""; - - // Try detection via rockbox.info + + // Try detection via rockbox.info / rbutil.log QStringList mountpoints = getMountpoints(); for(int i=0; i< mountpoints.size();i++) { + // do the file checking QDir dir(mountpoints.at(i)); if(dir.exists()) { + // check logfile first. + if(QFile(mountpoints.at(i) + "/.rockbox/rbutil.log").exists()) { + QSettings log(mountpoints.at(i) + "/.rockbox/rbutil.log", + QSettings::IniFormat, this); + if(!log.value("platform").toString().isEmpty()) { + m_device = log.value("platform").toString(); + m_mountpoint = mountpoints.at(i); + return true; + } + } + + // check rockbox-info.txt afterwards. QFile file(mountpoints.at(i) + "/.rockbox/rockbox-info.txt"); if(file.exists()) { @@ -51,6 +64,7 @@ bool Autodetection::detect() } } } + } int n; diff --git a/rbutil/rbutilqt/install.cpp b/rbutil/rbutilqt/install.cpp index 24ce44b6b9..76baac44e0 100644 --- a/rbutil/rbutilqt/install.cpp +++ b/rbutil/rbutilqt/install.cpp @@ -125,8 +125,12 @@ void Install::done(bool error) } // no error, close the window, when the logger is closed - connect(logger,SIGNAL(closed()),this,SLOT(close())); - + connect(logger,SIGNAL(closed()),this,SLOT(close())); + // add platform info to log file for later detection + QSettings installlog(userSettings->value("defaults/mountpoint").toString() + + "/.rockbox/rbutil.log", QSettings::IniFormat, 0); + installlog.setValue("platform", userSettings->value("defaults/platform").toString()); + installlog.sync(); }