Do not restart settings timer on forced write
This commit is contained in:
parent
c0e20dacf1
commit
e2e7dbb0e5
2 changed files with 7 additions and 33 deletions
|
|
@ -85,34 +85,20 @@ void Manager::fill() {
|
|||
}
|
||||
|
||||
void Manager::write(bool force) {
|
||||
if (!_jsonWriteTimer.isActive()) {
|
||||
_jsonWriteTimer.start(kWriteJsonTimeout);
|
||||
} else if (_jsonWriteTimer.remainingTime() <= 0 || (force && _jsonWriteTimer.isActive())) {
|
||||
if (force) {
|
||||
_jsonWriteTimer.stop();
|
||||
writeTimeout();
|
||||
} else if (!_jsonWriteTimer.isActive()) {
|
||||
_jsonWriteTimer.start(kWriteJsonTimeout);
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::clear() {
|
||||
_errors.clear();
|
||||
}
|
||||
|
||||
const QStringList &Manager::errors() const {
|
||||
return _errors;
|
||||
}
|
||||
|
||||
bool Manager::readCustomFile() {
|
||||
QFile file(CustomFilePath());
|
||||
if (!file.exists()) {
|
||||
return false;
|
||||
}
|
||||
const auto guard = gsl::finally([&] {
|
||||
if (!_errors.isEmpty()) {
|
||||
_errors.push_front(qsl("While reading file '%1'..."
|
||||
).arg(file.fileName()));
|
||||
}
|
||||
});
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
_errors.push_back(qsl("Could not read the file!"));
|
||||
return true;
|
||||
}
|
||||
auto error = QJsonParseError{ 0, QJsonParseError::NoError };
|
||||
|
|
@ -122,11 +108,8 @@ bool Manager::readCustomFile() {
|
|||
file.close();
|
||||
|
||||
if (error.error != QJsonParseError::NoError) {
|
||||
_errors.push_back(qsl("Failed to parse! Error: %2"
|
||||
).arg(error.errorString()));
|
||||
return true;
|
||||
} else if (!document.isObject()) {
|
||||
_errors.push_back(qsl("Failed to parse! Error: object expected"));
|
||||
return true;
|
||||
}
|
||||
const auto settings = document.object();
|
||||
|
|
@ -271,7 +254,9 @@ void Manager::writeCurrentSettings() {
|
|||
if (!file.open(QIODevice::WriteOnly)) {
|
||||
return;
|
||||
}
|
||||
writing();
|
||||
if (_jsonWriteTimer.isActive()) {
|
||||
writing();
|
||||
}
|
||||
const char *customHeader = R"HEADER(
|
||||
// This file was automatically generated from current settings
|
||||
// It's better to edit it with app closed, so there will be no rewrites
|
||||
|
|
@ -337,13 +322,8 @@ void Write() {
|
|||
Data.write();
|
||||
}
|
||||
|
||||
const QStringList &Errors() {
|
||||
return Data.errors();
|
||||
}
|
||||
|
||||
void Finish() {
|
||||
Data.write(true);
|
||||
Data.clear();
|
||||
}
|
||||
|
||||
} // namespace KotatoSettings
|
||||
|
|
|
|||
|
|
@ -17,11 +17,8 @@ class Manager : public QObject {
|
|||
public:
|
||||
Manager();
|
||||
void fill();
|
||||
void clear();
|
||||
void write(bool force = false);
|
||||
|
||||
const QStringList &errors() const;
|
||||
|
||||
public slots:
|
||||
void writeTimeout();
|
||||
|
||||
|
|
@ -31,7 +28,6 @@ private:
|
|||
bool readCustomFile();
|
||||
void writing();
|
||||
|
||||
QStringList _errors;
|
||||
QTimer _jsonWriteTimer;
|
||||
|
||||
};
|
||||
|
|
@ -40,6 +36,4 @@ void Start();
|
|||
void Write();
|
||||
void Finish();
|
||||
|
||||
const QStringList &Errors();
|
||||
|
||||
} // namespace KotatoSettings
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue