summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/view.hxx1
-rw-r--r--sw/sdi/viewsh.sdi12
-rw-r--r--sw/source/uibase/uiview/viewdlg2.cxx32
-rw-r--r--sw/source/uibase/uiview/viewstat.cxx11
-rw-r--r--sw/uiconfig/sglobal/menubar/menubar.xml1
-rw-r--r--sw/uiconfig/swform/menubar/menubar.xml1
-rw-r--r--sw/uiconfig/swriter/menubar/menubar.xml1
-rw-r--r--sw/uiconfig/swxform/menubar/menubar.xml1
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">