diff --git a/src/app/chat/core.nim b/src/app/chat/core.nim index d8718955bf..ef07eaaa2f 100644 --- a/src/app/chat/core.nim +++ b/src/app/chat/core.nim @@ -1,11 +1,25 @@ import NimQml import ../../status/chat as status_chat import view +import messages import ../signals/types import ../../status/utils -var sendMessage = proc (chatId: string, msg: string): string = - echo "sending message" +var sendMessage = proc (view: ChatsView, chatId: string, msg: string): string = + echo "sending message!" + var message = Message( + fromAuthor: "myself", + text: msg, + timestamp: "0", + isCurrentUser: true + ) + # var message = newChatMessage() + # message.userName = "myself" + # message.message = msg + # message.timestamp = "0" + # message.isCurrentUser = true + + view.pushMessage(message) status_chat.sendChatMessage(chatId, msg) type ChatController* = ref object of SignalSubscriber diff --git a/src/app/chat/messageList.nim b/src/app/chat/messageList.nim index 62f56a66c8..2b494ed902 100644 --- a/src/app/chat/messageList.nim +++ b/src/app/chat/messageList.nim @@ -56,8 +56,8 @@ QtObject: chatMessage.userName = message.alias chatMessage.message = message.text chatMessage.timestamp = message.timestamp #TODO convert to date/time? - chatMessage.isCurrentUser = false #TODO: Determine who originated the message - + chatMessage.isCurrentUser = message.isCurrentUser #TODO: Determine who originated the message + self.beginInsertRows(newQModelIndex(), self.messages.len, self.messages.len) self.messages.add(chatMessage) self.endInsertRows() diff --git a/src/app/chat/model.nim b/src/app/chat/model.nim new file mode 100644 index 0000000000..fd82667d30 --- /dev/null +++ b/src/app/chat/model.nim @@ -0,0 +1,10 @@ +import "../../status/chat" as status_chat + +type ChatModel* = ref object + +proc newChatModel*(): ChatModel = + result = ChatModel() + +proc sendMessage*(self: ChatModel, msg: string): string = + echo "sending public message" + status_chat.sendPublicChatMessage("test", msg) diff --git a/src/app/chat/view.nim b/src/app/chat/view.nim index c1487421e5..9d6c994529 100644 --- a/src/app/chat/view.nim +++ b/src/app/chat/view.nim @@ -14,7 +14,7 @@ QtObject: names*: seq[string] callResult: string messageList: ChatMessageList - sendMessage: proc (chatId: string, msg: string): string + sendMessage: proc (view: ChatsView, chatId: string, msg: string): string proc delete(self: ChatsView) = self.QAbstractListModel.delete @@ -68,7 +68,7 @@ QtObject: proc onSend*(self: ChatsView, inputJSON: string) {.slot.} = # TODO unhardcode chatId - self.setCallResult(self.sendMessage("test", inputJSON)) + self.setCallResult(self.sendMessage(self, "test", inputJSON)) echo "Done!: ", self.callResult proc onMessage*(self: ChatsView, message: string) {.slot.} = @@ -82,4 +82,4 @@ QtObject: return newQVariant(self.messageList) QtProperty[QVariant] messageList: - read = getMessageList \ No newline at end of file + read = getMessageList diff --git a/src/app/signals/messages.nim b/src/app/signals/messages.nim index 18ea0abf98..7b27dc9108 100644 --- a/src/app/signals/messages.nim +++ b/src/app/signals/messages.nim @@ -23,9 +23,10 @@ proc fromEvent*(event: JsonNode): Signal = seen: jsonMsg["seen"].getBool, text: jsonMsg["text"].getStr, timestamp: $jsonMsg["timestamp"].getInt, - whisperTimestamp: $jsonMsg["whisperTimestamp"].getInt + whisperTimestamp: $jsonMsg["whisperTimestamp"].getInt, + isCurrentUser: false ) - + signal.messages.add(msg) result = signal \ No newline at end of file diff --git a/src/app/signals/types.nim b/src/app/signals/types.nim index 32a3bff456..8b2a39c490 100644 --- a/src/app/signals/types.nim +++ b/src/app/signals/types.nim @@ -28,6 +28,7 @@ type Message* = object text*: string timestamp*: string whisperTimestamp*: string + isCurrentUser*: bool type ChatSignal* = ref object of Signal