1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 22:17:43 +00:00

MenuApplets: Added ability to remove entry from ClipboardHistory (#4143)

This commit is contained in:
Florian Förster 2020-11-24 21:37:04 +01:00 committed by GitHub
parent b1fd06eb4c
commit 438829a1d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 0 deletions

View file

@ -99,3 +99,8 @@ void ClipboardHistoryModel::add_item(const GUI::Clipboard::DataAndType& item)
m_history_items.prepend(item); m_history_items.prepend(item);
update(); update();
} }
void ClipboardHistoryModel::remove_item(int index)
{
m_history_items.remove(index);
}

View file

@ -45,6 +45,7 @@ public:
const GUI::Clipboard::DataAndType& item_at(int index) const { return m_history_items[index]; } const GUI::Clipboard::DataAndType& item_at(int index) const { return m_history_items[index]; }
void add_item(const GUI::Clipboard::DataAndType& item); void add_item(const GUI::Clipboard::DataAndType& item);
void remove_item(int index);
private: private:
virtual int row_count(const GUI::ModelIndex&) const override { return m_history_items.size(); } virtual int row_count(const GUI::ModelIndex&) const override { return m_history_items.size(); }

View file

@ -25,8 +25,10 @@
*/ */
#include "ClipboardHistoryModel.h" #include "ClipboardHistoryModel.h"
#include <LibGUI/Action.h>
#include <LibGUI/Application.h> #include <LibGUI/Application.h>
#include <LibGUI/ImageWidget.h> #include <LibGUI/ImageWidget.h>
#include <LibGUI/Menu.h>
#include <LibGUI/TableView.h> #include <LibGUI/TableView.h>
#include <LibGUI/Window.h> #include <LibGUI/Window.h>
#include <stdio.h> #include <stdio.h>
@ -73,6 +75,16 @@ int main(int argc, char* argv[])
GUI::Clipboard::the().set_data(data_and_type.data, data_and_type.mime_type, data_and_type.metadata); GUI::Clipboard::the().set_data(data_and_type.data, data_and_type.mime_type, data_and_type.metadata);
}; };
auto delete_action = GUI::CommonActions::make_delete_action([&](const GUI::Action&) {
model->remove_item(table_view.selection().first().row());
});
auto entry_context_menu = GUI::Menu::construct();
entry_context_menu->add_action(delete_action);
table_view.on_context_menu_request = [&](const GUI::ModelIndex&, const GUI::ContextMenuEvent& event) {
entry_context_menu->popup(event.screen_position());
};
auto applet_window = GUI::Window::construct(); auto applet_window = GUI::Window::construct();
applet_window->set_title("ClipboardHistory"); applet_window->set_title("ClipboardHistory");
applet_window->set_window_type(GUI::WindowType::MenuApplet); applet_window->set_window_type(GUI::WindowType::MenuApplet);