diff options
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.patch | 98 |
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 |