mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-09-04 08:35:21 +00:00
Custom instant replaces
This commit is contained in:
@@ -13,6 +13,7 @@ https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL
|
|||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "base/parse_helper.h"
|
#include "base/parse_helper.h"
|
||||||
#include "facades.h"
|
#include "facades.h"
|
||||||
|
#include "ui/widgets/input_fields.h"
|
||||||
|
|
||||||
#include <QtCore/QJsonDocument>
|
#include <QtCore/QJsonDocument>
|
||||||
#include <QtCore/QJsonObject>
|
#include <QtCore/QJsonObject>
|
||||||
@@ -230,6 +231,28 @@ bool Manager::readCustomFile() {
|
|||||||
if (settingsDisableUpEditIt != settings.constEnd() && (*settingsDisableUpEditIt).isBool()) {
|
if (settingsDisableUpEditIt != settings.constEnd() && (*settingsDisableUpEditIt).isBool()) {
|
||||||
cSetDisableUpEdit((*settingsDisableUpEditIt).toBool());
|
cSetDisableUpEdit((*settingsDisableUpEditIt).toBool());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto settingsReplacesIt = settings.constFind(qsl("replaces"));
|
||||||
|
if (settingsReplacesIt != settings.constEnd() && (*settingsReplacesIt).isArray()) {
|
||||||
|
const auto settingsReplacesArray = (*settingsReplacesIt).toArray();
|
||||||
|
for (auto i = settingsReplacesArray.constBegin(), e = settingsReplacesArray.constEnd(); i != e; ++i) {
|
||||||
|
if (!(*i).isArray()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto a = (*i).toArray();
|
||||||
|
|
||||||
|
if (a.size() != 2 || !a.at(0).isString() || !a.at(1).isString()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const auto from = a.at(0).toString();
|
||||||
|
const auto to = a.at(1).toString();
|
||||||
|
|
||||||
|
AddCustomReplace(from, to);
|
||||||
|
Ui::AddCustomReplacement(from, to);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,6 +293,9 @@ void Manager::writeDefaultFile() {
|
|||||||
auto settingsScales = QJsonArray();
|
auto settingsScales = QJsonArray();
|
||||||
settings.insert(qsl("scales"), settingsScales);
|
settings.insert(qsl("scales"), settingsScales);
|
||||||
|
|
||||||
|
auto settingsReplaces = QJsonArray();
|
||||||
|
settings.insert(qsl("replaces"), settingsReplaces);
|
||||||
|
|
||||||
auto document = QJsonDocument();
|
auto document = QJsonDocument();
|
||||||
document.setObject(settings);
|
document.setObject(settings);
|
||||||
file.write(document.toJson(QJsonDocument::Indented));
|
file.write(document.toJson(QJsonDocument::Indented));
|
||||||
@@ -330,6 +356,17 @@ void Manager::writeCurrentSettings() {
|
|||||||
|
|
||||||
settings.insert(qsl("scales"), settingsScales);
|
settings.insert(qsl("scales"), settingsScales);
|
||||||
|
|
||||||
|
auto settingsReplaces = QJsonArray();
|
||||||
|
auto currentReplaces = cCustomReplaces();
|
||||||
|
|
||||||
|
for (auto i = currentReplaces.constBegin(), e = currentReplaces.constEnd(); i != e; ++i) {
|
||||||
|
auto a = QJsonArray();
|
||||||
|
a << i.key() << i.value();
|
||||||
|
settingsReplaces << a;
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.insert(qsl("replaces"), settingsReplaces);
|
||||||
|
|
||||||
auto document = QJsonDocument();
|
auto document = QJsonDocument();
|
||||||
document.setObject(settings);
|
document.setObject(settings);
|
||||||
file.write(document.toJson(QJsonDocument::Indented));
|
file.write(document.toJson(QJsonDocument::Indented));
|
||||||
|
@@ -283,3 +283,9 @@ rpl::producer<int> DialogListLinesChanges() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool gDisableUpEdit = false;
|
bool gDisableUpEdit = false;
|
||||||
|
|
||||||
|
CustomReplacementsMap gCustomReplaces;
|
||||||
|
bool AddCustomReplace(QString from, QString to) {
|
||||||
|
gCustomReplaces.insert(from, to);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@@ -231,3 +231,7 @@ void SetDialogListLines(int lines);
|
|||||||
[[nodiscard]] rpl::producer<int> DialogListLinesChanges();
|
[[nodiscard]] rpl::producer<int> DialogListLinesChanges();
|
||||||
|
|
||||||
DeclareSetting(bool, DisableUpEdit);
|
DeclareSetting(bool, DisableUpEdit);
|
||||||
|
|
||||||
|
using CustomReplacementsMap = QMap<QString, QString>;
|
||||||
|
DeclareRefSetting(CustomReplacementsMap, CustomReplaces);
|
||||||
|
bool AddCustomReplace(QString from, QString to);
|
||||||
|
Submodule Telegram/lib_ui updated: 3b2cbce204...f69cde56f1
Reference in New Issue
Block a user