summaryrefslogtreecommitdiff
path: root/cui/source/tabpages/tpbitmap.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/tabpages/tpbitmap.cxx')
-rw-r--r--cui/source/tabpages/tpbitmap.cxx98
1 files changed, 48 insertions, 50 deletions
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 647bcaa105e3..2990f4473e91 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -67,7 +67,7 @@ enum TileOffset
}
SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/bitmaptabpage.ui", "BitmapTabPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, "cui/ui/imagetabpage.ui", "ImageTabPage", &rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnBitmapListState(nullptr)
, m_fObjectWidth(0.0)
@@ -76,8 +76,8 @@ SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogControlle
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, mpView(nullptr)
- , m_xBitmapLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("bitmapwin", true)))
- , m_xBitmapStyleLB(m_xBuilder->weld_combo_box("bitmapstyle"))
+ , m_xBitmapLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("imagewin", true)))
+ , m_xBitmapStyleLB(m_xBuilder->weld_combo_box("imagestyle"))
, m_xSizeBox(m_xBuilder->weld_container("sizebox"))
, m_xTsbScale(m_xBuilder->weld_check_button("scaletsb"))
, m_xBitmapWidth(m_xBuilder->weld_metric_spin_button("width", FieldUnit::PERCENT))
@@ -91,8 +91,8 @@ SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogControlle
, m_xTileOffLB(m_xBuilder->weld_combo_box("tileofflb"))
, m_xTileOffset(m_xBuilder->weld_metric_spin_button("tileoffmtr", FieldUnit::PERCENT))
, m_xBtnImport(m_xBuilder->weld_button("BTN_IMPORT"))
- , m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, "CTL_BITMAP_PREVIEW", m_aCtlBitmapPreview))
- , m_xBitmapLBWin(new weld::CustomWeld(*m_xBuilder, "BITMAP", *m_xBitmapLB))
+ , m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, "CTL_IMAGE_PREVIEW", m_aCtlBitmapPreview))
+ , m_xBitmapLBWin(new weld::CustomWeld(*m_xBuilder, "IMAGE", *m_xBitmapLB))
{
// setting the output device
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_BITMAP) );
@@ -106,7 +106,7 @@ SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogControlle
Link<weld::MetricSpinButton&, void> aLink1( LINK(this, SvxBitmapTabPage, ModifyBitmapSizeHdl) );
m_xBitmapWidth->connect_value_changed( aLink1 );
m_xBitmapHeight->connect_value_changed( aLink1 );
- m_xTsbScale->connect_clicked(LINK(this, SvxBitmapTabPage, ClickScaleHdl));
+ m_xTsbScale->connect_toggled(LINK(this, SvxBitmapTabPage, ClickScaleHdl));
m_xPositionLB->connect_changed( LINK( this, SvxBitmapTabPage, ModifyBitmapPositionHdl ) );
Link<weld::MetricSpinButton&, void> aLink( LINK( this, SvxBitmapTabPage, ModifyPositionOffsetHdl ) );
m_xPositionOffX->connect_value_changed(aLink);
@@ -127,6 +127,8 @@ SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogControlle
SetFieldUnit( *m_xBitmapWidth, meFieldUnit, true );
SetFieldUnit( *m_xBitmapHeight, meFieldUnit, true );
+ m_xBitmapLB->SetStyle(WB_FLATVALUESET | WB_NO_DIRECTSELECT | WB_TABSTOP);
+
SfxViewShell* pViewShell = SfxViewShell::Current();
if( pViewShell )
mpView = pViewShell->GetDrawView();
@@ -258,7 +260,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
double fUIScale = 1.0;
if (mpView)
{
- fUIScale = ( mpView->GetModel() ? double(mpView->GetModel()->GetUIScale()) : 1.0);
+ fUIScale = double(mpView->GetModel().GetUIScale());
if (mpView->AreObjectsMarked())
@@ -296,9 +298,9 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
CalculateBitmapPresetSize();
bool bTiled = false; bool bStretched = false;
- if(rAttrs->GetItemState( XATTR_FILLBMP_TILE ) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState( XATTR_FILLBMP_TILE ) != SfxItemState::INVALID)
bTiled = rAttrs->Get( XATTR_FILLBMP_TILE ).GetValue();
- if(rAttrs->GetItemState( XATTR_FILLBMP_STRETCH ) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState( XATTR_FILLBMP_STRETCH ) != SfxItemState::INVALID)
bStretched = rAttrs->Get( XATTR_FILLBMP_STRETCH ).GetValue();
if (bTiled)
@@ -311,42 +313,38 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
tools::Long nWidth = 0;
tools::Long nHeight = 0;
- if(rAttrs->GetItemState(XATTR_FILLBMP_SIZELOG) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState(XATTR_FILLBMP_SIZELOG) != SfxItemState::INVALID)
{
if (rAttrs->Get( XATTR_FILLBMP_SIZELOG ).GetValue())
- {
m_xTsbScale->set_state(TRISTATE_FALSE);
- m_bLogicalSize = true;
- }
else
- {
m_xTsbScale->set_state(TRISTATE_TRUE);
- m_bLogicalSize = false;
- }
}
else
m_xTsbScale->set_state(TRISTATE_INDET);
TriState eRelative = TRISTATE_FALSE;
- if(rAttrs->GetItemState(XATTR_FILLBMP_SIZEX) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState(XATTR_FILLBMP_SIZEX) != SfxItemState::INVALID)
{
nWidth = static_cast<const XFillBmpSizeXItem&>( rAttrs->Get( XATTR_FILLBMP_SIZEX ) ).GetValue();
if(nWidth == 0)
nWidth = rBitmapSize.Width();
else if(nWidth < 0)
{
+ m_bLogicalSize = true;
eRelative = TRISTATE_TRUE;
nWidth = std::abs(nWidth);
}
}
- if(rAttrs->GetItemState( XATTR_FILLBMP_SIZEY ) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState( XATTR_FILLBMP_SIZEY ) != SfxItemState::INVALID)
{
nHeight = rAttrs->Get( XATTR_FILLBMP_SIZEY ).GetValue();
if(nHeight == 0)
nHeight = rBitmapSize.Height();
else if(nHeight < 0)
{
+ m_bLogicalSize = true;
eRelative = TRISTATE_TRUE;
nHeight = std::abs(nHeight);
}
@@ -369,13 +367,13 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
}
}
- if( rAttrs->GetItemState( XATTR_FILLBMP_POS ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_POS ) != SfxItemState::INVALID )
{
RectPoint eValue = rAttrs->Get( XATTR_FILLBMP_POS ).GetValue();
m_xPositionLB->set_active( static_cast< sal_Int32 >(eValue) );
}
- if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETX ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETX ) != SfxItemState::INVALID )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_POSOFFSETX ).GetValue();
m_xPositionOffX->set_value(nValue, FieldUnit::PERCENT);
@@ -383,7 +381,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
else
m_xPositionOffX->set_text("");
- if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETY ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETY ) != SfxItemState::INVALID )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_POSOFFSETY ).GetValue();
m_xPositionOffY->set_value(nValue, FieldUnit::PERCENT);
@@ -391,7 +389,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
else
m_xPositionOffY->set_text("");
- if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETX ) != SfxItemState::DONTCARE)
+ if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETX ) != SfxItemState::INVALID)
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_TILEOFFSETX ).GetValue();
if(nValue > 0)
@@ -401,7 +399,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
}
}
- if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETY ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETY ) != SfxItemState::INVALID )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_TILEOFFSETY ).GetValue();
if(nValue > 0)
@@ -462,15 +460,14 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, ValueSet*, void)
}
else
{
- const SfxPoolItem* pPoolItem = nullptr;
-
- if(SfxItemState::SET == m_rOutAttrs.GetItemState(GetWhich(XATTR_FILLSTYLE), true, &pPoolItem))
+ if(const XFillStyleItem* pFillStyleItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_FILLSTYLE)))
{
- const drawing::FillStyle eXFS(static_cast<const XFillStyleItem*>(pPoolItem)->GetValue());
+ const drawing::FillStyle eXFS(pFillStyleItem->GetValue());
- if((drawing::FillStyle_BITMAP == eXFS) && (SfxItemState::SET == m_rOutAttrs.GetItemState(GetWhich(XATTR_FILLBITMAP), true, &pPoolItem)))
+ const XFillBitmapItem* pBitmapItem;
+ if((drawing::FillStyle_BITMAP == eXFS) && (pBitmapItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_FILLBITMAP))))
{
- pGraphicObject.reset(new GraphicObject(static_cast<const XFillBitmapItem*>(pPoolItem)->GetGraphicObject()));
+ pGraphicObject.reset(new GraphicObject(pBitmapItem->GetGraphicObject()));
}
}
@@ -490,10 +487,11 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, ValueSet*, void)
{
BitmapEx aBmpEx(pGraphicObject->GetGraphic().GetBitmapEx());
Size aTempBitmapSize = aBmpEx.GetSizePixel();
- const double fUIScale = ( (mpView && mpView->GetModel()) ? double(mpView->GetModel()->GetUIScale()) : 1.0);
+ const double fUIScale = mpView ? double(mpView->GetModel().GetUIScale()) : 1.0;
+ Size aBitmapSize100mm = o3tl::convert(aTempBitmapSize, o3tl::Length::pt, o3tl::Length::mm100);
- rBitmapSize.setWidth( (OutputDevice::LogicToLogic(static_cast<sal_Int32>(aTempBitmapSize.Width()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale );
- rBitmapSize.setHeight( (OutputDevice::LogicToLogic(static_cast<sal_Int32>(aTempBitmapSize.Height()),MapUnit::MapPixel, MapUnit::Map100thMM )) / fUIScale );
+ rBitmapSize.setWidth(aBitmapSize100mm.Width() / fUIScale);
+ rBitmapSize.setHeight(aBitmapSize100mm.Height() / fUIScale);
CalculateBitmapPresetSize();
ModifyBitmapStyleHdl( *m_xBitmapStyleLB );
ModifyBitmapPositionHdl( *m_xPositionLB );
@@ -520,7 +518,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void)
if( nPos == VALUESET_ITEM_NOTFOUND )
return;
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_NEW_BITMAP ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_NEW_BITMAP ) );
OUString aName( m_pBitmapList->GetBitmap( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -529,7 +527,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void)
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
sal_Int32 nBitmapPos = SearchBitmapList( aName );
bool bValidBitmapName = (nBitmapPos == static_cast<sal_Int32>(nPos) ) || (nBitmapPos == -1);
@@ -563,21 +561,21 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickDeleteHdl, SvxPresetListBox*, void)
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
- if (xQueryBox->run() == RET_YES)
- {
- sal_uInt16 nNextId = m_xBitmapLB->GetItemId(nPos + 1);
- if (!nNextId)
- nNextId = m_xBitmapLB->GetItemId(nPos - 1);
+ if (xQueryBox->run() != RET_YES)
+ return;
- m_pBitmapList->Remove( static_cast<sal_uInt16>(nPos) );
- m_xBitmapLB->RemoveItem( nId );
+ sal_uInt16 nNextId = m_xBitmapLB->GetItemId(nPos + 1);
+ if (!nNextId)
+ nNextId = m_xBitmapLB->GetItemId(nPos - 1);
- m_xBitmapLB->SelectItem(nNextId);
+ m_pBitmapList->Remove( static_cast<sal_uInt16>(nPos) );
+ m_xBitmapLB->RemoveItem( nId );
- m_aCtlBitmapPreview.Invalidate();
- ModifyBitmapHdl(m_xBitmapLB.get());
- *m_pnBitmapListState |= ChangeType::MODIFIED;
- }
+ m_xBitmapLB->SelectItem(nNextId);
+
+ m_aCtlBitmapPreview.Invalidate();
+ ModifyBitmapHdl(m_xBitmapLB.get());
+ *m_pnBitmapListState |= ChangeType::MODIFIED;
}
IMPL_LINK_NOARG( SvxBitmapTabPage, ModifyBitmapSizeHdl, weld::MetricSpinButton&, void )
@@ -596,7 +594,7 @@ IMPL_LINK_NOARG( SvxBitmapTabPage, ModifyBitmapSizeHdl, weld::MetricSpinButton&,
m_aCtlBitmapPreview.Invalidate();
}
-IMPL_LINK_NOARG( SvxBitmapTabPage, ClickScaleHdl, weld::Button&, void )
+IMPL_LINK_NOARG( SvxBitmapTabPage, ClickScaleHdl, weld::Toggleable&, void )
{
if (m_xTsbScale->get_state() == TRISTATE_TRUE)
{
@@ -715,7 +713,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
{
weld::Window* pDialogFrameWeld = GetFrameWeld();
- SvxOpenGraphicDialog aDlg(CuiResId(RID_SVXSTR_ADD_IMAGE), pDialogFrameWeld);
+ SvxOpenGraphicDialog aDlg(CuiResId(RID_CUISTR_ADD_IMAGE), pDialogFrameWeld);
aDlg.EnableLink(false);
tools::Long nCount = m_pBitmapList->Count();
@@ -730,7 +728,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
if( !nError )
{
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_EXT_BITMAP));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_EXT_BITMAP));
// convert file URL to UI name
OUString aName;
@@ -742,7 +740,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
while( pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bool bDifferent = true;