Kaydet (Commit) 1c8d6e6e authored tarafından Szymon Kłos's avatar Szymon Kłos

AutoText: handle Delete key in the dialog

Change-Id: Ifbd0026b097ff9fbf077dda57f874cfc59da3e45
Reviewed-on: https://gerrit.libreoffice.org/37119Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarSzymon Kłos <szymon.klos@collabora.com>
üst 7ab811b0
...@@ -230,6 +230,7 @@ SwGlossaryDlg::SwGlossaryDlg(SfxViewFrame* pViewFrame, ...@@ -230,6 +230,7 @@ SwGlossaryDlg::SwGlossaryDlg(SfxViewFrame* pViewFrame,
m_pCategoryBox->SetDoubleClickHdl(LINK(this,SwGlossaryDlg, NameDoubleClick)); m_pCategoryBox->SetDoubleClickHdl(LINK(this,SwGlossaryDlg, NameDoubleClick));
m_pCategoryBox->SetSelectHdl(LINK(this,SwGlossaryDlg,GrpSelect)); m_pCategoryBox->SetSelectHdl(LINK(this,SwGlossaryDlg,GrpSelect));
m_pCategoryBox->SetDeleteHdl(LINK(this,SwGlossaryDlg,DeleteHdl));
m_pBibBtn->SetClickHdl(LINK(this,SwGlossaryDlg,BibHdl)); m_pBibBtn->SetClickHdl(LINK(this,SwGlossaryDlg,BibHdl));
m_pInsertBtn->SetClickHdl(LINK(this,SwGlossaryDlg,InsertHdl)); m_pInsertBtn->SetClickHdl(LINK(this,SwGlossaryDlg,InsertHdl));
...@@ -522,23 +523,7 @@ IMPL_LINK( SwGlossaryDlg, MenuHdl, Menu *, pMn, bool ) ...@@ -522,23 +523,7 @@ IMPL_LINK( SwGlossaryDlg, MenuHdl, Menu *, pMn, bool )
} }
else if (sItemIdent == "delete") else if (sItemIdent == "delete")
{ {
ScopedVclPtrInstance< MessageDialog > aQuery(this, SW_RES(STR_QUERY_DELETE), VclMessageType::Question, VclButtonsType::YesNo); DeleteEntry();
if (RET_YES == aQuery->Execute())
{
const OUString aShortName(m_pShortNameEdit->GetText());
const OUString aTitle(m_pNameED->GetText());
if (!aTitle.isEmpty() && pGlossaryHdl->DelGlossary(aShortName))
{
SvTreeListEntry* pChild = DoesBlockExist(aTitle, aShortName);
OSL_ENSURE(pChild, "entry not found!");
SvTreeListEntry* pParent = m_pCategoryBox->GetParent(pChild);
m_pCategoryBox->Select(pParent);
m_pCategoryBox->GetModel()->Remove(pChild);
m_pNameED->SetText(OUString());
NameModify(*m_pNameED);
}
}
} }
else if (sItemIdent == "macro") else if (sItemIdent == "macro")
{ {
...@@ -1028,6 +1013,16 @@ void SwGlTreeListBox::ExpandedHdl() ...@@ -1028,6 +1013,16 @@ void SwGlTreeListBox::ExpandedHdl()
SvTreeListBox::ExpandedHdl(); SvTreeListBox::ExpandedHdl();
} }
void SwGlTreeListBox::KeyInput( const KeyEvent& rKEvt )
{
if(m_aDeleteHdl.IsSet() && rKEvt.GetKeyCode().GetCode() == KEY_DELETE)
{
m_aDeleteHdl.Call(nullptr);
return;
}
SvTreeListBox::KeyInput( rKEvt );
}
OUString SwGlossaryDlg::GetCurrGrpName() const OUString SwGlossaryDlg::GetCurrGrpName() const
{ {
SvTreeListEntry* pEntry = m_pCategoryBox->FirstSelected(); SvTreeListEntry* pEntry = m_pCategoryBox->FirstSelected();
...@@ -1069,6 +1064,11 @@ IMPL_LINK_NOARG(SwGlossaryDlg, InsertHdl, Button*, void) ...@@ -1069,6 +1064,11 @@ IMPL_LINK_NOARG(SwGlossaryDlg, InsertHdl, Button*, void)
EndDialog(RET_OK); EndDialog(RET_OK);
} }
IMPL_LINK_NOARG(SwGlossaryDlg, DeleteHdl, SwGlTreeListBox*, void)
{
DeleteEntry();
}
void SwGlossaryDlg::ShowPreview() void SwGlossaryDlg::ShowPreview()
{ {
//create example //create example
...@@ -1130,4 +1130,29 @@ void SwGlossaryDlg::ResumeShowAutoText() ...@@ -1130,4 +1130,29 @@ void SwGlossaryDlg::ResumeShowAutoText()
bResume = false; bResume = false;
} }
void SwGlossaryDlg::DeleteEntry()
{
SvTreeListEntry* pEntry = m_pCategoryBox->FirstSelected();
const OUString aTitle(m_pNameED->GetText());
const OUString aShortName(m_pShortNameEdit->GetText());
SvTreeListEntry* pChild = DoesBlockExist(aTitle, aShortName);
SvTreeListEntry* pParent = pChild ? m_pCategoryBox->GetParent(pChild) : nullptr;
const bool bExists = nullptr != pChild;
const bool bIsGroup = pEntry && !pParent;
ScopedVclPtrInstance< MessageDialog > aQuery(this, SW_RES(STR_QUERY_DELETE), VclMessageType::Question, VclButtonsType::YesNo);
if (bExists && !bIsGroup && RET_YES == aQuery->Execute())
{
if (!aTitle.isEmpty() && pGlossaryHdl->DelGlossary(aShortName))
{
OSL_ENSURE(pChild, "entry not found!");
m_pCategoryBox->Select(pParent);
m_pCategoryBox->GetModel()->Remove(pChild);
m_pNameED->SetText(OUString());
NameModify(*m_pNameED);
}
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -50,6 +50,8 @@ class SwGlTreeListBox : public SvTreeListBox ...@@ -50,6 +50,8 @@ class SwGlTreeListBox : public SvTreeListBox
SvTreeListEntry* pDragEntry; SvTreeListEntry* pDragEntry;
Link<SwGlTreeListBox*,void> m_aDeleteHdl;
virtual DragDropMode NotifyStartDrag( TransferDataContainer& rContainer, virtual DragDropMode NotifyStartDrag( TransferDataContainer& rContainer,
SvTreeListEntry* ) override; SvTreeListEntry* ) override;
virtual bool NotifyAcceptDrop( SvTreeListEntry* ) override; virtual bool NotifyAcceptDrop( SvTreeListEntry* ) override;
...@@ -75,6 +77,10 @@ public: ...@@ -75,6 +77,10 @@ public:
void Clear(); void Clear();
virtual void ExpandedHdl() override; virtual void ExpandedHdl() override;
virtual void KeyInput( const KeyEvent& rKEvt ) override;
void SetDeleteHdl( const Link<SwGlTreeListBox*,void>& rLink ) { m_aDeleteHdl = rLink; }
}; };
class SwOneExampleFrame; class SwOneExampleFrame;
...@@ -129,6 +135,7 @@ class SwGlossaryDlg : public SvxStandardDialog ...@@ -129,6 +135,7 @@ class SwGlossaryDlg : public SvxStandardDialog
DECL_LINK( PathHdl, Button *, void ); DECL_LINK( PathHdl, Button *, void );
DECL_LINK( CheckBoxHdl, Button*, void ); DECL_LINK( CheckBoxHdl, Button*, void );
DECL_LINK( PreviewLoadedHdl, SwOneExampleFrame&, void ); DECL_LINK( PreviewLoadedHdl, SwOneExampleFrame&, void );
DECL_LINK( DeleteHdl, SwGlTreeListBox*, void );
virtual void Apply() override; virtual void Apply() override;
void Init(); void Init();
...@@ -140,6 +147,8 @@ class SwGlossaryDlg : public SvxStandardDialog ...@@ -140,6 +147,8 @@ class SwGlossaryDlg : public SvxStandardDialog
{rGroup = sResumeGroup; rShortName = sResumeShortName; return bResume;} {rGroup = sResumeGroup; rShortName = sResumeShortName; return bResume;}
void SetResumeData(const OUString& rGroup, const OUString& rShortName) void SetResumeData(const OUString& rGroup, const OUString& rShortName)
{sResumeGroup = rGroup; sResumeShortName = rShortName; bResume = true;} {sResumeGroup = rGroup; sResumeShortName = rShortName; bResume = true;}
void DeleteEntry();
public: public:
SwGlossaryDlg(SfxViewFrame* pViewFrame, SwGlossaryHdl* pGlosHdl, SwWrtShell *pWrtShell); SwGlossaryDlg(SfxViewFrame* pViewFrame, SwGlossaryHdl* pGlosHdl, SwWrtShell *pWrtShell);
virtual ~SwGlossaryDlg() override; virtual ~SwGlossaryDlg() override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment