diff options
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/view.hxx | 1 | ||||
-rw-r--r-- | sw/sdi/viewsh.sdi | 12 | ||||
-rw-r--r-- | sw/source/uibase/uiview/viewdlg2.cxx | 32 | ||||
-rw-r--r-- | sw/source/uibase/uiview/viewstat.cxx | 11 | ||||
-rw-r--r-- | sw/uiconfig/sglobal/menubar/menubar.xml | 1 | ||||
-rw-r--r-- | sw/uiconfig/swform/menubar/menubar.xml | 1 | ||||
-rw-r--r-- | sw/uiconfig/swriter/menubar/menubar.xml | 1 | ||||
-rw-r--r-- | sw/uiconfig/swxform/menubar/menubar.xml | 1 |
8 files changed, 60 insertions, 0 deletions
diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx index 1162c4a9f6ab..7dbb4be8440f 100644 --- a/sw/inc/view.hxx +++ b/sw/inc/view.hxx @@ -532,6 +532,7 @@ public: vcl::Window* pWin=nullptr, bool bIsNewObj=false, bool bSetSelectionToStart=false ); bool isSignatureLineSelected(); bool isSignatureLineSigned(); + bool isQRCodeSelected(); void StateTabWin(SfxItemSet&); diff --git a/sw/sdi/viewsh.sdi b/sw/sdi/viewsh.sdi index 9980f21153cd..561b41ff2040 100644 --- a/sw/sdi/viewsh.sdi +++ b/sw/sdi/viewsh.sdi @@ -54,6 +54,18 @@ interface TextEditView : BaseTextEditView StateMethod = GetState ; DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; ] + SID_INSERT_QRCODE // status() + [ + ExecMethod = ExecDlgExt ; + StateMethod = GetState ; + DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; + ] + SID_EDIT_QRCODE // status() + [ + ExecMethod = ExecDlgExt ; + StateMethod = GetState ; + DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; + ] FN_EDIT_FOOTNOTE // status(final|play) [ ExecMethod = ExecDlgExt ; diff --git a/sw/source/uibase/uiview/viewdlg2.cxx b/sw/source/uibase/uiview/viewdlg2.cxx index 5d2d756803b1..40263d66b9f0 100644 --- a/sw/source/uibase/uiview/viewdlg2.cxx +++ b/sw/source/uibase/uiview/viewdlg2.cxx @@ -26,6 +26,7 @@ #include <fldmgr.hxx> #include <expfld.hxx> #include <modcfg.hxx> +#include <com/sun/star/drawing/QRCode.hpp> #include <swmodule.hxx> #include <view.hxx> @@ -67,6 +68,16 @@ void SwView::ExecDlgExt(SfxRequest const &rReq) pDialog->Execute(); break; } + case SID_INSERT_QRCODE: + case SID_EDIT_QRCODE: + { + VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create(); + const uno::Reference<frame::XModel> xModel(GetCurrentDocument()); + ScopedVclPtr<AbstractQrCodeGenDialog> pDialog(pFact->CreateQrCodeGenDialog( + GetFrameWeld(), xModel, rReq.GetSlot() == SID_EDIT_QRCODE)); + pDialog->Execute(); + break; + } case SID_SIGN_SIGNATURELINE: { VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create(); @@ -132,6 +143,27 @@ bool SwView::isSignatureLineSigned() return pGraphic->isSignatureLineSigned(); } +bool SwView::isQRCodeSelected() +{ + SwWrtShell& rSh = GetWrtShell(); + SdrView* pSdrView = rSh.GetDrawView(); + if (!pSdrView) + return false; + + if (pSdrView->GetMarkedObjectCount() != 1) + return false; + + SdrObject* pPickObj = pSdrView->GetMarkedObjectByIndex(0); + if (!pPickObj) + return false; + + SdrGrafObj* pGraphic = dynamic_cast<SdrGrafObj*>(pPickObj); + if (!pGraphic) + return false; + + return pGraphic->getQrCode() != nullptr; +} + void SwView::AutoCaption(const sal_uInt16 nType, const SvGlobalName *pOleId) { SwModuleOptions* pModOpt = SW_MOD()->GetModuleConfig(); diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx index f43e511636ef..c901557a145b 100644 --- a/sw/source/uibase/uiview/viewstat.cxx +++ b/sw/source/uibase/uiview/viewstat.cxx @@ -117,6 +117,17 @@ void SwView::GetState(SfxItemSet &rSet) if (!isSignatureLineSelected() || isSignatureLineSigned()) rSet.DisableItem(nWhich); break; + case SID_INSERT_QRCODE: + if( !( m_nSelectionType & SelectionType::Text || + m_nSelectionType & SelectionType::NumberList ) ) + { + rSet.DisableItem(nWhich); + } + break; + case SID_EDIT_QRCODE: + if (!isQRCodeSelected()) + rSet.DisableItem(nWhich); + break; case FN_INSERT_CAPTION: { // There are captions for graphics, OLE objects, frames and tables diff --git a/sw/uiconfig/sglobal/menubar/menubar.xml b/sw/uiconfig/sglobal/menubar/menubar.xml index 03e09f826858..a07aea1118a2 100644 --- a/sw/uiconfig/sglobal/menubar/menubar.xml +++ b/sw/uiconfig/sglobal/menubar/menubar.xml @@ -346,6 +346,7 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:InsertEnvelope" menu:style="text"/> <menu:menuitem menu:id=".uno:InsertSignatureLine" menu:style="text"/> + <menu:menuitem menu:id=".uno:InsertQrCode" menu:style="text"/> </menu:menupopup> </menu:menu> <menu:menu menu:id=".uno:FormatMenu"> diff --git a/sw/uiconfig/swform/menubar/menubar.xml b/sw/uiconfig/swform/menubar/menubar.xml index 19c0c55165bb..bb1d9c0dae6e 100644 --- a/sw/uiconfig/swform/menubar/menubar.xml +++ b/sw/uiconfig/swform/menubar/menubar.xml @@ -299,6 +299,7 @@ </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:InsertSignatureLine" menu:style="text"/> + <menu:menuitem menu:id=".uno:InsertQrCode" menu:style="text"/> </menu:menupopup> </menu:menu> <menu:menu menu:id=".uno:FormatMenu"> diff --git a/sw/uiconfig/swriter/menubar/menubar.xml b/sw/uiconfig/swriter/menubar/menubar.xml index 66b40f38b2f6..af3eee70c760 100644 --- a/sw/uiconfig/swriter/menubar/menubar.xml +++ b/sw/uiconfig/swriter/menubar/menubar.xml @@ -348,6 +348,7 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:InsertEnvelope" menu:style="text"/> <menu:menuitem menu:id=".uno:InsertSignatureLine" menu:style="text"/> + <menu:menuitem menu:id=".uno:InsertQrCode" menu:style="text"/> </menu:menupopup> </menu:menu> <menu:menu menu:id=".uno:FormatMenu"> diff --git a/sw/uiconfig/swxform/menubar/menubar.xml b/sw/uiconfig/swxform/menubar/menubar.xml index 016644b738a2..74c56bd5ec11 100644 --- a/sw/uiconfig/swxform/menubar/menubar.xml +++ b/sw/uiconfig/swxform/menubar/menubar.xml @@ -345,6 +345,7 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:InsertEnvelope" menu:style="text"/> <menu:menuitem menu:id=".uno:InsertSignatureLine" menu:style="text"/> + <menu:menuitem menu:id=".uno:InsertQrCode" menu:style="text"/> </menu:menupopup> </menu:menu> <menu:menu menu:id=".uno:FormatMenu"> |