mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
added "Copy message" context menu item ofr messages
This commit is contained in:
parent
63e88938ef
commit
0d76f6f39f
|
@ -50,7 +50,7 @@ public:
|
||||||
const MessageLayoutElement *getElementAt(QPoint point);
|
const MessageLayoutElement *getElementAt(QPoint point);
|
||||||
int getLastCharacterIndex() const;
|
int getLastCharacterIndex() const;
|
||||||
int getSelectionIndex(QPoint position);
|
int getSelectionIndex(QPoint position);
|
||||||
void addSelectionText(QString &str, int from, int to);
|
void addSelectionText(QString &str, int from = 0, int to = INT_MAX);
|
||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
bool isDisabled() const;
|
bool isDisabled() const;
|
||||||
|
|
|
@ -938,12 +938,13 @@ void ChannelView::mouseReleaseEvent(QMouseEvent *event)
|
||||||
const auto &creator = hoverLayoutElement->getCreator();
|
const auto &creator = hoverLayoutElement->getCreator();
|
||||||
auto creatorFlags = creator.getFlags();
|
auto creatorFlags = creator.getFlags();
|
||||||
|
|
||||||
if ((creatorFlags & (MessageElement::Flags::EmoteImages | MessageElement::Flags::EmojiImage)) !=
|
|
||||||
0) {
|
|
||||||
if (event->button() == Qt::RightButton) {
|
if (event->button() == Qt::RightButton) {
|
||||||
static QMenu *menu = new QMenu;
|
static QMenu *menu = new QMenu;
|
||||||
menu->clear();
|
menu->clear();
|
||||||
|
|
||||||
|
// Emote actions
|
||||||
|
if ((creatorFlags &
|
||||||
|
(MessageElement::Flags::EmoteImages | MessageElement::Flags::EmojiImage)) != 0) {
|
||||||
const auto &emoteElement = static_cast<const messages::EmoteElement &>(creator);
|
const auto &emoteElement = static_cast<const messages::EmoteElement &>(creator);
|
||||||
|
|
||||||
// TODO: We might want to add direct "Open image" variants alongside the Copy actions
|
// TODO: We might want to add direct "Open image" variants alongside the Copy actions
|
||||||
|
@ -977,13 +978,31 @@ void ChannelView::mouseReleaseEvent(QMouseEvent *event)
|
||||||
QApplication::clipboard()->setText(emotePageLink); //
|
QApplication::clipboard()->setText(emotePageLink); //
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add seperator
|
||||||
|
if (!menu->actions().empty())
|
||||||
|
menu->addSeparator();
|
||||||
|
|
||||||
|
// Message actions
|
||||||
|
menu->addAction("Copy message", [layout] {
|
||||||
|
QString copyString;
|
||||||
|
layout->addSelectionText(copyString);
|
||||||
|
|
||||||
|
QGuiApplication::clipboard()->setText(copyString);
|
||||||
|
});
|
||||||
|
// menu->addAction("Quote message", [layout] {
|
||||||
|
// QString copyString;
|
||||||
|
// layout->addSelectionText(copyString);
|
||||||
|
|
||||||
|
// // insert into input
|
||||||
|
// });
|
||||||
|
|
||||||
menu->move(QCursor::pos());
|
menu->move(QCursor::pos());
|
||||||
menu->show();
|
menu->show();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
auto &link = hoverLayoutElement->getLink();
|
auto &link = hoverLayoutElement->getLink();
|
||||||
if (event->button() != Qt::LeftButton || !app->settings->linksDoubleClickOnly) {
|
if (event->button() != Qt::LeftButton || !app->settings->linksDoubleClickOnly) {
|
||||||
|
|
Loading…
Reference in a new issue