Kaydet (Commit) 0833ed1c authored tarafından Vladimir Glazounov's avatar Vladimir Glazounov

INTEGRATION: CWS dba31a (1.14.24); FILE MERGED

2008/07/30 12:08:21 fs 1.14.24.10: RESYNC: (1.18-1.19); FILE MERGED
2008/07/15 08:38:56 fs 1.14.24.9: remove unused code
Issue number:  #i91592#
Submitted by:  cmc@openoffice.org
Reviewed by:   frank.schoenheit@sun.com
2008/07/10 06:45:51 oj 1.14.24.8: #i88727# new area prop for shapes and some model changes
2008/07/07 06:40:21 oj 1.14.24.7: #i80200# method to select different types
2008/07/02 09:19:33 oj 1.14.24.6: RESYNC: (1.16-1.18); FILE MERGED
2008/07/01 07:02:13 oj 1.14.24.5: #i77916# impl zoom and move config data into ext
2008/06/26 14:26:34 oj 1.14.24.4: #i77916# impl zooming in report builder
2008/06/25 12:21:34 oj 1.14.24.3: merge conflicts resolved
2008/06/24 12:07:25 oj 1.14.24.2: RESYNC: (1.14-1.16); FILE MERGED
2008/06/13 11:40:20 oj 1.14.24.1: #i88506# impl hyphenation
üst 14c2fe20
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite * OpenOffice.org - a multi-platform office productivity suite
* *
* $RCSfile: ReportController.cxx,v $ * $RCSfile: ReportController.cxx,v $
* $Revision: 1.19 $ * $Revision: 1.20 $
* *
* This file is part of OpenOffice.org. * This file is part of OpenOffice.org.
* *
...@@ -59,12 +59,12 @@ ...@@ -59,12 +59,12 @@
#include <tools/diagnose_ex.h> #include <tools/diagnose_ex.h>
#include "rptui_slotid.hrc" #include "rptui_slotid.hrc"
#include "reportformula.hxx" #include "reportformula.hxx"
#include <comphelper/documentconstants.hxx> #include <comphelper/documentconstants.hxx>
#include <comphelper/property.hxx> #include <comphelper/property.hxx>
#include <comphelper/types.hxx>
#include <svx/fmview.hxx>
#include <svx/paperinf.hxx>
#include <comphelper/sequenceashashmap.hxx> #include <comphelper/sequenceashashmap.hxx>
#include <comphelper/types.hxx>
#include <connectivity/dbtools.hxx> #include <connectivity/dbtools.hxx>
#include <com/sun/star/view/PaperFormat.hpp> #include <com/sun/star/view/PaperFormat.hpp>
#include <com/sun/star/style/GraphicLocation.hpp> #include <com/sun/star/style/GraphicLocation.hpp>
...@@ -93,52 +93,61 @@ ...@@ -93,52 +93,61 @@
#include <com/sun/star/awt/FontSlant.hpp> #include <com/sun/star/awt/FontSlant.hpp>
#include <com/sun/star/frame/status/FontHeight.hpp> #include <com/sun/star/frame/status/FontHeight.hpp>
#include <com/sun/star/report/XFormattedField.hpp> #include <com/sun/star/report/XFormattedField.hpp>
#include <com/sun/star/sdb/SQLContext.hpp>
#include <com/sun/star/sdbc/SQLWarning.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include "DesignView.hxx"
#include "ModuleHelper.hxx"
#include "RptObject.hxx"
#include "Undo.hxx"
#include <svx/dataaccessdescriptor.hxx>
#include <vcl/msgbox.hxx> #include <vcl/msgbox.hxx>
#include <vcl/waitobj.hxx> #include <vcl/waitobj.hxx>
#include <svx/fmview.hxx>
#include <svx/paperinf.hxx>
#include <svx/svxids.hrc> #include <svx/svxids.hrc>
#include <svx/svdobj.hxx> #include <svx/svdobj.hxx>
#include <svx/dataaccessdescriptor.hxx>
#include <svx/svxenum.hxx>
#include <svx/pageitem.hxx>
#include <svx/lrspitem.hxx>
#include <svx/ulspitem.hxx>
#include <svx/sizeitem.hxx>
#include <svx/zoomitem.hxx>
#include <svx/zoomslideritem.hxx>
#include <svx/brshitem.hxx>
#include <svx/flagsdef.hxx> //CHINA001
#include <svx/svdpagv.hxx>
#include "DesignView.hxx"
#include "ModuleHelper.hxx"
#include "RptObject.hxx"
#include "Undo.hxx"
#include "uistrings.hrc" #include "uistrings.hrc"
#include <svtools/cliplistener.hxx>
#include "RptDef.hxx" #include "RptDef.hxx"
#include "ReportSection.hxx" #include "ReportSection.hxx"
#include "SectionView.hxx" #include "SectionView.hxx"
#include "UndoActions.hxx" #include "UndoActions.hxx"
#include "dlgpage.hxx" #include "dlgpage.hxx"
#ifndef _RPTUI_DLGRESID_HRC
#include "RptResId.hrc" #include "RptResId.hrc"
#endif
#include <svx/svxenum.hxx>
#include <svx/pageitem.hxx>
#include <svx/lrspitem.hxx>
#include <svx/ulspitem.hxx>
#include <svx/sizeitem.hxx>
#include <svtools/itempool.hxx> #include <svtools/itempool.hxx>
#include <svtools/itemset.hxx> #include <svtools/itemset.hxx>
#include <svtools/aeitem.hxx> //CHINA001
#include <svtools/cliplistener.hxx>
#include <vos/mutex.hxx> #include <vos/mutex.hxx>
#include "PropertyForward.hxx" #include "PropertyForward.hxx"
#include <svtools/aeitem.hxx> //CHINA001 #include "SectionWindow.hxx"
#include <svx/brshitem.hxx>
#include <svx/flagsdef.hxx> //CHINA001
#include <toolkit/helper/convert.hxx> #include <toolkit/helper/convert.hxx>
#include "GroupsSorting.hxx" #include "GroupsSorting.hxx"
#include "PageNumber.hxx" #include "PageNumber.hxx"
#include <toolkit/helper/vclunohelper.hxx> #include <toolkit/helper/vclunohelper.hxx>
#include "UndoEnv.hxx" #include "UndoEnv.hxx"
#include "InsertFunctions.hxx" #include "InsertFunctions.hxx"
#include <svx/svdpagv.hxx>
#include <boost/mem_fn.hpp> #include <boost/mem_fn.hpp>
#include <boost/bind.hpp> #include <boost/bind.hpp>
#include <boost/utility.hpp> #include <boost/utility.hpp>
#include <com/sun/star/sdb/SQLContext.hpp>
#include <com/sun/star/sdbc/SQLWarning.hpp>
#include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/exc_hlp.hxx>
#include <unotools/confignode.hxx> #include <unotools/confignode.hxx>
#include <helpids.hrc> #include <helpids.hrc>
...@@ -161,6 +170,7 @@ using namespace ::dbtools; ...@@ -161,6 +170,7 @@ using namespace ::dbtools;
using namespace ::rptui; using namespace ::rptui;
using namespace ::dbaui; using namespace ::dbaui;
using namespace ::comphelper; using namespace ::comphelper;
using namespace ::cppu;
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
namespace namespace
...@@ -262,10 +272,14 @@ Reference< XInterface > OReportController::create(Reference< XComponentContext > ...@@ -262,10 +272,14 @@ Reference< XInterface > OReportController::create(Reference< XComponentContext >
{ {
return *(new OReportController(xContext)); return *(new OReportController(xContext));
} }
#define PROPERTY_ID_ZOOMVALUE 1
DBG_NAME( rpt_OReportController ) DBG_NAME( rpt_OReportController )
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
OReportController::OReportController(Reference< XComponentContext > const & xContext) OReportController::OReportController(Reference< XComponentContext > const & xContext)
: OReportController_BASE(Reference< XMultiServiceFactory >(xContext->getServiceManager(),UNO_QUERY)) : OReportController_BASE(Reference< XMultiServiceFactory >(xContext->getServiceManager(),UNO_QUERY))
,OPropertyStateContainer(OGenericUnoController_Base::rBHelper)
,m_aSelectionListeners( m_aMutex ) ,m_aSelectionListeners( m_aMutex )
,m_pMyOwnView(NULL) ,m_pMyOwnView(NULL)
,m_pClipbordNotifier(NULL) ,m_pClipbordNotifier(NULL)
...@@ -273,7 +287,7 @@ OReportController::OReportController(Reference< XComponentContext > const & xCon ...@@ -273,7 +287,7 @@ OReportController::OReportController(Reference< XComponentContext > const & xCon
,m_xContext(xContext) ,m_xContext(xContext)
,m_nSplitPos(-1) ,m_nSplitPos(-1)
,m_nPageNum(-1) ,m_nPageNum(-1)
//,m_nExecuteReportEvent(0) ,m_nZoomValue(100)
,m_bShowRuler(sal_True) ,m_bShowRuler(sal_True)
,m_bGridVisible(sal_True) ,m_bGridVisible(sal_True)
,m_bGridUse(sal_True) ,m_bGridUse(sal_True)
...@@ -285,6 +299,7 @@ OReportController::OReportController(Reference< XComponentContext > const & xCon ...@@ -285,6 +299,7 @@ OReportController::OReportController(Reference< XComponentContext > const & xCon
{ {
m_sMode = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("normal")); m_sMode = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("normal"));
DBG_CTOR( rpt_OReportController,NULL); DBG_CTOR( rpt_OReportController,NULL);
registerProperty(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ZoomValue")),PROPERTY_ID_ZOOMVALUE,beans::PropertyAttribute::BOUND| beans::PropertyAttribute::TRANSIENT, &m_nZoomValue, ::getCppuType(reinterpret_cast< sal_Int16*>(NULL)));
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
OReportController::~OReportController() OReportController::~OReportController()
...@@ -326,9 +341,9 @@ void OReportController::disposing() ...@@ -326,9 +341,9 @@ void OReportController::disposing()
{ {
try try
{ {
::boost::shared_ptr<OReportSection> pSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSectionWindow = m_pMyOwnView->getMarkedSection();
if ( pSection ) if ( pSectionWindow )
pSection->deactivateOle(); pSectionWindow->getReportSection().deactivateOle();
getUndoMgr()->Clear(); // clear all undo redo things getUndoMgr()->Clear(); // clear all undo redo things
listen(false); listen(false);
} }
...@@ -507,6 +522,10 @@ FeatureState OReportController::GetState(sal_uInt16 _nId) const ...@@ -507,6 +522,10 @@ FeatureState OReportController::GetState(sal_uInt16 _nId) const
case SID_TERMINATE_INPLACEACTIVATION: case SID_TERMINATE_INPLACEACTIVATION:
aReturn.bEnabled = sal_True; aReturn.bEnabled = sal_True;
break; break;
case SID_SELECT_ALL_EDITS:
case SID_SELECT_ALL_LABELS:
aReturn.bEnabled = sal_True;
break;
case SID_RPT_NEW_FUNCTION: case SID_RPT_NEW_FUNCTION:
aReturn.bEnabled = isEditable(); aReturn.bEnabled = isEditable();
break; break;
...@@ -525,9 +544,9 @@ FeatureState OReportController::GetState(sal_uInt16 _nId) const ...@@ -525,9 +544,9 @@ FeatureState OReportController::GetState(sal_uInt16 _nId) const
aReturn.bEnabled = isEditable() && m_pMyOwnView->HasSelection() && !m_pMyOwnView->isHandleEvent(_nId); aReturn.bEnabled = isEditable() && m_pMyOwnView->HasSelection() && !m_pMyOwnView->isHandleEvent(_nId);
if ( aReturn.bEnabled ) if ( aReturn.bEnabled )
{ {
::boost::shared_ptr<OReportSection> pSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSectionWindow = m_pMyOwnView->getMarkedSection();
if ( pSection ) if ( pSectionWindow )
aReturn.bEnabled = !pSection->isUiActive(); aReturn.bEnabled = !pSectionWindow->getReportSection().isUiActive();
} }
{ {
::rtl::OUString sText = String(ModuleRes(RID_STR_DELETE)); ::rtl::OUString sText = String(ModuleRes(RID_STR_DELETE));
...@@ -872,6 +891,28 @@ FeatureState OReportController::GetState(sal_uInt16 _nId) const ...@@ -872,6 +891,28 @@ FeatureState OReportController::GetState(sal_uInt16 _nId) const
case SID_PRINTPREVIEW: case SID_PRINTPREVIEW:
aReturn.bEnabled = sal_False; aReturn.bEnabled = sal_False;
break; break;
case SID_ATTR_ZOOM:
aReturn.bEnabled = sal_True;
{
SvxZoomItem aZoom(SVX_ZOOM_PERCENT,m_nZoomValue);
aZoom.SetValueSet(SVX_ZOOM_ENABLE_50|SVX_ZOOM_ENABLE_75|SVX_ZOOM_ENABLE_100|SVX_ZOOM_ENABLE_150|SVX_ZOOM_ENABLE_200);
aZoom.QueryValue(aReturn.aValue);
//aReturn.sTitle = ::rtl::OUString::valueOf((sal_Int32)m_nZoomValue);
}
break;
case SID_ATTR_ZOOMSLIDER:
aReturn.bEnabled = sal_True;
{
SvxZoomSliderItem aZoomSlider(m_nZoomValue);
aZoomSlider.AddSnappingPoint(50);
aZoomSlider.AddSnappingPoint(75);
aZoomSlider.AddSnappingPoint(100);
aZoomSlider.AddSnappingPoint(150);
aZoomSlider.AddSnappingPoint(200);
aZoomSlider.QueryValue(aReturn.aValue);
//aReturn.sTitle = ::rtl::OUString::valueOf((sal_Int32)m_nZoomValue);
}
break;
default: default:
aReturn = OReportController_BASE::GetState(_nId); aReturn = OReportController_BASE::GetState(_nId);
} }
...@@ -1045,7 +1086,7 @@ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue > ...@@ -1045,7 +1086,7 @@ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::BOTTOM,SID_SECTION_ALIGN_DOWN == _nId); alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::BOTTOM,SID_SECTION_ALIGN_DOWN == _nId);
break; break;
case SID_SELECTALL: case SID_SELECTALL:
m_pMyOwnView->SelectAll(); m_pMyOwnView->SelectAll(OBJ_NONE);
break; break;
case SID_SELECTALL_IN_SECTION: case SID_SELECTALL_IN_SECTION:
{ {
...@@ -1058,11 +1099,17 @@ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue > ...@@ -1058,11 +1099,17 @@ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >
m_pMyOwnView->SetMode(RPTUI_SELECT); m_pMyOwnView->SetMode(RPTUI_SELECT);
InvalidateFeature( SID_OBJECT_SELECT ); InvalidateFeature( SID_OBJECT_SELECT );
break; break;
case SID_SELECT_ALL_EDITS:
m_pMyOwnView->SelectAll(OBJ_DLG_FORMATTEDFIELD);
break;
case SID_SELECT_ALL_LABELS:
m_pMyOwnView->SelectAll(OBJ_DLG_FIXEDTEXT);
break;
case SID_TERMINATE_INPLACEACTIVATION: case SID_TERMINATE_INPLACEACTIVATION:
{ {
::boost::shared_ptr<OReportSection> pSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSection = m_pMyOwnView->getMarkedSection();
if ( pSection ) if ( pSection )
pSection->deactivateOle(); pSection->getReportSection().deactivateOle();
} }
break; break;
case SID_SELECT: case SID_SELECT:
...@@ -1545,18 +1592,24 @@ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue > ...@@ -1545,18 +1592,24 @@ void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >
InvalidateAll(); InvalidateAll();
return; return;
case SID_GROUP: case SID_GROUP:
// { break;
// ::boost::shared_ptr<OReportSection> pReportSection = m_pMyOwnView->getMarkedSection(); case SID_ATTR_ZOOM:
//if ( pReportSection.get() ) if ( aArgs.getLength() == 1 && aArgs[0].Name.equalsAscii("Zoom") )
//{ {
// ::std::vector< uno::Reference< uno::XInterface > > aSelection; SvxZoomItem aZoomItem;
// uno::Reference<report::XSection> xSection = pReportSection->getSection(); aZoomItem.PutValue(aArgs[0].Value);
// const String sUndoAction(ModuleRes(RID_STR_UNDO_GROUP)); m_nZoomValue = aZoomItem.GetValue();
// getUndoMgr()->EnterListAction( sUndoAction, String() ); impl_zoom_nothrow();
} // if ( aArgs.getLength() == 1 && aArgs[0].Name.equalsAscii("Zoom") )
// getUndoMgr()->LeaveListAction(); break;
// } case SID_ATTR_ZOOMSLIDER:
// } if ( aArgs.getLength() == 1 && aArgs[0].Name.equalsAscii("ZoomSlider") )
{
SvxZoomSliderItem aZoomSlider;
aZoomSlider.PutValue(aArgs[0].Value);
m_nZoomValue = aZoomSlider.GetValue();
impl_zoom_nothrow();
}
break; break;
default: default:
OReportController_BASE::Execute(_nId,aArgs); OReportController_BASE::Execute(_nId,aArgs);
...@@ -1623,7 +1676,10 @@ void OReportController::impl_initialize( ) ...@@ -1623,7 +1676,10 @@ void OReportController::impl_initialize( )
m_nPageNum = -1; m_nPageNum = -1;
} }
m_pMyOwnView->collapseSections(m_aCollapsedSections); m_pMyOwnView->collapseSections(m_aCollapsedSections);
impl_zoom_nothrow();
m_pMyOwnView->Resize();
m_pMyOwnView->Invalidate(); m_pMyOwnView->Invalidate();
InvalidateAll();
if ( m_bShowProperties && m_nPageNum == -1 ) if ( m_bShowProperties && m_nPageNum == -1 )
{ {
...@@ -1729,6 +1785,8 @@ void OReportController::describeSupportedFeatures() ...@@ -1729,6 +1785,8 @@ void OReportController::describeSupportedFeatures()
implDescribeSupportedFeature( ".uno:DbSortingAndGrouping", SID_SORTINGANDGROUPING, CommandGroup::VIEW ); implDescribeSupportedFeature( ".uno:DbSortingAndGrouping", SID_SORTINGANDGROUPING, CommandGroup::VIEW );
implDescribeSupportedFeature( ".uno:PageHeaderFooter", SID_PAGEHEADERFOOTER, CommandGroup::VIEW ); implDescribeSupportedFeature( ".uno:PageHeaderFooter", SID_PAGEHEADERFOOTER, CommandGroup::VIEW );
implDescribeSupportedFeature( ".uno:ReportHeaderFooter", SID_REPORTHEADERFOOTER, CommandGroup::VIEW ); implDescribeSupportedFeature( ".uno:ReportHeaderFooter", SID_REPORTHEADERFOOTER, CommandGroup::VIEW );
implDescribeSupportedFeature( ".uno:ZoomSlider", SID_ATTR_ZOOMSLIDER, CommandGroup::VIEW );
implDescribeSupportedFeature( ".uno:Zoom", SID_ATTR_ZOOM, CommandGroup::VIEW );
//implDescribeSupportedFeature( ".uno:SwitchControlDesignMode", SID_FM_DESIGN_MODE, CommandGroup::VIEW ); //implDescribeSupportedFeature( ".uno:SwitchControlDesignMode", SID_FM_DESIGN_MODE, CommandGroup::VIEW );
implDescribeSupportedFeature( ".uno:ConditionalFormatting", SID_CONDITIONALFORMATTING, CommandGroup::FORMAT ); implDescribeSupportedFeature( ".uno:ConditionalFormatting", SID_CONDITIONALFORMATTING, CommandGroup::FORMAT );
...@@ -1954,6 +2012,8 @@ void OReportController::describeSupportedFeatures() ...@@ -1954,6 +2012,8 @@ void OReportController::describeSupportedFeatures()
implDescribeSupportedFeature( ".uno:NextMark", SID_NEXT_MARK); implDescribeSupportedFeature( ".uno:NextMark", SID_NEXT_MARK);
implDescribeSupportedFeature( ".uno:PrevMark", SID_PREV_MARK); implDescribeSupportedFeature( ".uno:PrevMark", SID_PREV_MARK);
implDescribeSupportedFeature( ".uno:TerminateInplaceActivation", SID_TERMINATE_INPLACEACTIVATION); implDescribeSupportedFeature( ".uno:TerminateInplaceActivation", SID_TERMINATE_INPLACEACTIVATION);
implDescribeSupportedFeature( ".uno:SelectAllLabels", SID_SELECT_ALL_LABELS);
implDescribeSupportedFeature( ".uno:SelectAllEdits", SID_SELECT_ALL_EDITS);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
SfxUndoManager* OReportController::getUndoMgr() SfxUndoManager* OReportController::getUndoMgr()
...@@ -2478,15 +2538,19 @@ uno::Any SAL_CALL OReportController::getViewData(void) throw( uno::RuntimeExcept ...@@ -2478,15 +2538,19 @@ uno::Any SAL_CALL OReportController::getViewData(void) throw( uno::RuntimeExcept
aProps[nCount].Value <<= aCollapsedSections; aProps[nCount].Value <<= aCollapsedSections;
} }
::boost::shared_ptr<OReportSection> pSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSectionWindow = m_pMyOwnView->getMarkedSection();
if ( pSection.get() ) if ( pSectionWindow.get() )
{ {
const sal_Int32 nCount = aProps.getLength(); const sal_Int32 nCount = aProps.getLength();
aProps.realloc( nCount + 1 ); aProps.realloc( nCount + 1 );
aProps[nCount].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MarkedSection")); aProps[nCount].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MarkedSection"));
aProps[nCount].Value <<= (sal_Int32)pSection->getPage()->GetPageNum(); aProps[nCount].Value <<= (sal_Int32)pSectionWindow->getReportSection().getPage()->GetPageNum();
} } // if ( pSectionWindow.get() )
} } // if ( m_pMyOwnView )
const sal_Int32 nCount = aProps.getLength();
aProps.realloc( nCount + 1 );
aProps[nCount].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ZoomFactor"));
aProps[nCount].Value <<= m_nZoomValue;
return uno::makeAny(aProps); return uno::makeAny(aProps);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
...@@ -2526,6 +2590,8 @@ void SAL_CALL OReportController::restoreViewData(const uno::Any& Data) throw( un ...@@ -2526,6 +2590,8 @@ void SAL_CALL OReportController::restoreViewData(const uno::Any& Data) throw( un
pPropsIter->Value >>= m_aCollapsedSections; pPropsIter->Value >>= m_aCollapsedSections;
else if ( pPropsIter->Name.equalsAscii("MarkedSection") ) else if ( pPropsIter->Name.equalsAscii("MarkedSection") )
pPropsIter->Value >>= m_nPageNum; pPropsIter->Value >>= m_nPageNum;
else if ( pPropsIter->Name.equalsAscii("ZoomFactor") )
pPropsIter->Value >>= m_nZoomValue;
} }
} }
} }
...@@ -2735,14 +2801,6 @@ void OReportController::insertGraphic() ...@@ -2735,14 +2801,6 @@ void OReportController::insertGraphic()
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OReportController::displayDesignFloater(sal_Bool _bShow)
{
if ( m_pGroupsFloater && isUiVisible() )
{
m_pGroupsFloater->Show( m_bGroupFloaterWasVisible && _bShow);
}
}
// -----------------------------------------------------------------------------
::boost::shared_ptr<rptui::OReportModel> OReportController::getSdrModel() ::boost::shared_ptr<rptui::OReportModel> OReportController::getSdrModel()
{ {
if ( !m_aReportModel ) if ( !m_aReportModel )
...@@ -2841,11 +2899,11 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co ...@@ -2841,11 +2899,11 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co
{ {
SequenceAsHashMap aMap(_aArgs); SequenceAsHashMap aMap(_aArgs);
m_pMyOwnView->setMarked(_xSection ,sal_True); m_pMyOwnView->setMarked(_xSection ,sal_True);
::boost::shared_ptr<OReportSection> pReportSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSectionWindow = m_pMyOwnView->getMarkedSection();
if ( !pReportSection ) if ( !pSectionWindow )
return; return;
OSL_ENSURE(pReportSection->getSection() == _xSection,"Invalid section after marking the corrct one."); OSL_ENSURE(pSectionWindow->getReportSection().getSection() == _xSection,"Invalid section after marking the corrct one.");
sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_LEFTMARGIN); sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_LEFTMARGIN);
const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_RIGHTMARGIN); const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_RIGHTMARGIN);
...@@ -2858,13 +2916,13 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co ...@@ -2858,13 +2916,13 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co
uno::Reference< report::XReportComponent> xShapeProp; uno::Reference< report::XReportComponent> xShapeProp;
if ( _nObjectId == OBJ_CUSTOMSHAPE ) if ( _nObjectId == OBJ_CUSTOMSHAPE )
{ {
pNewControl = SdrObjFactory::MakeNewObject( ReportInventor, _nObjectId, pReportSection->getPage(),m_aReportModel.get() ); pNewControl = SdrObjFactory::MakeNewObject( ReportInventor, _nObjectId, pSectionWindow->getReportSection().getPage(),m_aReportModel.get() );
xShapeProp.set(pNewControl->getUnoShape(),uno::UNO_QUERY); xShapeProp.set(pNewControl->getUnoShape(),uno::UNO_QUERY);
pReportSection->createDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("diamond")),pNewControl); // TODO: use real custom shape type pSectionWindow->getReportSection().createDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("diamond")),pNewControl); // TODO: use real custom shape type
} // if ( _nObjectId == OBJ_CUSTOMSHAPE ) } // if ( _nObjectId == OBJ_CUSTOMSHAPE )
else if ( _nObjectId == OBJ_OLE2 || OBJ_DLG_SUBREPORT == _nObjectId ) else if ( _nObjectId == OBJ_OLE2 || OBJ_DLG_SUBREPORT == _nObjectId )
{ {
pNewControl = SdrObjFactory::MakeNewObject( ReportInventor, _nObjectId, pReportSection->getPage(),m_aReportModel.get() ); pNewControl = SdrObjFactory::MakeNewObject( ReportInventor, _nObjectId, pSectionWindow->getReportSection().getPage(),m_aReportModel.get() );
pNewControl->SetLogicRect(Rectangle(3000,500,8000,5500)); // switch height and width pNewControl->SetLogicRect(Rectangle(3000,500,8000,5500)); // switch height and width
xShapeProp.set(pNewControl->getUnoShape(),uno::UNO_QUERY_THROW); xShapeProp.set(pNewControl->getUnoShape(),uno::UNO_QUERY_THROW);
...@@ -2880,7 +2938,7 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co ...@@ -2880,7 +2938,7 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co
FmFormView::createControlLabelPair(NULL,m_pMyOwnView FmFormView::createControlLabelPair(NULL,m_pMyOwnView
,nLeftMargin,0 ,nLeftMargin,0
,NULL,NULL,_nObjectId,::rtl::OUString(),ReportInventor,OBJ_DLG_FIXEDTEXT, ,NULL,NULL,_nObjectId,::rtl::OUString(),ReportInventor,OBJ_DLG_FIXEDTEXT,
NULL,pReportSection->getPage(),m_aReportModel.get(), NULL,pSectionWindow->getReportSection().getPage(),m_aReportModel.get(),
pLabel,pControl); pLabel,pControl);
delete pLabel; delete pLabel;
...@@ -2941,7 +2999,7 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co ...@@ -2941,7 +2999,7 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co
aPos.X = nPaperWidth - nShapeWidth; aPos.X = nPaperWidth - nShapeWidth;
xShapeProp->setPosition(aPos); xShapeProp->setPosition(aPos);
correctOverlapping(pNewControl,pReportSection); correctOverlapping(pNewControl,pSectionWindow->getReportSection());
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OReportController::createDateTime(const Sequence< PropertyValue >& _aArgs) void OReportController::createDateTime(const Sequence< PropertyValue >& _aArgs)
...@@ -3009,10 +3067,10 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3009,10 +3067,10 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
m_pMyOwnView->unmarkAllObjects(NULL); m_pMyOwnView->unmarkAllObjects(NULL);
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Anhand des FormatKeys wird festgestellt, welches Feld benoetigt wird // Anhand des FormatKeys wird festgestellt, welches Feld benoetigt wird
::boost::shared_ptr<OReportSection> pReportSection[2]; ::boost::shared_ptr<OSectionWindow> pSectionWindow[2];
pReportSection[0] = m_pMyOwnView->getMarkedSection(); pSectionWindow[0] = m_pMyOwnView->getMarkedSection();
if ( !pReportSection[0].get() ) if ( !pSectionWindow[0] )
return; return;
uno::Reference<report::XSection> xCurrentSection = m_pMyOwnView->getCurrentSection(); uno::Reference<report::XSection> xCurrentSection = m_pMyOwnView->getCurrentSection();
...@@ -3037,7 +3095,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3037,7 +3095,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
uno::Reference<report::XReportDefinition> xReportDefinition = xSection->getReportDefinition(); uno::Reference<report::XReportDefinition> xReportDefinition = xSection->getReportDefinition();
m_pMyOwnView->setMarked(xSection,sal_True); m_pMyOwnView->setMarked(xSection,sal_True);
pReportSection[0] = m_pMyOwnView->getMarkedSection(); pSectionWindow[0] = m_pMyOwnView->getMarkedSection();
sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_LEFTMARGIN); sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_LEFTMARGIN);
awt::Point aPos = aMap.getUnpackedValueOrDefault(PROPERTY_POSITION,awt::Point(nLeftMargin,0)); awt::Point aPos = aMap.getUnpackedValueOrDefault(PROPERTY_POSITION,awt::Point(nLeftMargin,0));
...@@ -3046,17 +3104,17 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3046,17 +3104,17 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
// LLA: new feature, add the Label in dependency of the given DND_ACTION one section up, normal or one section down // LLA: new feature, add the Label in dependency of the given DND_ACTION one section up, normal or one section down
sal_Int8 nDNDAction = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DNDAction")), sal_Int8(0)); sal_Int8 nDNDAction = aMap.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DNDAction")), sal_Int8(0));
pReportSection[1] = pReportSection[0]; pSectionWindow[1] = pSectionWindow[0];
// ::boost::shared_ptr<OReportSection> pReportSectionPost; // ::boost::shared_ptr<OReportSection> pReportSectionPost;
sal_Bool bLabelAboveTextField = nDNDAction == DND_ACTION_COPY; sal_Bool bLabelAboveTextField = nDNDAction == DND_ACTION_COPY;
if ( bLabelAboveTextField || nDNDAction == DND_ACTION_LINK ) if ( bLabelAboveTextField || nDNDAction == DND_ACTION_LINK )
{ {
// Add the Label one Section up // Add the Label one Section up
pReportSection[1] = m_pMyOwnView->getMarkedSection(bLabelAboveTextField ? PREVIOUS : POST); pSectionWindow[1] = m_pMyOwnView->getMarkedSection(bLabelAboveTextField ? PREVIOUS : POST);
if (!pReportSection[1].get()) if (!pSectionWindow[1])
{ {
// maybe out of bounds // maybe out of bounds
pReportSection[1] = pReportSection[0]; pSectionWindow[1] = pSectionWindow[0];
} }
} }
// clear all selections // clear all selections
...@@ -3161,13 +3219,13 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3161,13 +3219,13 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_RIGHTMARGIN); const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(m_xReportDefinition,PROPERTY_RIGHTMARGIN);
const sal_Int32 nPaperWidth = getStyleProperty<awt::Size>(m_xReportDefinition,PROPERTY_PAPERSIZE).Width - nRightMargin; const sal_Int32 nPaperWidth = getStyleProperty<awt::Size>(m_xReportDefinition,PROPERTY_PAPERSIZE).Width - nRightMargin;
OSectionView* pSectionViews[2]; OSectionView* pSectionViews[2];
pSectionViews[0] = pReportSection[1]->getView(); pSectionViews[0] = &pSectionWindow[1]->getReportSection().getSectionView();
pSectionViews[1] = pReportSection[0]->getView(); pSectionViews[1] = &pSectionWindow[0]->getReportSection().getSectionView();
// find this in svx // find this in svx
FmFormView::createControlLabelPair(pSectionViews[0],m_pMyOwnView FmFormView::createControlLabelPair(pSectionViews[0],m_pMyOwnView
,nLeftMargin,0 ,nLeftMargin,0
,xField,xNumberFormats,nOBJID,::rtl::OUString(),ReportInventor,OBJ_DLG_FIXEDTEXT, ,xField,xNumberFormats,nOBJID,::rtl::OUString(),ReportInventor,OBJ_DLG_FIXEDTEXT,
pReportSection[1]->getPage(),pReportSection[0]->getPage(),m_aReportModel.get(), pSectionWindow[1]->getReportSection().getPage(),pSectionWindow[0]->getReportSection().getPage(),m_aReportModel.get(),
pControl[0],pControl[1]); pControl[0],pControl[1]);
//m_pMyOwnView->GetModel()->GetUndoEnv().UnLock(); //m_pMyOwnView->GetModel()->GetUndoEnv().UnLock();
if ( pControl[0] && pControl[1] ) if ( pControl[0] && pControl[1] )
...@@ -3239,7 +3297,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3239,7 +3297,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
if (bLabelAboveTextField) if (bLabelAboveTextField)
{ {
// move the label down near the splitter // move the label down near the splitter
const uno::Reference<report::XSection> xLabelSection = pReportSection[1]->getSection(); const uno::Reference<report::XSection> xLabelSection = pSectionWindow[1]->getReportSection().getSection();
aPosLabel.Y = xLabelSection->getHeight() - xShapePropLabel->getHeight(); aPosLabel.Y = xLabelSection->getHeight() - xShapePropLabel->getHeight();
} }
else else
...@@ -3255,7 +3313,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3255,7 +3313,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
for(i = 0; i < sizeof(pControl)/sizeof(pControl[0]);++i) // insert controls for(i = 0; i < sizeof(pControl)/sizeof(pControl[0]);++i) // insert controls
{ {
correctOverlapping(pControl[i],pReportSection[1-i]); correctOverlapping(pControl[i],pSectionWindow[1-i]->getReportSection());
} }
if (!bLabelAboveTextField ) if (!bLabelAboveTextField )
...@@ -3274,7 +3332,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3274,7 +3332,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
bool bHasToMove = false; bool bHasToMove = false;
while ( bOverlapping ) while ( bOverlapping )
{ {
const SdrObject* pOverlappedObj = isOver(aLabelAndTextfield, *pReportSection[0]->getPage(), *pSectionViews[0], true, pControl, 2); const SdrObject* pOverlappedObj = isOver(aLabelAndTextfield, *pSectionWindow[0]->getReportSection().getPage(), *pSectionViews[0], true, pControl, 2);
bOverlapping = pOverlappedObj != NULL; bOverlapping = pOverlappedObj != NULL;
if ( bOverlapping ) if ( bOverlapping )
{ {
...@@ -3322,9 +3380,9 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs) ...@@ -3322,9 +3380,9 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
OSectionView* OReportController::getCurrentSectionView() const OSectionView* OReportController::getCurrentSectionView() const
{ {
OSectionView* pSectionView = NULL; OSectionView* pSectionView = NULL;
::boost::shared_ptr<OReportSection> pReportSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSectionWindow = m_pMyOwnView->getMarkedSection();
if ( pReportSection.get() ) if ( pSectionWindow.get() )
pSectionView = pReportSection->getView(); pSectionView = &pSectionWindow->getReportSection().getSectionView();
return pSectionView; return pSectionView;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
...@@ -3607,12 +3665,12 @@ void OReportController::createGroupSection(const bool _bUndo,const bool _bHeader ...@@ -3607,12 +3665,12 @@ void OReportController::createGroupSection(const bool _bUndo,const bool _bHeader
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OReportController::markSection(const bool _bNext) void OReportController::markSection(const bool _bNext)
{ {
::boost::shared_ptr<OReportSection> pSection = m_pMyOwnView->getMarkedSection(); ::boost::shared_ptr<OSectionWindow> pSection = m_pMyOwnView->getMarkedSection();
if ( pSection ) if ( pSection )
{ {
::boost::shared_ptr<OReportSection> pPrevSection = m_pMyOwnView->getMarkedSection(_bNext ? POST : PREVIOUS); ::boost::shared_ptr<OSectionWindow> pPrevSection = m_pMyOwnView->getMarkedSection(_bNext ? POST : PREVIOUS);
if ( pPrevSection != pSection && pPrevSection ) if ( pPrevSection != pSection && pPrevSection )
select(uno::makeAny(pPrevSection->getSection())); select(uno::makeAny(pPrevSection->getReportSection().getSection()));
else else
select(uno::makeAny(m_xReportDefinition)); select(uno::makeAny(m_xReportDefinition));
} }
...@@ -3621,7 +3679,7 @@ void OReportController::markSection(const bool _bNext) ...@@ -3621,7 +3679,7 @@ void OReportController::markSection(const bool _bNext)
m_pMyOwnView->markSection(_bNext ? 0 : m_pMyOwnView->getSectionCount() - 1); m_pMyOwnView->markSection(_bNext ? 0 : m_pMyOwnView->getSectionCount() - 1);
pSection = m_pMyOwnView->getMarkedSection(); pSection = m_pMyOwnView->getMarkedSection();
if ( pSection ) if ( pSection )
select(uno::makeAny(pSection->getSection())); select(uno::makeAny(pSection->getReportSection().getSection()));
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
...@@ -3672,6 +3730,7 @@ void OReportController::checkChartEnabled() ...@@ -3672,6 +3730,7 @@ void OReportController::checkChartEnabled()
} }
} }
} }
// -----------------------------------------------------------------------------
// css.frame.XTitle // css.frame.XTitle
::rtl::OUString SAL_CALL OReportController::getTitle() ::rtl::OUString SAL_CALL OReportController::getTitle()
...@@ -3685,6 +3744,35 @@ void OReportController::checkChartEnabled() ...@@ -3685,6 +3744,35 @@ void OReportController::checkChartEnabled()
return xTitle->getTitle (); return xTitle->getTitle ();
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OReportController::getPropertyDefaultByHandle( sal_Int32 /*_nHandle*/, Any& _rDefault ) const
{
_rDefault <<= sal_Int16(100);
}
// -----------------------------------------------------------------------------
// comphelper::OPropertyArrayUsageHelper
::cppu::IPropertyArrayHelper* OReportController::createArrayHelper( ) const
{
Sequence< Property > aProps;
describeProperties(aProps);
return new ::cppu::OPropertyArrayHelper(aProps);
}
// -------------------------------------------------------------------------
// cppu::OPropertySetHelper
::cppu::IPropertyArrayHelper& SAL_CALL OReportController::getInfoHelper()
{
typedef ::comphelper::OPropertyArrayUsageHelper<OReportController_BASE> OReportController_PROP;
return *OReportController_PROP::getArrayHelper();
}
// -----------------------------------------------------------------------------
void SAL_CALL OReportController::setFastPropertyValue_NoBroadcast(sal_Int32 _nHandle,const Any& _aValue) throw (Exception)
{
if ( _nHandle == PROPERTY_ID_ZOOMVALUE )
{
_aValue >>= m_nZoomValue;
impl_zoom_nothrow();
}
}
void SAL_CALL OReportController::setMode( const ::rtl::OUString& aMode ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException) void SAL_CALL OReportController::setMode( const ::rtl::OUString& aMode ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException)
{ {
::osl::MutexGuard aGuard(m_aMutex); ::osl::MutexGuard aGuard(m_aMutex);
...@@ -3755,6 +3843,20 @@ void OReportController::impl_fillState_nothrow(const ::rtl::OUString& _sProperty ...@@ -3755,6 +3843,20 @@ void OReportController::impl_fillState_nothrow(const ::rtl::OUString& _sProperty
} // if ( _rState.bEnabled ) } // if ( _rState.bEnabled )
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OReportController::impl_zoom_nothrow()
{
Fraction aZoom(m_nZoomValue,100);
MapMode aMapMode = m_pMyOwnView->GetMapMode();
aMapMode.SetScaleX(aZoom);
aMapMode.SetScaleY(aZoom);
m_pMyOwnView->SetMapMode(aMapMode);
m_pMyOwnView->zoom(m_nZoomValue);
// TRY
/*m_pMyOwnView->Invalidate(INVALIDATE_NOCHILDREN);*/
InvalidateFeature(SID_ATTR_ZOOM);
InvalidateFeature(SID_ATTR_ZOOMSLIDER);
}
// -----------------------------------------------------------------------------
sal_Bool OReportController::isFormatCommandEnabled(sal_uInt16 _nCommand,const uno::Reference< report::XReportControlFormat>& _xReportControlFormat) const sal_Bool OReportController::isFormatCommandEnabled(sal_uInt16 _nCommand,const uno::Reference< report::XReportControlFormat>& _xReportControlFormat) const
{ {
sal_Bool bRet = sal_False; sal_Bool bRet = sal_False;
......
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