33#include <osl/diagnose.h>
41#include <com/sun/star/text/AutoTextContainer.hpp>
42#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
43#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
66#include <officecfg/Office/Writer.hxx>
75using namespace ::
sfx2;
79 const sal_Int32 nSz = rName.getLength();
85 while( rName[nStart-1]==
' ' && nStart < nSz )
88 OUStringBuffer
aBuf(OUString::number(rName[nStart-1]));
90 for( ; nStart < nSz; ++nStart )
92 if( rName[nStart-1]==
' ' && rName[nStart]!=
' ')
93 aBuf.append(rName[nStart]);
95 return aBuf.makeStringAndClear();
117 std::unique_ptr<weld::Button>
m_xOk;
128 const OUString& rOldName,
129 const OUString& rOldShort);
137 rTest = m_aNoSpaceFilter.filter(rTest);
142 : GenericDialogController(pParent->getDialog(),
"modules/swriter/ui/renameautotextdialog.ui",
"RenameAutoTextDialog")
144 , m_xNewName(m_xBuilder->weld_entry(
"newname"))
145 , m_xNewShort(m_xBuilder->weld_entry(
"newsc"))
146 , m_xOk(m_xBuilder->weld_button(
"ok"))
147 , m_xOldName(m_xBuilder->weld_entry(
"oldname"))
148 , m_xOldShort(m_xBuilder->weld_entry(
"oldsc"))
175 rTest = m_aNoSpaceFilter.filter(rTest);
191 std::unique_ptr<weld::TreeIter> xSelected(pSource->
make_iterator());
192 bool bSelected = pSource->
get_selected(xSelected.get());
210 if (pDestRootData == pSrcRootData)
214 if (bCheckForMove && !pSrcRootData->
bReadonly)
230 std::unique_ptr<weld::TreeIter> xSelected(pSource->
make_iterator());
231 bool bSelected = pSource->
get_selected(xSelected.get());
235 std::unique_ptr<weld::TreeIter> xSrcParent(pSource->
make_iterator(xSelected.get()));
239 std::unique_ptr<weld::TreeIter> xDestParent(pSource->
make_iterator(xDestEntry.get()));
246 if (pDestParent != pSrcParent)
250 OUString sSourceGroup = pSrcParent->
sGroupName
252 + OUString::number(pSrcParent->
nPathIdx);
255 OUString sTitle(pSource->
get_text(*xSelected));
256 OUString sShortName(pSource->
get_id(*xSelected));
260 + OUString::number(pDestParent->
nPathIdx);
265 sDestName, sTitle, bIsMove);
270 nullptr,
nullptr,
false,
nullptr);
273 pSource->
remove(*xSelected);
283 : DropTargetHelper(rTreeView.get_drop_target())
293 , m_sReadonlyPath(
SwResId(STR_READONLY_PATH))
294 , m_pGlossaryHdl(pGlosHdl)
296 , m_bSelection(pWrtShell->IsSelection())
299 , m_bIsDocReadOnly(false)
301 , m_xInsertTipCB(m_xBuilder->weld_check_button(
"inserttip"))
302 , m_xNameED(m_xBuilder->weld_entry(
"name"))
303 , m_xShortNameLbl(m_xBuilder->weld_label(
"shortnameft"))
304 , m_xShortNameEdit(m_xBuilder->weld_entry(
"shortname"))
305 , m_xCategoryBox(m_xBuilder->weld_tree_view(
"category"))
306 , m_xFileRelCB(m_xBuilder->weld_check_button(
"relfile"))
307 , m_xNetRelCB(m_xBuilder->weld_check_button(
"relnet"))
308 , m_xInsertBtn(m_xBuilder->weld_button(
"ok"))
309 , m_xEditBtn(m_xBuilder->weld_menu_button(
"autotext"))
310 , m_xBibBtn(m_xBuilder->weld_button(
"categories"))
311 , m_xPathBtn(m_xBuilder->weld_button(
"path"))
364OUString getCurrentGlossary()
380 std::unique_ptr<weld::TreeIter> xEntry = rBox.make_iterator();
381 if (!rBox.get_selected(xEntry.get()))
384 std::unique_ptr<weld::TreeIter> xParent = rBox.make_iterator(xEntry.get());
386 if (rBox.get_iter_depth(*xParent))
388 rBox.iter_parent(*xParent);
389 pParent = xParent.get();
392 pParent = xEntry.get();
393 GroupUserData* pGroupData = weld::fromId<GroupUserData*>(rBox.get_id(*pParent));
396 + OUString::number(pGroupData->
nPathIdx));
402 m_bIsOld = m_pGlossaryHdl->IsOld();
403 if( pParent != xEntry.get())
405 OUString
aName(rBox.get_text(*xEntry));
406 m_xNameED->set_text(
aName);
407 m_xShortNameEdit->set_text(rBox.get_id(*xEntry));
408 m_xInsertBtn->set_sensitive( !m_bIsDocReadOnly);
412 ShowAutoText(
"",
"");
414 NameModify(*m_xShortNameEdit);
425 short nRet = SfxDialogController::run();
434 if (!aGlosName.isEmpty())
455 std::u16string_view rShort)
458 std::unique_ptr<weld::TreeIter> xEntry =
m_xCategoryBox->make_iterator();
482 const OUString
aName(m_xNameED->get_text());
483 bool bNameED = &rEdit == m_xNameED.get();
484 if(
aName.isEmpty() )
487 m_xShortNameEdit->set_text(
aName);
488 m_xInsertBtn->set_sensitive(
false);
491 const bool bNotFound = !DoesBlockExist(
aName, bNameED ? OUString() : rEdit.get_text());
502 m_xShortNameEdit->set_text(m_pGlossaryHdl->GetGlossaryShortName(
aName));
505 m_xInsertBtn->set_sensitive(!bNotFound && !m_bIsDocReadOnly);
512 m_xInsertBtn->set_sensitive(!m_bIsDocReadOnly);
519 std::unique_ptr<weld::TreeIter> xEntry = rBox.make_iterator();
520 if (rBox.get_selected(xEntry.get()) && rBox.get_iter_depth(*xEntry) && !m_bIsDocReadOnly)
527 std::unique_ptr<weld::TreeIter> xEntry = m_xCategoryBox->make_iterator();
528 bool bEntry = m_xCategoryBox->get_selected(xEntry.get());
530 const OUString aEditText(m_xNameED->get_text());
531 const bool bHasEntry = !aEditText.isEmpty() && !m_xShortNameEdit->get_text().isEmpty();
532 const bool bExists =
nullptr != DoesBlockExist(aEditText, m_xShortNameEdit->get_text());
533 const bool bIsGroup = bEntry && !m_xCategoryBox->get_iter_depth(*xEntry);
534 m_xEditBtn->set_item_visible(
"new", m_bSelection && bHasEntry && !bExists);
535 m_xEditBtn->set_item_visible(
"newtext", m_bSelection && bHasEntry && !bExists);
536 m_xEditBtn->set_item_visible(
"copy", bExists && !bIsGroup);
537 m_xEditBtn->set_item_visible(
"replace", m_bSelection && bExists && !bIsGroup && !m_bIsOld );
538 m_xEditBtn->set_item_visible(
"replacetext", m_bSelection && bExists && !bIsGroup && !m_bIsOld );
539 m_xEditBtn->set_item_visible(
"edit", bExists && !bIsGroup );
540 m_xEditBtn->set_item_visible(
"rename", bExists && !bIsGroup );
541 m_xEditBtn->set_item_visible(
"delete", bExists && !bIsGroup );
542 m_xEditBtn->set_item_visible(
"macro", bExists && !bIsGroup && !m_bIsOld &&
543 !m_pGlossaryHdl->IsReadOnly() );
544 m_xEditBtn->set_item_visible(
"import", bIsGroup && !m_bIsOld && !m_pGlossaryHdl->IsReadOnly() );
549 if (rItemIdent ==
"edit")
555 else if (rItemIdent ==
"replace")
557 m_pGlossaryHdl->NewGlossary(m_xNameED->get_text(),
558 m_xShortNameEdit->get_text());
560 else if (rItemIdent ==
"replacetext")
562 m_pGlossaryHdl->NewGlossary(m_xNameED->get_text(),
563 m_xShortNameEdit->get_text(),
566 else if (rItemIdent ==
"new" || rItemIdent ==
"newtext")
568 bool bNoAttr = rItemIdent ==
"newtext";
570 const OUString
aStr(m_xNameED->get_text());
571 const OUString aShortName(m_xShortNameEdit->get_text());
572 if(m_pGlossaryHdl->HasShortName(aShortName))
575 VclMessageType::Info, VclButtonsType::Ok,
576 SwResId(STR_DOUBLE_SHORTNAME)));
578 m_xShortNameEdit->select_region(0, -1);
579 m_xShortNameEdit->grab_focus();
581 if(m_pGlossaryHdl->NewGlossary(
aStr, aShortName,
false, bNoAttr ))
583 std::unique_ptr<weld::TreeIter> xEntry = m_xCategoryBox->make_iterator();
584 if (!m_xCategoryBox->get_selected(xEntry.get()))
586 else if (m_xCategoryBox->get_iter_depth(*xEntry))
587 m_xCategoryBox->iter_parent(*xEntry);
588 m_xCategoryBox->insert(xEntry.get(), -1, &
aStr, &aShortName,
589 nullptr,
nullptr,
false,
nullptr);
591 m_xNameED->set_text(
aStr);
592 m_xShortNameEdit->set_text(aShortName);
593 NameModify(*m_xNameED);
605 else if (rItemIdent ==
"copy")
607 m_pGlossaryHdl->CopyToClipboard(*
m_pShell, m_xShortNameEdit->get_text());
609 else if (rItemIdent ==
"rename")
611 m_xShortNameEdit->set_text(m_pGlossaryHdl->GetGlossaryShortName(m_xNameED->get_text()));
612 SwNewGlosNameDlg aNewNameDlg(
this, m_xNameED->get_text(), m_xShortNameEdit->get_text());
613 if (aNewNameDlg.
run() ==
RET_OK && m_pGlossaryHdl->Rename(m_xShortNameEdit->get_text(),
617 std::unique_ptr<weld::TreeIter> xEntry = m_xCategoryBox->make_iterator();
618 if (m_xCategoryBox->get_selected(xEntry.get()))
620 std::unique_ptr<weld::TreeIter> xOldEntry = m_xCategoryBox->make_iterator(xEntry.get());
621 if (m_xCategoryBox->get_iter_depth(*xEntry))
622 m_xCategoryBox->iter_parent(*xEntry);
624 std::unique_ptr<weld::TreeIter> xNewEntry = m_xCategoryBox->make_iterator();
628 m_xCategoryBox->insert(xEntry.get(), -1, &
sName, &
sId,
629 nullptr,
nullptr,
false, xNewEntry.get());
631 m_xCategoryBox->remove(*xOldEntry);
632 m_xCategoryBox->select(*xNewEntry);
633 m_xCategoryBox->scroll_to_row(*xNewEntry);
636 GrpSelect(*m_xCategoryBox);
638 else if (rItemIdent ==
"delete")
642 else if (rItemIdent ==
"macro")
648 m_pGlossaryHdl->GetMacros(m_xShortNameEdit->get_text(), aStart, aEnd );
652 aItem.
SetMacro( SvMacroItemId::SwStartInsGlossary, aStart );
654 aItem.
SetMacro( SvMacroItemId::SwEndInsGlossary, aEnd );
662 m_pShell->GetView().GetViewFrame().GetFrame().GetFrameInterface() ));
663 if ( pMacroDlg && pMacroDlg->Execute() ==
RET_OK &&
664 (pMacroItem = pMacroDlg->GetOutputItemSet()->GetItemIfSet(
RES_FRMMACRO,
false )) )
667 m_pGlossaryHdl->SetMacros( m_xShortNameEdit->get_text(),
668 rTable.
Get( SvMacroItemId::SwStartInsGlossary ),
669 rTable.
Get( SvMacroItemId::SwEndInsGlossary ) );
672 else if (rItemIdent ==
"import")
675 FileDialogHelper aDlgHelper(TemplateDescription::FILEOPEN_SIMPLE,
677 aDlgHelper.SetContext(FileDialogHelper::WriterImportAutotext);
678 uno::Reference < XFilePicker3 > xFP = aDlgHelper.GetFilePicker();
682 std::shared_ptr<const SfxFilter> pFilter = aIter.
First();
687 xFP->appendFilter( pFilter->GetUIName(),
688 pFilter->GetWildcard().getGlob() );
689 xFP->setCurrentFilter( pFilter->GetUIName() ) ;
693 xFP->appendFilter( pFilter->GetUIName(),
694 pFilter->GetWildcard().getGlob() );
695 xFP->setCurrentFilter( pFilter->GetUIName() ) ;
698 pFilter = aIter.
Next();
703 if( m_pGlossaryHdl->ImportGlossaries( xFP->getSelectedFiles().getConstArray()[0] ))
708 VclMessageType::Info, VclButtonsType::Ok,
727 bool bIsWritable =
false;
728 sal_Int32 nIdx {sGlosPath.isEmpty() ? -1 : 0};
737 uno::Reference< XCommandEnvironment >(),
739 Any aAny = aTestContent.getPropertyValue(
"IsReadOnly" );
742 bIsWritable = !*o3tl::doAccess<bool>(aAny);
761 std::unique_ptr<weld::TreeIter> xEntry = m_xCategoryBox->make_iterator();
762 bool bEntry = m_xCategoryBox->get_iter_first(*xEntry);
764 while (!sNewGroup.isEmpty() && bEntry)
766 if (!m_xCategoryBox->get_iter_depth(*xEntry))
768 GroupUserData* pGroupData = weld::fromId<GroupUserData*>(m_xCategoryBox->get_id(*xEntry));
769 const OUString sGroup = pGroupData->
sGroupName
771 + OUString::number(pGroupData->
nPathIdx);
772 if(sGroup == sNewGroup)
774 m_xCategoryBox->select(*xEntry);
775 m_xCategoryBox->scroll_to_row(*xEntry);
776 GrpSelect(*m_xCategoryBox);
780 bEntry = m_xCategoryBox->iter_next(*xEntry);
788 VclMessageType::Question, VclButtonsType::YesNo,
791 PathHdl(*m_xPathBtn);
806 std::unique_ptr<weld::TreeIter> xSelEntry;
810 static constexpr OUStringLiteral sMyAutoTextEnglish(
u"My AutoText");
811 const OUString sMyAutoTextTranslated(
SwResId(STR_MY_AUTOTEXT));
816 if(sGroupName.isEmpty())
822 if(sTitle == sMyAutoTextEnglish)
823 sTitle = sMyAutoTextTranslated;
825 std::unique_ptr<weld::TreeIter> xEntry =
m_xCategoryBox->make_iterator();
832 pData->nPathIdx =
static_cast< sal_uInt16
>(nPath);
837 if (sSelStr ==
pData->sGroupName && nSelPath == nPath)
849 nullptr,
nullptr,
false,
nullptr);
857 std::unique_ptr<weld::TreeIter> xSearch =
m_xCategoryBox->make_iterator();
865 if (!
pData->bReadonly)
867 xSelEntry = std::move(xSearch);
876 xSelEntry = std::move(xSearch);
899 m_xInsertTipCB->set_sensitive(!officecfg::Office::Writer::AutoFunction::Text::ShowToolTip::isReadOnly());
908 aSelText = aSelText.trim();
909 if (aSelText.getLength() > 25)
911 aSelText = aSelText.copy(0, 25);
912 if (
const sal_Int32 nBlankIndex = aSelText.lastIndexOf(
' '); nBlankIndex != -1)
913 aSelText = aSelText.copy(0, nBlankIndex);
925 OUString
aName(m_xNewName->get_text());
927 if (&rBox == m_xNewName.get())
930 bool bEnable = !
aName.isEmpty() && !m_xNewShort->get_text().isEmpty() &&
932 ||
aName == m_xOldName->get_text());
933 m_xOk->set_sensitive(bEnable);
941 && sNew != m_xOldShort->get_text())
944 VclMessageType::Info, VclButtonsType::Ok,
945 SwResId(STR_DOUBLE_SHORTNAME)));
947 m_xNewShort->grab_focus();
956 bool bCheck = rBox.get_active();
957 if (&rBox == m_xInsertTipCB.get())
959 else if (&rBox == m_xFileRelCB.get())
968 if (rKEvt.GetKeyCode().GetCode() ==
KEY_DELETE)
978 std::unique_ptr<weld::TreeIter> xEntry =
m_xCategoryBox->make_iterator();
995 pDlg->SetPath(sGlosPath);
996 if(
RET_OK == pDlg->Execute())
998 const OUString sTmp(pDlg->GetPath());
999 if(sTmp != sGlosPath)
1020 ResumeShowAutoText();
1036 OUString sShortName;
1045 uno::Reference< XTextCursor > & xCursor =
m_xExampleFrame->GetTextCursor();
1048 if (!sShortName.isEmpty())
1051 uno::Reference< XAutoTextGroup > xGroup;
1052 if((aGroup >>= xGroup) && xGroup->hasByName(sShortName))
1054 uno::Any aEntry(xGroup->getByName(sShortName));
1055 uno::Reference< XAutoTextEntry > xEntry;
1057 xEntry->applyTo(xCursor);
1069 const OUString aTitle(
m_xNameED->get_text());
1072 std::unique_ptr<weld::TreeIter> xParent;
1073 std::unique_ptr<weld::TreeIter> xChild =
DoesBlockExist(aTitle, aShortName);
1080 const bool bExists =
nullptr != xChild;
1081 const bool bIsGroup = bEntry && !xParent;
1084 VclMessageType::Question, VclButtonsType::YesNo,
1086 if (bExists && !bIsGroup &&
RET_YES == xQuery->run())
1090 OSL_ENSURE(xChild,
"entry not found!");
Reference< XExecutableDialog > m_xDialog
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
OUString uppercase(const OUString &rStr, sal_Int32 nPos, sal_Int32 nCount) const
std::shared_ptr< const SfxFilter > First()
std::shared_ptr< const SfxFilter > Next()
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
void AppendItem(const SfxPoolItem &)
static bool HasMacroRecorder(const SfxViewFrame &rFrame)
void Done(bool bRemove=false)
SfxViewFrame & GetViewFrame() const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
void SetAutoTextPath(const OUString &rPath)
const OUString & GetAutoTextPath() const
virtual VclPtr< AbstractSvxMultiPathDialog > CreateSvxPathSelectDialog(weld::Window *pParent)=0
virtual VclPtr< SfxAbstractDialog > CreateEventConfigDialog(weld::Widget *pParent, const SfxItemSet &rAttr, const css::uno::Reference< css::frame::XFrame > &rFrame)=0
static SvxAbstractDialogFactory * Create()
void SetSaveRelNet(bool bSet)
bool IsSaveRelNet() const
void SetSaveRelFile(bool bSet)
static SvxAutoCorrCfg & Get()
bool IsAutoTextTip() const
bool IsSaveRelFile() const
void SetAutoTextTip(bool bSet)
const SvxMacroTableDtor & GetMacroTable() const
void SetMacro(SvMacroItemId nEvent, const SvxMacro &)
const SvxMacro * Get(SvMacroItemId nEvent) const
bool HasReadonlySel(bool isReplace=false) const
void GetSelectedText(OUString &rBuf, ParaBreakType nHndlParaBreak=ParaBreakType::ToBlank)
Query text within selection.
static OUString GetDefName()
std::vector< OUString > const & GetPathArray() const
std::unique_ptr< SwTextBlocks > GetGroupDoc(const OUString &rName, bool bCreate=false)
bool IsGlosPathErr() const
void UpdateGlosPath(bool bFull)
SwGlossaryDlg(const SfxViewFrame &rViewFrame, SwGlossaryHdl *pGlosHdl, SwWrtShell *pWrtShell)
SwGlossaryHdl * m_pGlossaryHdl
std::unique_ptr< weld::CheckButton > m_xFileRelCB
std::unique_ptr< weld::MenuButton > m_xEditBtn
void ResumeShowAutoText()
std::unique_ptr< SwGlossaryDropTarget > m_xDropTarget
static void SetActGroup(const OUString &rNewGroup)
OUString GetCurrGrpName() const
std::unique_ptr< weld::CheckButton > m_xInsertTipCB
std::unique_ptr< weld::Button > m_xBibBtn
void EnableShortName(bool bOn=true)
virtual short run() override
std::unique_ptr< weld::CheckButton > m_xNetRelCB
std::unique_ptr< weld::Button > m_xPathBtn
std::unique_ptr< weld::TreeView > m_xCategoryBox
std::unique_ptr< weld::Entry > m_xShortNameEdit
css::uno::Reference< css::text::XAutoTextContainer2 > m_xAutoText
void SetResumeData(const OUString &rGroup, const OUString &rShortName)
std::unique_ptr< weld::Entry > m_xNameED
void ShowAutoText(const OUString &rGroup, const OUString &rShortName)
std::unique_ptr< weld::Button > m_xInsertBtn
std::unique_ptr< SwOneExampleFrame > m_xExampleFrame
static OUString GetCurrGroup()
std::unique_ptr< weld::TreeIter > DoesBlockExist(std::u16string_view sBlock, std::u16string_view rShort)
virtual ~SwGlossaryDlg() override
bool GetResumeData(OUString &rGroup, OUString &rShortName)
std::unique_ptr< weld::CustomWeld > m_xExampleFrameWin
std::unique_ptr< weld::Label > m_xShortNameLbl
std::vector< std::unique_ptr< GroupUserData > > m_xGroupData
SwGlossaryDropTarget(weld::TreeView &rTreeView, SwGlossaryHdl *pGlosHdl)
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
weld::TreeView & m_rTreeView
SwGlossaryHdl * m_pGlosHdl
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
virtual short run() override
const OUString & GetCreatedGroupName() const
bool DelGlossary(const OUString &)
bool HasShortName(const OUString &rShortName) const
sal_uInt16 GetGlossaryCnt() const
bool InsertGlossary(const OUString &rName)
bool IsReadOnly(const OUString *=nullptr) const
void SetCurGroup(const OUString &aGrp, bool bApi=false, bool bAlwaysCreateNew=false)
OUString GetGlossaryShortName(std::u16string_view aName)
OUString GetGroupName(size_t, OUString *pTitle)
bool CopyOrMove(const OUString &rSourceGroupName, OUString &rSourceShortName, const OUString &rDestGroupName, const OUString &rLongName, bool bMove)
size_t GetGroupCnt() const
OUString GetGlossaryName(sal_uInt16)
static SfxEventNamesItem AddEvents(DlgEventType eType)
SwGlossaryDlg * m_pParent
OUString GetNewShort() const
std::unique_ptr< weld::Button > m_xOk
TextFilter m_aNoSpaceFilter
DECL_LINK(TextFilterHdl, OUString &, bool)
std::unique_ptr< weld::Entry > m_xOldName
std::unique_ptr< weld::Entry > m_xNewName
std::unique_ptr< weld::Entry > m_xNewShort
std::unique_ptr< weld::Entry > m_xOldShort
DECL_LINK(Rename, weld::Button &, void)
SwNewGlosNameDlg(SwGlossaryDlg *pParent, const OUString &rOldName, const OUString &rOldShort)
DECL_LINK(Modify, weld::Entry &, void)
OUString GetNewName() const
SwDocShell * GetDocShell()
Used by the UI to modify the document model.
bool HasSelection() const
const SwView & GetView() const
virtual std::unique_ptr< TreeIter > make_iterator(const TreeIter *pOrig=nullptr) const=0
virtual bool get_selected(TreeIter *pIter) const=0
virtual OUString get_text(int row, int col=-1) const=0
virtual void insert(const TreeIter *pParent, int pos, const OUString *pStr, const OUString *pId, const OUString *pIconName, VirtualDevice *pImageSurface, bool bChildrenOnDemand, TreeIter *pRet)=0
virtual TreeView * get_drag_source() const=0
virtual bool get_dest_row_at_pos(const Point &rPos, weld::TreeIter *pResult, bool bDnDMode, bool bAutoScroll=true)=0
virtual void remove(int pos)=0
virtual bool iter_parent(TreeIter &rIter) const=0
virtual int get_iter_depth(const TreeIter &rIter) const=0
virtual OUString get_id(int pos) const=0
#define FN_SET_ACT_GLOSSARY
#define FN_INSERT_GLOSSARY
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
IMPL_LINK(SwNewGlosNameDlg, TextFilterHdl, OUString &, rTest, bool)
IMPL_LINK_NOARG(SwGlossaryDlg, EnableHdl, weld::Toggleable &, void)
static OUString lcl_GetValidShortCut(const OUString &rName)
constexpr TypedWhichId< SvxMacroItem > RES_FRMMACRO(114)
CharClass & GetAppCharClass()
SW_DLLPUBLIC SwGlossaries * GetGlossaries()
SW_DLLPUBLIC void SetCurrGlosGroup(const OUString &sStr)
SW_DLLPUBLIC const OUString & GetCurrGlosGroup()
constexpr OUStringLiteral FILTER_WW8
WinWord 97 filter.
constexpr OUStringLiteral FILTER_DOCX
constexpr sal_uInt16 KEY_DELETE
#define LINK(Instance, Class, Member)
std::unique_ptr< sal_Int32[]> pData
sal_Int32 getToken(const Context &rContext, const char *pToken)
SVL_DLLPUBLIC Link< OUString *, bool > const & GetMaybeFileHdl()
SVL_DLLPUBLIC OUString SmartRel2Abs(INetURLObject const &rTheBaseURIRef, OUString const &rTheRelURIRef, Link< OUString *, bool > const &rMaybeFileHdl=Link< OUString *, bool >(), bool bCheckFileExists=true, bool bIgnoreFragment=false, INetURLObject::EncodeMechanism eEncodeMechanism=INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
Reference< XComponentContext > getProcessComponentContext()
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
constexpr bool starts_with(std::basic_string_view< charT, traits > sv, std::basic_string_view< charT, traits > x) noexcept
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
OUString toId(const void *pValue)
OUString SwResId(TranslateId aId)
#define DND_ACTION_COPYMOVE