Restore missing functionality
This commit is contained in:
@@ -75,7 +75,7 @@ QQC2.Control {
|
||||
|
||||
Keys.onEnterPressed: event => {
|
||||
if (completionMenu.visible) {
|
||||
completionMenu.complete();
|
||||
completionMenu.completeCurrent();
|
||||
} else if (event.modifiers & Qt.ShiftModifier) {
|
||||
textArea.insert(cursorPosition, "\n");
|
||||
} else {
|
||||
@@ -84,7 +84,7 @@ QQC2.Control {
|
||||
}
|
||||
Keys.onReturnPressed: event => {
|
||||
if (completionMenu.visible) {
|
||||
completionMenu.complete();
|
||||
completionMenu.completeCurrent();
|
||||
} else if (event.modifiers & Qt.ShiftModifier) {
|
||||
textArea.insert(cursorPosition, "\n");
|
||||
} else {
|
||||
@@ -93,7 +93,7 @@ QQC2.Control {
|
||||
}
|
||||
Keys.onTabPressed: {
|
||||
if (completionMenu.visible) {
|
||||
completionMenu.complete();
|
||||
completionMenu.completeCurrent();
|
||||
}
|
||||
}
|
||||
Keys.onPressed: event => {
|
||||
|
||||
@@ -91,27 +91,8 @@ QQC2.Control {
|
||||
QQC2.TextArea {
|
||||
id: codeText
|
||||
|
||||
Keys.onUpPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.up();
|
||||
}
|
||||
Keys.onDownPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.down();
|
||||
}
|
||||
|
||||
Keys.onDeletePressed: (event) => {
|
||||
event.accepted = true;
|
||||
root.Message.contentModel.keyHelper.deleteChar();
|
||||
}
|
||||
|
||||
Keys.onPressed: (event) => {
|
||||
if (event.key == Qt.Key_Backspace && cursorPosition == 0) {
|
||||
event.accepted = true;
|
||||
root.Message.contentModel.keyHelper.backspace();
|
||||
return;
|
||||
}
|
||||
event.accepted = false;
|
||||
event.accepted = Message.contentModel.keyHelper.handleKey(event.key, event.modifiers);
|
||||
}
|
||||
|
||||
onFocusChanged: if (focus && !root.currentFocus) {
|
||||
|
||||
@@ -63,26 +63,8 @@ QQC2.TextArea {
|
||||
*/
|
||||
signal selectedTextChanged(string selectedText)
|
||||
|
||||
Keys.onUpPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.up();
|
||||
}
|
||||
Keys.onDownPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.down();
|
||||
}
|
||||
|
||||
Keys.onDeletePressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.deleteChar();
|
||||
}
|
||||
Keys.onPressed: (event) => {
|
||||
if (event.key == Qt.Key_Backspace) {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.backspace();
|
||||
return;
|
||||
}
|
||||
event.accepted = false;
|
||||
event.accepted = Message.contentModel.keyHelper.handleKey(event.key, event.modifiers);
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
@@ -75,41 +75,8 @@ TextEdit {
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: Message.maxContentWidth
|
||||
|
||||
Keys.onUpPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.up();
|
||||
}
|
||||
Keys.onDownPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.down();
|
||||
}
|
||||
|
||||
Keys.onTabPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.tab();
|
||||
}
|
||||
|
||||
Keys.onDeletePressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.deleteChar();
|
||||
}
|
||||
|
||||
Keys.onPressed: (event) => {
|
||||
if (event.key == Qt.Key_Backspace && cursorPosition == 0) {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.backspace();
|
||||
return;
|
||||
}
|
||||
event.accepted = false;
|
||||
}
|
||||
|
||||
Keys.onEnterPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.insertReturn();
|
||||
}
|
||||
Keys.onReturnPressed: (event) => {
|
||||
event.accepted = true;
|
||||
Message.contentModel.keyHelper.insertReturn();
|
||||
event.accepted = Message.contentModel.keyHelper.handleKey(event.key, event.modifiers);
|
||||
}
|
||||
|
||||
onFocusChanged: if (focus && !root.currentFocus) {
|
||||
|
||||
@@ -25,8 +25,6 @@ ChatBarMessageContentModel::ChatBarMessageContentModel(QObject *parent)
|
||||
, m_keyHelper(new ChatKeyHelper(this))
|
||||
{
|
||||
m_editableActive = true;
|
||||
connectKeyHelper();
|
||||
initializeModel();
|
||||
|
||||
connect(this, &ChatBarMessageContentModel::roomChanged, this, [this]() {
|
||||
if (m_type == ChatBarType::None || !m_room) {
|
||||
@@ -34,15 +32,23 @@ ChatBarMessageContentModel::ChatBarMessageContentModel(QObject *parent)
|
||||
}
|
||||
|
||||
connect(m_room->cacheForType(m_type), &ChatBarCache::relationIdChanged, this, &ChatBarMessageContentModel::updateReplyModel);
|
||||
clearModel();
|
||||
|
||||
beginResetModel();
|
||||
connect(m_room->cacheForType(m_type), &ChatBarCache::attachmentPathChanged, this, [this]() {
|
||||
if (m_room->cacheForType(m_type)->attachmentPath().length() > 0) {
|
||||
addAttachment(QUrl(m_room->cacheForType(m_type)->attachmentPath()));
|
||||
}
|
||||
});
|
||||
|
||||
if (m_room->cacheForType(m_type)->attachmentPath().length() > 0) {
|
||||
addAttachment(QUrl(m_room->cacheForType(m_type)->attachmentPath()));
|
||||
}
|
||||
|
||||
const auto textSections = m_room->cacheForType(m_type)->text().split(u"\n\n"_s);
|
||||
if (textSections.length() == 1 && textSections[0].isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
clearModel();
|
||||
beginResetModel();
|
||||
for (const auto §ion : textSections) {
|
||||
const auto type = MessageComponentType::typeForString(section);
|
||||
auto cleanText = section;
|
||||
@@ -54,14 +60,14 @@ ChatBarMessageContentModel::ChatBarMessageContentModel(QObject *parent)
|
||||
}
|
||||
insertComponent(rowCount(), type, {}, cleanText);
|
||||
}
|
||||
m_currentFocusComponent = QPersistentModelIndex(index(rowCount() - 1));
|
||||
endResetModel();
|
||||
|
||||
m_currentFocusComponent = QPersistentModelIndex(index(rowCount() - 1));
|
||||
Q_EMIT focusRowChanged();
|
||||
});
|
||||
connect(this, &ChatBarMessageContentModel::focusRowChanged, this, [this]() {
|
||||
m_markdownHelper->setTextItem(focusedTextItem());
|
||||
m_keyHelper->setTextItem(focusedTextItem());
|
||||
m_keyHelper->textItem = focusedTextItem();
|
||||
});
|
||||
connect(this, &ChatBarMessageContentModel::roomChanged, this, [this]() {
|
||||
for (const auto &component : m_components) {
|
||||
@@ -69,6 +75,7 @@ ChatBarMessageContentModel::ChatBarMessageContentModel(QObject *parent)
|
||||
textItem->setRoom(m_room);
|
||||
}
|
||||
}
|
||||
m_keyHelper->room = m_room;
|
||||
});
|
||||
connect(this, &ChatBarMessageContentModel::typeChanged, this, [this]() {
|
||||
for (const auto &component : m_components) {
|
||||
@@ -78,6 +85,9 @@ ChatBarMessageContentModel::ChatBarMessageContentModel(QObject *parent)
|
||||
}
|
||||
});
|
||||
connect(m_markdownHelper, &ChatMarkdownHelper::unhandledBlockFormat, this, &ChatBarMessageContentModel::insertStyleAtCursor);
|
||||
|
||||
connectKeyHelper();
|
||||
initializeModel();
|
||||
}
|
||||
|
||||
void ChatBarMessageContentModel::initializeModel()
|
||||
@@ -92,9 +102,9 @@ void ChatBarMessageContentModel::initializeModel()
|
||||
.display = {},
|
||||
.attributes = {{TextItemKey, QVariant::fromValue<ChatTextItemHelper *>(textItem)}},
|
||||
};
|
||||
m_currentFocusComponent = QPersistentModelIndex(index(0));
|
||||
endInsertRows();
|
||||
|
||||
m_currentFocusComponent = QPersistentModelIndex(index(0));
|
||||
Q_EMIT focusRowChanged();
|
||||
}
|
||||
|
||||
@@ -119,10 +129,16 @@ ChatKeyHelper *ChatBarMessageContentModel::keyHelper() const
|
||||
|
||||
void ChatBarMessageContentModel::connectKeyHelper()
|
||||
{
|
||||
connect(m_keyHelper, &ChatKeyHelper::unhandledUp, this, [this]() {
|
||||
connect(m_keyHelper, &ChatKeyHelper::unhandledUp, this, [this](bool isCompleting) {
|
||||
if (isCompleting) {
|
||||
return;
|
||||
}
|
||||
setFocusRow(m_currentFocusComponent.row() - 1);
|
||||
});
|
||||
connect(m_keyHelper, &ChatKeyHelper::unhandledDown, this, [this]() {
|
||||
connect(m_keyHelper, &ChatKeyHelper::unhandledDown, this, [this](bool isCompleting) {
|
||||
if (isCompleting) {
|
||||
return;
|
||||
}
|
||||
setFocusRow(m_currentFocusComponent.row() + 1);
|
||||
});
|
||||
connect(m_keyHelper, &ChatKeyHelper::unhandledDelete, this, [this]() {
|
||||
@@ -150,6 +166,9 @@ void ChatBarMessageContentModel::connectKeyHelper()
|
||||
insertComponentAtCursor(MessageComponentType::Text);
|
||||
}
|
||||
});
|
||||
connect(m_keyHelper, &ChatKeyHelper::imagePasted, this, [this](const QString &filePath) {
|
||||
m_room->cacheForType(m_type)->setAttachmentPath(filePath);
|
||||
});
|
||||
}
|
||||
|
||||
int ChatBarMessageContentModel::focusRow() const
|
||||
@@ -508,7 +527,6 @@ void ChatBarMessageContentModel::postMessage()
|
||||
return;
|
||||
}
|
||||
|
||||
qWarning() << m_room->cacheForType(m_type)->text();
|
||||
m_room->cacheForType(m_type)->postMessage();
|
||||
clearModel();
|
||||
initializeModel();
|
||||
|
||||
Reference in New Issue
Block a user