From f9de688e223be3b77268d36e237a838555d0f533 Mon Sep 17 00:00:00 2001 From: Michel Ludwig 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 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 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 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 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 action5 = m_ki->mainWindow()->action("file_save_copy_as"); - action5->setData(qVariantFromValue(view)); - tabMenu.addAction(action5); + QPointer action5 = view->action("file_save_copy_as"); + if(action5) { + tabMenu.addAction(action5); + } tabMenu.addSeparator(); QPointer action6 = m_ki->mainWindow()->action("file_close"); - action6->setData(qVariantFromValue(view)); - tabMenu.addAction(action6); + if(action6) { + action6->setData(qVariantFromValue(view)); + tabMenu.addAction(action6); + } QPointer 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