summaryrefslogtreecommitdiff
path: root/app-editors/kile/files/kile-2.9.92-viewtab-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-editors/kile/files/kile-2.9.92-viewtab-crash.patch')
-rw-r--r--app-editors/kile/files/kile-2.9.92-viewtab-crash.patch98
1 files changed, 98 insertions, 0 deletions
diff --git a/app-editors/kile/files/kile-2.9.92-viewtab-crash.patch b/app-editors/kile/files/kile-2.9.92-viewtab-crash.patch
new file mode 100644
index 000000000000..2167e75cbf18
--- /dev/null
+++ b/app-editors/kile/files/kile-2.9.92-viewtab-crash.patch
@@ -0,0 +1,98 @@
+From f9de688e223be3b77268d36e237a838555d0f533 Mon Sep 17 00:00:00 2001
+From: Michel Ludwig <michel.ludwig@kdemail.net>
+Date: Sun, 28 Oct 2018 19:58:22 +0100
+Subject: Search for the 'file_save_copy_as' action inside 'KTextEditor::View'
+ now
+
+In that way, Kile doesn't crash after right-clicking on a view tab
+
+BUG: 400191
+---
+ src/kileviewmanager.cpp | 47 +++++++++++++++++++++++++++++------------------
+ 1 file changed, 29 insertions(+), 18 deletions(-)
+
+diff --git a/src/kileviewmanager.cpp b/src/kileviewmanager.cpp
+index c0b8254..34f8439 100644
+--- a/src/kileviewmanager.cpp
++++ b/src/kileviewmanager.cpp
+@@ -506,39 +506,52 @@ void Manager::tabContext(const QPoint &pos)
+
+ // 'action1' can become null if it belongs to a view that has been closed, for example
+ QPointer<QAction> action1 = m_ki->mainWindow()->action("move_view_tab_left");
+- action1->setData(qVariantFromValue(view));
+- tabMenu.addAction(action1);
++ if(action1) {
++ action1->setData(qVariantFromValue(view));
++ tabMenu.addAction(action1);
++ }
+
+ QPointer<QAction> action2 = m_ki->mainWindow()->action("move_view_tab_right");
+- action2->setData(qVariantFromValue(view));
+- tabMenu.addAction(action2);
++ if(action2) {
++ action2->setData(qVariantFromValue(view));
++ tabMenu.addAction(action2);
++ }
+
+ tabMenu.addSeparator();
+
+ QPointer<QAction> action3;
+ if(view->document()->isModified()) {
+ action3 = view->actionCollection()->action(KStandardAction::name(KStandardAction::Save));
+- action3->setData(qVariantFromValue(view));
+- tabMenu.addAction(action3);
++ if(action3) {
++ action3->setData(qVariantFromValue(view));
++ tabMenu.addAction(action3);
++ }
+ }
+
+ QPointer<QAction> action4 = view->actionCollection()->action(KStandardAction::name(KStandardAction::SaveAs));
+- action4->setData(qVariantFromValue(view));
+- tabMenu.addAction(action4);
++ if(action4) {
++ action4->setData(qVariantFromValue(view));
++ tabMenu.addAction(action4);
++ }
+
+- QPointer<QAction> action5 = m_ki->mainWindow()->action("file_save_copy_as");
+- action5->setData(qVariantFromValue(view));
+- tabMenu.addAction(action5);
++ QPointer<QAction> action5 = view->action("file_save_copy_as");
++ if(action5) {
++ tabMenu.addAction(action5);
++ }
+
+ tabMenu.addSeparator();
+
+ QPointer<QAction> action6 = m_ki->mainWindow()->action("file_close");
+- action6->setData(qVariantFromValue(view));
+- tabMenu.addAction(action6);
++ if(action6) {
++ action6->setData(qVariantFromValue(view));
++ tabMenu.addAction(action6);
++ }
+
+ QPointer<QAction> action7 = m_ki->mainWindow()->action("file_close_all_others");
+- action7->setData(qVariantFromValue(view));
+- tabMenu.addAction(action7);
++ if(action7) {
++ action7->setData(qVariantFromValue(view));
++ tabMenu.addAction(action7);
++ }
+ /*
+ FIXME create proper actions which delete/add the current file without asking stupidly
+ QAction* removeAction = m_ki->mainWindow()->action("project_remove");
+@@ -562,9 +575,7 @@ void Manager::tabContext(const QPoint &pos)
+ if(action4) {
+ action4->setData(QVariant());
+ }
+- if(action5) {
+- action5->setData(QVariant());
+- }
++ // action5 doesn't need to be given extra data
+ if(action6) {
+ action6->setData(QVariant());
+ }
+--
+cgit v1.1