Fix changing of Music folder for 'Personal' mpd collection.

This commit is contained in:
craig.p.drummond
2013-09-23 18:01:26 +00:00
committed by craig.p.drummond
parent 087f0f03bd
commit eb50e7b8df
3 changed files with 18 additions and 5 deletions

View File

@@ -39,9 +39,10 @@
1.1.3
-----
1. (Hopefully) fix selection order of items - and order added to playqueue.
2. Update German translation, use 'ß' instead of 'ss' for certain words.
2. Updated German translation.
3. Add Russian translation, thanks to Julia Dronova.
4. Online services support does not require taglib.
5. Fix changing of Music folder for 'Personal' mpd collection.
1.1.2
-----

View File

@@ -139,10 +139,10 @@ void MPDUser::setMusicFolder(const QString &folder)
QFile cfgFile(Utils::configDir(constDir, true)+constConfigFile);
QStringList lines;
if (cfgFile.open(QIODevice::ReadOnly|QIODevice::Text)) {
while (!cfgFile.atEnd() && (det.dir.isEmpty() || det.hostname.isEmpty())) {
while (!cfgFile.atEnd()) {
QString line = cfgFile.readLine();
if (line.startsWith(constMusicFolderKey)) {
lines.append(constMusicFolderKey+" \""+folder+"\"");
lines.append(constMusicFolderKey+" \""+folder+"\"\n");
} else {
lines.append(line);
}
@@ -154,12 +154,24 @@ void MPDUser::setMusicFolder(const QString &folder)
if (cfgFile.open(QIODevice::WriteOnly|QIODevice::Text)) {
QTextStream out(&cfgFile);
foreach (const QString &line, lines) {
out << line << endl;
out << line;
}
}
}
det.dir=folder;
det.dirReadable=QDir(det.dir).isReadable();
if (0!=getPid()) {
controlMpd(true); // Stop
controlMpd(false); // Start
}
}
void MPDUser::setDetails(const MPDConnectionDetails &d)
{
setMusicFolder(d.dir);
bool dirReadable=det.dirReadable;
det=d;
det.dirReadable=dirReadable;
}
static void removeDir(const QString &d)

View File

@@ -46,7 +46,7 @@ public:
void cleanup();
const MPDConnectionDetails & details(bool createFiles=false) { init(createFiles); return det; }
void setDetails(const MPDConnectionDetails &d) { det=d; }
void setDetails(const MPDConnectionDetails &d);
private:
void init(bool create);