summaryrefslogtreecommitdiff
path: root/sw/source/ui/app
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/app')
-rw-r--r--sw/source/ui/app/docsh.cxx64
-rw-r--r--sw/source/ui/app/docsh2.cxx173
-rw-r--r--sw/source/ui/app/docstyle.cxx4
-rw-r--r--sw/source/ui/app/swmodul1.cxx4
4 files changed, 58 insertions, 187 deletions
diff --git a/sw/source/ui/app/docsh.cxx b/sw/source/ui/app/docsh.cxx
index f7bb6f4703cb..9dc59a4aca19 100644
--- a/sw/source/ui/app/docsh.cxx
+++ b/sw/source/ui/app/docsh.cxx
@@ -93,11 +93,8 @@
#include <swcli.hxx>
#include <txtftn.hxx>
#include <ftnidx.hxx>
-
-// --> FME 2004-08-05 #i20883# Digital Signatures and Encryption
#include <fldbas.hxx>
#include <docary.hxx>
-// <--
#include <swerror.h> // Fehlermeldungen
#include <helpid.h>
#include <cmdid.h>
@@ -123,7 +120,7 @@
#include <unomid.h>
#include <sfx2/Metadatable.hxx>
-
+#include <switerator.hxx>
using rtl::OUString;
using namespace ::com::sun::star;
@@ -912,32 +909,6 @@ Rectangle SwDocShell::GetVisArea( sal_uInt16 nAspect ) const
const SwRect aPageRect = pNd->FindPageFrmRect( sal_False, 0, sal_False );
return aPageRect.SVRect();
-
- // Why does this have to be that complicated? I replaced this by the
- // call of FindPageFrmRect():
- /*
- //PageDesc besorgen, vom ersten Absatz oder den default.
- const SwFmtPageDesc &rDesc = pNd->GetSwAttrSet().GetPageDesc();
- const SwPageDesc* pDesc = rDesc.GetPageDesc();
- if( !pDesc )
- pDesc = &const_cast<const SwDoc *>(pDoc)->GetPageDesc( 0 );
-
- //Das Format wird evtl. von der virtuellen Seitennummer bestimmt.
- const sal_uInt16 nPgNum = rDesc.GetNumOffset();
- const sal_Bool bOdd = nPgNum % 2 ? sal_True : sal_False;
- const SwFrmFmt *pFmt = bOdd ? pDesc->GetRightFmt() : pDesc->GetLeftFmt();
- if ( !pFmt ) //#40568#
- pFmt = bOdd ? pDesc->GetLeftFmt() : pDesc->GetRightFmt();
-
- if ( pFmt->GetFrmSize().GetWidth() == LONG_MAX )
- //Jetzt wird es aber Zeit fuer die Initialisierung
- pDoc->getPrinter( true );
-
- const SwFmtFrmSize& rFrmSz = pFmt->GetFrmSize();
- const Size aSz( rFrmSz.GetWidth(), rFrmSz.GetHeight() );
- const Point aPt( DOCUMENTBORDER, DOCUMENTBORDER );
- const Rectangle aRect( aPt, aSz );
- return aRect;*/
}
return SfxObjectShell::GetVisArea( nAspect );
}
@@ -982,17 +953,16 @@ sal_uInt16 SwDocShell::GetHiddenInformationState( sal_uInt16 nStates )
if ( GetWrtShell() )
{
SwFieldType* pType = GetWrtShell()->GetFldType( RES_POSTITFLD, aEmptyStr );
- SwClientIter aIter( *pType );
- SwClient* pFirst = aIter.GoStart();
+ SwIterator<SwFmtFld,SwFieldType> aIter( *pType );
+ SwFmtFld* pFirst = aIter.First();
while( pFirst )
{
- if( static_cast<SwFmtFld*>(pFirst)->GetTxtFld() &&
- static_cast<SwFmtFld*>(pFirst)->IsFldInDoc() )
+ if( pFirst->GetTxtFld() && pFirst->IsFldInDoc() )
{
nState |= HIDDENINFORMATION_NOTES;
break;
}
- pFirst = ++aIter;
+ pFirst = aIter.Next();
}
}
}
@@ -1016,26 +986,17 @@ void SwDocShell::GetState(SfxItemSet& rSet)
{
switch (nWhich)
{
- // MT: MakroChosser immer enablen, weil Neu moeglich
- // case SID_BASICCHOOSER:
- // {
- // StarBASIC* pBasic = GetBasic();
- // StarBASIC* pAppBasic = SFX_APP()->GetBasic();
- // if ( !(pBasic->GetModules()->Count() ||
- // pAppBasic->GetModules()->Count()) )
- // rSet.DisableItem(nWhich);
- // }
- // break;
case SID_PRINTPREVIEW:
{
sal_Bool bDisable = IsInPlaceActive();
+ // Disable "multiple layout"
if ( !bDisable )
{
SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst(this);
while (pTmpFrm) // Preview suchen
{
if ( PTR_CAST(SwView, pTmpFrm->GetViewShell()) &&
- ((SwView*)pTmpFrm->GetViewShell())->GetWrtShell().getIDocumentSettingAccess()->get(IDocumentSettingAccess::BROWSE_MODE))
+ ((SwView*)pTmpFrm->GetViewShell())->GetWrtShell().GetViewOptions()->getBrowseMode() )
{
bDisable = sal_True;
break;
@@ -1043,6 +1004,7 @@ void SwDocShell::GetState(SfxItemSet& rSet)
pTmpFrm = pTmpFrm->GetNext(*pTmpFrm, this);
}
}
+ // End of disabled "multiple layout"
if ( bDisable )
rSet.DisableItem( SID_PRINTPREVIEW );
else
@@ -1244,9 +1206,8 @@ SwFEShell* SwDocShell::GetFEShell()
void SwDocShell::RemoveOLEObjects()
{
- SwClientIter aIter( *(SwModify*)pDoc->GetDfltGrfFmtColl() );
- for( SwCntntNode* pNd = (SwCntntNode*)aIter.First( TYPE( SwCntntNode ) );
- pNd; pNd = (SwCntntNode*)aIter.Next() )
+ SwIterator<SwCntntNode,SwFmtColl> aIter( *pDoc->GetDfltGrfFmtColl() );
+ for( SwCntntNode* pNd = aIter.First(); pNd; pNd = aIter.Next() )
{
SwOLENode* pOLENd = pNd->GetOLENode();
if( pOLENd && ( pOLENd->IsOLEObjectDeleted() ||
@@ -1273,9 +1234,8 @@ void SwDocShell::CalcLayoutForOLEObjects()
if( !pWrtShell )
return;
- SwClientIter aIter( *(SwModify*)pDoc->GetDfltGrfFmtColl() );
- for( SwCntntNode* pNd = (SwCntntNode*)aIter.First( TYPE( SwCntntNode ) );
- pNd; pNd = (SwCntntNode*)aIter.Next() )
+ SwIterator<SwCntntNode,SwFmtColl> aIter( *pDoc->GetDfltGrfFmtColl() );
+ for( SwCntntNode* pNd = aIter.First(); pNd; pNd = aIter.Next() )
{
SwOLENode* pOLENd = pNd->GetOLENode();
if( pOLENd && pOLENd->IsOLESizeInvalid() )
diff --git a/sw/source/ui/app/docsh2.cxx b/sw/source/ui/app/docsh2.cxx
index 8963a837389c..eac710d34efd 100644
--- a/sw/source/ui/app/docsh2.cxx
+++ b/sw/source/ui/app/docsh2.cxx
@@ -158,6 +158,44 @@ SfxDocumentInfoDialog* SwDocShell::CreateDocumentInfoDialog(
return pDlg;
}
+// Disable "multiple layout"
+
+void SwDocShell::ToggleBrowserMode(sal_Bool bSet, SwView* _pView )
+{
+ GetDoc()->set(IDocumentSettingAccess::BROWSE_MODE, bSet );
+ UpdateFontList();
+ SwView* pTempView = _pView ? _pView : (SwView*)GetView();
+ if( pTempView )
+ {
+ pTempView->GetViewFrame()->GetBindings().Invalidate(FN_SHADOWCURSOR);
+ if( !GetDoc()->getPrinter( false ) )
+ pTempView->SetPrinter( GetDoc()->getPrinter( false ), SFX_PRINTER_PRINTER | SFX_PRINTER_JOBSETUP );
+ GetDoc()->CheckDefaultPageFmt();
+ SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst(this, sal_False);
+ do {
+ if( pTmpFrm != pTempView->GetViewFrame() )
+ {
+ pTmpFrm->DoClose();
+ pTmpFrm = SfxViewFrame::GetFirst(this, sal_False);
+ }
+ else
+ pTmpFrm = pTmpFrm->GetNext(*pTmpFrm, this, sal_False);
+
+ } while ( pTmpFrm );
+ const SwViewOption& rViewOptions = *pTempView->GetWrtShell().GetViewOptions();
+ pTempView->GetWrtShell().CheckBrowseView( sal_True );
+ pTempView->CheckVisArea();
+ if( bSet )
+ {
+ const SvxZoomType eType = (SvxZoomType)rViewOptions.GetZoomType();
+ if ( SVX_ZOOM_PERCENT != eType)
+ ((SwView*)GetView())->SetZoom( eType );
+ }
+ pTempView->InvalidateBorder();
+ pTempView->SetNewWindowAllowed(!bSet);
+ }
+}
+// End of disabled "multiple layout"
/// update text fields on document properties changes
void SwDocShell::DoFlushDocInfo()
@@ -684,7 +722,7 @@ void SwDocShell::Execute(SfxRequest& rReq)
pDocSh = (SwDocShell*)SfxObjectShell::GetNext( *pDocSh, &aType ) )
{
SwDoc* pTmp = pDocSh->GetDoc();
- if ( pTmp->GetRootFrm() )
+ if ( pTmp->GetCurrentViewShell() ) //swmod 071108//swmod 071225
pTmp->InvalidateAutoCompleteFlag();
}
}
@@ -721,11 +759,7 @@ void SwDocShell::Execute(SfxRequest& rReq)
sal_uInt16 nSlotId = 0;
if( bSet && !bFound ) // Keine gefunden, daher neue Preview anlegen
- {
- //Keine neue anlegen fuer BrowseView!
- if( !GetDoc()->get(IDocumentSettingAccess::BROWSE_MODE) )
nSlotId = SID_VIEWSHELL1;
- }
else if( bFound && !bSet )
nSlotId = bOnly ? SID_VIEWSHELL0 : SID_VIEWSHELL1;
@@ -977,6 +1011,7 @@ void SwDocShell::Execute(SfxRequest& rReq)
//pSavePrinter darf nicht wieder geloescht werden
}
pViewFrm->GetBindings().SetState(SfxBoolItem(SID_SOURCEVIEW, nSlot == SID_VIEWSHELL2));
+ pViewFrm->GetBindings().Invalidate( SID_NEWWINDOW );
pViewFrm->GetBindings().Invalidate( SID_BROWSER_MODE );
pViewFrm->GetBindings().Invalidate( FN_PRINT_LAYOUT );
}
@@ -1143,60 +1178,6 @@ void SwDocShell::Execute(SfxRequest& rReq)
SW_MOD()->CheckSpellChanges(sal_False, sal_True, sal_True, sal_False );
break;
- case SID_BROWSER_MODE:
- case FN_PRINT_LAYOUT: //Fuer Web, genau umgekehrt zum BrowserMode
- {
- int eState = STATE_TOGGLE;
- sal_Bool bSet = sal_True;
- const SfxPoolItem* pAttr=NULL;
- if ( pArgs && SFX_ITEM_SET == pArgs->GetItemState( nWhich , sal_False, &pAttr ))
- {
- bSet = ((SfxBoolItem*)pAttr)->GetValue();
- if ( nWhich == FN_PRINT_LAYOUT )
- bSet = !bSet;
- eState = bSet ? STATE_ON : STATE_OFF;
- }
-
- if ( STATE_TOGGLE == eState )
- bSet = !GetDoc()->get(IDocumentSettingAccess::BROWSE_MODE);
-
- ToggleBrowserMode(bSet, 0);
-
- // OS: numerische Reihenfolge beachten!
- static sal_uInt16 __READONLY_DATA aInva[] =
- {
- SID_NEWWINDOW,/*5620*/
- SID_BROWSER_MODE, /*6313*/
- SID_RULER_BORDERS, SID_RULER_PAGE_POS,
- SID_ATTR_LONG_LRSPACE,
- SID_HTML_MODE,
- SID_RULER_PROTECT,
- SID_AUTOSPELL_CHECK,
- FN_RULER, /*20211*/
- FN_VIEW_GRAPHIC, /*20213*/
- FN_VIEW_BOUNDS, /**/
- FN_VIEW_FIELDS, /*20215*/
- FN_VLINEAL, /*20216*/
- FN_VSCROLLBAR, /*20217*/
- FN_HSCROLLBAR, /*20218*/
- FN_VIEW_META_CHARS, /**/
- FN_VIEW_MARKS, /**/
- FN_VIEW_FIELDNAME, /**/
- FN_VIEW_TABLEGRID, /*20227*/
- FN_PRINT_LAYOUT, /*20237*/
- FN_QRY_MERGE, /*20364*/
- 0
- };
- // the view must not exist!
- SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst( this );
- if( pTmpFrm )
- pTmpFrm->GetBindings().Invalidate( aInva );
- if ( !pAttr )
- rReq.AppendItem( SfxBoolItem( nWhich, bSet ) );
- rReq.Done();
- }
- break;
-
case SID_MAIL_PREPAREEXPORT:
{
//pWrtShell is not set in page preview
@@ -1209,7 +1190,8 @@ void SwDocShell::Execute(SfxRequest& rReq)
pWrtShell->EndAllAction();
}
break;
- case SID_MAIL_EXPORT_FINISHED:
+
+ case SID_MAIL_EXPORT_FINISHED:
{
if(pWrtShell)
pWrtShell->StartAllAction();
@@ -1781,77 +1763,6 @@ void SwDocShell::ReloadFromHtml( const String& rStreamName, SwSrcView* pSrcView
pDoc->ResetModified();
}
-/* -----------------------------14.12.99 16:52--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SwDocShell::ToggleBrowserMode(sal_Bool bSet, SwView* _pView )
-{
- GetDoc()->set(IDocumentSettingAccess::BROWSE_MODE, bSet );
- UpdateFontList();
- SwView* pTempView = _pView ? _pView : (SwView*)GetView();
- if( pTempView )
- {
- SfxBindings& rBind = pTempView->GetViewFrame()->GetBindings();
- rBind.Invalidate(FN_SHADOWCURSOR);
- rBind.Invalidate(SID_BROWSER_MODE);
- rBind.Invalidate(FN_PRINT_LAYOUT);
-
- if( !GetDoc()->getPrinter( false ) )
- {
- pTempView->SetPrinter( GetDoc()->getPrinter( false ),
- SFX_PRINTER_PRINTER | SFX_PRINTER_JOBSETUP );
- }
-
- // --> FME 2005-03-16 #i44963# Good occasion to check if page sizes in
- // page descriptions are still set to (LONG_MAX, LONG_MAX) (html import)
- GetDoc()->CheckDefaultPageFmt();
- // <--
-
- // Currently there can be only one view (layout) if the document is viewed in Web layout
- // So if there are more views we are in print layout and for toggling to Web layout all other views must be closed
- SfxViewFrame *pTmpFrm = SfxViewFrame::GetFirst(this, sal_False);
- do {
- if( pTmpFrm != pTempView->GetViewFrame() )
- {
- pTmpFrm->DoClose();
- pTmpFrm = SfxViewFrame::GetFirst(this, sal_False);
- }
- else
- pTmpFrm = pTmpFrm->GetNext(*pTmpFrm, this, sal_False);
-
- } while ( pTmpFrm );
-
- const SwViewOption& rViewOptions = *pTempView->GetWrtShell().GetViewOptions();
-
- // set view columns before toggling:
- if ( bSet )
- {
- const sal_uInt16 nColumns = rViewOptions.GetViewLayoutColumns();
- const bool bBookMode = rViewOptions.IsViewLayoutBookMode();
- if ( 1 != nColumns || bBookMode )
- {
- ((SwView*)GetView())->SetViewLayout( 1, false );
- }
- }
-
- // Triggeres a formatting:
- pTempView->GetWrtShell().CheckBrowseView( sal_True );
- pTempView->CheckVisArea();
-
- if( GetDoc()->get(IDocumentSettingAccess::BROWSE_MODE) )
- {
- const SvxZoomType eType = (SvxZoomType)rViewOptions.GetZoomType();
-
- if ( SVX_ZOOM_PERCENT != eType)
- {
- ((SwView*)GetView())->SetZoom( eType );
- }
- }
- pTempView->InvalidateBorder();
- pTempView->SetNewWindowAllowed(!bSet);
- }
-}
-
sal_uLong SwDocShell::LoadStylesFromFile( const String& rURL,
SwgReaderOption& rOpt, sal_Bool bUnoCall )
{
diff --git a/sw/source/ui/app/docstyle.cxx b/sw/source/ui/app/docstyle.cxx
index 71a52cb582f5..a73a01011123 100644
--- a/sw/source/ui/app/docstyle.cxx
+++ b/sw/source/ui/app/docstyle.cxx
@@ -1187,14 +1187,14 @@ void SwDocStyleSheet::SetItemSet( const SfxItemSet& rSet,
if( rStyle.Len() &&
0 != ( pFindFmt = lcl_FindParaFmt( rDoc, rStyle, 0, sal_True )))
{
- pFindFmt->Add( &aCond );
+ aCond.RegisterToFormat( *pFindFmt );
((SwConditionTxtFmtColl*)pColl)->InsertCondition( aCond );
}
}
// Document auf die neue Bedingungen updaten
SwCondCollCondChg aMsg( pColl );
- pColl->Modify( &aMsg, &aMsg );
+ pColl->ModifyNotification( &aMsg, &aMsg );
}
else if( pCondItem && !pColl->GetDepends() )
{
diff --git a/sw/source/ui/app/swmodul1.cxx b/sw/source/ui/app/swmodul1.cxx
index 4359ca16f9d9..9791a7e8e2aa 100644
--- a/sw/source/ui/app/swmodul1.cxx
+++ b/sw/source/ui/app/swmodul1.cxx
@@ -99,7 +99,7 @@ void lcl_SetUIPrefs(const SwViewOption* pPref, SwView* pView, ViewShell* pSh )
}
if(bHScrollChanged)
{
- pView->ShowHScrollbar( pNewPref->IsViewHScrollBar() || pSh->getIDocumentSettingAccess()->get(IDocumentSettingAccess::BROWSE_MODE));
+ pView->ShowHScrollbar( pNewPref->IsViewHScrollBar() || pNewPref->getBrowseMode() );
}
//if only the position of the vertical ruler has been changed initiate an update
if(bVAlignChanged && !bHScrollChanged && !bVScrollChanged)
@@ -658,7 +658,7 @@ void SwModule::CheckSpellChanges( sal_Bool bOnlineSpelling,
pDocSh = (SwDocShell*)SfxObjectShell::GetNext( *pDocSh, &aType ) )
{
SwDoc* pTmp = pDocSh->GetDoc();
- if ( pTmp->GetRootFrm() )
+ if ( pTmp->GetCurrentViewShell() ) //swmod 071108//swmod 071225
{
pTmp->SpellItAgainSam( bInvalid, bOnlyWrong, bSmartTags );
ViewShell* pViewShell = 0;