forked from qt-creator/qt-creator
Utils: read remote persistent settings
Used to read project.user files from devices Change-Id: I151155e7f83501f49ce1d72b3c4bff92f2c05d4b Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -183,7 +183,7 @@ void ParseValueStackEntry::addChild(const QString &key, const QVariant &v)
|
|||||||
class ParseContext : public Context
|
class ParseContext : public Context
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QVariantMap parse(QFile &file);
|
QVariantMap parse(const FilePath &file);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum Element { QtCreatorElement, DataElement, VariableElement,
|
enum Element { QtCreatorElement, DataElement, VariableElement,
|
||||||
@@ -204,9 +204,9 @@ private:
|
|||||||
QString m_currentVariableName;
|
QString m_currentVariableName;
|
||||||
};
|
};
|
||||||
|
|
||||||
QVariantMap ParseContext::parse(QFile &file)
|
QVariantMap ParseContext::parse(const FilePath &file)
|
||||||
{
|
{
|
||||||
QXmlStreamReader r(&file);
|
QXmlStreamReader r(file.fileContents());
|
||||||
|
|
||||||
m_result.clear();
|
m_result.clear();
|
||||||
m_currentVariableName.clear();
|
m_currentVariableName.clear();
|
||||||
@@ -354,15 +354,11 @@ bool PersistentSettingsReader::load(const FilePath &fileName)
|
|||||||
{
|
{
|
||||||
m_valueMap.clear();
|
m_valueMap.clear();
|
||||||
|
|
||||||
QFile file(fileName.toString());
|
if (fileName.fileSize() == 0) // skip empty files
|
||||||
if (file.size() == 0) // skip empty files
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!file.open(QIODevice::ReadOnly|QIODevice::Text))
|
|
||||||
return false;
|
|
||||||
ParseContext ctx;
|
ParseContext ctx;
|
||||||
m_valueMap = ctx.parse(file);
|
m_valueMap = ctx.parse(fileName);
|
||||||
file.close();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -218,12 +218,10 @@ QVariantMap SettingsAccessor::prepareToWriteSettings(const QVariantMap &data) co
|
|||||||
|
|
||||||
FilePaths BackUpStrategy::readFileCandidates(const FilePath &baseFileName) const
|
FilePaths BackUpStrategy::readFileCandidates(const FilePath &baseFileName) const
|
||||||
{
|
{
|
||||||
|
const QStringList filter(baseFileName.fileName() + '*');
|
||||||
|
const FilePath baseFileDir = baseFileName.parentDir();
|
||||||
|
|
||||||
const QFileInfo pfi = baseFileName.toFileInfo();
|
return baseFileDir.dirEntries(filter, QDir::Files | QDir::Hidden | QDir::System);
|
||||||
const QStringList filter(pfi.fileName() + '*');
|
|
||||||
const QFileInfoList list = QDir(pfi.dir()).entryInfoList(filter, QDir::Files | QDir::Hidden | QDir::System);
|
|
||||||
|
|
||||||
return Utils::transform(list, [](const QFileInfo &fi) { return FilePath::fromString(fi.absoluteFilePath()); });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int BackUpStrategy::compare(const SettingsAccessor::RestoreData &data1,
|
int BackUpStrategy::compare(const SettingsAccessor::RestoreData &data1,
|
||||||
|
Reference in New Issue
Block a user