Resolves tdf#129032 - Missing warning when renaming page
Edit field has type normal or error now Edit field and okay button return feedback per tooltip Change-Id: Ib2caf3280227cb00af25889ed111503745b471dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85101 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
This commit is contained in:
committed by
Heiko Tietze
parent
6be9ae8aa1
commit
a4f5c8d38e
@@ -41,10 +41,19 @@ SvxNameDialog::SvxNameDialog(weld::Window* pParent, const OUString& rName, const
|
||||
IMPL_LINK_NOARG(SvxNameDialog, ModifyHdl, weld::Entry&, void)
|
||||
{
|
||||
// Do not allow empty names
|
||||
bool bEnable;
|
||||
if (m_aCheckNameHdl.IsSet())
|
||||
m_xBtnOK->set_sensitive(!m_xEdtName->get_text().isEmpty() && m_aCheckNameHdl.Call(*this));
|
||||
bEnable = !m_xEdtName->get_text().isEmpty() && m_aCheckNameHdl.Call(*this);
|
||||
else
|
||||
m_xBtnOK->set_sensitive(!m_xEdtName->get_text().isEmpty());
|
||||
bEnable = !m_xEdtName->get_text().isEmpty();
|
||||
m_xBtnOK->set_sensitive(bEnable);
|
||||
// tdf#129032: feedback on reason to disabled controls
|
||||
m_xEdtName->set_message_type(bEnable ? weld::EntryMessageType::Normal : weld::EntryMessageType::Error);
|
||||
OUString rTip = "";
|
||||
if (!bEnable && m_aCheckNameTooltipHdl.IsSet())
|
||||
rTip = m_aCheckNameTooltipHdl.Call(*this);
|
||||
m_xBtnOK->set_tooltip_text(rTip);
|
||||
m_xEdtName->set_tooltip_text(rTip);
|
||||
}
|
||||
|
||||
// #i68101#
|
||||
|
||||
@@ -740,6 +740,15 @@ void AbstractSvxNameDialog_Impl::SetCheckNameHdl( const Link<AbstractSvxNameDial
|
||||
m_xDlg->SetCheckNameHdl( Link<SvxNameDialog&,bool>(), bCheckImmediately );
|
||||
}
|
||||
|
||||
void AbstractSvxNameDialog_Impl::SetCheckNameTooltipHdl( const Link<AbstractSvxNameDialog&,OUString>& rLink)
|
||||
{
|
||||
aCheckNameTooltipHdl = rLink;
|
||||
if( rLink.IsSet() )
|
||||
m_xDlg->SetCheckNameTooltipHdl( LINK(this, AbstractSvxNameDialog_Impl, CheckNameTooltipHdl));
|
||||
else
|
||||
m_xDlg->SetCheckNameTooltipHdl( Link<SvxNameDialog&,OUString>());
|
||||
}
|
||||
|
||||
void AbstractSvxNameDialog_Impl::SetEditHelpId(const OString& rHelpId)
|
||||
{
|
||||
m_xDlg->SetEditHelpId(rHelpId);
|
||||
@@ -760,6 +769,11 @@ IMPL_LINK_NOARG(AbstractSvxNameDialog_Impl, CheckNameHdl, SvxNameDialog&, bool)
|
||||
return aCheckNameHdl.Call(*this);
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(AbstractSvxNameDialog_Impl, CheckNameTooltipHdl, SvxNameDialog&, OUString)
|
||||
{
|
||||
return aCheckNameTooltipHdl.Call(*this);
|
||||
}
|
||||
|
||||
void AbstractSvxObjectNameDialog_Impl::GetName(OUString& rName)
|
||||
{
|
||||
rName = m_xDlg->GetName();
|
||||
|
||||
@@ -446,6 +446,7 @@ public:
|
||||
virtual short Execute() override;
|
||||
virtual void GetName( OUString& rName ) override ;
|
||||
virtual void SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink, bool bCheckImmediately = false ) override ;
|
||||
virtual void SetCheckNameTooltipHdl( const Link<AbstractSvxNameDialog&, OUString>& rLink ) override ;
|
||||
virtual void SetEditHelpId(const OString&) override ;
|
||||
//from class Window
|
||||
virtual void SetHelpId( const OString& ) override ;
|
||||
@@ -453,7 +454,9 @@ public:
|
||||
private:
|
||||
std::unique_ptr<SvxNameDialog> m_xDlg;
|
||||
Link<AbstractSvxNameDialog&,bool> aCheckNameHdl;
|
||||
Link<AbstractSvxNameDialog&,OUString> aCheckNameTooltipHdl;
|
||||
DECL_LINK(CheckNameHdl, SvxNameDialog&, bool);
|
||||
DECL_LINK(CheckNameTooltipHdl, SvxNameDialog&, OUString);
|
||||
};
|
||||
|
||||
class SvxObjectNameDialog;
|
||||
|
||||
@@ -30,6 +30,7 @@ private:
|
||||
std::unique_ptr<weld::Button> m_xBtnOK;
|
||||
|
||||
Link<SvxNameDialog&,bool> m_aCheckNameHdl;
|
||||
Link<SvxNameDialog&,OUString> m_aCheckNameTooltipHdl;
|
||||
|
||||
DECL_LINK(ModifyHdl, weld::Entry&, void);
|
||||
|
||||
@@ -60,6 +61,12 @@ public:
|
||||
m_xBtnOK->set_sensitive(rLink.Call(*this));
|
||||
}
|
||||
|
||||
void SetCheckNameTooltipHdl(const Link<SvxNameDialog&,OUString>& rLink)
|
||||
{
|
||||
m_aCheckNameTooltipHdl = rLink;
|
||||
m_xBtnOK->set_tooltip_text(rLink.Call(*this));
|
||||
}
|
||||
|
||||
void SetEditHelpId(const OString& aHelpId) { m_xEdtName->set_help_id(aHelpId);}
|
||||
};
|
||||
|
||||
|
||||
@@ -175,6 +175,7 @@ protected:
|
||||
public:
|
||||
virtual void GetName( OUString& rName ) = 0;
|
||||
virtual void SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink, bool bCheckImmediately = false ) = 0;
|
||||
virtual void SetCheckNameTooltipHdl( const Link<AbstractSvxNameDialog&,OUString>& rLink ) = 0;
|
||||
virtual void SetEditHelpId(const OString&) = 0;
|
||||
//from class Window
|
||||
virtual void SetHelpId( const OString& ) = 0;
|
||||
|
||||
@@ -236,6 +236,7 @@
|
||||
#define STR_STATUSBAR_MASTERPAGE NC_("STR_STATUSBAR_MASTERPAGE", "Slide Master name. Right-click for list and double-click for dialog.")
|
||||
#define STR_TITLE_RENAMESLIDE NC_("STR_TITLE_RENAMESLIDE", "Rename Slide")
|
||||
#define STR_TITLE_RENAMEPAGE NC_("STR_TITLE_RENAMEPAGE", "Rename Page")
|
||||
#define STR_TOOLTIP_RENAME NC_("STR_TOOLTIP_RENAME", "Duplicate or empty names are not possible")
|
||||
#define STR_DESC_RENAMESLIDE NC_("STR_DESC_RENAMESLIDE", "Name")
|
||||
#define STR_TITLE_RENAMEMASTER NC_("STR_TITLE_RENAMEMASTER", "Rename Master Slide")
|
||||
#define STR_PLACEHOLDER_DESCRIPTION_TITLE NC_("STR_PLACEHOLDER_DESCRIPTION_TITLE", "Title Area for AutoLayouts" )
|
||||
|
||||
@@ -918,6 +918,7 @@ void SlotManager::RenameSlide(const SfxRequest& rRequest)
|
||||
aNameDlg->GetName( aOldName );
|
||||
aNameDlg->SetText( aTitle );
|
||||
aNameDlg->SetCheckNameHdl( LINK( this, SlotManager, RenameSlideHdl ), true );
|
||||
aNameDlg->SetCheckNameTooltipHdl( LINK( this, SlotManager, RenameSlideTooltipHdl ) );
|
||||
aNameDlg->SetEditHelpId( HID_SD_NAMEDIALOG_PAGE );
|
||||
|
||||
if( aNameDlg->Execute() == RET_OK )
|
||||
@@ -959,6 +960,11 @@ IMPL_LINK(SlotManager, RenameSlideHdl, AbstractSvxNameDialog&, rDialog, bool)
|
||||
&& mrSlideSorter.GetViewShell()->GetDocSh()->IsNewPageNameValid( aNewName ) );
|
||||
}
|
||||
|
||||
IMPL_STATIC_LINK_NOARG(SlotManager, RenameSlideTooltipHdl, AbstractSvxNameDialog&, OUString)
|
||||
{
|
||||
return SdResId(STR_TOOLTIP_RENAME);
|
||||
}
|
||||
|
||||
bool SlotManager::RenameSlideFromDrawViewShell( sal_uInt16 nPageId, const OUString & rName )
|
||||
{
|
||||
bool bOutDummy;
|
||||
|
||||
@@ -81,6 +81,7 @@ private:
|
||||
*/
|
||||
void RenameSlide( const SfxRequest& rRequest );
|
||||
DECL_LINK(RenameSlideHdl, AbstractSvxNameDialog&, bool);
|
||||
DECL_STATIC_LINK(SlotManager, RenameSlideTooltipHdl, AbstractSvxNameDialog&, OUString);
|
||||
bool RenameSlideFromDrawViewShell( sal_uInt16 nPageId, const OUString& rName);
|
||||
|
||||
/** Handle SID_INSERTPAGE slot calls.
|
||||
|
||||
Reference in New Issue
Block a user