now it's possible to fix your messages
This commit is contained in:
parent
bf4a27f35d
commit
788c6ca556
13 changed files with 204 additions and 85 deletions
|
@ -58,7 +58,8 @@ Conversation::Conversation(bool muc, Models::Account* acc, Models::Element* el,
|
|||
pasteImageAction(new QAction(tr("Paste Image"), this)),
|
||||
shadow(10, 1, Qt::black, this),
|
||||
contextMenu(new QMenu()),
|
||||
currentAction(CurrentAction::none)
|
||||
currentAction(CurrentAction::none),
|
||||
currentMessageId()
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
|
@ -84,11 +85,11 @@ Conversation::Conversation(bool muc, Models::Account* acc, Models::Element* el,
|
|||
statusIcon = m_ui->statusIcon;
|
||||
statusLabel = m_ui->statusLabel;
|
||||
|
||||
connect(&ker, &KeyEnterReceiver::enterPressed, this, &Conversation::onEnterPressed);
|
||||
connect(&ker, &KeyEnterReceiver::enterPressed, this, qOverload<>(&Conversation::initiateMessageSending));
|
||||
connect(&ker, &KeyEnterReceiver::imagePasted, this, &Conversation::onImagePasted);
|
||||
connect(m_ui->sendButton, &QPushButton::clicked, this, &Conversation::onEnterPressed);
|
||||
connect(m_ui->sendButton, &QPushButton::clicked, this, qOverload<>(&Conversation::initiateMessageSending));
|
||||
connect(m_ui->attachButton, &QPushButton::clicked, this, &Conversation::onAttach);
|
||||
connect(m_ui->clearButton, &QPushButton::clicked, this, &Conversation::onClearButton);
|
||||
connect(m_ui->clearButton, &QPushButton::clicked, this, &Conversation::clear);
|
||||
connect(m_ui->messageEditor->document()->documentLayout(), &QAbstractTextDocumentLayout::documentSizeChanged,
|
||||
this, &Conversation::onTextEditDocSizeChanged);
|
||||
|
||||
|
@ -98,6 +99,9 @@ Conversation::Conversation(bool muc, Models::Account* acc, Models::Element* el,
|
|||
connect(m_ui->messageEditor, &QTextEdit::customContextMenuRequested, this, &Conversation::onMessageEditorContext);
|
||||
connect(pasteImageAction, &QAction::triggered, this, &Conversation::onImagePasted);
|
||||
|
||||
connect(m_ui->currentActionBadge, &Badge::close, this, &Conversation::clear);
|
||||
m_ui->currentActionBadge->setVisible(false);
|
||||
|
||||
//line->setAutoFillBackground(false);
|
||||
//if (testAttribute(Qt::WA_TranslucentBackground)) {
|
||||
//m_ui->scrollArea->setAutoFillBackground(false);
|
||||
|
@ -109,9 +113,6 @@ Conversation::Conversation(bool muc, Models::Account* acc, Models::Element* el,
|
|||
//line->setMyName(acc->getName());
|
||||
|
||||
initializeOverlay();
|
||||
|
||||
m_ui->currentActionBadge->setVisible(false);
|
||||
// m_ui->currentActionBadge->setText(tr("Editing message..."));
|
||||
}
|
||||
|
||||
Conversation::~Conversation()
|
||||
|
@ -224,24 +225,33 @@ void Conversation::setPalResource(const QString& res)
|
|||
activePalResource = res;
|
||||
}
|
||||
|
||||
void Conversation::onEnterPressed()
|
||||
void Conversation::initiateMessageSending()
|
||||
{
|
||||
QString body(m_ui->messageEditor->toPlainText());
|
||||
|
||||
if (body.size() > 0) {
|
||||
m_ui->messageEditor->clear();
|
||||
Shared::Message msg = createMessage();
|
||||
msg.setBody(body);
|
||||
emit sendMessage(msg);
|
||||
initiateMessageSending(msg);
|
||||
}
|
||||
if (filesToAttach.size() > 0) {
|
||||
for (Badge* badge : filesToAttach) {
|
||||
Shared::Message msg = createMessage();
|
||||
msg.setAttachPath(badge->id);
|
||||
element->feed->registerUpload(msg.getId());
|
||||
emit sendMessage(msg);
|
||||
initiateMessageSending(msg);
|
||||
}
|
||||
clearAttachedFiles();
|
||||
}
|
||||
clear();
|
||||
}
|
||||
|
||||
void Conversation::initiateMessageSending(const Shared::Message& msg)
|
||||
{
|
||||
if (currentAction == CurrentAction::edit) {
|
||||
emit replaceMessage(currentMessageId, msg);
|
||||
currentAction = CurrentAction::none;
|
||||
} else {
|
||||
emit sendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -348,8 +358,11 @@ void Conversation::clearAttachedFiles()
|
|||
filesLayout->setContentsMargins(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
void Conversation::onClearButton()
|
||||
void Conversation::clear()
|
||||
{
|
||||
currentMessageId.clear();
|
||||
currentAction = CurrentAction::none;
|
||||
m_ui->currentActionBadge->setVisible(false);
|
||||
clearAttachedFiles();
|
||||
m_ui->messageEditor->clear();
|
||||
}
|
||||
|
@ -526,13 +539,12 @@ void Conversation::onMessageEditorContext(const QPoint& pos)
|
|||
|
||||
void Conversation::onMessageEditRequested(const QString& id)
|
||||
{
|
||||
if (currentAction == CurrentAction::edit) {
|
||||
//todo;
|
||||
}
|
||||
clear();
|
||||
|
||||
try {
|
||||
Shared::Message msg = element->feed->getMessage(id);
|
||||
|
||||
currentMessageId = id;
|
||||
m_ui->currentActionBadge->setVisible(true);
|
||||
m_ui->currentActionBadge->setText(tr("Editing message..."));
|
||||
currentAction = CurrentAction::edit;
|
||||
|
|
|
@ -83,6 +83,7 @@ public:
|
|||
|
||||
signals:
|
||||
void sendMessage(const Shared::Message& message);
|
||||
void replaceMessage(const QString& originalId, const Shared::Message& message);
|
||||
void resendMessage(const QString& id);
|
||||
void requestArchive(const QString& before);
|
||||
void shown();
|
||||
|
@ -104,12 +105,13 @@ protected:
|
|||
virtual void onMessage(const Shared::Message& msg);
|
||||
|
||||
protected slots:
|
||||
void onEnterPressed();
|
||||
void initiateMessageSending();
|
||||
void initiateMessageSending(const Shared::Message& msg);
|
||||
void onImagePasted();
|
||||
void onAttach();
|
||||
void onFileSelected();
|
||||
void onBadgeClose();
|
||||
void onClearButton();
|
||||
void clear();
|
||||
void onTextEditDocSizeChanged(const QSizeF& size);
|
||||
void onAccountChanged(Models::Item* item, int row, int col);
|
||||
void onFeedMessage(const Shared::Message& msg);
|
||||
|
@ -149,6 +151,7 @@ protected:
|
|||
ShadowOverlay shadow;
|
||||
QMenu* contextMenu;
|
||||
CurrentAction currentAction;
|
||||
QString currentMessageId;
|
||||
|
||||
private:
|
||||
static bool painterInitialized;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue