Kaydet (Commit) aee66aa8 authored tarafından Eike Rathke's avatar Eike Rathke

Resolves: tdf#105740 select without selecting.. tdf#101588 b0rk

The initial color, if determined, must result in being selected. Differentiate
between pre-selected and user-selected.

Regression of

    commit 429be969
    Date:   Mon Dec 12 21:24:20 2016 +0100

Change-Id: I928af131d03c61a8e474e5cd356aea8b766112fa
üst c2da33ea
......@@ -107,6 +107,7 @@ private:
bool bIsGraphicValid : 1;
bool bLinkOnly : 1;
bool bHighlighting : 1;
bool m_bColorSelected : 1;
Graphic aBgdGraphic;
OUString aBgdGraphicPath;
OUString aBgdGraphicFilter;
......
......@@ -331,6 +331,7 @@ SvxBackgroundTabPage::SvxBackgroundTabPage(vcl::Window* pParent, const SfxItemSe
, bIsGraphicValid(false)
, bLinkOnly(false)
, bHighlighting(false)
, m_bColorSelected(false)
, pPageImpl(new SvxBackgroundPage_Impl)
, pImportDlg(nullptr)
, pTableBck_Impl(nullptr)
......@@ -449,6 +450,8 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
return;
}
m_bColorSelected = false;
// condition of the preview button is persistent due to UserData
OUString aUserData = GetUserData();
m_pBtnPreview->Check( !aUserData.isEmpty() && '1' == aUserData[0] );
......@@ -682,7 +685,7 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet )
{
// Brush-treatment:
if ( rOldItem.GetColor() != aBgdColor ||
(SfxItemState::DEFAULT >= eOldItemState && !m_pBackgroundColorSet->IsNoSelection()))
(SfxItemState::DEFAULT >= eOldItemState && m_bColorSelected))
{
bModified = true;
rCoreSet->Put( SvxBrushItem( aBgdColor, nWhich ) );
......@@ -1136,6 +1139,7 @@ IMPL_LINK_NOARG(SvxBackgroundTabPage, BackgroundColorHdl_Impl, ValueSet*, void)
sal_uInt16 nItemId = m_pBackgroundColorSet->GetSelectItemId();
Color aColor = nItemId ? ( m_pBackgroundColorSet->GetItemColor( nItemId ) ) : Color( COL_TRANSPARENT );
aBgdColor = aColor;
m_bColorSelected = true;
m_pPreviewWin1->NotifyChange( aBgdColor );
}
......@@ -1421,13 +1425,9 @@ void SvxBackgroundTabPage::FillControls_Impl( const SvxBrushItem& rBgdAttr,
}
else
{
bool bNoSelection = m_pBackgroundColorSet->IsNoSelection();
m_pBackgroundColorSet->SelectItem( nCol );
m_pBackgroundColorSet->SaveValue();
// The actual selection is user set, not what we preset.
if (bNoSelection)
m_pBackgroundColorSet->SetNoSelection();
}
m_pBackgroundColorSet->SaveValue();
m_pPreviewWin1->NotifyChange( aBgdColor );
......
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