diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-10-25 12:16:44 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-10-25 16:39:55 +0200 |
commit | af428a570e05a7d38476208152630853dc15f41f (patch) | |
tree | 0946c050497149117fc752664ce9f7b91b62507b | |
parent | c799679135882337e65eab23eabdcae2d8b42786 (diff) |
weld SwAuthMarkModalDlg
Change-Id: Ief3a32a6001cf8b388107c74dc96fc82430d6398
Reviewed-on: https://gerrit.libreoffice.org/62354
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sw/inc/swabstdlg.hxx | 2 | ||||
-rw-r--r-- | sw/source/ui/dialog/swdlgfact.cxx | 5 | ||||
-rw-r--r-- | sw/source/ui/dialog/swdlgfact.hxx | 2 | ||||
-rw-r--r-- | sw/source/ui/index/swuiidxmrk.cxx | 373 | ||||
-rw-r--r-- | sw/source/uibase/inc/swuiidxmrk.hxx | 59 | ||||
-rw-r--r-- | sw/source/uibase/shells/textidx.cxx | 2 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/bibliographyentry.ui | 86 |
7 files changed, 462 insertions, 67 deletions
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx index 59f7e12ad227..cf621ad6e89a 100644 --- a/sw/inc/swabstdlg.hxx +++ b/sw/inc/swabstdlg.hxx @@ -400,7 +400,7 @@ public: bool bDraw, const OString& sDefPage = OString() ) = 0; - virtual VclPtr<VclAbstractDialog> CreateSwAutoMarkDialog(vcl::Window *pParent, SwWrtShell &rSh) = 0; + virtual VclPtr<VclAbstractDialog> CreateSwAutoMarkDialog(weld::Window *pParent, SwWrtShell &rSh) = 0; virtual VclPtr<AbstractSwSelGlossaryDlg> CreateSwSelGlossaryDlg(weld::Window *pParent, const OUString &rShortName) = 0; diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index ed9cc2b47001..15a96a671249 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -875,10 +875,9 @@ VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSwParaDlg(weld: return VclPtr<AbstractTabController_Impl>::Create(o3tl::make_unique<SwParaDlg>(pParent, rVw, rCoreSet, DLG_STD, nullptr, bDraw, sDefPage)); } -VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwAutoMarkDialog(vcl::Window *pParent, SwWrtShell &rSh) +VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwAutoMarkDialog(weld::Window *pParent, SwWrtShell &rSh) { - VclPtr<Dialog> pDlg = VclPtr<SwAuthMarkModalDlg>::Create( pParent, rSh ); - return VclPtr<VclAbstractDialog_Impl>::Create( pDlg ); + return VclPtr<AbstractGenericDialog_Impl>::Create(o3tl::make_unique<SwAuthMarkModalDlg>(pParent, rSh)); } VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwColumnDialog(weld::Window *pParent, SwWrtShell &rSh) diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index 3943fb159bce..78d79677c0ed 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -629,7 +629,7 @@ public: bool bDraw, const OString& sDefPage = OString()) override; - virtual VclPtr<VclAbstractDialog> CreateSwAutoMarkDialog(vcl::Window *pParent, SwWrtShell &rSh) override; + virtual VclPtr<VclAbstractDialog> CreateSwAutoMarkDialog(weld::Window *pParent, SwWrtShell &rSh) override; virtual VclPtr<AbstractSwSelGlossaryDlg> CreateSwSelGlossaryDlg(weld::Window *pParent, const OUString &rShortName) override; virtual VclPtr<VclAbstractDialog> CreateSwSortingDialog(weld::Window *pParent, SwWrtShell &rSh) override; virtual VclPtr<VclAbstractDialog> CreateSwTableHeightDialog(weld::Window *pParent, SwWrtShell &rSh) override; diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx index cc6775996300..b986228698fa 100644 --- a/sw/source/ui/index/swuiidxmrk.cxx +++ b/sw/source/ui/index/swuiidxmrk.cxx @@ -1443,6 +1443,361 @@ void SwAuthorMarkPane::Activate() m_pActionBT->Enable(!pSh->HasReadonlySel()); } +bool AuthorMarkPane::bIsFromComponent = true; + +AuthorMarkPane::AuthorMarkPane(weld::DialogController &rDialog, weld::Builder& rBuilder, bool bNewDlg) + : m_rDialog(rDialog) + , bNewEntry(bNewDlg) + , bBibAccessInitialized(false) + , pSh(nullptr) + , m_xFromComponentRB(rBuilder.weld_radio_button("frombibliography")) + , m_xFromDocContentRB(rBuilder.weld_radio_button("fromdocument")) + , m_xAuthorFI(rBuilder.weld_label("author")) + , m_xTitleFI(rBuilder.weld_label("title")) + , m_xEntryED(rBuilder.weld_entry("entryed")) + , m_xEntryLB(rBuilder.weld_combo_box("entrylb")) + , m_xActionBT(rBuilder.weld_button(bNewEntry ? OString("insert") : OString("modify"))) + , m_xCloseBT(rBuilder.weld_button("close")) + , m_xCreateEntryPB(rBuilder.weld_button("new")) + , m_xEditEntryPB(rBuilder.weld_button("edit")) +{ + m_xActionBT->show(true); + m_xFromComponentRB->show(bNewEntry); + m_xFromDocContentRB->show(bNewEntry); + m_xFromComponentRB->set_active(bIsFromComponent); + m_xFromDocContentRB->set_active(!bIsFromComponent); + + m_xActionBT->connect_clicked(LINK(this,AuthorMarkPane, InsertHdl)); + m_xCloseBT->connect_clicked(LINK(this,AuthorMarkPane, CloseHdl)); + m_xCreateEntryPB->connect_clicked(LINK(this,AuthorMarkPane, CreateEntryHdl)); + m_xEditEntryPB->connect_clicked(LINK(this,AuthorMarkPane, CreateEntryHdl)); + m_xFromComponentRB->connect_toggled(LINK(this,AuthorMarkPane, ChangeSourceHdl)); + m_xFromDocContentRB->connect_toggled(LINK(this,AuthorMarkPane, ChangeSourceHdl)); + m_xEntryED->connect_changed(LINK(this,AuthorMarkPane, EditModifyHdl)); + + m_rDialog.set_title(SwResId( + bNewEntry ? STR_AUTHMRK_INSERT : STR_AUTHMRK_EDIT)); + + m_xEntryED->show(!bNewEntry); + m_xEntryLB->show(bNewEntry); + if (bNewEntry) + { + m_xEntryLB->connect_changed(LINK(this, AuthorMarkPane, CompEntryHdl)); + } +} + +void AuthorMarkPane::ReInitDlg(SwWrtShell& rWrtShell) +{ + pSh = &rWrtShell; + InitControls(); +} + +IMPL_LINK_NOARG(AuthorMarkPane, CloseHdl, weld::Button&, void) +{ + if(bNewEntry) + { + SfxViewFrame::Current()->GetDispatcher()->Execute(FN_INSERT_AUTH_ENTRY_DLG, + SfxCallMode::ASYNCHRON|SfxCallMode::RECORD); + } + else + { + m_rDialog.response(RET_CANCEL); + } +} + +IMPL_LINK( AuthorMarkPane, CompEntryHdl, weld::ComboBox&, rBox, void) +{ + const OUString sEntry(rBox.get_active_text()); + if(bIsFromComponent) + { + if(xBibAccess.is() && !sEntry.isEmpty()) + { + if(xBibAccess->hasByName(sEntry)) + { + uno::Any aEntry(xBibAccess->getByName(sEntry)); + uno::Sequence<beans::PropertyValue> aFieldProps; + if(aEntry >>= aFieldProps) + { + const beans::PropertyValue* pProps = aFieldProps.getConstArray(); + for(sal_Int32 i = 0; i < AUTH_FIELD_END && i < aFieldProps.getLength(); i++) + { + m_sFields[i] = lcl_FindColumnEntry( + pProps, aFieldProps.getLength(), m_sColumnTitles[i]); + } + } + } + } + } + else + { + if(!sEntry.isEmpty()) + { + const SwAuthorityFieldType* pFType = static_cast<const SwAuthorityFieldType*>( + pSh->GetFieldType(SwFieldIds::TableOfAuthorities, OUString())); + const SwAuthEntry* pEntry = pFType ? pFType->GetEntryByIdentifier(sEntry) : nullptr; + for(int i = 0; i < AUTH_FIELD_END; i++) + m_sFields[i] = pEntry ? + pEntry->GetAuthorField(static_cast<ToxAuthorityField>(i)) : OUString(); + } + } + if (rBox.get_active_text().isEmpty()) + { + for(OUString & s : m_sFields) + s.clear(); + } + m_xAuthorFI->set_label(m_sFields[AUTH_FIELD_AUTHOR]); + m_xTitleFI->set_label(m_sFields[AUTH_FIELD_TITLE]); +} + +IMPL_LINK_NOARG(AuthorMarkPane, InsertHdl, weld::Button&, void) +{ + //insert or update the SwAuthorityField... + if(pSh) + { + bool bDifferent = false; + OSL_ENSURE(!m_sFields[AUTH_FIELD_IDENTIFIER].isEmpty() , "No Id is set!"); + OSL_ENSURE(!m_sFields[AUTH_FIELD_AUTHORITY_TYPE].isEmpty() , "No authority type is set!"); + //check if the entry already exists with different content + const SwAuthorityFieldType* pFType = static_cast<const SwAuthorityFieldType*>( + pSh->GetFieldType(SwFieldIds::TableOfAuthorities, OUString())); + const SwAuthEntry* pEntry = pFType ? + pFType->GetEntryByIdentifier( m_sFields[AUTH_FIELD_IDENTIFIER]) + : nullptr; + if(pEntry) + { + for(int i = 0; i < AUTH_FIELD_END && !bDifferent; i++) + bDifferent |= m_sFields[i] != pEntry->GetAuthorField(static_cast<ToxAuthorityField>(i)); + if(bDifferent) + { + std::unique_ptr<weld::MessageDialog> xQuery(Application::CreateMessageDialog(m_rDialog.getDialog(), + VclMessageType::Question, VclButtonsType::YesNo, + SwResId(STR_QUERY_CHANGE_AUTH_ENTRY))); + if (RET_YES != xQuery->run()) + return; + } + } + + SwFieldMgr aMgr(pSh); + OUStringBuffer sFields; + for(OUString & s : m_sFields) + { + sFields.append(s).append(TOX_STYLE_DELIMITER); + } + if(bNewEntry) + { + if(bDifferent) + { + SwAuthEntry aNewData; + for(int i = 0; i < AUTH_FIELD_END; i++) + aNewData.SetAuthorField(static_cast<ToxAuthorityField>(i), m_sFields[i]); + pSh->ChangeAuthorityData(&aNewData); + } + SwInsertField_Data aData(TYP_AUTHORITY, 0, sFields.makeStringAndClear(), OUString(), 0 ); + aMgr.InsertField( aData ); + } + else if(aMgr.GetCurField()) + { + aMgr.UpdateCurField(0, sFields.makeStringAndClear(), OUString()); + } + } + if(!bNewEntry) + CloseHdl(*m_xCloseBT); +} + +IMPL_LINK(AuthorMarkPane, CreateEntryHdl, weld::Button&, rButton, void) +{ + bool bCreate = &rButton == m_xCreateEntryPB.get(); + OUString sOldId = m_sCreatedEntry[0]; + for(int i = 0; i < AUTH_FIELD_END; i++) + m_sCreatedEntry[i] = bCreate ? OUString() : m_sFields[i]; + SwCreateAuthEntryDlg_Impl aDlg(m_rDialog.getDialog(), + bCreate ? m_sCreatedEntry : m_sFields, + *pSh, bNewEntry, bCreate); + if(bNewEntry) + { + aDlg.SetCheckNameHdl(LINK(this, AuthorMarkPane, IsEntryAllowedHdl)); + } + if(RET_OK == aDlg.run()) + { + if(bCreate && !sOldId.isEmpty()) + { + m_xEntryLB->remove_text(sOldId); + } + for(int i = 0; i < AUTH_FIELD_END; i++) + { + m_sFields[i] = aDlg.GetEntryText(static_cast<ToxAuthorityField>(i)); + m_sCreatedEntry[i] = m_sFields[i]; + } + if(bNewEntry && !m_xFromDocContentRB->get_active()) + { + m_xFromDocContentRB->set_active(true); + ChangeSourceHdl(*m_xFromDocContentRB); + } + if(bCreate) + { + OSL_ENSURE(m_xEntryLB->find_text(m_sFields[AUTH_FIELD_IDENTIFIER]) == -1, + "entry exists!"); + m_xEntryLB->append_text(m_sFields[AUTH_FIELD_IDENTIFIER]); + m_xEntryLB->set_active_text(m_sFields[AUTH_FIELD_IDENTIFIER]); + } + m_xEntryED->set_text(m_sFields[AUTH_FIELD_IDENTIFIER]); + m_xAuthorFI->set_label(m_sFields[AUTH_FIELD_AUTHOR]); + m_xTitleFI->set_label(m_sFields[AUTH_FIELD_TITLE]); + m_xActionBT->set_sensitive(true); + } +} + +IMPL_LINK_NOARG(AuthorMarkPane, ChangeSourceHdl, weld::ToggleButton&, void) +{ + bool bFromComp = m_xFromComponentRB->get_active(); + bIsFromComponent = bFromComp; + m_xCreateEntryPB->set_sensitive(!bIsFromComponent); + m_xEntryLB->clear(); + if(bIsFromComponent) + { + if(!bBibAccessInitialized) + { + uno::Reference< uno::XComponentContext > xContext = getProcessComponentContext(); + xBibAccess = frame::Bibliography::create( xContext ); + uno::Reference< beans::XPropertySet > xPropSet(xBibAccess, uno::UNO_QUERY); + OUString uPropName("BibliographyDataFieldNames"); + if(xPropSet.is() && xPropSet->getPropertySetInfo()->hasPropertyByName(uPropName)) + { + uno::Any aNames = xPropSet->getPropertyValue(uPropName); + uno::Sequence<beans::PropertyValue> aSeq; + if( aNames >>= aSeq) + { + const beans::PropertyValue* pArr = aSeq.getConstArray(); + for(sal_Int32 i = 0; i < aSeq.getLength(); i++) + { + OUString sTitle = pArr[i].Name; + sal_Int16 nField = 0; + pArr[i].Value >>= nField; + if(nField >= 0 && nField < AUTH_FIELD_END) + m_sColumnTitles[nField] = sTitle; + } + } + } + bBibAccessInitialized = true; + } + if(xBibAccess.is()) + { + uno::Sequence<OUString> aIdentifiers = xBibAccess->getElementNames(); + const OUString* pNames = aIdentifiers.getConstArray(); + for(sal_Int32 i = 0; i < aIdentifiers.getLength(); i++) + m_xEntryLB->append_text(pNames[i]); + } + } + else + { + const SwAuthorityFieldType* pFType = static_cast<const SwAuthorityFieldType*>( + pSh->GetFieldType(SwFieldIds::TableOfAuthorities, OUString())); + if(pFType) + { + std::vector<OUString> aIds; + pFType->GetAllEntryIdentifiers( aIds ); + for(const OUString & i : aIds) + m_xEntryLB->append_text(i); + } + if(!m_sCreatedEntry[AUTH_FIELD_IDENTIFIER].isEmpty()) + m_xEntryLB->append_text(m_sCreatedEntry[AUTH_FIELD_IDENTIFIER]); + } + m_xEntryLB->set_active(0); + CompEntryHdl(*m_xEntryLB); +} + +IMPL_LINK(AuthorMarkPane, EditModifyHdl, weld::Entry&, rEdit, void) +{ + Link<weld::Entry&,bool> aAllowed = LINK(this, AuthorMarkPane, IsEditAllowedHdl); + bool bResult = aAllowed.Call(rEdit); + m_xActionBT->set_sensitive(bResult); + if(bResult) + { + OUString sEntry(rEdit.get_text()); + m_sFields[AUTH_FIELD_IDENTIFIER] = sEntry; + m_sCreatedEntry[AUTH_FIELD_IDENTIFIER] = sEntry; + } +}; + +IMPL_LINK(AuthorMarkPane, IsEntryAllowedHdl, weld::Entry&, rEdit, bool) +{ + OUString sEntry = rEdit.get_text(); + bool bAllowed = false; + if(!sEntry.isEmpty()) + { + if (m_xEntryLB->find_text(sEntry) != -1) + return false; + else if(bIsFromComponent) + { + const SwAuthorityFieldType* pFType = static_cast<const SwAuthorityFieldType*>( + pSh->GetFieldType(SwFieldIds::TableOfAuthorities, OUString())); + bAllowed = !pFType || !pFType->GetEntryByIdentifier(sEntry); + } + else + { + bAllowed = !xBibAccess.is() || !xBibAccess->hasByName(sEntry); + } + } + return bAllowed; +} + +IMPL_LINK(AuthorMarkPane, IsEditAllowedHdl, weld::Entry&, rEdit, bool) +{ + OUString sEntry = rEdit.get_text(); + bool bAllowed = false; + if(!sEntry.isEmpty()) + { + if (m_xEntryLB->find_text(sEntry) != -1) + return false; + else if(bIsFromComponent) + { + const SwAuthorityFieldType* pFType = static_cast<const SwAuthorityFieldType*>( + pSh->GetFieldType(SwFieldIds::TableOfAuthorities, OUString())); + bAllowed = !pFType || !pFType->GetEntryByIdentifier(sEntry); + } + else + { + bAllowed = !xBibAccess.is() || !xBibAccess->hasByName(sEntry); + } + } + return bAllowed; +} + +void AuthorMarkPane::InitControls() +{ + OSL_ENSURE(pSh, "no shell?"); + SwField* pField = pSh->GetCurField(); + OSL_ENSURE(bNewEntry || pField, "no current marker"); + if(bNewEntry) + { + ChangeSourceHdl(m_xFromComponentRB->get_active() ? *m_xFromComponentRB : *m_xFromDocContentRB); + m_xCreateEntryPB->set_sensitive(!m_xFromComponentRB->get_active()); + if(!m_xFromComponentRB->get_active() && !m_sCreatedEntry[0].isEmpty()) + for(int i = 0; i < AUTH_FIELD_END; i++) + m_sFields[i] = m_sCreatedEntry[i]; + } + if(bNewEntry || !pField || pField->GetTyp()->Which() != SwFieldIds::TableOfAuthorities) + return; + + const SwAuthEntry* pEntry = static_cast<SwAuthorityFieldType*>(pField->GetTyp())-> + GetEntryByHandle(static_cast<SwAuthorityField*>(pField)->GetHandle()); + + OSL_ENSURE(pEntry, "No authority entry found"); + if(!pEntry) + return; + for(int i = 0; i < AUTH_FIELD_END; i++) + m_sFields[i] = pEntry->GetAuthorField(static_cast<ToxAuthorityField>(i)); + + m_xEntryED->set_text(pEntry->GetAuthorField(AUTH_FIELD_IDENTIFIER)); + m_xAuthorFI->set_label(pEntry->GetAuthorField(AUTH_FIELD_AUTHOR)); + m_xTitleFI->set_label(pEntry->GetAuthorField(AUTH_FIELD_TITLE)); +} + +void AuthorMarkPane::Activate() +{ + m_xActionBT->set_sensitive(!pSh->HasReadonlySel()); +} + namespace { const char* STR_AUTH_FIELD_ARY[] = @@ -1691,17 +2046,25 @@ void SwAuthMarkFloatDlg::ReInitDlg(SwWrtShell& rWrtShell) m_aContent.ReInitDlg( rWrtShell ); } -SwAuthMarkModalDlg::SwAuthMarkModalDlg(vcl::Window *pParent, SwWrtShell& rSh) - : SvxStandardDialog(pParent, "BibliographyEntryDialog", - "modules/swriter/ui/bibliographyentry.ui") - , m_aContent(*this, false) +SwAuthMarkModalDlg::SwAuthMarkModalDlg(weld::Window *pParent, SwWrtShell& rSh) + : SfxDialogController(pParent, "modules/swriter/ui/bibliographyentry.ui", + "BibliographyEntryDialog") + , m_aContent(*this, *m_xBuilder, false) { m_aContent.ReInitDlg(rSh); } +short SwAuthMarkModalDlg::run() +{ + short ret = SfxDialogController::run(); + if (ret == RET_OK) + Apply(); + return ret; +} + void SwAuthMarkModalDlg::Apply() { - m_aContent.InsertHdl(nullptr); + m_aContent.InsertHdl(*m_aContent.m_xActionBT); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/inc/swuiidxmrk.hxx b/sw/source/uibase/inc/swuiidxmrk.hxx index 750cd717945c..3c8f63754998 100644 --- a/sw/source/uibase/inc/swuiidxmrk.hxx +++ b/sw/source/uibase/inc/swuiidxmrk.hxx @@ -229,6 +229,56 @@ public: void ReInitDlg(SwWrtShell& rWrtShell); }; +class AuthorMarkPane +{ + weld::DialogController& m_rDialog; + + static bool bIsFromComponent; + + friend class SwAuthMarkModalDlg; + friend class SwAuthMarkFloatDlg; + + bool const bNewEntry; + bool bBibAccessInitialized; + + SwWrtShell* pSh; + + OUString m_sColumnTitles[AUTH_FIELD_END]; + OUString m_sFields[AUTH_FIELD_END]; + + OUString m_sCreatedEntry[AUTH_FIELD_END]; + + css::uno::Reference< css::container::XNameAccess > xBibAccess; + + std::unique_ptr<weld::RadioButton> m_xFromComponentRB; + std::unique_ptr<weld::RadioButton> m_xFromDocContentRB; + std::unique_ptr<weld::Label> m_xAuthorFI; + std::unique_ptr<weld::Label> m_xTitleFI; + std::unique_ptr<weld::Entry> m_xEntryED; + std::unique_ptr<weld::ComboBox> m_xEntryLB; + std::unique_ptr<weld::Button> m_xActionBT; + std::unique_ptr<weld::Button> m_xCloseBT; + std::unique_ptr<weld::Button> m_xCreateEntryPB; + std::unique_ptr<weld::Button> m_xEditEntryPB; + + DECL_LINK(InsertHdl, weld::Button&, void); + DECL_LINK(CloseHdl, weld::Button&, void); + DECL_LINK(CreateEntryHdl, weld::Button&, void); + DECL_LINK(CompEntryHdl, weld::ComboBox&, void); + DECL_LINK(ChangeSourceHdl, weld::ToggleButton&, void); + DECL_LINK(IsEditAllowedHdl, weld::Entry&, bool); + DECL_LINK(IsEntryAllowedHdl, weld::Entry&, bool); + DECL_LINK(EditModifyHdl, weld::Entry&, void); + + void InitControls(); + void Activate(); + +public: + AuthorMarkPane(weld::DialogController& rDialog, weld::Builder& rBuilder, bool bNew); + + void ReInitDlg(SwWrtShell& rWrtShell); +}; + class SwAuthMarkFloatDlg : public SfxModelessDialog { SwAuthorMarkPane m_aContent; @@ -242,13 +292,14 @@ public: void ReInitDlg(SwWrtShell& rWrtShell); }; -class SwAuthMarkModalDlg : public SvxStandardDialog +class SwAuthMarkModalDlg : public SfxDialogController { - SwAuthorMarkPane m_aContent; + AuthorMarkPane m_aContent; + void Apply(); public: - SwAuthMarkModalDlg(vcl::Window *pParent, SwWrtShell& rSh); + SwAuthMarkModalDlg(weld::Window *pParent, SwWrtShell& rSh); - virtual void Apply() override; + virtual short int run() override; }; #endif // INCLUDED_SW_SOURCE_UIBASE_INC_SWUIIDXMRK_HXX diff --git a/sw/source/uibase/shells/textidx.cxx b/sw/source/uibase/shells/textidx.cxx index 0363566f248b..a8e36de82379 100644 --- a/sw/source/uibase/shells/textidx.cxx +++ b/sw/source/uibase/shells/textidx.cxx @@ -55,7 +55,7 @@ void SwTextShell::ExecIdx(SfxRequest const &rReq) case FN_EDIT_AUTH_ENTRY_DLG : { SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); - ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateSwAutoMarkDialog(pMDI, GetShell())); + ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateSwAutoMarkDialog(GetView().GetFrameWeld(), GetShell())); pDlg->Execute(); } break; diff --git a/sw/uiconfig/swriter/ui/bibliographyentry.ui b/sw/uiconfig/swriter/ui/bibliographyentry.ui index a662de63f86d..32ff10e594e0 100644 --- a/sw/uiconfig/swriter/ui/bibliographyentry.ui +++ b/sw/uiconfig/swriter/ui/bibliographyentry.ui @@ -1,11 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> <interface domain="sw"> - <!-- interface-requires gtk+ 3.0 --> + <requires lib="gtk+" version="3.18"/> <object class="GtkDialog" id="BibliographyEntryDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="bibliographyentry|BibliographyEntryDialog">Insert Bibliography Entry</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> @@ -16,13 +20,12 @@ <property name="can_focus">False</property> <property name="layout_style">end</property> <child> - <object class="GtkButton" id="insert"> - <property name="label" translatable="yes" context="bibliographyentry|insert">Insert</property> + <object class="GtkButton" id="help"> + <property name="label">gtk-help</property> + <property name="visible">True</property> <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="has_default">True</property> <property name="receives_default">True</property> - <property name="no_show_all">True</property> + <property name="use_stock">True</property> </object> <packing> <property name="expand">False</property> @@ -31,13 +34,12 @@ </packing> </child> <child> - <object class="GtkButton" id="modify"> - <property name="label" translatable="yes" context="bibliographyentry|modify">Apply</property> + <object class="GtkButton" id="new"> + <property name="label">gtk-new</property> + <property name="visible">True</property> <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="has_default">True</property> <property name="receives_default">True</property> - <property name="no_show_all">True</property> + <property name="use_stock">True</property> </object> <packing> <property name="expand">False</property> @@ -46,8 +48,8 @@ </packing> </child> <child> - <object class="GtkButton" id="close"> - <property name="label">gtk-close</property> + <object class="GtkButton" id="edit"> + <property name="label">gtk-edit</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> @@ -60,8 +62,8 @@ </packing> </child> <child> - <object class="GtkButton" id="help"> - <property name="label">gtk-help</property> + <object class="GtkButton" id="close"> + <property name="label">gtk-close</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> @@ -74,12 +76,13 @@ </packing> </child> <child> - <object class="GtkButton" id="new"> - <property name="label">gtk-new</property> - <property name="visible">True</property> + <object class="GtkButton" id="insert"> + <property name="label" translatable="yes" context="bibliographyentry|insert">Insert</property> <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> <property name="receives_default">True</property> - <property name="use_stock">True</property> + <property name="no_show_all">True</property> </object> <packing> <property name="expand">False</property> @@ -88,12 +91,13 @@ </packing> </child> <child> - <object class="GtkButton" id="edit"> - <property name="label">gtk-edit</property> - <property name="visible">True</property> + <object class="GtkButton" id="modify"> + <property name="label" translatable="yes" context="bibliographyentry|modify">Apply</property> <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> <property name="receives_default">True</property> - <property name="use_stock">True</property> + <property name="no_show_all">True</property> </object> <packing> <property name="expand">False</property> @@ -133,8 +137,8 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="margin_top">12</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="bibliographyentry|label2">Author</property> + <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> </attributes> @@ -142,16 +146,14 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="label3"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="bibliographyentry|label3">Title</property> + <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> </attributes> @@ -159,38 +161,32 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">4</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="author"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="width_chars">60</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">3</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="label5"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="bibliographyentry|label5">Short name</property> <property name="use_underline">True</property> <property name="mnemonic_widget">entrylb</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">6</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -202,12 +198,10 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">5</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="GtkComboBox" id="entrylb"> + <object class="GtkComboBoxText" id="entrylb"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -215,8 +209,6 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">7</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -229,13 +221,10 @@ <property name="xalign">0</property> <property name="active">True</property> <property name="draw_indicator">True</property> - <property name="group">fromdocument</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -252,8 +241,6 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -261,12 +248,11 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> + <property name="activates_default">True</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">8</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> </object> @@ -293,12 +279,8 @@ </object> </child> <action-widgets> - <action-widget response="0">insert</action-widget> - <action-widget response="0">modify</action-widget> - <action-widget response="-7">close</action-widget> <action-widget response="-11">help</action-widget> - <action-widget response="0">new</action-widget> - <action-widget response="0">edit</action-widget> + <action-widget response="-7">close</action-widget> </action-widgets> </object> </interface> |