Kaydet (Commit) 2c2f0eaf authored tarafından Rishabh Kumar's avatar Rishabh Kumar Kaydeden (comit) Katarina Behrens

[GSoC] Remove popup confirmation dialog in fill style tabs

Enable users to apply custom values without adding it to the preset list

Change-Id: Ida00c6eeb06e717a8aed30f4d230ab616c5b03dd
Reviewed-on: https://gerrit.libreoffice.org/28333Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarYousuf Philips <philipz85@hotmail.com>
Tested-by: 's avatarYousuf Philips <philipz85@hotmail.com>
Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
üst c73592e3
...@@ -413,7 +413,6 @@ private: ...@@ -413,7 +413,6 @@ private:
DECL_LINK_TYPED( ModifiedSliderHdl_Impl, Slider*, void ); DECL_LINK_TYPED( ModifiedSliderHdl_Impl, Slider*, void );
void ModifiedHdl_Impl(void*); void ModifiedHdl_Impl(void*);
long CheckChanges_Impl();
void SetControlState_Impl( css::awt::GradientStyle eXGS ); void SetControlState_Impl( css::awt::GradientStyle eXGS );
sal_Int32 SearchGradientList(const OUString& rGradientName); sal_Int32 SearchGradientList(const OUString& rGradientName);
...@@ -496,7 +495,6 @@ private: ...@@ -496,7 +495,6 @@ private:
DECL_LINK_TYPED( ClickRenameHdl_Impl, SvxPresetListBox*, void ); DECL_LINK_TYPED( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK_TYPED( ClickDeleteHdl_Impl, SvxPresetListBox*, void ); DECL_LINK_TYPED( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
long CheckChanges_Impl();
sal_Int32 SearchHatchList(const OUString& rHatchName); sal_Int32 SearchHatchList(const OUString& rHatchName);
public: public:
...@@ -667,8 +665,6 @@ private: ...@@ -667,8 +665,6 @@ private:
DECL_LINK_TYPED( ClickRenameHdl_Impl, SvxPresetListBox*, void ); DECL_LINK_TYPED( ClickRenameHdl_Impl, SvxPresetListBox*, void );
DECL_LINK_TYPED( ClickDeleteHdl_Impl, SvxPresetListBox*, void ); DECL_LINK_TYPED( ClickDeleteHdl_Impl, SvxPresetListBox*, void );
long CheckChanges_Impl();
public: public:
SvxPatternTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs ); SvxPatternTabPage( vcl::Window* pParent, const SfxItemSet& rInAttrs );
virtual ~SvxPatternTabPage(); virtual ~SvxPatternTabPage();
...@@ -799,8 +795,6 @@ private: ...@@ -799,8 +795,6 @@ private:
static sal_Int32 SearchColorList(OUString const & aColorName); static sal_Int32 SearchColorList(OUString const & aColorName);
DECL_LINK_TYPED( ModifiedHdl_Impl, Edit&, void ); DECL_LINK_TYPED( ModifiedHdl_Impl, Edit&, void );
long CheckChanges_Impl();
void UpdateModified(); void UpdateModified();
css::uno::Reference< css::uno::XComponentContext > m_context; css::uno::Reference< css::uno::XComponentContext > m_context;
public: public:
......
...@@ -303,9 +303,6 @@ void SvxColorTabPage::ActivatePage( const SfxItemSet& ) ...@@ -303,9 +303,6 @@ void SvxColorTabPage::ActivatePage( const SfxItemSet& )
DeactivateRC SvxColorTabPage::DeactivatePage( SfxItemSet* _pSet ) DeactivateRC SvxColorTabPage::DeactivatePage( SfxItemSet* _pSet )
{ {
if ( CheckChanges_Impl() == -1L )
return DeactivateRC::KeepPage;
if( _pSet ) if( _pSet )
FillItemSet( _pSet ); FillItemSet( _pSet );
...@@ -313,42 +310,6 @@ DeactivateRC SvxColorTabPage::DeactivatePage( SfxItemSet* _pSet ) ...@@ -313,42 +310,6 @@ DeactivateRC SvxColorTabPage::DeactivatePage( SfxItemSet* _pSet )
} }
long SvxColorTabPage::CheckChanges_Impl()
{
if( ColorToPercent_Impl( aCurrentColor.GetRed() ) != ColorToPercent_Impl( aPreviousColor.GetRed() ) ||
ColorToPercent_Impl( aCurrentColor.GetGreen() ) != ColorToPercent_Impl( aPreviousColor.GetGreen() ) ||
ColorToPercent_Impl( aCurrentColor.GetBlue() ) != ColorToPercent_Impl( aPreviousColor.GetBlue() ) )
{
ResMgr& rMgr = CUI_MGR();
Image aWarningBoxImage = WarningBox::GetStandardImage();
ScopedVclPtrInstance<SvxMessDialog> aMessDlg( GetParentDialog(),
SVX_RESSTR( RID_SVXSTR_COLOR ),
ResId( RID_SVXSTR_ASK_CHANGE_COLOR, rMgr ),
&aWarningBoxImage );
aMessDlg->SetButtonText( SvxMessDialogButton::N1,
ResId( RID_SVXSTR_CHANGE, rMgr ) );
aMessDlg->SetButtonText( SvxMessDialogButton::N2,
ResId( RID_SVXSTR_ADD, rMgr ) );
aMessDlg->DisableButton( SvxMessDialogButton::N1 );
short nRet = aMessDlg->Execute();
switch( nRet )
{
case RET_BTN_2:
{
ClickAddHdl_Impl( nullptr );
}
break;
case RET_CANCEL:
break;
}
}
return 0;
}
bool SvxColorTabPage::FillItemSet( SfxItemSet* rSet ) bool SvxColorTabPage::FillItemSet( SfxItemSet* rSet )
{ {
if( ( nDlgType != 0 ) || if( ( nDlgType != 0 ) ||
......
...@@ -254,9 +254,6 @@ void SvxGradientTabPage::ActivatePage( const SfxItemSet& ) ...@@ -254,9 +254,6 @@ void SvxGradientTabPage::ActivatePage( const SfxItemSet& )
DeactivateRC SvxGradientTabPage::DeactivatePage( SfxItemSet* _pSet ) DeactivateRC SvxGradientTabPage::DeactivatePage( SfxItemSet* _pSet )
{ {
if( CheckChanges_Impl() == -1L )
return DeactivateRC::KeepPage;
if( _pSet ) if( _pSet )
FillItemSet( _pSet ); FillItemSet( _pSet );
...@@ -264,94 +261,28 @@ DeactivateRC SvxGradientTabPage::DeactivatePage( SfxItemSet* _pSet ) ...@@ -264,94 +261,28 @@ DeactivateRC SvxGradientTabPage::DeactivatePage( SfxItemSet* _pSet )
} }
long SvxGradientTabPage::CheckChanges_Impl()
{
// is used here in order to NOT lose changes
XGradient aTmpGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
(css::awt::GradientStyle) m_pLbGradientType->GetSelectEntryPos(),
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
(sal_uInt16) m_pMtrCenterX->GetValue(),
(sal_uInt16) m_pMtrCenterY->GetValue(),
(sal_uInt16) m_pMtrBorder->GetValue(),
(sal_uInt16) m_pMtrColorFrom->GetValue(),
(sal_uInt16) m_pMtrColorTo->GetValue() );
size_t nPos = m_pGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
XGradient aGradient = m_pGradientList->GetGradient(nPos)->GetGradient();
if( !( aTmpGradient == aGradient ) )
{
ResMgr& rMgr = CUI_MGR();
Image aWarningBoxImage = WarningBox::GetStandardImage();
ScopedVclPtrInstance<SvxMessDialog> aMessDlg( GetParentDialog(),
SVX_RESSTR( RID_SVXSTR_GRADIENT ),
CUI_RESSTR( RID_SVXSTR_ASK_CHANGE_GRADIENT ),
&aWarningBoxImage );
assert(aMessDlg && "Dialog creation failed!");
aMessDlg->SetButtonText( SvxMessDialogButton::N1,
OUString( ResId( RID_SVXSTR_CHANGE, rMgr ) ) );
aMessDlg->SetButtonText( SvxMessDialogButton::N2,
OUString( ResId( RID_SVXSTR_ADD, rMgr ) ) );
short nRet = aMessDlg->Execute();
switch( nRet )
{
case RET_BTN_1:
{
ClickModifyHdl_Impl( nullptr );
}
break;
case RET_BTN_2:
{
ClickAddHdl_Impl( nullptr );
}
break;
case RET_CANCEL:
break;
}
}
}
nPos = m_pGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
*m_pPos = static_cast<sal_Int32>(nPos);
}
return 0L;
}
bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet ) bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet )
{ {
if( m_nDlgType == 0 && *m_pPageType == PageType::Gradient && !*m_pbAreaTP ) if( m_nDlgType == 0 && *m_pPageType == PageType::Gradient && !*m_pbAreaTP )
{ {
// CheckChanges(); <-- duplicate inquiry ?
std::unique_ptr<XGradient> pXGradient; std::unique_ptr<XGradient> pXGradient;
pXGradient.reset(new XGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
(css::awt::GradientStyle) m_pLbGradientType->GetSelectEntryPos(),
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
(sal_uInt16) m_pMtrCenterX->GetValue(),
(sal_uInt16) m_pMtrCenterY->GetValue(),
(sal_uInt16) m_pMtrBorder->GetValue(),
(sal_uInt16) m_pMtrColorFrom->GetValue(),
(sal_uInt16) m_pMtrColorTo->GetValue() ));
OUString aString; OUString aString;
size_t nPos = m_pGradientLB->GetSelectItemPos(); size_t nPos = m_pGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND ) if( nPos != VALUESET_ITEM_NOTFOUND )
{ {
pXGradient.reset(new XGradient(m_pGradientList->GetGradient(nPos)->GetGradient())); XGradient aTmpGradient = m_pGradientList->GetGradient( static_cast<sal_uInt16>(nPos) )->GetGradient();
aString = m_pGradientLB->GetItemText( m_pGradientLB->GetSelectItemId() ); if( *pXGradient == aTmpGradient )
} aString = m_pGradientLB->GetItemText( m_pGradientLB->GetSelectItemId() );
else
// gradient was passed (unidentified)
{
pXGradient.reset(new XGradient( m_pLbColorFrom->GetSelectEntryColor(),
m_pLbColorTo->GetSelectEntryColor(),
(css::awt::GradientStyle) m_pLbGradientType->GetSelectEntryPos(),
static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource
(sal_uInt16) m_pMtrCenterX->GetValue(),
(sal_uInt16) m_pMtrCenterY->GetValue(),
(sal_uInt16) m_pMtrBorder->GetValue(),
(sal_uInt16) m_pMtrColorFrom->GetValue(),
(sal_uInt16) m_pMtrColorTo->GetValue() ));
} }
sal_uInt16 nValue = 0; sal_uInt16 nValue = 0;
......
...@@ -255,9 +255,6 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet ) ...@@ -255,9 +255,6 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
DeactivateRC SvxHatchTabPage::DeactivatePage( SfxItemSet* _pSet ) DeactivateRC SvxHatchTabPage::DeactivatePage( SfxItemSet* _pSet )
{ {
if ( CheckChanges_Impl() == -1L )
return DeactivateRC::KeepPage;
if( _pSet ) if( _pSet )
FillItemSet( _pSet ); FillItemSet( _pSet );
...@@ -265,53 +262,6 @@ DeactivateRC SvxHatchTabPage::DeactivatePage( SfxItemSet* _pSet ) ...@@ -265,53 +262,6 @@ DeactivateRC SvxHatchTabPage::DeactivatePage( SfxItemSet* _pSet )
} }
long SvxHatchTabPage::CheckChanges_Impl()
{
if( m_pMtrDistance->IsValueChangedFromSaved() ||
m_pMtrAngle->IsValueChangedFromSaved() ||
m_pLbLineType->IsValueChangedFromSaved() ||
m_pLbLineColor->IsValueChangedFromSaved() ||
m_pHatchLB->IsValueChangedFromSaved() )
{
ResMgr& rMgr = CUI_MGR();
Image aWarningBoxImage = WarningBox::GetStandardImage();
ScopedVclPtrInstance<SvxMessDialog> aMessDlg( GetParentDialog(),
SVX_RESSTR( RID_SVXSTR_HATCH ),
CUI_RESSTR( RID_SVXSTR_ASK_CHANGE_HATCH ),
&aWarningBoxImage );
assert(aMessDlg && "Dialog creation failed!");
aMessDlg->SetButtonText( SvxMessDialogButton::N1,
OUString( ResId( RID_SVXSTR_CHANGE, rMgr ) ) );
aMessDlg->SetButtonText( SvxMessDialogButton::N2,
OUString( ResId( RID_SVXSTR_ADD, rMgr ) ) );
short nRet = aMessDlg->Execute();
switch( nRet )
{
case RET_BTN_1:
{
ClickModifyHdl_Impl( nullptr );
}
break;
case RET_BTN_2:
{
ClickAddHdl_Impl( nullptr );
}
break;
case RET_CANCEL:
break;
}
}
size_t nPos = m_pHatchLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
*m_pPos = static_cast<sal_Int32>(nPos);
return 0L;
}
sal_Int32 SvxHatchTabPage::SearchHatchList(const OUString& rHatchName) sal_Int32 SvxHatchTabPage::SearchHatchList(const OUString& rHatchName)
{ {
long nCount = m_pHatchingList->Count(); long nCount = m_pHatchingList->Count();
...@@ -335,24 +285,22 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet ) ...@@ -335,24 +285,22 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet )
{ {
if( *m_pPageType == PageType::Hatch ) if( *m_pPageType == PageType::Hatch )
{ {
// CheckChanges(); <-- duplicate inquiry ?
std::unique_ptr<XHatch> pXHatch; std::unique_ptr<XHatch> pXHatch;
pXHatch.reset(new XHatch( m_pLbLineColor->GetSelectEntryColor(),
(css::drawing::HatchStyle) m_pLbLineType->GetSelectEntryPos(),
GetCoreValue( *m_pMtrDistance, m_ePoolUnit ),
static_cast<long>(m_pMtrAngle->GetValue() * 10) ));
OUString aString; OUString aString;
size_t nPos = m_pHatchLB->GetSelectItemPos(); if( !( m_pMtrDistance->IsValueChangedFromSaved() ||
if( nPos != VALUESET_ITEM_NOTFOUND ) m_pMtrAngle->IsValueChangedFromSaved() ||
{ m_pLbLineType->IsValueChangedFromSaved() ||
pXHatch.reset(new XHatch(m_pHatchingList->GetHatch(nPos)->GetHatch())); m_pLbLineColor->IsValueChangedFromSaved() ||
aString = m_pHatchLB->GetItemText( m_pHatchLB->GetSelectItemId() ); m_pHatchLB->IsValueChangedFromSaved() ) )
}
// gradient has been (unidentifiedly) passed
else
{ {
pXHatch.reset(new XHatch( m_pLbLineColor->GetSelectEntryColor(), aString = m_pHatchLB->GetItemText( m_pHatchLB->GetSelectItemId() );;
(css::drawing::HatchStyle) m_pLbLineType->GetSelectEntryPos(),
GetCoreValue( *m_pMtrDistance, m_ePoolUnit ),
static_cast<long>(m_pMtrAngle->GetValue() * 10) ));
} }
assert( pXHatch && "XHatch couldn't be created" ); assert( pXHatch && "XHatch couldn't be created" );
rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) ); rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) );
rSet->Put( XFillHatchItem( aString, *pXHatch ) ); rSet->Put( XFillHatchItem( aString, *pXHatch ) );
......
...@@ -245,9 +245,6 @@ void SvxPatternTabPage::ActivatePage( const SfxItemSet& ) ...@@ -245,9 +245,6 @@ void SvxPatternTabPage::ActivatePage( const SfxItemSet& )
DeactivateRC SvxPatternTabPage::DeactivatePage( SfxItemSet* _pSet) DeactivateRC SvxPatternTabPage::DeactivatePage( SfxItemSet* _pSet)
{ {
if ( CheckChanges_Impl() == -1L )
return DeactivateRC::KeepPage;
if( _pSet ) if( _pSet )
FillItemSet( _pSet ); FillItemSet( _pSet );
...@@ -263,7 +260,7 @@ bool SvxPatternTabPage::FillItemSet( SfxItemSet* _rOutAttrs ) ...@@ -263,7 +260,7 @@ bool SvxPatternTabPage::FillItemSet( SfxItemSet* _rOutAttrs )
{ {
_rOutAttrs->Put(XFillStyleItem(drawing::FillStyle_BITMAP)); _rOutAttrs->Put(XFillStyleItem(drawing::FillStyle_BITMAP));
size_t nPos = m_pPatternLB->GetSelectItemPos(); size_t nPos = m_pPatternLB->GetSelectItemPos();
if(VALUESET_ITEM_NOTFOUND != nPos) if( !m_bPtrnChanged && VALUESET_ITEM_NOTFOUND != nPos)
{ {
const XBitmapEntry* pXBitmapEntry = m_pPatternList->GetBitmap(nPos); const XBitmapEntry* pXBitmapEntry = m_pPatternList->GetBitmap(nPos);
const OUString aString( m_pPatternLB->GetItemText( m_pPatternLB->GetSelectItemId() ) ); const OUString aString( m_pPatternLB->GetItemText( m_pPatternLB->GetSelectItemId() ) );
...@@ -423,51 +420,6 @@ IMPL_LINK_NOARG_TYPED(SvxPatternTabPage, ChangePatternHdl_Impl, ValueSet*, void) ...@@ -423,51 +420,6 @@ IMPL_LINK_NOARG_TYPED(SvxPatternTabPage, ChangePatternHdl_Impl, ValueSet*, void)
} }
long SvxPatternTabPage::CheckChanges_Impl()
{
size_t nPos = m_pPatternLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
{
if( m_bPtrnChanged )
{
ResMgr& rMgr = CUI_MGR();
Image aWarningBoxImage = WarningBox::GetStandardImage();
ScopedVclPtrInstance<SvxMessDialog> aMessDlg( GetParentDialog(),
SVX_RES( RID_SVXSTR_PATTERN ),
CUI_RES( RID_SVXSTR_ASK_CHANGE_PATTERN ),
&aWarningBoxImage );
assert(aMessDlg && "Dialog creation failed!");
aMessDlg->SetButtonText( SvxMessDialogButton::N1, ResId( RID_SVXSTR_CHANGE, rMgr ) );
aMessDlg->SetButtonText( SvxMessDialogButton::N2, ResId( RID_SVXSTR_ADD, rMgr ) );
short nRet = aMessDlg->Execute();
switch( nRet )
{
case RET_BTN_1:
{
ClickModifyHdl_Impl( nullptr );
}
break;
case RET_BTN_2:
{
ClickAddHdl_Impl( nullptr );
}
break;
case RET_CANCEL:
break;
}
}
}
nPos = m_pPatternLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
*m_pPos = static_cast<sal_Int32>(nPos);
return 0L;
}
IMPL_LINK_NOARG_TYPED(SvxPatternTabPage, ClickAddHdl_Impl, Button*, void) IMPL_LINK_NOARG_TYPED(SvxPatternTabPage, ClickAddHdl_Impl, Button*, void)
{ {
......
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