aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp51
1 files changed, 43 insertions, 8 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index a21cf11..a45da87 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -5876,17 +5876,15 @@ namespace QuickMedia {
}
}
- if(current_room) {
- if(event.key.control && event.key.code == sf::Keyboard::C) {
- BodyItem *selected = tabs[selected_tab].body->get_selected();
- if(selected) {
- auto desc = selected->get_description();
- sf::Clipboard::setString(sf::String::fromUtf8(desc.begin(), desc.end()));
- }
+ if(event.key.control && event.key.code == sf::Keyboard::C) {
+ BodyItem *selected = tabs[selected_tab].body->get_selected();
+ if(selected) {
+ auto desc = selected->get_description();
+ sf::Clipboard::setString(sf::String::fromUtf8(desc.begin(), desc.end()));
}
}
- if(selected_tab == MESSAGES_TAB_INDEX && current_room) {
+ if(selected_tab == MESSAGES_TAB_INDEX) {
if(event.key.code == sf::Keyboard::U) {
frame_skip_text_entry = true;
new_page = PageType::FILE_MANAGER;
@@ -5983,6 +5981,43 @@ namespace QuickMedia {
show_notification("QuickMedia", "No message selected for deletion");
}
}
+
+ if(event.key.control && event.key.code == sf::Keyboard::P && !chat_input.is_editable()) {
+ frame_skip_text_entry = true;
+ BodyItem *selected = tabs[selected_tab].body->get_selected();
+ if(selected) {
+ Message *selected_message = static_cast<Message*>(selected->userdata);
+ if(!is_state_message_type(selected_message)) {
+ if(selected_message->event_id.empty()) {
+ // TODO: Show inline notification
+ show_notification("QuickMedia", "You can't pin a message that hasn't been sent yet");
+ } else {
+ run_task_with_loading_screen([this, current_room, selected_message] {
+ return matrix->pin_message(current_room, selected_message->event_id) == PluginResult::OK;
+ });
+ }
+ }
+ } else {
+ // TODO: Show inline notification
+ show_notification("QuickMedia", "No message selected for pinning");
+ }
+ }
+ } else if(selected_tab == PINNED_TAB_INDEX) {
+ if(event.key.control && event.key.code == sf::Keyboard::D && !chat_input.is_editable()) {
+ frame_skip_text_entry = true;
+ BodyItem *selected = tabs[selected_tab].body->get_selected();
+ if(selected) {
+ PinnedEventData *selected_pinned_event_data = static_cast<PinnedEventData*>(selected->userdata);
+ if(selected_pinned_event_data) {
+ run_task_with_loading_screen([this, current_room, selected_pinned_event_data] {
+ return matrix->unpin_message(current_room, selected_pinned_event_data->event_id) == PluginResult::OK;
+ });
+ }
+ } else {
+ // TODO: Show inline notification
+ show_notification("QuickMedia", "No message selected for unpinning");
+ }
+ }
}
} else if(event.type == sf::Event::KeyPressed && chat_state == ChatState::URL_SELECTION) {
if(event.key.code == sf::Keyboard::Escape) {