Custom instant replaces

This commit is contained in:
Eric Kotato 2020-01-26 08:00:49 +03:00
parent 3b2cbce204
commit f69cde56f1
2 changed files with 15 additions and 0 deletions

View file

@ -23,6 +23,7 @@
#include <QtGui/QTextDocumentFragment>
#include <QtCore/QMimeData>
#include <QtCore/QRegularExpression>
#include <QtCore/QMap>
namespace Ui {
namespace {
@ -48,6 +49,8 @@ const auto kNewlineChars = QString("\r\n")
+ QChar(QChar::ParagraphSeparator)
+ QChar(QChar::LineSeparator);
QMap<QString, QString> customReplacesMap;
class InputDocument : public QTextDocument {
public:
InputDocument(QObject *parent, const style::InputField &st);
@ -809,6 +812,10 @@ struct FormattingAction {
} // namespace
void AddCustomReplacement(QString from, QString to) {
customReplacesMap.insert(from, to);
}
// kTagUnderline is not used for Markdown.
const QString InputField::kTagBold = QStringLiteral("**");
@ -903,6 +910,9 @@ const InstantReplaces &InstantReplaces::Default() {
Assert(emoji != nullptr);
result.add(what, emoji->text());
}
for (auto i = customReplacesMap.constBegin(), e = customReplacesMap.constEnd(); i != e; ++i) {
result.add(i.key(), i.value());
}
return result;
}();
return result;
@ -917,6 +927,9 @@ const InstantReplaces &InstantReplaces::TextOnly() {
result.add(
":shrug:",
QChar(175) + QString("\\_(") + QChar(12484) + ")_/" + QChar(175));
for (auto i = customReplacesMap.constBegin(), e = customReplacesMap.constEnd(); i != e; ++i) {
result.add(i.key(), i.value());
}
return result;
}();
return result;

View file

@ -22,6 +22,8 @@ class Painter;
namespace Ui {
void AddCustomReplacement(QString from, QString to);
const auto kClearFormatSequence = QKeySequence("ctrl+shift+n");
const auto kStrikeOutSequence = QKeySequence("ctrl+shift+x");
const auto kMonospaceSequence = QKeySequence("ctrl+shift+m");