summaryrefslogtreecommitdiff
path: root/basctl/source/dlged/dlged.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basctl/source/dlged/dlged.cxx')
-rw-r--r--basctl/source/dlged/dlged.cxx172
1 files changed, 82 insertions, 90 deletions
diff --git a/basctl/source/dlged/dlged.cxx b/basctl/source/dlged/dlged.cxx
index 935dcfd5b0b4..c4683f91d44f 100644
--- a/basctl/source/dlged/dlged.cxx
+++ b/basctl/source/dlged/dlged.cxx
@@ -33,6 +33,7 @@
#include "baside3.hxx"
#include <com/sun/star/awt/XDialog.hpp>
+#include <com/sun/star/awt/UnoControlDialogModel.hpp>
#include <com/sun/star/resource/StringResource.hpp>
#include <com/sun/star/util/XCloneable.hpp>
#include <com/sun/star/util/NumberFormatsSupplier.hpp>
@@ -872,9 +873,9 @@ void DlgEditor::Paste()
if ( xTransf->isDataFlavorSupported( m_ClipboardDataFlavors[0] ) )
{
// create clipboard dialog model from xml
- Reference< lang::XMultiServiceFactory > xMSF = getProcessServiceFactory();
- Reference< container::XNameContainer > xClipDialogModel( xMSF->createInstance(
- "com.sun.star.awt.UnoControlDialogModel" ), uno::UNO_QUERY );
+ Reference< uno::XComponentContext > xContext = getProcessComponentContext();
+ Reference< awt::XUnoControlDialogModel > xClipDialogModel =
+ awt::UnoControlDialogModel::create( xContext );
bool bSourceIsLocalized = false;
Sequence< sal_Int8 > DialogModelBytes;
@@ -914,102 +915,93 @@ void DlgEditor::Paste()
aAny >>= DialogModelBytes;
}
- if ( xClipDialogModel.is() )
- {
- Reference< XComponentContext > xContext(
- comphelper::getComponentContext( xMSF ) );
- ::xmlscript::importDialogModel( ::xmlscript::createInputStream( rtl::ByteSequence(DialogModelBytes.getArray(), DialogModelBytes.getLength()) ) , xClipDialogModel, xContext, m_xDocument );
- }
+ ::xmlscript::importDialogModel( ::xmlscript::createInputStream( rtl::ByteSequence(DialogModelBytes.getArray(), DialogModelBytes.getLength()) ) , xClipDialogModel, xContext, m_xDocument );
// get control models from clipboard dialog model
- Reference< ::com::sun::star::container::XNameAccess > xNameAcc( xClipDialogModel, UNO_QUERY );
- if ( xNameAcc.is() )
- {
- Sequence< OUString > aNames = xNameAcc->getElementNames();
- const OUString* pNames = aNames.getConstArray();
- sal_uInt32 nCtrls = aNames.getLength();
+ Sequence< OUString > aNames = xClipDialogModel->getElementNames();
+ const OUString* pNames = aNames.getConstArray();
+ sal_uInt32 nCtrls = aNames.getLength();
- Reference< resource::XStringResourcePersistence > xStringResourcePersistence;
- if( nCtrls > 0 && bSourceIsLocalized )
- {
- xStringResourcePersistence = css::resource::StringResource::create( getProcessComponentContext() );
- xStringResourcePersistence->importBinary( aResData );
- }
- for( sal_uInt32 n = 0; n < nCtrls; n++ )
+ Reference< resource::XStringResourcePersistence > xStringResourcePersistence;
+ if( nCtrls > 0 && bSourceIsLocalized )
+ {
+ xStringResourcePersistence = css::resource::StringResource::create( getProcessComponentContext() );
+ xStringResourcePersistence->importBinary( aResData );
+ }
+ for( sal_uInt32 n = 0; n < nCtrls; n++ )
+ {
+ Any aA = xClipDialogModel->getByName( pNames[n] );
+ Reference< ::com::sun::star::awt::XControlModel > xCM;
+ aA >>= xCM;
+
+ // clone the control model
+ Reference< util::XCloneable > xClone( xCM, uno::UNO_QUERY );
+ Reference< awt::XControlModel > xCtrlModel( xClone->createClone(), uno::UNO_QUERY );
+
+ DlgEdObj* pCtrlObj = new DlgEdObj();
+ pCtrlObj->SetDlgEdForm(pDlgEdForm); // set parent form
+ pDlgEdForm->AddChild(pCtrlObj); // add child to parent form
+ pCtrlObj->SetUnoControlModel( xCtrlModel ); // set control model
+
+ // set new name
+ OUString aOUniqueName( pCtrlObj->GetUniqueName() );
+ Reference< beans::XPropertySet > xPSet( xCtrlModel , UNO_QUERY );
+ Any aUniqueName;
+ aUniqueName <<= aOUniqueName;
+ xPSet->setPropertyValue( DLGED_PROP_NAME, aUniqueName );
+
+ // set tabindex
+ Reference< container::XNameAccess > xNA( m_xUnoControlDialogModel , UNO_QUERY );
+ Sequence< OUString > aNames_ = xNA->getElementNames();
+ Any aTabIndex;
+ aTabIndex <<= (sal_Int16) aNames_.getLength();
+ xPSet->setPropertyValue( DLGED_PROP_TABINDEX, aTabIndex );
+
+ if( bLocalized )
{
- Any aA = xNameAcc->getByName( pNames[n] );
- Reference< ::com::sun::star::awt::XControlModel > xCM;
- aA >>= xCM;
-
- // clone the control model
- Reference< util::XCloneable > xClone( xCM, uno::UNO_QUERY );
- Reference< awt::XControlModel > xCtrlModel( xClone->createClone(), uno::UNO_QUERY );
-
- DlgEdObj* pCtrlObj = new DlgEdObj();
- pCtrlObj->SetDlgEdForm(pDlgEdForm); // set parent form
- pDlgEdForm->AddChild(pCtrlObj); // add child to parent form
- pCtrlObj->SetUnoControlModel( xCtrlModel ); // set control model
-
- // set new name
- OUString aOUniqueName( pCtrlObj->GetUniqueName() );
- Reference< beans::XPropertySet > xPSet( xCtrlModel , UNO_QUERY );
- Any aUniqueName;
- aUniqueName <<= aOUniqueName;
- xPSet->setPropertyValue( DLGED_PROP_NAME, aUniqueName );
-
- // set tabindex
- Reference< container::XNameAccess > xNA( m_xUnoControlDialogModel , UNO_QUERY );
- Sequence< OUString > aNames_ = xNA->getElementNames();
- Any aTabIndex;
- aTabIndex <<= (sal_Int16) aNames_.getLength();
- xPSet->setPropertyValue( DLGED_PROP_TABINDEX, aTabIndex );
-
- if( bLocalized )
+ Any aControlAny;
+ aControlAny <<= xCtrlModel;
+ if( bSourceIsLocalized && xStringResourcePersistence.is() )
{
- Any aControlAny;
- aControlAny <<= xCtrlModel;
- if( bSourceIsLocalized && xStringResourcePersistence.is() )
- {
- Reference< resource::XStringResourceResolver >
- xSourceStringResolver( xStringResourcePersistence, UNO_QUERY );
- LocalizationMgr::copyResourcesForPastedEditorObject( this,
- aControlAny, aOUniqueName, xSourceStringResolver );
- }
- else
- {
- LocalizationMgr::setControlResourceIDsForNewEditorObject
- ( this, aControlAny, aOUniqueName );
- }
+ Reference< resource::XStringResourceResolver >
+ xSourceStringResolver( xStringResourcePersistence, UNO_QUERY );
+ LocalizationMgr::copyResourcesForPastedEditorObject( this,
+ aControlAny, aOUniqueName, xSourceStringResolver );
+ }
+ else
+ {
+ LocalizationMgr::setControlResourceIDsForNewEditorObject
+ ( this, aControlAny, aOUniqueName );
}
-
- // insert control model in editor dialog model
- Any aCtrlModel;
- aCtrlModel <<= xCtrlModel;
- m_xUnoControlDialogModel->insertByName( aOUniqueName , aCtrlModel );
-
- // insert object into drawing page
- pDlgEdModel->GetPage(0)->InsertObject( pCtrlObj );
- pCtrlObj->SetRectFromProps();
- pCtrlObj->UpdateStep();
- pDlgEdForm->UpdateTabOrderAndGroups();
- pCtrlObj->StartListening(); // start listening
-
- // mark object
- SdrPageView* pPgView = pDlgEdView->GetSdrPageView();
- pDlgEdView->MarkObj( pCtrlObj, pPgView, false, true);
}
- // center marked objects in dialog editor form
- Point aMarkCenter = (pDlgEdView->GetMarkedObjRect()).Center();
- Point aFormCenter = (pDlgEdForm->GetSnapRect()).Center();
- Point aPoint = aFormCenter - aMarkCenter;
- Size aSize( aPoint.X() , aPoint.Y() );
- pDlgEdView->MoveMarkedObj( aSize ); // update of control model properties (position + size) in NbcMove
- pDlgEdView->MarkListHasChanged();
-
- // dialog model changed
- SetDialogModelChanged(true);
+ // insert control model in editor dialog model
+ Any aCtrlModel;
+ aCtrlModel <<= xCtrlModel;
+ m_xUnoControlDialogModel->insertByName( aOUniqueName , aCtrlModel );
+
+ // insert object into drawing page
+ pDlgEdModel->GetPage(0)->InsertObject( pCtrlObj );
+ pCtrlObj->SetRectFromProps();
+ pCtrlObj->UpdateStep();
+ pDlgEdForm->UpdateTabOrderAndGroups();
+ pCtrlObj->StartListening(); // start listening
+
+ // mark object
+ SdrPageView* pPgView = pDlgEdView->GetSdrPageView();
+ pDlgEdView->MarkObj( pCtrlObj, pPgView, false, true);
}
+
+ // center marked objects in dialog editor form
+ Point aMarkCenter = (pDlgEdView->GetMarkedObjRect()).Center();
+ Point aFormCenter = (pDlgEdForm->GetSnapRect()).Center();
+ Point aPoint = aFormCenter - aMarkCenter;
+ Size aSize( aPoint.X() , aPoint.Y() );
+ pDlgEdView->MoveMarkedObj( aSize ); // update of control model properties (position + size) in NbcMove
+ pDlgEdView->MarkListHasChanged();
+
+ // dialog model changed
+ SetDialogModelChanged(true);
}
}
}