diff --git a/qml/main.qml b/qml/main.qml
index 6678e9b2..6ef50a17 100644
--- a/qml/main.qml
+++ b/qml/main.qml
@@ -7,7 +7,6 @@ import QtQuick.Window 2.11
import "opaque"
import "opaque/fonts"
-import "opaque/fonts/Twemoji.js" as T
import "opaque/fonts/MutantStandard.js" as Mutant
import "opaque/theme"
@@ -36,37 +35,16 @@ ApplicationWindow {
source: "qrc:/qml/opaque/fonts/AdobeBlank.ttf"
}
-
-
function parse(text, size, isntEditable) { // REPLACE EMOJI WITH TAGS
- T.twemoji.base = gcd.assetPath + "twemoji/"
- T.twemoji.ext = ".png"
- T.twemoji.size = "72x72"
- T.twemoji.className = "\" height=\""+size+"\" width=\""+size
- var retText = Utils.htmlEscaped(text)//T.twemoji.parse(Utils.htmlEscaped(text))//
- retText = retText.replace(/\n/g,"
")
+ var retText = Utils.htmlEscaped(text)
+ retText = retText.replace(/\n/g,"
").replace(/\s\s/g, " ")
// mutant standard stickers
- if (isntEditable) retText = Mutant.standard.parse(retText)
+ if (isntEditable) retText = Mutant.standard.parse(retText, 1.5 * gcd.themeScale * Theme.chatSize)
return retText
}
- function restoreEmoji(text) { // REPLACE TAGS WITH EMOJI
- var re = RegExp('', 'g')
- var arr
- var newtext = text
- while (arr = re.exec(text)) {
- var pieces = arr[1].split("-")
- var replacement = ""
- for (var i = 0; i < pieces.length; i++) {
- replacement += T.twemoji.convert.fromCodePoint(pieces[i])
- }
- newtext = newtext.replace(arr[0], replacement)
- }
- return newtext
- }
-
function ptToPx(pt) {
return Screen.pixelDensity * 25.4 * pt / 72
}
diff --git a/qml/overlays/BulletinOverlay.qml b/qml/overlays/BulletinOverlay.qml
index 90bf89ce..20737d6c 100644
--- a/qml/overlays/BulletinOverlay.qml
+++ b/qml/overlays/BulletinOverlay.qml
@@ -7,7 +7,6 @@ import QtQuick.Layouts 1.3
import "../opaque" as Opaque
-import "../opaque/fonts/Twemoji.js" as T
import "../opaque/styles"
import "../utils.js" as Utils
diff --git a/qml/overlays/ChatOverlay.qml b/qml/overlays/ChatOverlay.qml
index 4e0e68a1..e30a0d17 100644
--- a/qml/overlays/ChatOverlay.qml
+++ b/qml/overlays/ChatOverlay.qml
@@ -6,7 +6,6 @@ import QtQuick.Layouts 1.3
import "../opaque" as Opaque
import "../opaque/controls" as Awesome
-import "../opaque/fonts/Twemoji.js" as T
import "../utils.js" as Utils
import "../widgets" as W
import "../opaque/theme"
diff --git a/qml/overlays/ListOverlay.qml b/qml/overlays/ListOverlay.qml
index 0fcd1e64..875051ce 100644
--- a/qml/overlays/ListOverlay.qml
+++ b/qml/overlays/ListOverlay.qml
@@ -7,7 +7,6 @@ import QtQuick.Layouts 1.3
import "../opaque" as Opaque
import "../opaque/controls" as Awesome
-import "../opaque/fonts/Twemoji.js" as T
import "../utils.js" as Utils
import "../opaque/styles"
import "../opaque/theme"
diff --git a/qml/overlays/MembershipOverlay.qml b/qml/overlays/MembershipOverlay.qml
index 75025398..7a65302c 100644
--- a/qml/overlays/MembershipOverlay.qml
+++ b/qml/overlays/MembershipOverlay.qml
@@ -7,7 +7,6 @@ import QtQuick.Layouts 1.3
import "../opaque"
import "../opaque/controls" as Awesome
-import "../opaque/fonts/Twemoji.js" as T
import "../opaque/styles"
import "../utils.js" as Utils
import "../widgets"
diff --git a/qml/widgets/MessageEditor.qml b/qml/widgets/MessageEditor.qml
index db56319e..4d1da732 100644
--- a/qml/widgets/MessageEditor.qml
+++ b/qml/widgets/MessageEditor.qml
@@ -6,7 +6,6 @@ import QtQuick.Layouts 1.3
import "../opaque" as Opaque
import "../opaque/controls" as Awesome
-import "../opaque/fonts/Twemoji.js" as T
import "../utils.js" as Utils
import "../widgets"
import "../opaque/theme"
@@ -119,66 +118,14 @@ ColumnLayout {
property int previousCursor
Keys.onReturnPressed: { // CTRL+ENTER = LINEBREAK // TODO: Broken
- if ((event.modifiers & Qt.ControlModifier) && gcd.os != "android") {
- txtMessage.insert(txtMessage.cursorPosition, "
")
+ if ((event.modifiers & Qt.ShiftModifier) && gcd.os != "android") {
+ txtMessage.insert(txtMessage.cursorPosition, "\n")
} else if (event.modifiers == Qt.NoModifier) {
btnSend.clicked()
}
}
- // welcome to the emoji parser! it is horrifying code that needs to leave in
- // while also stripping any other tag, including other images.
- // TODO: this probably breaks if people actually do want to paste html
onTextChanged: {
- if (gcd.os == "android") {
- return
- }
-
- // we're taking advantage of TextEdit.getText()'s parsing capability, which means occasionally
- // passing text into it to be filtered. this prevents recursive calls putting us into an
- // infinite loop
- if (skipOneUpdate) {
- skipOneUpdate = false
- return
- }
-
- previousCursor = cursorPosition
- //console.log("onTextChanged() at position " + previousCursor)
-
- //console.log("1: " + txtMessage.getText(0, txtMessage.text.length))
-
- // convert tags back to their emoji form
- // Then parse out the rest of the HTML
- var nt = restoreEmoji(txtMessage.text)
- if (nt != txtMessage.text) {
- skipOneUpdate = true
- txtMessage.text = nt
- }
-
- //console.log("2: " + txtMessage.getText(0, txtMessage.text.length))
- var preserveSpaces = txtMessage.text.replace(/
/g,"[:newline:]");
- if (preserveSpaces != txtMessage.text) {
- skipOneUpdate = true
- txtMessage.text = preserveSpaces
- }
- // strip all HTML tags
- var theText = Utils.htmlEscaped(txtMessage.getText(0, txtMessage.text.length))
- //console.log("3: " + theText)
-
- // convert emoji back to tags
- nt = parse(theText, 10)
- //console.log("4: " + nt)
-
- // preserve double spacing
- nt = nt.replace(/\s\s/g, " ");
- nt = nt.replace(/\[\:newline\:\]/g, "
");
-
- // then we actually put the updated text in
- skipOneUpdate = true
- txtMessage.text = nt
-
- txtMessage.cursorPosition = previousCursor
-
// autoscroll down only when the scrollbar is already all the way down
if (flkMessage.contentY + flkMessage.height >= flkMessage.contentHeight - txtMessage.height && flkMessage.contentHeight > flkMessage.height) {
flkMessage.contentY = flkMessage.contentHeight - flkMessage.height
diff --git a/qml/widgets/Overlay.qml b/qml/widgets/Overlay.qml
index 3334258b..b3c811a4 100644
--- a/qml/widgets/Overlay.qml
+++ b/qml/widgets/Overlay.qml
@@ -6,7 +6,6 @@ import QtQuick.Layouts 1.3
import "../opaque" as Opaque
import "../opaque/controls" as Awesome
-import "../opaque/fonts/Twemoji.js" as T
import "../utils.js" as Utils
import "../widgets"
import "../opaque/theme"