Mercurial > hg > svcore
comparison base/TempDirectory.cpp @ 170:b23eea68357e
* flesh out StorageAdviser
author | Chris Cannam |
---|---|
date | Tue, 26 Sep 2006 12:58:12 +0000 |
parents | 4b2ea82fd0ed |
children | 1d656dcda8ef |
comparison
equal
deleted
inserted
replaced
169:603991c63ff6 | 170:b23eea68357e |
---|---|
18 #include "Exceptions.h" | 18 #include "Exceptions.h" |
19 | 19 |
20 #include <QDir> | 20 #include <QDir> |
21 #include <QFile> | 21 #include <QFile> |
22 #include <QMutexLocker> | 22 #include <QMutexLocker> |
23 #include <QSettings> | |
23 | 24 |
24 #include <iostream> | 25 #include <iostream> |
25 #include <cassert> | 26 #include <cassert> |
26 | 27 |
27 TempDirectory * | 28 TempDirectory * |
56 { | 57 { |
57 QMutexLocker locker(&m_mutex); | 58 QMutexLocker locker(&m_mutex); |
58 | 59 |
59 if (m_tmpdir != "") return m_tmpdir; | 60 if (m_tmpdir != "") return m_tmpdir; |
60 | 61 |
62 QSettings settings; | |
63 settings.beginGroup("TempDirectory"); | |
64 QString svDirParent = settings.value("create-in", "$HOME").toString(); | |
65 settings.endGroup(); | |
66 | |
67 svDirParent.replace("$HOME", QDir::home().absolutePath()); | |
68 | |
61 QString svDirBase = ".sv1"; | 69 QString svDirBase = ".sv1"; |
62 QString svDir = QDir::home().filePath(svDirBase); | 70 QString svDir = QDir(svDirParent).filePath(svDirBase); |
63 if (!QFileInfo(svDir).exists()) { | 71 if (!QFileInfo(svDir).exists()) { |
64 if (!QDir::home().mkdir(svDirBase)) { | 72 if (!QDir(svDirParent).mkdir(svDirBase)) { |
65 throw DirectoryCreationFailed(QString("%1 directory in $HOME") | 73 throw DirectoryCreationFailed(QString("%1 directory in %2") |
66 .arg(svDirBase)); | 74 .arg(svDirBase).arg(svDirParent)); |
67 } | 75 } |
68 } else if (!QFileInfo(svDir).isDir()) { | 76 } else if (!QFileInfo(svDir).isDir()) { |
69 throw DirectoryCreationFailed(QString("$HOME/%1 is not a directory") | 77 throw DirectoryCreationFailed(QString("%1/%2 is not a directory") |
70 .arg(svDirBase)); | 78 .arg(svDirParent).arg(svDirBase)); |
71 } | 79 } |
72 | 80 |
73 cleanupAbandonedDirectories(svDir); | 81 cleanupAbandonedDirectories(svDir); |
74 | 82 |
75 return createTempDirectoryIn(svDir); | 83 return createTempDirectoryIn(svDir); |